Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Archived » Buckminster » Is there an error in the Buckybook or in Buckminster?
Is there an error in the Buckybook or in Buckminster? [message #510986] Fri, 29 January 2010 13:01 Go to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi!


In the Buckybook p. 30 example 4.4 there's and example of using redirect:

<redirect href="http://www.myorg.org/maps/ourmap.rmap" failOnError="false" />

If I use the failOnError attribute, I get the following error:

ERROR [0001] : org.xml.sax.SAXParseException: cvc-complex-type.3.2.2: Attribute 'failOnError' is not allowed to appear in element 'redirect'.: file:/C:/ccview
s/build/VOB/build/script/assemble-delivery-disk.rmap at line: 23 column: 66

Is the error in the Buckybook or in Buckminster?

Thanks.


/John.
Re: Is there an error in the Buckybook or in Buckminster? [message #511004 is a reply to message #510986] Fri, 29 January 2010 13:56 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 01/29/2010 02:01 PM, John wrote:
> Hi!
>
>
> In the Buckybook p. 30 example 4.4 there's and example of using redirect:
>
> <redirect href="http://www.myorg.org/maps/ourmap.rmap"
> failOnError="false" />
>
> If I use the failOnError attribute, I get the following error:
>
> ERROR [0001] : org.xml.sax.SAXParseException: cvc-complex-type.3.2.2:
> Attribute 'failOnError' is not allowed to appear in element 'redirect'.:
> file:/C:/ccview
> s/build/VOB/build/script/assemble-delivery-disk.rmap at line: 23 column: 66
>
> Is the error in the Buckybook or in Buckminster?
>
A matter of opinion I guess :-)

failOnError is not currently implemented on redirects. A redirect is final and the resolution has no way of finding it's
way back. So in that sense, the documentation is incorrect. This could be improved of course, but until that happens,
the documentation should be corrected.

Can you please file a bugzilla on this?

Thanks,
Thomas Hallgren
Re: Is there an error in the Buckybook or in Buckminster? [message #511023 is a reply to message #511004] Fri, 29 January 2010 15:06 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for the reply, but what you and the Buckybook says, contradicts my experince.
A redirect doesn't seem to be final and I would really be sad if it is, because I can really use the way it actually works.

In the Buckybook it says on p. 30:

"You can only have one redirect, and it must appear last."

According to my experience, it's possible to have a redirect before several locators and components are resolved correctly. In the following example resolution was made correctly from either the redirected rmap or the locators.

<searchPath name="PSD-CVS">
<provider
readerType="cvs"
componentTypes="eclipse.feature,osgi.bundle"
mutable="true"
source="true">
<uri format="{1},{0}">
<bc:propertyRef key="buckminster.component" />
<bc:propertyRef key="my.company.cd.build.cvs.pserver.source" />
</uri>
</provider>
</searchPath>

<redirect pattern="^my\.company\.cd\.psd\.delivery" href="file:buildpsd-disk.rmap" />

<locator searchPathRef="PSD-CVS" pattern="^my\.company\..*" />
<locator searchPathRef="PSD-CVS" pattern="^org\.eclipse\.ui\.forms\.nl" />
<locator searchPathRef="PSD-CVS" pattern="^CoreProperties" />


Currently I also have an rmap, which have three redirects without patterns following a locator. Again, I experience that components are correctly resolved from the different locations appointed by the locator and the redirected rmaps. Here's the example:

<searchPath name="ASSEMBLY-DISK">
<provider
readerType="url.catalog"
componentTypes="osgi.bundle,eclipse.feature,buckminster"
source="true">
<uri format="file:{0}/{1}">
<bc:propertyRef key="my.company.bd.build.disk.source.dir" />
<bc:propertyRef key="buckminster.component" />
</uri>
</provider>
</searchPath>

<locator searchPathRef="ASSEMBLY-DISK" pattern="^my\.company\.bd\.delivery\..*" />

<redirect href="file:psd-ncl-site.rmap" />
<redirect href="file:psd-site.rmap" />
<redirect href="file:core-site.rmap" />

Obviously I wanted to follow the documentation and ensure the first redirects doesn't fail, but apparently this isn't necessary.

Please don't break this behavior. I need it. Smile

Thanks.


/John
Re: Is there an error in the Buckybook or in Buckminster? [message #511033 is a reply to message #511023] Fri, 29 January 2010 15:33 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,
I think we mean different things. See inline comments:

On 01/29/2010 04:06 PM, John wrote:
> Hi Thomas!
>
>
> Thanks for the reply, but what you and the Buckybook says, contradicts
> my experince.
> A redirect doesn't seem to be final and I would really be sad if it is,
> because I can really use the way it actually works.
>
> In the Buckybook it says on p. 30:
>
> "You can only have one redirect, and it must appear last."
>
Yes, this is wrong. You can have as many redirects as you like. You can however only have one redirect that doesn't use
a pattern.

> According to my experience, it's possible to have a redirect before
> several locators and components are resolved correctly. In the following
> example resolution was made correctly from either the redirected rmap or
> the locators.
>
> <searchPath name="PSD-CVS">
> <provider readerType="cvs"
> componentTypes="eclipse.feature,osgi.bundle"
> mutable="true"
> source="true">
> <uri format="{1},{0}">
> <bc:propertyRef key="buckminster.component" />
> <bc:propertyRef key="my.company.cd.build.cvs.pserver.source" />
> </uri>
> </provider>
> </searchPath> <redirect pattern="^my\.company\.cd\.psd\.delivery"
> href="file:buildpsd-disk.rmap" />
> <locator searchPathRef="PSD-CVS" pattern="^my\.company\..*" />
> <locator searchPathRef="PSD-CVS" pattern="^org\.eclipse\.ui\.forms\.nl" />
> <locator searchPathRef="PSD-CVS" pattern="^CoreProperties" />
>
So far so good. This works.

>
> Currently I also have an rmap, which have three redirects without
> patterns following a locator. Again, I experience that components are
> correctly resolved from the different locations appointed by the locator
> and the redirected rmaps. Here's the example:
>
> <searchPath name="ASSEMBLY-DISK">
> <provider
> readerType="url.catalog"
> componentTypes="osgi.bundle,eclipse.feature,buckminster"
> source="true">
> <uri format="file:{0}/{1}">
> <bc:propertyRef key="my.company.bd.build.disk.source.dir" />
> <bc:propertyRef key="buckminster.component" />
> </uri>
> </provider>
> </searchPath>
> <locator searchPathRef="ASSEMBLY-DISK"
> pattern="^my\.company\.bd\.delivery\..*" />
>
> <redirect href="file:psd-ncl-site.rmap" />
> <redirect href="file:psd-site.rmap" />
> <redirect href="file:core-site.rmap" />
>
I can't see how the second redirect would ever get called here. The first one will be selected. If it fails, the
resolution fails. The other two redirects are dead code.

> Obviously I wanted to follow the documentation and ensure the first
> redirects doesn't fail, but apparently this isn't necessary.
>
> Please don't break this behavior. I need it. :)
>
You can always end the first redirect with a redirect to the second. And let the second continue with the third.

- thomas
Re: Is there an error in the Buckybook or in Buckminster? [message #511047 is a reply to message #511033] Fri, 29 January 2010 11:14 Go to previous messageGo to next message
Henrik Lindberg is currently offline Henrik LindbergFriend
Messages: 2509
Registered: July 2009
Senior Member
On 1/29/10 4:33 PM, Thomas Hallgren wrote:
> Hi John,
> I think we mean different things. See inline comments:
>
> On 01/29/2010 04:06 PM, John wrote:
>> Hi Thomas!
>>
>>
>> Thanks for the reply, but what you and the Buckybook says, contradicts
>> my experince.
>> A redirect doesn't seem to be final and I would really be sad if it is,
>> because I can really use the way it actually works.
>>
>> In the Buckybook it says on p. 30:
>>
>> "You can only have one redirect, and it must appear last."
>>
> Yes, this is wrong. You can have as many redirects as you like. You can
> however only have one redirect that doesn't use a pattern.
>
Please log a Bugzilla for [documentation] with what it is supposed to say.

- henrik
Re: Is there an error in the Buckybook or in Buckminster? [message #511056 is a reply to message #511033] Fri, 29 January 2010 16:26 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!

Thanks for the response.
See my comments below.

Thomas Hallgren wrote on Fri, 29 January 2010 10:33
> Currently I also have an rmap, which have three redirects without
> patterns following a locator. Again, I experience that components are
> correctly resolved from the different locations appointed by the locator
> and the redirected rmaps. Here's the example:
>
> <searchPath name="ASSEMBLY-DISK">
> <provider
> readerType="url.catalog"
> componentTypes="osgi.bundle,eclipse.feature,buckminster"
> source="true">
> <uri format="file:{0}/{1}">
> <bc:propertyRef key="my.company.bd.build.disk.source.dir" />
> <bc:propertyRef key="buckminster.component" />
> </uri>
> </provider>
> </searchPath>
> <locator searchPathRef="ASSEMBLY-DISK"
> pattern="^my\.company\.bd\.delivery\..*" />
>
> <redirect href="file:psd-ncl-site.rmap" />
> <redirect href="file:psd-site.rmap" />
> <redirect href="file:core-site.rmap" />
>
I can't see how the second redirect would ever get called here. The first one will be selected. If it fails, the
resolution fails. The other two redirects are dead code.


I looked at it again and you're right. The first redirect points to an rmap, that ends with a redirect just as you suggest below. Sorry for the confusion.

Thomas Hallgren wrote on Fri, 29 January 2010 10:33

> Obviously I wanted to follow the documentation and ensure the first
> redirects doesn't fail, but apparently this isn't necessary.
>
> Please don't break this behavior. I need it. Smile
>
You can always end the first redirect with a redirect to the second. And let the second continue with the third.

- thomas


Unfortunately I don't see how this can fulfill my need.

We have an application, which consists of a core, which is built seperately. Then we have an application (in the future many apps), which is dependent on the core. So far so good.

However, below this we have a lot of products built independently, and they only depend on their application and the core. So for each product I can do as you suggest and use redirects to an rmap for the app, which then redirects to an rmap for core.

But in thwe end I need to assemble my RCP product, which needs all the product units, all the application units and the core unit. I really don't want to duplicate all the update site locations and all the patterns for each unit, so I was hoping I could just re-use the rmaps for each unit, since they got all I need.

Is there a way to accomplish this?


/John.
Re: Is there an error in the Buckybook or in Buckminster? [message #511112 is a reply to message #511047] Fri, 29 January 2010 21:44 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 01/29/2010 05:11 PM, Henrik Lindberg wrote:
> Please log a Bugzilla for [documentation] with what it is supposed to say.
>
https://bugs.eclipse.org/bugs/show_bug.cgi?id=301306

- thomas
Re: Is there an error in the Buckybook or in Buckminster? [message #511113 is a reply to message #511056] Fri, 29 January 2010 21:46 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 01/29/2010 05:26 PM, John wrote:
> Hi Thomas!
> But in thwe end I need to assemble my RCP product, which needs all the
> product units, all the application units and the core unit. I really
> don't want to duplicate all the update site locations and all the
> patterns for each unit, so I was hoping I could just re-use the rmaps
> for each unit, since they got all I need.
>
> Is there a way to accomplish this?
>
Do you want to build everything from source at all times or would you prefer to publish the bundles to a p2 repository
and then populate a target platform from there?

- thomas
Re: Is there an error in the Buckybook or in Buckminster? [message #511120 is a reply to message #511113] Sat, 30 January 2010 00:08 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Each unit (defined by a feature) will be built from source idependently and published on it's own update site.

Dependencies on other units are resolved againts these update sites using redirects to rmaps for each unit, which in turn uses locators to resolve against the units update site.

Finally, we want to assemble a product. The product file includes the relevant features for each unit. It currently uses an rmap, which I hoped could also redirect to the same rmaps with locators to the units individual update sites, without having to duplicate the patterns needed for each unit.

Can this be done, or do I really need to duplicate the units patterns in the products rmap?

Thanks.


/John
Re: Is there an error in the Buckybook or in Buckminster? [message #511129 is a reply to message #511120] Sat, 30 January 2010 03:26 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,
An RMAP provider that points to a p2 repository (an update site) is very fast and efficient. So why not have an RMAP
searchPath that just includes all update sites? It seems to me as the extra redirection through an RMAP is redundant.
But perhaps I'm missing the point.

Regards,
Thomas Hallgren


On 01/30/2010 01:08 AM, John wrote:
> Hi Thomas!
>
>
> Each unit (defined by a feature) will be built from source idependently
> and published on it's own update site.
>
> Dependencies on other units are resolved againts these update sites
> using redirects to rmaps for each unit, which in turn uses locators to
> resolve against the units update site.
>
> Finally, we want to assemble a product. The product file includes the
> relevant features for each unit. It currently uses an rmap, which I
> hoped could also redirect to the same rmaps with locators to the units
> individual update sites, without having to duplicate the patterns needed
> for each unit.
>
> Can this be done, or do I really need to duplicate the units patterns in
> the products rmap?
>
> Thanks.
>
>
> /John
Re: Is there an error in the Buckybook or in Buckminster? [message #511193 is a reply to message #511129] Sat, 30 January 2010 22:08 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Well, it's a matter of keeping things simple and to use some sense of encapsulation.

We aim at doing parallel development with each unit being developed independently and only having a contract based dependency to other units. Each unit is know by it's defining feature.

Let's say we have two units A and B.

A's feature can be: my.company.x.y.a.feature. Plugins in A may follow the general pattern my.company.x.y.a.*.., but there nay also be other conventions like org.eclipse.ui.forms.nl, which is a fragment to an Eclipse plugin.

B's feature can be my.company.m.n.b.feature. Plugins in A may follow the general pattern my.company.m.n.b.*.., but there may also be variations here.

Now, I don't really want to expose the internal naming conventions of the units if I can avoid it.

So the rmap to buld A lists all the internally known patterns in locators to build it from source. In addition I can make an rmap with pattern based locators to get it from an update site.

To build B from source I would make a similar rmap with the internally known patterns in locators to build it from source and a redirect to the site based rmap for A, without using a pattern to avoid knowing which naming standard is used in A (this is specially relevant for plugins in A that are not supposed to be known externally).

In addition I can again make an rmap with pattern based locators to get B from an update site and a redirect to the site based rmap for A, without using a pattern.

Now, to assemble my product, I just want to reuse the site rmaps for all the units that make up the product and I don't want to duplicate the knowledge of each units internal naming standard if I can avoid it. Both from an encapsulation perspective, but also because this rmap may be owned by a completely different part of our organization. So if A suddenly decides to introduce a new plugin not matching the currently used patterns, I would like to avoid having to update all the dependents rmaps.

If I only have chain of units I could use the "bottom" site rmp for this, but as it is our dependency structure between units is a tree, so I will need to list at least the pattens for all the leaves in the products rmap. E.g. C -> B -> A and D -> B -> A will require me to know the patterns for C and D. In the future the number of leaves will scale to 50-100.

Hopefully this illustrates what I attempt to achieve, but unfortunately I get the impression, that I can't do this.

Thanks.

/John.
Re: Is there an error in the Buckybook or in Buckminster? [message #511195 is a reply to message #511193] Sat, 30 January 2010 22:34 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,
I can understand the need for federated rmaps and your example would make perfect sense if you wanted to build
everything from source. But it sounds as you want to establish some level of isolation between different teams which
makes me wonder if the federated RMAP approach is the best way to go.

The complex scenario that you describe sounds similar to how we build the Eclipse release train. We decided early on
that the common 'product' of all involved producers, is a p2 update site. That way, it's very easy for others to consume
the product, regardless of how it's built. And every team that is involved creates p2 update sites anyway.

If every team produces a p2 repository, you don't even need to assemble them. Instead you create a composite repository
which essentially just references the other repositories (with no copying involved). You then consider that composite
the final product, at least during all stages of development and testing. Nested federation can be accomplished since a
composite repository can contain references to other composites.

I'm not at all sure that this would fit in your environment but I thought I'd mention it as an alternative. It's been
working well for us over some time.

Regards,
Thomas Hallgren


On 01/30/2010 11:08 PM, John wrote:
> Hi Thomas!
>
>
> Well, it's a matter of keeping things simple and to use some sense of
> encapsulation.
>
> We aim at doing parallel development with each unit being developed
> independently and only having a contract based dependency to other
> units. Each unit is know by it's defining feature.
>
> Let's say we have two units A and B.
>
> A's feature can be: my.company.x.y.a.feature. Plugins in A may follow
> the general pattern my.company.x.y.a.*.., but there nay also be other
> conventions like org.eclipse.ui.forms.nl, which is a fragment to an
> Eclipse plugin.
>
> B's feature can be my.company.m.n.b.feature. Plugins in A may follow the
> general pattern my.company.m.n.b.*.., but there may also be variations
> here.
>
> Now, I don't really want to expose the internal naming conventions of
> the units if I can avoid it.
>
> So the rmap to buld A lists all the internally known patterns in
> locators to build it from source. In addition I can make an rmap with
> pattern based locators to get it from an update site.
>
> To build B from source I would make a similar rmap with the internally
> known patterns in locators to build it from source and a redirect to the
> site based rmap for A, without using a pattern to avoid knowing which
> naming standard is used in A (this is specially relevant for plugins in
> A that are not supposed to be known externally).
>
> In addition I can again make an rmap with pattern based locators to get
> B from an update site and a redirect to the site based rmap for A,
> without using a pattern.
>
> Now, to assemble my product, I just want to reuse the site rmaps for all
> the units that make up the product and I don't want to duplicate the
> knowledge of each units internal naming standard if I can avoid it. Both
> from an encapsulation perspective, but also because this rmap may be
> owned by a completely different part of our organization. So if A
> suddenly decides to introduce a new plugin not matching the currently
> used patterns, I would like to avoid having to update all the dependents
> rmaps.
>
> If I only have chain of units I could use the "bottom" site rmp for
> this, but as it is our dependency structure between units is a tree, so
> I will need to list at least the pattens for all the leaves in the
> products rmap. E.g. C -> B -> A and D -> B -> A will require me to know
> the patterns for C and D. In the future the number of leaves will scale
> to 50-100.
>
> Hopefully this illustrates what I attempt to achieve, but unfortunately
> I get the impression, that I can't do this.
>
> Thanks.
>
> /John.
Re: Is there an error in the Buckybook or in Buckminster? [message #511643 is a reply to message #511195] Tue, 02 February 2010 11:26 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


I have been having the same thoughts myself.
We've introduced Buckminster late in our project and it has worked well for us when building everything from one source location.
Now that we want to split it into units we can also build them independently using federated rmaps for this purpose.
For assembling the product we have just assumed we could continue using the same strategy, but I think it makes sense to make a composite rmap.

I've been reading the "Shipping" section in the Buckybook and unfortunately it's more what than how.
It's not easy to use it as a guideline for which approach to take, when you're not familiar with all the approaches.
However, I think it makes sense to try using the Buckminster Aggregator support.
Is this also the approach you'll recommend?

I have installed the required plugins in my Eclipse 3.5 and has made a model like the following:

<?xml version="1.0" encoding="UTF-8"?>
<aggregator:Aggregator xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/buckminster/2009/aggregator" description="The aggregated update site for NBD" label="NBD" buildRoot="/temp/bmaggregator/build">
<configurations/>
<contributions label="NBD">
<repositories location="http://mysiteserver/core-site/dev">
<metadataRepository href="p2:http://mysiteserver/core-site/dev#//@metadataRepository"/>
</repositories>
<repositories location="http://mysiteserver/psd-site/dev">
<metadataRepository href="p2:http://mysiteserver/psd-site/dev#//@metadataRepository"/>
</repositories>
<repositories location="http://mysiteserver/psd-ncl-site/dev">
<metadataRepository href=" p2:http://mysiteserver/psd-ncl-site/dev#//@metadataRepositor y"/>
</repositories>
</contributions>
</aggregator:Aggregator>

Now when building the repository I get the following error:

Loading repository http://mysiteserver/core-site/dev
Done. Took 0 seconds
Loading repository http://mysiteserver/psd-site/dev
Done. Took 0 seconds
Loading repository http://mysiteserver/psd-ncl-site/dev
Done. Took 0 seconds
Starting generation of composite repository
Adding child meta-data repository http://mysiteserver/core-site/dev
Adding child meta-data repository http://mysiteserver/psd-site/dev
Adding child meta-data repository http://mysiteserver/psd-ncl-site/dev
Done. Took 0 seconds
Starting generation of verification feature
Done. Took 0 seconds
Starting generation of categories
Done. Took 0 seconds
Starting planner verification
Verifying config win32,win32,x86...
Done. Took 0 seconds
Build failed! Exception was org.eclipse.core.runtime.CoreException: Cannot complete the install because one or more required items could not be found.
org.eclipse.core.runtime.CoreException: Cannot complete the install because one or more required items could not be found.
at org.eclipse.buckminster.aggregator.engine.RepositoryVerifier .run(RepositoryVerifier.java:226)
at org.eclipse.buckminster.aggregator.engine.Builder.runReposit oryVerifier(Builder.java:1212)
at org.eclipse.buckminster.aggregator.engine.Builder.run(Builde r.java:691)
at org.eclipse.buckminster.aggregator.presentation.AggregatorAc tionBarContributor$BuildRepoAction$1.run(AggregatorActionBar Contributor.java:277)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Contains: Software being installed: all.contributed.content.feature.group 1.0.0
Contains: Missing requirement: Install/Update UI 3.2.100.v20080318 (org.eclipse.update.ui 3.2.100.v20080318) requires 'package javax.xml.parsers 0.0.0' but it could not be found
Contains: Cannot satisfy dependency:
Contains: From: all.contributed.content.feature.group 1.0.0
Contains: To: my.company.rcp_extra.feature.feature.group [1.0.0]
Contains: Cannot satisfy dependency:
Contains: From: Feature Feature 1.0.0 (my.company.rcp_extra.feature.feature.group 1.0.0)
Contains: To: org.eclipse.update.ui [3.2.100.v20080318]

In the update site http://mysiteserver/core-site/dev I have a pluging my.company.bd.core.
It contains the file rt.jar in which the package javax.xml.parsers exists.
This works fine when building the usual way, so what is the problem here when trying to build an aggregated site?


Thanks.

/John
Re: Is there an error in the Buckybook or in Buckminster? [message #511654 is a reply to message #511643] Tue, 02 February 2010 12:49 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 02/02/2010 12:26 PM, John wrote:
> Hi Thomas!
>
>
> I have been having the same thoughts myself.
> We've introduced Buckminster late in our project and it has worked well
> for us when building everything from one source location.
> Now that we want to split it into units we can also build them
> independently using federated rmaps for this purpose.
> For assembling the product we have just assumed we could continue using
> the same strategy, but I think it makes sense to make a composite rmap.
>
> I've been reading the "Shipping" section in the Buckybook and
> unfortunately it's more what than how.
> It's not easy to use it as a guideline for which approach to take, when
> you're not familiar with all the approaches.
> However, I think it makes sense to try using the Buckminster Aggregator
> support.
> Is this also the approach you'll recommend?
>
Yes.

> ...
>
> Now when building the repository I get the following error:
>
> ...
> Contains: Software being installed:
> all.contributed.content.feature.group 1.0.0
> Contains: Missing requirement: Install/Update UI 3.2.100.v20080318
> (org.eclipse.update.ui 3.2.100.v20080318) requires 'package
> javax.xml.parsers 0.0.0' but it could not be found
> Contains: Cannot satisfy dependency:
> Contains: From: all.contributed.content.feature.group 1.0.0
> Contains: To: my.company.rcp_extra.feature.feature.group [1.0.0]
> Contains: Cannot satisfy dependency:
> Contains: From: Feature Feature 1.0.0
> (my.company.rcp_extra.feature.feature.group 1.0.0)
> Contains: To: org.eclipse.update.ui [3.2.100.v20080318]
>
The aggregator generates a top level feature 'all.contributed.content.feature.group' that in turn, includes all features
to aggregate. It passes this feature to p2 and asks it to come up with a plan. The planner fails and the messages above
can be interpreted by following each branch from the top feature. So there are two distinct problems:


Install/Update UI 3.2.100.v20080318 (org.eclipse.update.ui 3.2.100.v20080318) requires 'package javax.xml.parsers 0.0.0'
but it could not be found

and

From: Feature Feature 1.0.0 (my.company.rcp_extra.feature.feature.group 1.0.0) To: org.eclipse.update.ui [3.2.100.v20080318]

In this case, the second problem is a consequence of the first. So your interpretation is correct. It really cannot find
the package 'javax.xml.parsers' and that is the one and only problem. The version '0.0.0' is actually not a version at
all. It's an indication that the requirement has no version constraint.

> In the update site http://mysiteserver/core-site/dev I have a pluging
> my.company.bd.core.
> It contains the file rt.jar in which the package javax.xml.parsers exists.
> This works fine when building the usual way, so what is the problem here
> when trying to build an aggregated site?
>
My guess is that when you build the usual way, the requirement is resolved against the Java runtime library and that the
bundle in question has no export declared for the 'java.xml.parsers' package. It might also be related to lack of
execution environment in the bundle manifest. If I recall correctly, the javax.xml.parsers package was introduced as a
runtime package in Java 1.5.

Regards,
Thomas Hallgren
Re: Is there an error in the Buckybook or in Buckminster? [message #511670 is a reply to message #511654] Tue, 02 February 2010 13:47 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!

My mistake. I overlooked that rt.jar of course is part of the runtime environment. It's not an embedded jar in the plugin my.company.bd.core, so this one is probably not part of the problem.

Thomas Hallgren wrote on Tue, 02 February 2010 07:49

My guess is that when you build the usual way, the requirement is resolved against the Java runtime library and that the
bundle in question has no export declared for the 'java.xml.parsers' package. It might also be related to lack of
execution environment in the bundle manifest. If I recall correctly, the javax.xml.parsers package was introduced as a
runtime package in Java 1.5.


I'm not sure how to understand what you say here. The feature com.nordea.rcp_extra.feature can't declare an export or execution environment - correct? It only contains org.eclipse and org.apache plugins. Do you mean that org.eclipse.update.ui doesn't declare an export or execution environment? Since I haven't specified any runtime in the aggregator model, I assume I'm running with the default JDK 1.6 my Eclipse is using?

I have all three update sites created. All their dependencies were in place when I built them.
What I want to do now is just to make an aggregated update site, consisting of the contents of these update sites.
Why does dependency requirements come into play here? Shouldn't it just take the features and plugins from these update sites as they are?

Thanks.

/John
Re: Is there an error in the Buckybook or in Buckminster? [message #511714 is a reply to message #511670] Tue, 02 February 2010 15:59 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 02/02/2010 02:47 PM, John wrote:
> Hi Thomas!
>
> My mistake. I overlooked that rt.jar of course is part of the runtime
> environment. It's not an embedded jar in the plugin my.company.bd.core,
> so this one is probably not part of the problem.
>
> Thomas Hallgren wrote on Tue, 02 February 2010 07:49
>> My guess is that when you build the usual way, the requirement is
>> resolved against the Java runtime library and that the bundle in
>> question has no export declared for the 'java.xml.parsers' package. It
>> might also be related to lack of execution environment in the bundle
>> manifest. If I recall correctly, the javax.xml.parsers package was
>> introduced as a runtime package in Java 1.5.
>
>
> I'm not sure how to understand what you say here.

That makes two of us :-)

> The feature
> com.nordea.rcp_extra.feature can't declare an export or execution
> environment - correct? It only contains org.eclipse and org.apache
> plugins. Do you mean that org.eclipse.update.ui doesn't declare an
> export or execution environment? Since I haven't specified any runtime
> in the aggregator model, I assume I'm running with the default JDK 1.6
> my Eclipse is using?
>
I made some research.

When you publish a product (i.e. an RCP app, an Eclipse IDE, etc.) the publisher will ensure that the repository will
contain an installable unit that represents the required java runtime. Such an IU must be present in at least one of the
repositories that you use as source for your aggregation. The repository doesn't have to be mirrored though, using it as
a 'validation repository' will do fine.

If you care to look into the repository, you should find an entry similar to this:

<unit id='a.jre.javase' version='1.6.0' singleton='false'>
<provides size='159'>
<provided namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' version='1.6.0'/>
<provided namespace='java.package' name='javax.accessibility' version='0.0.0'/>
<provided namespace='java.package' name='javax.activation' version='0.0.0'/>
<provided namespace='java.package' name='javax.activity' version='0.0.0'/>
<provided namespace='java.package' name='javax.annotation' version='0.0.0'/>
... A long list of packages

Regards,
Thomas Hallgren
Re: Is there an error in the Buckybook or in Buckminster? [message #511882 is a reply to message #511714] Wed, 03 February 2010 10:30 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for the response, but I'm still confused.

Thomas Hallgren wrote on Tue, 02 February 2010 10:59
I made some research.

When you publish a product (i.e. an RCP app, an Eclipse IDE, etc.) the publisher will ensure that the repository will
contain an installable unit that represents the required java runtime.


Do you mean that I publish a product? I don't [edit - hmmm... I can actually see some org.eclipse plugins on one of my update sites. I'm not sure why they are there. I'll look into that, but I would still like to know if my understanding of validation is completely off]. I have right now three update sites with features and plugins. The product is not in any way on an update site. So I still don't understand why any validation needs to be done for aggregating these three update sites.

But I can see from the documentation that validation and aggregation is closely connected. I initially understood validation as validation of the model, but didn't imagine it to be a transitive verification of existence of all dependencies.

Why is validation and aggregation so closely connected? If I don't want to make a completely self contained aggregated update site, I find it reasonable of the consumer of the aggregated update site, to provide the missing dependencies in some other way when using my update site.

Just like when I created my three update sites. All necessary dependencies were in place in order to create them, but the transitive dependencies are not published on these update sites. So it must be reasonable to expect, that since it was possible to create the update sites, it's also possible to get their dependencies from somewhere else and that it's not necessary to validate that just to create the aggregated update site.

The consumer of the aggregated update site will then be in the same situation as when using the three update sites directly. The transitive dependencies must be provided in some other way.

So is there some point I'm missing here? I understand the motivation described in the introduction of the document, but is it really necessary to make transitive validation a prerequisite for making an aggregated update site? Couldn't it be possible to just disable validation and still have aggregation?

Thomas Hallgren wrote on Tue, 02 February 2010 10:59
Such an IU must be present in at least one of the
repositories that you use as source for your aggregation. The repository doesn't have to be mirrored though, using it as
a 'validation repository' will do fine.

If you care to look into the repository, you should find an entry similar to this:

<unit id='a.jre.javase' version='1.6.0' singleton='false'>
<provides size='159'>
<provided namespace='org.eclipse.equinox.p2.iu' name='a.jre.javase' version='1.6.0'/>
<provided namespace='java.package' name='javax.accessibility' version='0.0.0'/>
<provided namespace='java.package' name='javax.activation' version='0.0.0'/>
<provided namespace='java.package' name='javax.activity' version='0.0.0'/>
<provided namespace='java.package' name='javax.annotation' version='0.0.0'/>
... A long list of packages

Regards,
Thomas Hallgren


Ok, in case I really have to validate I decided to try it out. First I was a bit uncertain on how to include validation of packages in a jre. Is there a p2 update site with jre jars somewhere?

But I added a Validation Repository to my model and found that it has a Nature property that isn't described in the document. In the Properties view I can select the edit field for both Enabled and Location. But when I try to edit Nature, the Error Log view pops up with the error below. Do I miss something in my installation?

I hope you can help me with getting this validation to work.

Thanks.


/John


eclipse.buildId=I20090611-1540
java.version=1.6.0_07
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=win32, ARCH=x86, WS=win32, NL=da_DK
Framework arguments: -product org.eclipse.epp.package.rcp.product clean
Command-line arguments: -os win32 -ws win32 -arch x86 -product org.eclipse.epp.package.rcp.product clean


Error
Wed Feb 03 11:17:38 CET 2010
Unhandled event loop exception

java.lang.ClassCastException: org.eclipse.buckminster.aggregator.impl.MetadataRepositoryRe ferenceImpl cannot be cast to org.eclipse.buckminster.aggregator.MappedRepository
at org.eclipse.buckminster.aggregator.provider.MetadataReposito ryReferenceItemProvider$2.getChoiceOfValues(MetadataReposito ryReferenceItemProvider.java:403)
at org.eclipse.emf.edit.ui.provider.PropertyDescriptor.createPr opertyEditor(PropertyDescriptor.java:428)
at org.eclipse.ui.views.properties.PropertySheetEntry.getEditor (PropertySheetEntry.java:378)
at org.eclipse.ui.views.properties.PropertySheetViewer.activate CellEditor(PropertySheetViewer.java:163)
at org.eclipse.ui.views.properties.PropertySheetViewer.handleSe lect(PropertySheetViewer.java:727)
at org.eclipse.ui.views.properties.PropertySheetViewer.access$8 (PropertySheetViewer.java:707)
at org.eclipse.ui.views.properties.PropertySheetViewer$6.mouseD own(PropertySheetViewer.java:816)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListe ner.java:179)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java :84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1003)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.ja va:3880)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java :3473)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.jav a:2405)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2369)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:22 21)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:500)
at org.eclipse.core.databinding.observable.Realm.runWithDefault (Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Work bench.java:493)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.j ava:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start (IDEApplication.java:113)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(Eclips eAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher .start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseS tarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAcce ssorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMe thodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java: 559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)

[Updated on: Wed, 03 February 2010 10:41]

Report message to a moderator

Re: Is there an error in the Buckybook or in Buckminster? [message #511892 is a reply to message #511882] Wed, 03 February 2010 05:58 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
On 02/03/2010 11:30 AM, John wrote:
> Hi Thomas!
>
>
> Thanks for the response, but I'm still confused.
>
> Thomas Hallgren wrote on Tue, 02 February 2010 10:59
>> I made some research.
>>
>> When you publish a product (i.e. an RCP app, an Eclipse IDE, etc.) the
>> publisher will ensure that the repository will contain an installable
>> unit that represents the required java runtime.
>
>
> Do you mean that I publish a product?

No, I mean that this only happens when you do.

> I don't. I have right now three
> update sites with features and plugins. The product is not in any way on
> an update site. So I still don't understand why any validation needs to
> be done for aggregating these three update sites.
>
The reason is that a repository that isn't validated is likely to cause problems for the end user when he tries to
install from it.

> But I can see from the documentation that validation and aggregation is
> closely connected. I initially understood validation as validation of
> the model, but didn't imagine it to be a transitive verification of
> existence of all dependencies.
>
> Why is validation and aggregation so closely connected? If I don't want
> to make a completely self contained aggregated update site, I find it
> reasonable of the consumer of the aggregated update site, to provide the
> missing dependencies in some other way when using my update site.
>
Yes. That makes sense. And that is why we provide 'validation repositories'. They are not part of the aggregated result
but they do participate in the validation. You should provide the same validation repositories when you perform the
aggregation that you then expect the end user to include when he installs from your 'non self contained' update site.

HTH,
Thomas Hallgren
Re: Is there an error in the Buckybook or in Buckminster? [message #511923 is a reply to message #511892] Wed, 03 February 2010 12:42 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks. It sounds to me like aggregation could be done without validation, it's just not implemented that way. Could it be a feature request or do you not like the idea?

Do you have any response to the second part of my post regarding problems with editing properties for a Validation Repository?

How do I specify a jre as a Validation Repository? When I have built my update sites I have had one dependency on a target platform, that Buckminster accepts. It's of course organized with features and plugins folders, but there is no artifacts.jar and content.jar. I have set this as a Validation Repository, but still have the other problem with the jre dependency.

I was running with Buckminster installed from Galileo - http://download.eclipse.org/releases/galileo and Accregator installed from Buckminster - http://download.eclipse.org/tools/buckminster/updates-3.5, when I got the error mentioned.

I have now uninstalled everything and installed all of Buckminster including aggregator from Buckminster - http://download.eclipse.org/tools/buckminster/updates-3.5.

I still have the same problem and now several more erros are appearing. When I install there doesn't seem to be any missing dependencies mentioned.

Thanks.

/John
Re: Is there an error in the Buckybook or in Buckminster? [message #511934 is a reply to message #511923] Wed, 03 February 2010 13:23 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,

On 02/03/2010 01:42 PM, John wrote:
> Hi Thomas!
>
>
> Thanks. It sounds to me like aggregation could be done without
> validation, it's just not implemented that way. Could it be a feature
> request or do you not like the idea?
>
I could certainly be a feature request. The reason it's not done that way now is that we use the p2 planner, not just to
validate, but also to figure out what exactly needs to be aggregated from a set of given features. I.e. the planner is
responsible for computing the transitive closure. This cannot be done if no plan can be produced. In case you want to
aggregate everything from a repository, computing what needs to be aggregated is of course not necessary.

Please enter the feature request as a bugzilla on EMFT/b3 as we plan to make b3 the new home for the aggregator.

> Do you have any response to the second part of my post regarding
> problems with editing properties for a Validation Repository?
>
That sounds like a bug in the aggregator.

> How do I specify a jre as a Validation Repository? When I have built my
> update sites I have had one dependency on a target platform, that
> Buckminster accepts. It's of course organized with features and plugins
> folders, but there is no artifacts.jar and content.jar. I have set this
> as a Validation Repository, but still have the other problem with the
> jre dependency.
>
You can use Galileo or Helios as validation repository. They both include a jre. The Eclipse platform would work too
(i.e. http://download.eclipse.org/eclipse/updates/3.5).

> I was running with Buckminster installed from Galileo -
> http://download.eclipse.org/releases/galileo and Accregator installed
> from Buckminster -
> http://download.eclipse.org/tools/buckminster/updates-3.5, when I got
> the error mentioned.
>
> I have now uninstalled everything and installed all of Buckminster
> including aggregator from Buckminster -
> http://download.eclipse.org/tools/buckminster/updates-3.5
>
> I still have the same problem and now several more erros are appearing.
> When I install there doesn't seem to be any missing dependencies mentioned.
>
If it's installed succesfully, there shouldn't be anything missing. So please file a bugzilla with the errors attached.

Regards,
Thomas Hallgren
Re: Is there an error in the Buckybook or in Buckminster? [message #512510 is a reply to message #511934] Fri, 05 February 2010 10:45 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for all the help. The aggregated site now builds without errors.
I currently have it copying everything to disk so I can study the result.
It looks correct as it seems like I have all our features and plugins
from the three update sites in my aggregated repository on disk.

The model is here:

<?xml version="1.0" encoding="UTF-8"?>
<aggregator:Aggregator xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:aggregator="http://www.eclipse.org/buckminster/2009/aggregator" description="The aggregated update site for NBD" label="NBD" buildRoot="/temp/bmaggregator/build">
<configurations/>
<contributions label="NBD">
<repositories location="http://mysiteserver/core-site/dev">
<metadataRepository href="p2:http://mysiteserver/core-site/dev#//@metadataRepository"/>
</repositories>
<repositories location="http://mysiteserver/psd-site/dev">
<metadataRepository href="p2:http://mysiteserver/psd-site/dev#//@metadataRepository"/>
</repositories>
<repositories location="http://mysiteserver/psd-ncl-site/dev">
<metadataRepository href=" p2:http://mysiteserver/psd-ncl-site/dev#//@metadataRepositor y"/>
</repositories>
</contributions>
<validationRepositories location="file:///C:/ccviews/psd_dev_1_2_30/NTP_NCD/src/RCP/RCP-RUN">
<metadataRepository href=" p2:file:///C:/ccviews/psd_dev_1_2_30/NTP_NCD/src/RCP/RCP-RUN #//@metadataRepository"/>
</validationRepositories>
<validationRepositories location="http://download.eclipse.org/releases/galileo">
<metadataRepository href=" p2:http://download.eclipse.org/releases/galileo#//@metadataR epository"/>
</validationRepositories>
</aggregator:Aggregator>

As you can see I have one contribution with the three update sites.
Then I have the validation repository C:/ccviews/psd_dev_1_2_30/NTP_NCD/src/RCP/RCP-RUN.
This is a downloaded RCP 3.4, which is currently our target platform.

Finally I have the validation repository http://download.eclipse.org/releases/galileo
in order to validate JRE dependencies. I don't know if anything is validated against this as well,
since all dependencies can be validated without error, but at least I know it's not directly needed from our code.
This because I know I can build our product against the three update sites and using our 3.4 target platform.

When I now try to build our product against this aggregated update site, I end up with the following error:

ERROR [0000] : No suitable provider for component org.eclipse.rcp:eclipse.feature/[3.5.1.R35x_v20090811-9SA0Fx VFqE70OL1ARMrfcO6e7BA6,3.5.1.R35x_v20090811-9SA0FxVFqE70OL1A RMrfcO6e7BA6]
was found in resourceMap file:/C:/ccviews/psd_build_main_latest/NTP_NCD/build/script/ assemble-delivery-disk.rmap
ERROR [0000] : No suitable provider for component org.eclipse.rcp:eclipse.feature/[3.5.1.R35x_v20090811-9SA0Fx VFqE70OL1ARMrfcO6e7BA6,3.5.1.R35x_v20090811-9SA0FxVFqE70OL1A RMrfcO6e7BA6]
was found in searchPath ASSEMBLY-SITE
ERROR [0000] : Rejecting provider eclipse.import( file:///C:/Project/PSD/workspaces/bmaggregator/my.company.ag gregator/temp/bmaggregator/build/final?importType=binary):
No component match was found

Where does this dependency to a 3.5.1 feature come from?
Is this introduced in the aggregated repository due to the validation against the Galileo update site?

Thanks.


/John
Re: Is there an error in the Buckybook or in Buckminster? [message #512515 is a reply to message #512510] Fri, 05 February 2010 06:00 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,
One way to find out where the dependency comes from is to run the CQUERY in your IDE with 'Continue on error' checked
and then save the BOM (BillOfMaterials) when it completes. You can then open that BOM with our dependency viewer. The
unresolved node will be clearly marked in red so it's easy to find the components that depends on it.

Regards,
Thomas Hallgren


On 02/05/2010 11:45 AM, John wrote:
> Hi Thomas!
>
>
> Thanks for all the help. The aggregated site now builds without errors.
> I currently have it copying everything to disk so I can study the result.
> It looks correct as it seems like I have all our features and plugins
> from the three update sites in my aggregated repository on disk.
>
> The model is here:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <aggregator:Aggregator xmi:version="2.0"
> xmlns:xmi="http://www.omg.org/XMI"
> xmlns:aggregator="http://www.eclipse.org/buckminster/2009/aggregator"
> description="The aggregated update site for NBD" label="NBD"
> buildRoot="/temp/bmaggregator/build">
> <configurations/>
> <contributions label="NBD">
> <repositories location="http://mysiteserver/core-site/dev">
> <metadataRepository
> href="p2:http://mysiteserver/core-site/dev#//@metadataRepository"/>
> </repositories>
> <repositories location="http://mysiteserver/psd-site/dev">
> <metadataRepository
> href="p2:http://mysiteserver/psd-site/dev#//@metadataRepository"/>
> </repositories>
> <repositories location="http://mysiteserver/psd-ncl-site/dev">
> <metadataRepository
> href=" p2:http://mysiteserver/psd-ncl-site/dev#//@metadataRepositor y"/>
> </repositories>
> </contributions>
> <validationRepositories
> location="file:///C:/ccviews/psd_dev_1_2_30/NTP_NCD/src/RCP/RCP-RUN">
> <metadataRepository
> href=" p2:file:///C:/ccviews/psd_dev_1_2_30/NTP_NCD/src/RCP/RCP-RUN #//@metadataRepository"/>
>
> </validationRepositories>
> <validationRepositories
> location="http://download.eclipse.org/releases/galileo">
> <metadataRepository
> href=" p2:http://download.eclipse.org/releases/galileo#//@metadataR epository"/>
>
> </validationRepositories>
> </aggregator:Aggregator>
>
> As you can see I have one contribution with the three update sites.
> Then I have the validation repository
> C:/ccviews/psd_dev_1_2_30/NTP_NCD/src/RCP/RCP-RUN.
> This is a downloaded RCP 3.4, which is currently our target platform.
>
> Finally I have the validation repository
> http://download.eclipse.org/releases/galileo
> in order to validate JRE dependencies. I don't know if anything is
> validated against this as well,
> since all dependencies can be validated without error, but at least I
> know it's not directly needed from our code.
> This because I know I can build our product against the three update
> sites and using our 3.4 target platform.
>
> When I now try to build our product against this aggregated update site,
> I end up with the following error:
>
> ERROR [0000] : No suitable provider for component
> org.eclipse.rcp:eclipse.feature/[3.5.1.R35x_v20090811-9SA0Fx
> VFqE70OL1ARMrfcO6e7BA6,3.5.1.R35x_v20090811-9SA0FxVFqE70OL1A RMrfcO6e7BA6]
> was found in resourceMap
> file:/C:/ccviews/psd_build_main_latest/NTP_NCD/build/script/
> assemble-delivery-disk.rmap
> ERROR [0000] : No suitable provider for component
> org.eclipse.rcp:eclipse.feature/[3.5.1.R35x_v20090811-9SA0Fx
> VFqE70OL1ARMrfcO6e7BA6,3.5.1.R35x_v20090811-9SA0FxVFqE70OL1A RMrfcO6e7BA6]
> was found in searchPath ASSEMBLY-SITE
> ERROR [0000] : Rejecting provider
> eclipse.import( file:///C:/Project/PSD/workspaces/bmaggregator/my.company.ag gregator/temp/bmaggregator/build/final?importType=binary):
>
> No component match was found
>
> Where does this dependency to a 3.5.1 feature come from?
> Is this introduced in the aggregated repository due to the validation
> against the Galileo update site?
>
> Thanks.
>
>
> /John
Re: Is there an error in the Buckybook or in Buckminster? [message #512558 is a reply to message #512515] Fri, 05 February 2010 13:45 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi Thomas!


Thanks for the pointer. I thought that the sudden dependency to 3.5 was introduced by adding the Galileo site to the aggregated update site. However, it was caused by some of the other changes I had to do to make the aggregated site work.

After having solved this, I can now assemble my product from the aggregated update site, when the Mapped Repository for each of the three sites is using Mirror Artifacts = true. However, if I set it to flase for all three I get the following error when resolving my product:

ERROR [0000] : No suitable provider for component my.company.bd.psd.feature:eclipse.feature/[1.0.1,1.0.1]
was found in resourceMap file:/C:/ccviews/psd_build_main_latest/NTP_NCD/build/script/ assemble-delivery-disk.rmap
ERROR [0000] : No suitable provider for component my.company.bd.psd.feature:eclipse.feature/[1.0.1,1.0.1]
was found in searchPath ASSEMBLY-SITE
ERROR [0000] : Rejecting provider eclipse.import( file:///C:/Project/PSD/workspaces/bmaggregator/my.company.ag gregator/temp/bmaggregator/build/final?importType=binary):
No component match was found

I get this error for each of the five features currently used in our product.

Setting mirroring to false is the only thing I have changed between the one that works and the one that fails.

I am also passing the properties to bypass our proxy when resolving the product. I hope this also works when using an aggregated update site. At least it works when installing our builder.

Thanks.


/John.
Re: Is there an error in the Buckybook or in Buckminster? [message #515020 is a reply to message #512558] Wed, 17 February 2010 14:05 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Hi!

As mentioned I was unable to resolve against my aggregated site if I set Mirror Artifacts = false for the three mapped repositories involved.

At first I was hunting down "the usual suspect" - the company proxy, but I soon discovered that it wasn't the reason. My test case from home also worked at work.

Then I tried having the three sites on my disk and aggregate them without mirroring, and it still didn't work.

The only difference I could tell between this and my test case was, that I had decided to fill in Category Prefix for the mapped repositories involved. So I put in a different value for the three sites and suddenly it worked. Also when aggregating against the sites on our server.

So for some reason it's required to have a value in Category Prefix for a mapped repository when using Mirror Artifacts = false. If Mirror Artifacts = true, there's no need to have a value in Category Prefix.

/John
Re: Is there an error in the Buckybook or in Buckminster? [message #515086 is a reply to message #515020] Wed, 17 February 2010 16:41 Go to previous messageGo to next message
Thomas Hallgren is currently offline Thomas HallgrenFriend
Messages: 3240
Registered: July 2009
Senior Member
Hi John,
Can you please file a bugzilla for this issue on emft/b3/aggregator.

Thanks,
Thomas Hallgren

On 02/17/2010 03:05 PM, John wrote:
> Hi!
>
> As mentioned I was unable to resolve against my aggregated site if I set
> Mirror Artifacts = false for the three mapped repositories involved.
>
> At first I was hunting down "the usual suspect" - the company proxy, but
> I soon discovered that it wasn't the reason. My test case from home also
> worked at work.
>
> Then I tried having the three sites on my disk and aggregate them
> without mirroring, and it still didn't work.
>
> The only difference I could tell between this and my test case was, that
> I had decided to fill in Category Prefix for the mapped repositories
> involved. So I put in a different value for the three sites and suddenly
> it worked. Also when aggregating against the sites on our server.
>
> So for some reason it's required to have a value in Category Prefix for
> a mapped repository when using Mirror Artifacts = false. If Mirror
> Artifacts = true, there's no need to have a value in Category Prefix.
>
> /John
Re: Is there an error in the Buckybook or in Buckminster? [message #515285 is a reply to message #515086] Thu, 18 February 2010 11:12 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Done!

https://bugs.eclipse.org/bugs/show_bug.cgi?id=303164
Re: Is there an error in the Buckybook or in Buckminster? [message #515314 is a reply to message #511934] Thu, 18 February 2010 13:26 Go to previous messageGo to next message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Added as:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=303178

Thomas Hallgren wrote on Wed, 03 February 2010 14:23
Hi John,

On 02/03/2010 01:42 PM, John wrote:
> Hi Thomas!
>
>
> Thanks. It sounds to me like aggregation could be done without
> validation, it's just not implemented that way. Could it be a feature
> request or do you not like the idea?
>
I could certainly be a feature request. The reason it's not done that way now is that we use the p2 planner, not just to
validate, but also to figure out what exactly needs to be aggregated from a set of given features. I.e. the planner is
responsible for computing the transitive closure. This cannot be done if no plan can be produced. In case you want to
aggregate everything from a repository, computing what needs to be aggregated is of course not necessary.

Please enter the feature request as a bugzilla on EMFT/b3 as we plan to make b3 the new home for the aggregator.



Re: Is there an error in the Buckybook or in Buckminster? [message #515321 is a reply to message #511934] Thu, 18 February 2010 13:43 Go to previous message
John is currently offline JohnFriend
Messages: 107
Registered: July 2009
Senior Member
Added as

https://bugs.eclipse.org/bugs/show_bug.cgi?id=303180

Thomas Hallgren wrote on Wed, 03 February 2010 14:23
Hi John,

> Do you have any response to the second part of my post regarding
> problems with editing properties for a Validation Repository?
>
That sounds like a bug in the aggregator.



Previous Topic:Get Maven component from SVN
Next Topic:Problem getting org.eclipse.equinox.executable.feature to materialize
Goto Forum:
  


Current Time: Fri Mar 29 09:34:42 GMT 2024

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

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

Back to the top