Skip to main content
Jump to: navigation, search

Hello XML World Example (Buckminster)

< To: Buckminster Project
This examples shows several Buckminster features in action.

To run the example, use the File > Open dialog in Eclipse, and enter this URL:

That will start the Buckminster materialization of the project.

The CQUERY

The CQuery looks like this:

<?xml version="1.0" encoding="UTF-8"?>
<cq:componentQuery xmlns:cq="http://www.eclipse.org/buckminster/CQuery-1.0"
resourceMap="http://www.eclipse.org/buckminster/samples/rmaps/demo.rmap">
    <cq:rootRequest name="org.demo.hello.xml.world" category="plugin" versionType="OSGi"/>
    <cq:advisorNode namePattern="org\.demo\..*" whenNotEmpty="OVERWRITE" useInstalled="false" useMaterialization="false"/>
    <cq:advisorNode namePattern="se\.tada\..*" whenNotEmpty="REUSE" useInstalled="false"/>
</cq:componentQuery>

This is what the XML in the CQUERY means:

  • The first three lines are the usual XML incantations - this is XML, and this is the syntax of the XML - i.e. CQuery-1.0 and the namespace is called "cq".
  • Next line declares where the resourcemap to use when resolving components is found (we will look at the resource map next).
  • Next line states that the wanted (root) component is called org.demo.hello.xml.world, that is is a plugin and that it follows the OSGi versioning scheme.
  • Then there are two advisor node lines. The first declares that the demo component should be re-materialized even if it already has been materialized (i.e. give me a fresh copy). The second declares that components with "tada" in their name should reuse already materialized results.

For more details see CQUERY

The RMAP

This is what the RMAP looks like:

<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0"
    xmlns:pv="http://www.eclipse.org/buckminster/Provider-1.0"
    xmlns:mp="http://www.eclipse.org/buckminster/MavenProvider-1.0"
    xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0">

    <rm:searchPath name="default">
    	<rm:provider readerType="cvs" componentType="eclipse-project" mutable="true" source="true">
    	    <pv:uri format=":pserver:anonymous@dev.eclipse.org:/cvsroot/technology,org.eclipse.buckminster/org.eclipse.buckminster/demo/{0}">
	        <bc:propertyRef key="buckminster.component" />
	    </pv:uri>
	</rm:provider>
    </rm:searchPath>

    <rm:searchPath name="maven">
    	<rm:provider xsi:type="mp:MavenProvider" readerType="maven" componentType="maven" mutable="false" source="false">
    		<pv:uri format="http://www.ibiblio.org/maven"/>
		<mp:mappings>
			<mp:entry name="se.tada.util.sax" groupId="se.tada" artifactId="tada-sax"/>
		</mp:mappings>
	</rm:provider>
    </rm:searchPath>

    <rm:locator searchPathRef="maven" pattern="^se\.tada\..*" />
    <rm:locator searchPathRef="default" pattern="^org\.demo\..*" />

</rm:rmap>

This is what the RMAP XML means:

  • The 7 first lines declares the name spaces and syntax of the rmap and the repository providers needed.

Describe what the demo does

Copyright © Eclipse Foundation, Inc. All Rights Reserved.