Hi Richard, Here are the steps to reproduce the error and I run the Felix framework 3.2.1 on my Pentium D CPU 2.80GHz Linux 2.6 server running Gentoo Linux and I had tried on my Macbook Pro and the result is the same.
create a module 'com.abc.bundle2' which import package 'com.google.inject.name' from the Guice 3.0 bundles and export package 'com.abc.package;use=com.google.inject.name' create another module 'com.abc.bundle1' which import package 'com.google.inject.name' from the Guice 3.0 bundles and package 'com.abc.package' from module 'com.abc.bundle2' the file name for module 'com.abc.bundle1' is com.abc.bundle1.jar and the file name for module 'com.abc.bundle2' is com.abc.bundle2.jar put the above modules into the bundle sub-directory of the Felix framework installation put the Guice 3.0 modules into the same sub-directory start Felix 3.2.1 check the output - on my Macbook Pro and the Linux server, there is 50% chances the error will happen Here is the steps to avoid the error. rename the file name of the Guice 3.0 modules from guice-....jar to _guice-....jar after Guice 3.0 modules renaming, the Guice 3.0 module will be loaded into the system earlier than my modules 'com.abc.bundle1' and 'com.abc.bundle2' start Felix 3.2.1 and there is NO 'conflict of imports' error Eric On 22 May 2011, at 9:59 PM, Richard S. Hall wrote: > Could you give me some detailed steps to reproduce the error you are seeing? > > -> richard > > On 5/22/11 1:10, Eric Yung wrote: >> Hi Richard, >> >> My bundle did NOT work at all after the complain. >> >> And I have modified the 3.2.1 source to check the detail. It seems the >> module com.google.inject [72.0] in the error refers to two different Module >> implementation - one is org.apache.felix.framework.ModuleImpl and another is >> org.apache.felix.framework.resolver.HostModule. And the checking to see if >> they are compatible returns false. >> >> >> Eric >> >> >> >> On 22 May 2011, at 2:55 AM, Richard S. Hall wrote: >> >>> Does it just complain, but still work in the end or does it fail to work at >>> all? >>> >>> If it just complains, but still works then it likely is just informing you >>> of the issue. This can happen depending on installation order because >>> installation order is taken into account when determining priority of >>> candidates (older bundles have higher priority). >>> >>> So, in short, if it is working even when it complains, then there is >>> nothing to worry about. >>> >>> -> richard >>> >>> On 5/21/11 14:39, Eric Yung wrote: >>>> Hi, >>>> >>>> I have tried to use the Google Guice 3.0 bundles in Felix 3.2.1, the >>>> bundles includes one main bundle and several fragment bundles. But I found >>>> a strange behavior when starting the Felix framework when the Guice >>>> bundles and my bundle deployed in the /bundle directory and the my bundle >>>> is deployed before the Guice bundles. >>>> >>>> The framework may complain about the following error but it does NOT >>>> happen every time (sometimes there is NO error and my bundle can be >>>> deployed and started). >>>> >>>> Candidate permutation failed due to a conflict between imports; will try >>>> another if possible. >>>> (org.apache.felix.framework.resolver.ResolveException: Uses constraint >>>> violation. Unable to resolve module com.abc.bundle1 [5.0] because it is >>>> exposed to package 'com.google.inject.name' from modules com.google.inject >>>> [72.0] and com.google.inject [72.0] via two dependency chains. >>>> Chain 1: >>>> com.abc.bundle1 [5.0] >>>> import: (package=com.google.inject.name) >>>> | >>>> export: package=com.google.inject.name >>>> com.google.inject [72.0] >>>> >>>> Chain 2: >>>> com.abc.bundle1 [5.0] >>>> import: (package=com.abc.package) >>>> | >>>> export: package=com.abc.package; uses:=com.google.inject.name >>>> com.abc.bundle2 [11.0] >>>> import: (package=com.google.inject.name) >>>> | >>>> export: package=com.google.inject.name >>>> com.google.inject [72.0]) >>>> >>>> at org.apache.felix.framework.Felix.resolveBundle(Felix.java:3524) >>>> at org.apache.felix.framework.Felix.startBundle(Felix.java:1750) >>>> at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1179) >>>> at org.apache.felix.framework.StartLevelImpl.run(StartLevelImpl.java:264) >>>> at java.lang.Thread.run(Thread.java:680) >>>> >>>> >>>> If I make the Guice bundles be deployed before my bundle, there is NO >>>> error (I have tried more than 10 times and I think it can solve my >>>> problem). >>>> >>>> >>>> Eric >>>> >>>> --------------------------------------------------------------------- >>>> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >>>> For additional commands, e-mail: users-h...@felix.apache.org >>>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >>> For additional commands, e-mail: users-h...@felix.apache.org >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >> For additional commands, e-mail: users-h...@felix.apache.org >> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@felix.apache.org > For additional commands, e-mail: users-h...@felix.apache.org