Ok, that modification did not solve everything. With that change the integration tests are executed too fast (before the actual upgrade of the bundle took place). I guess the waitForBundlesInstalled method needs to be changed as well.
> On 07 Dec 2014, at 15:17, Konrad Windszus <konra...@gmx.de> wrote: > > It does work, if I I modify > org.apache.sling.testing.tools.sling.BundlesInstaller to not uninstall the > previous SNAPSHOT bundle before installing the new version (comment out line > 80). What was the reason for first uninstalling the bundle? Usually an > upgrade works much smoother (at least if the version is not downgraded). > So what about the following change: Uninstall only if the previously > installed versionis higher than the version which is about to be installed. > Otherwise we might easily run into the same problems for other bundles, which > cannot easily be uninstalled. > > >> On 07 Dec 2014, at 14:34, Konrad Windszus <konra...@gmx.de> wrote: >> >> I am experiencing a weird bug in Sling Models IT. >> It seems that both Models API 1.1.1-SNAPSHOT and Models Impl 1.1.1-SNAPSHOT >> are part of the Sling Launchpad 8-SNAPSHOT. >> If I now run the Sling Models IT and deploy my own versions of those >> bundles, the API bundle is replaced by the newer version (which is correct), >> but both bundles are still available in Felix (due to class loading caching >> issues I guess). >> The following happens: >> 1.) Sling Launchpad starts up with its own version of Models API (has bundle >> id 108) >> 2.) Models IT deploys its own version of Models API (gets bundle id 110) >> 3.) Now the web console only exposes the bundle 110 and no longer bundle 108. >> >> When I try to execute some test now I get the following exception: >> >> Caused by: java.lang.ClassNotFoundException: >> org.apache.sling.models.factory.ModelClassException not found by >> org.apache.sling.models.api [108] >> at >> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1556) >> at >> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77) >> at >> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:358) >> at >> org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1397) >> at >> org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1577) >> at >> org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1507) >> at >> org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:77) >> at >> org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1993) >> at java.lang.ClassLoader.loadClass(ClassLoader.java:358) >> ... 79 common frames omitted >> >> This is due to the fact that the Models Impl is bound to the two different >> version of Models API at the same time: >> >> This is the import package section of the Models Impl Bundle: >> ====== >> javax.annotation,version=0.0.0.1_007_JavaSE from org.apache.felix.framework >> (0) <http://localhost:58498/system/console/bundles/0> >> javax.inject,version=0.0.0 from org.apache.sling.models.api (110) >> <http://localhost:58498/system/console/bundles/110> >> javax.servlet,version=2.6.0 from org.apache.felix.http.servlet-api (24) >> <http://localhost:58498/system/console/bundles/24> >> javax.servlet,version=3.0.0 from org.apache.felix.http.servlet-api (24) >> <http://localhost:58498/system/console/bundles/24> >> javax.servlet.http,version=2.6.0 from org.apache.felix.http.servlet-api (24) >> <http://localhost:58498/system/console/bundles/24> >> javax.servlet.http,version=3.0.0 from org.apache.felix.http.servlet-api (24) >> <http://localhost:58498/system/console/bundles/24> >> org.apache.commons.collections.comparators,version=3.2.1 from >> org.apache.commons.collections (60) >> <http://localhost:58498/system/console/bundles/60> >> org.apache.commons.collections.keyvalue,version=3.2.1 from >> org.apache.commons.collections (60) >> <http://localhost:58498/system/console/bundles/60> >> org.apache.commons.collections.list,version=3.2.1 from >> org.apache.commons.collections (60) >> <http://localhost:58498/system/console/bundles/60> >> org.apache.commons.collections.set,version=3.2.1 from >> org.apache.commons.collections (60) >> <http://localhost:58498/system/console/bundles/60> >> org.apache.commons.lang,version=2.6.0 from org.apache.commons.lang (64) >> <http://localhost:58498/system/console/bundles/64> >> org.apache.commons.logging,version=1.1.1 from jcl.over.slf4j (1) >> <http://localhost:58498/system/console/bundles/1> >> org.apache.sling.api,version=2.3.0 from org.apache.sling.api (71) >> <http://localhost:58498/system/console/bundles/71> >> org.apache.sling.api.adapter,version=2.2.0 from org.apache.sling.api (71) >> <http://localhost:58498/system/console/bundles/71> >> org.apache.sling.api.resource,version=2.6.0 from org.apache.sling.api (71) >> <http://localhost:58498/system/console/bundles/71> >> org.apache.sling.api.scripting,version=2.1.0 from org.apache.sling.api (71) >> <http://localhost:58498/system/console/bundles/71> >> org.apache.sling.commons.osgi,version=2.2.0 from >> org.apache.sling.commons.osgi (78) >> <http://localhost:58498/system/console/bundles/78> >> org.apache.sling.models.annotations,version=1.2.0 from >> org.apache.sling.models.api (110) >> <http://localhost:58498/system/console/bundles/110> >> org.apache.sling.models.annotations.injectorspecific,version=1.1.0 from >> org.apache.sling.models.api (110) >> <http://localhost:58498/system/console/bundles/110> >> org.apache.sling.models.factory,version=1.0.0 from >> org.apache.sling.models.api (108) >> <http://localhost:58498/system/console/bundles/108> >> org.apache.sling.models.spi,version=1.0.2 from org.apache.sling.models.api >> (108) <http://localhost:58498/system/console/bundles/108> >> org.apache.sling.models.spi.injectorspecific,version=1.1.0 from >> org.apache.sling.models.api (110) >> <http://localhost:58498/system/console/bundles/110> >> org.osgi.framework,version=1.7.0 from org.apache.felix.framework (0) >> <http://localhost:58498/system/console/bundles/0> >> org.osgi.service.component,version=1.2.1 from org.apache.felix.scr (40) >> <http://localhost:58498/system/console/bundles/40> >> org.slf4j,version=1.7.6 from slf4j.api (15) >> <http://localhost:58498/system/console/bundles/15> >> >> You can see that models.api is referenced from both the old (108) and the >> new bundle (110). >> Any idea what is going on here, and why the wiring is going nuts? >> >> The export package section of the new Model API bundle looks like this: >> ===== >> javax.inject,version=0.0.0 >> org.apache.sling.models.annotations,version=1.2.0 >> org.apache.sling.models.annotations.injectorspecific,version=1.1.0 >> org.apache.sling.models.factory,version=1.0.0 >> org.apache.sling.models.spi,version=1.0.2 >> org.apache.sling.models.spi.injectorspecific,version=1.1.0 >> >> >> Thanks for any help >> Konrad >> >