Community
Participate
Working Groups
Build Identifier: 0.13.0 When a product configuration is based on features but used to be based on plug-ins, the original plugins are still stored in the XML .product file. It looks like this is causing a build failure using Tycho 0.13.0. This is the error message I'm getting: [WARNING] Mirror tool: "Problems resolving provisioning plan.": ["Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to tooling.source.default [1.0.0].", "Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to a.jre.javase [1.6.0].", "Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to toolingcom.modumind.tychotest.application.product.application [1.0.0.201109271435].", "Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to tooling.osgi.bundle.default [1.0.0].", "Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to tooling.org.eclipse.update.feature.default [1.0.0].", "Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to toolingcom.modumind.tychotest.application.product.configuration [1.0.0.201109271435].", "Unable to satisfy dependency from com.modumind.tychotest.application.product 1.0.0.201109271435 to config.a.jre.javase [1.6.0]."] Reproducible: Always Steps to Reproduce: 1.Create a product based on a set of plug-ins listed in the Dependencies tab. 2.Switch the product to be based on features. 3.Build with the eclipse-repository packaging type and build will fail. To fix this, switch back to a plug-in based product and remove all plug-ins on the Dependencies tab. Then switch back to feature based product and build succeeds.
bug 325611 may be related. Are you sure the "useFeatures" boolean attribute of the .product file was set correctly in both cases [i.e. "true" for feature-based and "false" for plugin-based] ?
(In reply to comment #1) > bug 325611 may be related. > > Are you sure the "useFeatures" boolean attribute of the .product file was set > correctly in both cases [i.e. "true" for feature-based and "false" for > plugin-based] ? I've verified that useFeatures="true" in the product configuration. The following line actually appears in the build output right before the failure occurs: [INFO] "publishing result": ["The product specifies bundles although useFeatures is true. These bundles are ignored."]
(In reply to comment #2) > (In reply to comment #1) > > bug 325611 may be related. > > > > Are you sure the "useFeatures" boolean attribute of the .product file was set > > correctly in both cases [i.e. "true" for feature-based and "false" for > > plugin-based] ? > > I've verified that useFeatures="true" in the product configuration. The > following line actually appears in the build output right before the failure > occurs: > > [INFO] "publishing result": ["The product specifies bundles although > useFeatures is true. These bundles are ignored."] The fact that there are warnings in the log prior to the build failure does not necessarily mean the warnings are causing the eventual failure. Can you attach the full debug log including the build failure message? A sample project would be nice.
(In reply to comment #3) > (In reply to comment #2) > > (In reply to comment #1) > > > bug 325611 may be related. > > > > > > Are you sure the "useFeatures" boolean attribute of the .product file was set > > > correctly in both cases [i.e. "true" for feature-based and "false" for > > > plugin-based] ? > > > > I've verified that useFeatures="true" in the product configuration. The > > following line actually appears in the build output right before the failure > > occurs: > > > > [INFO] "publishing result": ["The product specifies bundles although > > useFeatures is true. These bundles are ignored."] > > The fact that there are warnings in the log prior to the build failure does not > necessarily mean the warnings are causing the eventual failure. > Can you attach the full debug log including the build failure message? > A sample project would be nice. i think i was bitten by this bug too. The maven log contained both '[INFO] "publishing result": ["The product specifies bundles although useFeatures is true. These bundles are ignored."]' and the mirror tool warning. When the plugins were removed from the product the build succeeded Sample project showing the failing build can be found at https://github.com/mudelta/e4base/commit/6c54c55b06422c3fc1128f4e9565481c2de0d50c The project showing the succeeding build (after removal of the plugins in the product file) can be found at https://github.com/mudelta/e4base/commit/3d4a2dd0a8cf8e5034f215c376bb0047beb375c0 I hope this helps.
@Davy, Patrick: Please provide a minimal, standalone project demonstrating the problem.
I have faced the same issue while trying to package a product. I was using this .product file as exemple: http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.epp/packages/org.eclipse.epp.package.jee.feature/epp.product?view=co&root=Technology_Project You can see that useFeatures="true" but there is a mixed declaration of plugins and features. It seems Tycho do not like that.
Sorry, guys, but I just can't find a way to reproduce the problem. @Davy: I couldn't get your project to build because I don't have Java 7 yet. Could strip out the unnecessary parts? I also see the situation which you are describing is working (useFeatures="true" with leftover bundles), and I have created a new integration test that verifies this [1]. I am still interested in a failing example (maybe based on the new integration test), but until then I don't know what else to do for this bug report. [1] BuildProductWithIgnoredContent in 15e7bc6
(In reply to comment #7) > Sorry, guys, but I just can't find a way to reproduce the problem. > @Davy: I couldn't get your project to build because I don't have Java 7 yet. > Could strip out the unnecessary parts? > > I also see the situation which you are describing is working > (useFeatures="true" with leftover bundles), and I have created a new > integration test that verifies this [1]. > > I am still interested in a failing example (maybe based on the new integration > test), but until then I don't know what else to do for this bug report. > > [1] BuildProductWithIgnoredContent in 15e7bc6 I am sorry for the inactivity; i am pretty busy. I will create a minimal example after work.
can you give the location of your IT? I can't manage to find it on Eclipse Git repo.
(In reply to comment #9) > can you give the location of your IT? I can't manage to find it on Eclipse Git > repo. Sorry, forgot to push. Now the test is here [1] and the test project is here [2] [1] /tycho-its/src/test/java/org/eclipse/tycho/test/product/fileFormat/BuildProductWithIgnoredContent.java [2] /tycho-its/projects/product.fileFormat
Created attachment 205201 [details] Minimal setup showing the problem
(In reply to comment #8) > > I will create a minimal example after work. I created a minimal example showing the problem. The parent pom serves as aggregator pom too.
@David: Thanks, now I see the where the problem lies. In my case, it was hidden behind the mirror tool warning (which really should be an error -> bug 361161). I have extended (and disabled) the integration test to discover the problem -> 00b1929. The root of the problem lies in the Publisher class from p2, which treats an info or warning as fatal (just checking status.isOk()...). I had already fixed this for Juno M1 (which is used by Tycho, see bug 352883), but for some strange reason the change only made it in the M1 build of the Eclipse Project and not into the M1 build of Equinox. (Maybe they should revise their choice of build infrastructure... ;-) So to fix this problem, Tycho needs to consume Juno M2 or later of p2 -> bug 361162.
(In reply to comment #13) > @David: Thanks, now I see the where the problem lies. In my case, it was hidden > behind the mirror tool warning (which really should be an error -> bug 361161). > > I have extended (and disabled) the integration test to discover the problem -> > 00b1929. > > The root of the problem lies in the Publisher class from p2, which treats an > info or warning as fatal (just checking status.isOk()...). I had already fixed > this for Juno M1 (which is used by Tycho, see bug 352883), but for some strange > reason the change only made it in the M1 build of the Eclipse Project and not > into the M1 build of Equinox. (Maybe they should revise their choice of build > infrastructure... ;-) > > So to fix this problem, Tycho needs to consume Juno M2 or later of p2 -> bug > 361162. Glad it helped you recreate the problem. If i understand it correctly it is not possible yet to build a product that contains both bundles and features (because of the reasons you outlined)? In that case it could be useful to add an explanation of the info message ('[INFO] "publishing result": ["The product specifies bundles although useFeatures is true. These bundles are ignored."]') to http://wiki.eclipse.org/Tycho_Messages_Explained (and if possible change the severity of the message from info to warning of maybe even error) in the mean time.
(In reply to comment #14) > If i understand it correctly it is not possible yet to build a product that > contains both bundles and features (because of the reasons you outlined)? In short: yes. But there are two parts to this: 1) It is not possible to build a product which lists things which will be ignored - if useFeatures="true", all bundles you list in the product file have no effect (except breaking the Tycho build) 2) p2 has been extended to allow defining a product as a mixture of features and bundles (bug 325622), but due to the bad (too low-level) IProductDescriptor interface, this doesn't work out of the box in Tycho. I have created a new enhancement for this: bug 361215.
(In reply to comment #15) > (In reply to comment #14) > > If i understand it correctly it is not possible yet to build a product that > > contains both bundles and features (because of the reasons you outlined)? > In short: yes. OK. Fortunately there is an easy work-around: make sure there are no bundles listed when you use a feature-based product. It might be useful to add this work-around to the tycho documentation as long as this problem is not fixed.
(In reply to comment #16) > It might be useful to add this work-around to the tycho documentation as long as > this problem is not fixed. Good point: I've added a note in http://wiki.eclipse.org/Tycho/Packaging_Types
This problem is fixed with the new p2 version in 0.14.0-SNAPSHOT, and the corresponding integration test has been activated with commit 991d33e.