Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » buckminster.prebind: no action, group, or local artifact named manifest
buckminster.prebind: no action, group, or local artifact named manifest [message #483051] Sun, 30 August 2009 12:48 Go to next message
Carsten Reckord is currently offline Carsten ReckordFriend
Messages: 139
Registered: July 2009
Senior Member
Hi again,

I'm trying to simplify my build setup a bit. And one thing I'd like to do is add a prebind action to one of my features that has
org.eclipse.platform:osgi.bunde#manifest as a prerequisite:

<cspecExtension
xmlns:com="http://www.eclipse.org/buckminster/Common-1.0"
xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
<actions>
<public name="buckminster.prebind" actor="ant">
<actorProperties>
<property key="buildFile" value="build/patch.ant"/>
<property key="targets" value="remove.signatures"/>
</actorProperties>
<prerequisites>
<attribute component="org.eclipse.platform" componentType="osgi.bundle" name="manifest" alias="manifest"/>
</prerequisites>
</public>
</actions>
</cspecExtension>

The prebind action works just fine if I call it manually after everything is materialized. It also works fine if I first materialize
org.eclipse.platform and then separately materialize my feature. However, if I simply materialize my feature and let buckminster pick up
org.eclipse.platform as a dependency (materializing the source bundle into my workspace), I end up with this:

org.eclipse.platform:osgi.bundle: Trying provider eclipse.import(${p2.url.platform}?importType=source)
org.eclipse.platform:osgi.bundle: Found match 3.3.200.v200906111540
org.eclipse.platform:osgi.bundle: Using provider eclipse.import(${p2.url.platform}?importType=source)
....
my.feature:eclipse.feature: Trying provider svn(${svn.url.myfeature}/{2}-feature)
my.feature:eclipse.feature: trunk/head will be searched
my.feature:eclipse.feature: Found match 0.2.0.qualifier
my.feature:eclipse.feature: Using provider svn(${svn.url.myfeature}/{2}-feature)
Reading remote file svn+ssh://path/to/svn/trunk/my.feature-feature/build.propert ies#HEAD
Reading remote file svn+ssh://path/to/svn/trunk/my.feature-feature/umllab.produc t#HEAD
Listing remote folder svn+ssh://path/to/svn/trunk/my.feature-feature#HEAD
Provider svn(svn+ssh://null:null@path/to/svn/trunk/my.feature-feature): materializing to C:/Users/creckord/bm/workspace/features/my.feature/
ERROR [0001] : CSpec org.eclipse.platform:osgi.bundle$3.3.200.v200906111540 has no action, group, or local artifact named manifest
INFO: TAG-ID 0001 = Query for my.feature:eclipse.feature

Buckminster again happily obliges when I now call the prebind action manually.

Oh, and one other thing I observed: My feature used to have no direct dependency to org.eclipse.platform:osgi.bundle, but to
org.eclipse.platform:eclipse.feature. With that setup, the CSpec Buckminster builds for my feature is missing the
componentType="osgi.bundle" in my prerequisites and my prebind action triggered the org.eclipse.platform:eclipse.feature#manifest action
instead. This was fixed by adding the org.eclipse.platform:osgi.bundle directly to my feature.


Best regards,
Carsten
Re: buckminster.prebind: no action, group, or local artifact named manifest [message #483052 is a reply to message #483051] Sun, 30 August 2009 13:55 Go to previous message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi Carsten,
Some answers inline.

On 08/30/2009 02:48 PM, Carsten Reckord wrote:
> Hi again,
>
> I'm trying to simplify my build setup a bit. And one thing I'd like to
> do is add a prebind action to one of my features that has
> org.eclipse.platform:osgi.bunde#manifest as a prerequisite:
>
> <cspecExtension
> xmlns:com="http://www.eclipse.org/buckminster/Common-1.0"
> xmlns="http://www.eclipse.org/buckminster/CSpec-1.0">
> <actions>
> <public name="buckminster.prebind" actor="ant">
> <actorProperties>
> <property key="buildFile" value="build/patch.ant"/>
> <property key="targets" value="remove.signatures"/>
> </actorProperties>
> <prerequisites>
> <attribute component="org.eclipse.platform" componentType="osgi.bundle"
> name="manifest" alias="manifest"/>
> </prerequisites>
> </public>
> </actions>
> </cspecExtension>
>
> The prebind action works just fine if I call it manually after
> everything is materialized. It also works fine if I first materialize
> org.eclipse.platform and then separately materialize my feature.
> However, if I simply materialize my feature and let buckminster pick up
> org.eclipse.platform as a dependency (materializing the source bundle
> into my workspace), I end up with this:
>
> org.eclipse.platform:osgi.bundle: Trying provider
> eclipse.import(${p2.url.platform}?importType=source)
> org.eclipse.platform:osgi.bundle: Found match 3.3.200.v200906111540
> org.eclipse.platform:osgi.bundle: Using provider
> eclipse.import(${p2.url.platform}?importType=source)
> ...
> my.feature:eclipse.feature: Trying provider
> svn(${svn.url.myfeature}/{2}-feature)
> my.feature:eclipse.feature: trunk/head will be searched
> my.feature:eclipse.feature: Found match 0.2.0.qualifier
> my.feature:eclipse.feature: Using provider
> svn(${svn.url.myfeature}/{2}-feature)
> Reading remote file
> svn+ssh://path/to/svn/trunk/my.feature-feature/build.propert ies#HEAD
> Reading remote file
> svn+ssh://path/to/svn/trunk/my.feature-feature/umllab.produc t#HEAD
> Listing remote folder svn+ssh://path/to/svn/trunk/my.feature-feature#HEAD
> Provider svn(svn+ssh://null:null@path/to/svn/trunk/my.feature-feature):
> materializing to C:/Users/creckord/bm/workspace/features/my.feature/
> ERROR [0001] : CSpec
> org.eclipse.platform:osgi.bundle$3.3.200.v200906111540 has no action,
> group, or local artifact named manifest
> INFO: TAG-ID 0001 = Query for my.feature:eclipse.feature
>
> Buckminster again happily obliges when I now call the prebind action
> manually.
>
Some of the more advanced build actions are generated by the local reader after the component has been bound to the
workspace. This is because the resolver doesn't really care about those actions in order to do the actual resolution and
materialization and thus, can skip the explicit remote access to some files (like build.properties). You get hit by that
when you use the prebind action.

This should probably be considered a bug since any additions to the cspec that are performed once the component is
materialized should be made before the prebind actions are called.

> Oh, and one other thing I observed: My feature used to have no direct
> dependency to org.eclipse.platform:osgi.bundle, but to
> org.eclipse.platform:eclipse.feature. With that setup, the CSpec
> Buckminster builds for my feature is missing the
> componentType="osgi.bundle" in my prerequisites and my prebind action
> triggered the org.eclipse.platform:eclipse.feature#manifest action
> instead. This was fixed by adding the org.eclipse.platform:osgi.bundle
> directly to my feature.
>
I can see that happening if the prereuquisite didn't include the component type. Yours do however, so if that happens
with the sample cspec, it must be considered a bug. The correct action should be to report the missing prerequisite and
give up.

Regards,
Thomas Hallgren
Previous Topic:P2 materializer and profiles
Next Topic:Use of Headless
Goto Forum:
  


Current Time: Fri Sep 20 16:43:50 GMT 2024

Powered by FUDForum. Page generated in 0.03830 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top