[ https://issues.apache.org/jira/browse/FELIX-6544?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17558874#comment-17558874 ]
Tom Watson commented on FELIX-6544: ----------------------------------- Perhaps a minor version bump would have been appropriate here, although we did not do a minor version in the past for similar changes (see FELIX-6056). I'm not sure anything can be done at this point other than spinning a 2.3.0 release. Given that we didn't do this kind of version bump for changing dependencies in the past I'm not sure we should go that far for this. > SRC backwards compatibility > --------------------------- > > Key: FELIX-6544 > URL: https://issues.apache.org/jira/browse/FELIX-6544 > Project: Felix > Issue Type: Bug > Components: SCR Tooling > Reporter: Ben Manes > Priority: Major > > To run OSGi compatibility tests > ([code|https://github.com/ben-manes/caffeine/blob/1e0eaa27eb8973cfe4d2c86093a4644ffbeaca35/jcache/src/test/java/com/github/benmanes/caffeine/jcache/OSGiTest.java]), > I use pax-exam with Felix as the container. This uses the SRC dependency > (see > [commit|https://github.com/ben-manes/caffeine/commit/ac014b531aace241a423968697179737ceb4f926]) > adding it). I am not very familiar with OSGi and related details, so I > apologize for my naivety here. > When upgrading dependencies from 2.2.0 to 2.2.2, this test fails with a > {{{}ServiceLookupException{}}}. If keeping at the prior version it works > fine, so this is not a blocker. However I am confused as to why it breaks for > a patch release and it might indicate a newly introduced bug. From the > [changelog|https://github.com/apache/felix-dev/blob/eb99876e44791648939cb0fc7fdee22f00ed27b8/scr/changelog.txt#L1-L7], > it seems that an export was removed and might therefore not be backwards > compatible ([FELIX-6521|https://issues.apache.org/jira/browse/FELIX-6521]). > Is there something in my build that should be updated to conform to these > changes or is this an unintentional change in behavior. Thanks! > {code:java} > $ gradle jcache:clean jcache:test --no-scan > Configuration on demand is an incubating feature. > > Task :jcache:osgiTest > com.github.benmanes.caffeine.jcache.OSGiTest > sanity FAILED > org.ops4j.pax.swissbox.tracker.ServiceLookupException: gave up waiting > for service javax.cache.spi.CachingProvider > at > org.ops4j.pax.swissbox.tracker.ServiceLookup.getService(ServiceLookup.java:208) > at > org.ops4j.pax.swissbox.tracker.ServiceLookup.getService(ServiceLookup.java:145) > at > org.ops4j.pax.exam.inject.internal.ServiceInjector.injectField(ServiceInjector.java:89) > at > org.ops4j.pax.exam.inject.internal.ServiceInjector.injectDeclaredFields(ServiceInjector.java:69) > at > org.ops4j.pax.exam.inject.internal.ServiceInjector.injectFields(ServiceInjector.java:61) > at > org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.createTest(ContainerTestRunner.java:68) > at > org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:266) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) > at > org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:263) > at > org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChildWithRetry(ContainerTestRunner.java:84) > at > org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:75) > at > org.ops4j.pax.exam.invoker.junit.internal.ContainerTestRunner.runChild(ContainerTestRunner.java:43) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) > at org.junit.runners.ParentRunner.run(ParentRunner.java:363) > at org.junit.runner.JUnitCore.run(JUnitCore.java:137) > at org.junit.runner.JUnitCore.run(JUnitCore.java:115) > at > org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.invokeViaJUnit(JUnitProbeInvoker.java:124) > at > org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.findAndInvoke(JUnitProbeInvoker.java:97) > at > org.ops4j.pax.exam.invoker.junit.internal.JUnitProbeInvoker.call(JUnitProbeInvoker.java:73) > at > app//org.ops4j.pax.exam.nat.internal.NativeTestContainer.call(NativeTestContainer.java:112) > at > app//org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactor.invoke(AllConfinedStagedReactor.java:84) > at > app//org.ops4j.pax.exam.junit.impl.ProbeRunner$2.evaluate(ProbeRunner.java:267) > at > app//org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) > at app//org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) > at > app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) > at > app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) > at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) > at > app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) > at > app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) > at > app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) > at > app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) > at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413) > at > app//org.ops4j.pax.exam.junit.impl.ProbeRunner.run(ProbeRunner.java:98) > at app//org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:93) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58) > at > org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38) > at > org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62) > at > org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51) > at > java.base@11.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native > Method) > at > java.base@11.0.2/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > java.base@11.0.2/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.base@11.0.2/java.lang.reflect.Method.invoke(Method.java:566) > at > org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) > at > org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) > at > org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) > at > org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) > at com.sun.proxy.$Proxy5.processTestClass(Unknown Source) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker$2.run(TestWorker.java:176) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) > at > org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) > at > org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) > at > org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:133) > at > org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:71) > at > app//worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) > at > app//worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)