I'm having a mspec where I want to materialize some osgi.bundles into my workspace and some osgi.bundles into my target platform using rules. There are different providers with different reader types (p2 and svn).
The mspec looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<mspec:mspec xmlns:mspec="http://www.eclipse.org/buckminster/MetaData-1.0" materializer="p2" name="com.views.ws4:buckminster" url="ws4.cquery" conflictResolution="UPDATE">
<mspec:mspecNode namePattern="^com\.app1(\..+)?" componentType="osgi.bundle" materializer="workspace"/>
<mspec:mspecNode namePattern="^com\.app2(\..+)?" componentType="osgi.bundle" materializer="p2"/>
<mspec:mspecNode namePattern="^com\.views(\..+)?" componentType="buckminster" materializer="workspace"/>
</mspec:mspec>
The rmap of app 1 looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0" xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">
<rm:locator pattern="^com\.app1(\..+)?" searchPathRef="app1"/>
<rm:searchPath name="app1">
<rm:provider componentTypes="buckminster,osgi.bundle" readerType="svn" source="true" mutable="true">
<rm:uri format="http://svn/repos/trunk/tests/app1/{0}">
<bc:propertyRef key="buckminster.component"/>
</rm:uri>
</rm:provider>
<rm:provider componentTypes="osgi.bundle,eclipse.feature" readerType="eclipse.import" source="false" mutable="false">
<rm:uri format="file:///SW-Eng/com.app1.us"/>
</rm:provider>
</rm:searchPath>
<rm:redirect pattern="^com\.app2(\..+)?" href="http://svn/repos/trunk/tests/app2/com.app2/app2.rmap"/>
</rm:rmap>
The rmap2.rmap of app2 looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<rm:rmap xmlns:bc="http://www.eclipse.org/buckminster/Common-1.0" xmlns:rm="http://www.eclipse.org/buckminster/RMap-1.0">
<rm:locator searchPathRef="app2" pattern="^com\.app2(\..+)?"/>
<rm:searchPath name="app2">
<rm:provider componentTypes="osgi.bundle" readerType="svn" source="true" mutable="true">
<rm:uri format="http://svn/repos/trunk/tests/app2/{0}">
<bc:propertyRef key="buckminster.component"/>
</rm:uri>
</rm:provider>
<rm:provider componentTypes="osgi.bundle,eclipse.feature" readerType="eclipse.import" source="false" mutable="false">
<rm:uri format="file:///SW-Eng/com.app2.us"/>
</rm:provider>
</rm:searchPath>
</rm:rmap>
Bundles in app1 require bundles in app2. The Idea is that all that all the bundles in app1 are loaded from SVN and end up in the workspace and the required bundles from app2 are loaded from a p2 update site and end up in the traget platform.
Unfortunately I'm getting the following error:
p2 materializer has encountered a problem:
ERROR [0003] : No repository found at http://svn/repos/trunk/tests/app2/com.app2.a.
It seems that instead of getting the bundles from the p2 update site Buckminster tries to get the app2 bundles from SVN. I want the app2.rmap to be able to load components from different places (SVN, p2), different mspec's could have different needs.
Is there something wrong in my configuration or is it not possible to use the same rmap to load components from different places?
On page 32 in the BuckyBook I found the following about the location of p2 repositories:
Since we are using the eclipse.import provider, the protocol is given, the only thing needed is the URI to the location, and an option in the URI that indicates importType=binary.
Does that mean, that only http and https protocols are supported for p2 repositories?
Thanks
Andreas