Community
Participate
Working Groups
Build ID: N/A Steps To Reproduce: 1.see the attached README file in the reproducer.jar 2. 3. More information:
Created attachment 62571 [details] reproducer jar Please see the "README" file in the reproducer.jar for information of the problem
See "README" file inside the attached "reproducer.jar" for information of the problem.
Created attachment 62703 [details] replace the previous jar
Created attachment 62704 [details] replace the previous jar
Created attachment 62705 [details] replace the previous jar
The fragment bundle com.bea.core.xquery.beaxmlbeans-interop is adding new constraints to its host com.bea.core.xml.beaxmlbeans. Here is what happens: 1) In your "small" configuration you have com.bea.core.xml.beaxmlbeans installed and resolved. 2) Then you move up to your "large" configuration which includes the fragment com.bea.core.xquery.beaxmlbeans-interop. This bundle adds new imports to its bundle host com.bea.core.xml.beaxmlbeans. 3) When trying to resolve the fragment com.bea.core.xquery.beaxmlbeans-interop the resolver tries to attach it to an already resolved host bundle com.bea.core.xml.beaxmlbeans. But this is not allowed because a fragment cannot add new constraints to an already resolved host. The only time new constraints can be added to a host bundle is if the host and fragment bundles are resolved at the same time. If I run the "refresh" command on the com.bea.core.xml.beaxmlbeans bundle I see the fragment get attached which allows the weblogic.xml.query.xmlbeans.bea package to become available for import. This allows the com.bea.core.xquery to resolve. I don't have a good solution/work around for you. We could add smarts to PackageAdmin.refreshPackages to pull in possible fragment hosts when resolving a fragment bundles, but this hard codes the policy into the framework which we like to avoid.
We cannot fix this in the framework. p2 has logic to detect this and will automatically refresh your host bundle for you.