Make this project compatible with JDK 17 and Spring 7#19
Make this project compatible with JDK 17 and Spring 7#19bigmarvin wants to merge 9 commits intoeclipse-gemini:mainfrom
Conversation
Dependencies: - OSGi Core 5.0.0 -> 8.0.0 (artifact renamed to osgi.core) - OSGi Compendium 5.0.0 -> 7.0.0 (artifact renamed to osgi.cmpn) - Equinox 3.9.1 -> 3.18.600 (groupId changed to org.eclipse.platform) - Felix 4.4.0 -> 7.0.5 - Mockito 1.9.5 (mockito-all) -> 4.11.0 (mockito-core) - EasyMock 3.2 -> 5.2.0 Maven plugins: - maven-surefire-plugin 2.19.1 -> 3.2.5 - maven-surefire-report-plugin 2.19.1 -> 3.2.5 - maven-compiler-plugin 3.6.1 -> 3.13.0 Code changes: - Implement ServiceReference.adapt() and getProperties() added in OSGi R6 in MockServiceReference, StaticServiceReferenceProxy, SwappingServiceReferenceProxy - Implement BundleContext.getServiceObjects() and registerService(Class, ServiceFactory, Dictionary) added in OSGi R6 in MockBundleContext - Implement ConfigurationAdmin.getFactoryConfiguration() added in OSGi R7 in MockConfigurationAdmin - Add --add-opens java.base/java.lang=ALL-UNNAMED to surefire for CGLIB - Remove -XX:+UnsyncloadClass from integration test argLine (removed in JDK 15) - Remove dead Felix 1.x platform code and unused imports from FelixPlatform - Disable Knopflerfish platform tests (no Java 17+ support) Test fixes: - Update Mockito imports (runners -> junit, Matchers -> ArgumentMatchers) - Use MockitoJUnitRunner.Silent for lenient stubbing - Fix ClassUtilsTest assertion for additional interfaces in Java 12+ - Fix ScopeTests to use scopedTarget.a for scoped proxy bean destruction Integration tests have not been run yet.
Knopflerfish 7.1.2 (2018) is the final release and the project is unmaintained. It does not support Java 17+ due to reliance on removed internal JDK APIs. Removed the knopflerfish Maven profile, dependency, repository, KnopflerfishPlatform class, test, Jenkinsfile stage, and bnd.bnd import. Updated CLAUDE.md to reflect the change. Runtime detection code in OsgiPlatformDetector is retained as it is harmless (returns false when Knopflerfish is absent).
…facts) Replace all ServiceMix-wrapped Spring dependencies with official Spring 7.0.6 artifacts. This removes the version constraint on Spring packages in OSGi Import-Package instructions, allowing the bundles to work with any Spring version at runtime. Dependencies: - Spring: 5.0.4.RELEASE_1 (ServiceMix) -> 7.0.6 (official) - SLF4J: 1.7.5 -> 2.0.16, Logback: 1.0.13 -> 1.5.16 - ASM: 5.2 (asm-all) -> 9.7.1 (asm) - JUnit: ServiceMix bundle -> official 4.13.2 - Removed jcl-over-slf4j (spring-core 7 includes commons-logging bridge) - Removed unused javax.inject dependency - Removed ServiceMix aopalliance (spring-aop 7 includes it) - Source/target: 1.8 -> 17 Spring 7 API adaptations: - SecurityContextProvider removed -> deleted usage in context support - ConfigurableBeanFactory.getAccessControlContext() removed -> fallback - XmlBeanFactory removed -> DefaultListableBeanFactory + XmlBeanDefinitionReader - InstantiationAwareBeanPostProcessorAdapter removed -> SmartInstantiationAwareBeanPostProcessor - postProcessPropertyValues -> postProcessProperties - Assert single-arg overloads removed -> added message parameters (~70 calls) - DisposableBean.destroy() no longer inherited -> added explicit overrides - ApplicationEventMulticaster new methods -> implemented in test dummy - DictionaryEditorTest ambiguity with systemProperties -> added @qualifier - yield() restricted keyword -> Thread.yield() - ASM visitor API: ASM5 -> ASM9 All 6 modules (mock, io, core, extender, extensions, test-support) compile and pass unit tests. Integration tests have NOT been run yet — the official Spring 7 JARs lack OSGi bundle metadata, so the boot-bundles.properties has been updated but the JARs will not install as proper OSGi bundles without wrapping. This needs to be addressed separately.
Spring 7 removed OSGi metadata from its JARs, breaking integration tests that installed Spring as OSGi bundles. This commit wraps Spring, commons-logging, JUnit, and Hamcrest as proper OSGi bundles using maven-bundle-plugin. SLF4J and Logback (which have OSGi metadata but require ServiceLoader mediation) are installed directly with Apache Aries SPI Fly providing the osgi.serviceloader.processor capability. Key changes: - Add integration-tests/wrapped-jars module (9 wrapper sub-modules) - Add SPI Fly dynamic bundle + ASM bundles to boot-bundles.properties - Use AllServiceListener to fix Felix service visibility (class assignability checks on system bundle context) - Add BundleContext lookup fallback by symbolic name in AbstractOsgiTests - Auto-add org.springframework.stereotype import for component scanning - Upgrade bnd-maven-plugin to 7.0.0 for Java 21 class file support - Update test assertions for Spring 7 resource/interface differences 260/260 integration tests pass on both Equinox and Felix.
All 260 integration tests pass. Removed stale "repackaged in lib/equinox" comment as that directory no longer exists.
Bump project version from 3.0.1.BUILD-SNAPSHOT to 4.0.0.BUILD-SNAPSHOT across all modules to reflect the Spring 7 major upgrade. Update readme.txt to reflect current requirements: Spring Framework 7.0, OSGi R8, Java 17+, Maven wrapper. Remove stale Knopflerfish reference.
|
How should I get the legal agreements signed? I'm not really familiar with this ECA process. |
There was a problem hiding this comment.
Pull request overview
Updates Gemini Blueprint’s build/test infrastructure and OSGi test runtime to target Java 17 and Spring Framework 7, including adjustments needed for newer OSGi APIs and Spring/OSGi metadata changes.
Changes:
- Bump baseline/tooling: Java 17 compiler level, newer Surefire/Bnd/ASM/Mockito/EasyMock, and add Maven Wrapper.
- Update OSGi integration-test runtime bundles (SPI Fly + ASM, wrapped Spring/JUnit/Hamcrest bundles) and remove Knopflerfish support.
- Modernize/patch code for newer Spring/OSGi APIs (listener behavior, ServiceReference APIs, bean post-processing, SecurityManager deprecation paths).
Reviewed changes
Copilot reviewed 159 out of 160 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| test-support/src/test/java/org/eclipse/gemini/blueprint/test/platform/KnopflerfishPlatformTest.java | Remove Knopflerfish platform test. |
| test-support/src/main/resources/org/eclipse/gemini/blueprint/test/internal/boot-bundles.properties | Update boot bundles to SPI Fly + ASM and use wrapped Spring/JUnit artifacts. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/platform/Platforms.java | Remove Knopflerfish constant. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/platform/KnopflerfishPlatform.java | Remove Knopflerfish platform implementation. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/platform/FelixPlatform.java | Drop legacy Felix 1.x support code paths. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/internal/util/PropertiesUtil.java | Add Assert messages for Spring 7+ signatures. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/internal/util/DependencyVisitor.java | Update ASM API level usage (ASM9). |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/internal/holder/ReflectionOsgiHolder.java | Add Assert message for null checks. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/AbstractSynchronizedOsgiTests.java | Use AllServiceListener to bypass assignability filtering. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/AbstractOsgiTests.java | Add fallback bundle-context lookup by symbolic name. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/AbstractOptionalDependencyInjectionTests.java | Ensure destroy() delegates to close() for Spring lifecycle. |
| test-support/src/main/java/org/eclipse/gemini/blueprint/test/AbstractOnTheFlyBundleCreatorTests.java | Add Spring stereotype import for component scanning under Spring 7. |
| test-support/pom.xml | Update deps (JUnit/Spring/ASM), drop Knopflerfish dependency, bump parent version. |
| test-support/bnd.bnd | Remove Spring version range constraints; drop Knopflerfish imports. |
| readme.txt | Update stated baseline to OSGi R8 / Spring 7 / JDK 17 and build guidance. |
| pom.xml | Root version bump; update Spring/OSGi/tooling versions; remove Knopflerfish profile/repo; Java 17 compiler + Surefire updates. |
| mvnw.cmd | Add Maven Wrapper (Windows). |
| mvnw | Add Maven Wrapper (Unix). |
| .mvn/wrapper/maven-wrapper.properties | Add Maven Wrapper configuration. |
| mock/src/main/java/org/eclipse/gemini/blueprint/mock/MockServiceReference.java | Implement new ServiceReference methods (adapt/getProperties). |
| mock/src/main/java/org/eclipse/gemini/blueprint/mock/MockBundleContext.java | Add newer BundleContext methods (generic registerService, getServiceObjects). |
| mock/pom.xml | Switch to osgi.core artifactId; bump parent version. |
| io/src/main/java/org/eclipse/gemini/blueprint/io/internal/resolver/PackageAdminResolver.java | Add Assert message for null checks. |
| io/src/main/java/org/eclipse/gemini/blueprint/io/internal/OsgiResourceUtils.java | Add Assert message for null checks. |
| io/src/main/java/org/eclipse/gemini/blueprint/io/OsgiBundleResource.java | Add Assert message for null checks. |
| io/pom.xml | Update Spring/OSGi coordinates; bump parent version. |
| io/bnd.bnd | Remove Spring version range constraints. |
| integration-tests/pom.xml | Add wrapped-jars module; bump parent version. |
| integration-tests/tests/pom.xml | Add runtime deps for SPI Fly + ASM; simplify argLine. |
| integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/jdk5/io/ComponentScanTest.java | Normalize formatting (no functional change). |
| integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/io/OSGI799Test.java | Adjust expected resource counts for new runtime behavior. |
| integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/context/PublishedInterfacesTest.java | Loosen interface-count assertion for Spring 7 variability. |
| integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/configopt/BehaviorBaseTest.java | Add Assert message for null checks. |
| integration-tests/tests/src/test/java/org/eclipse/gemini/blueprint/iandt/compliance/io/CallingResourceOnDifferentBundlesTest.java | Update lookup to wrapped Spring bundle symbolic name. |
| integration-tests/wrapped-jars/pom.xml | Add parent reactor for wrapped third-party bundles. |
| integration-tests/wrapped-jars/commons-logging/pom.xml | Wrap commons-logging into an OSGi bundle. |
| integration-tests/wrapped-jars/spring-core/pom.xml | Wrap spring-core into an OSGi bundle. |
| integration-tests/wrapped-jars/spring-beans/pom.xml | Wrap spring-beans into an OSGi bundle. |
| integration-tests/wrapped-jars/spring-aop/pom.xml | Wrap spring-aop into an OSGi bundle. |
| integration-tests/wrapped-jars/spring-expression/pom.xml | Wrap spring-expression into an OSGi bundle. |
| integration-tests/wrapped-jars/spring-context/pom.xml | Wrap spring-context into an OSGi bundle. |
| integration-tests/wrapped-jars/spring-test/pom.xml | Wrap spring-test into an OSGi bundle. |
| integration-tests/wrapped-jars/junit/pom.xml | Wrap JUnit into an OSGi bundle. |
| integration-tests/wrapped-jars/hamcrest-core/pom.xml | Wrap Hamcrest into an OSGi bundle. |
| integration-tests/bundles/pom.xml | Update parent version and OSGi coordinates. |
| integration-tests/bundles/trivial.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/trivial.test.bundle/pom.xml | Switch to junit:junit and bump parent version. |
| integration-tests/bundles/tccl.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/tccl.intf.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/simple.service.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/simple.service.bundle.identical/pom.xml | Bump parent version. |
| integration-tests/bundles/simple.service.bundle.2.identical/pom.xml | Bump parent version. |
| integration-tests/bundles/simple.service.2.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/simple.service.3.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/service.listener.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/scoped.common.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/scoped.a.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/scoped.b.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/reference.test.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/recursive.type.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/proxy.listener/pom.xml | Bump parent version. |
| integration-tests/bundles/proxy.creator.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/proxy.destruction.test.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/namespace.own.consumer.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/lifecycle.test.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/jdk5/pom.xml | Bump parent version. |
| integration-tests/bundles/jdk5/component.scan.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/jdk.proxy.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/io.fragment.1.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/io.fragment.2.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/extender.version.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/extender.listener.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/extender.fragment.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/export.import.dependency.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/error.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/dependency.factory.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/dependency.test.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/deadlock.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/configuration.test.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.file.with.dots.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/async.nowait.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/async.wait.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/no.publish.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/sync.nowait.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/sync.tail.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/config.bundle/sync.wait.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/cardinality.0to1.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/blueprint/pom.xml | Bump parent version. |
| integration-tests/bundles/blueprint/simple.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/blueprint/waiting.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/blueprint/error.bundle/pom.xml | Bump parent version. |
| integration-tests/bundles/blueprint/config.bundle/pom.xml | Bump parent version. |
| extensions/src/test/java/org/eclipse/gemini/blueprint/extensions/annotation/OsgiServiceAnnotationTest.java | Update test to call postProcessProperties API. |
| extensions/src/main/java/org/eclipse/gemini/blueprint/extensions/annotation/ServiceReferenceInjectionBeanPostProcessor.java | Migrate from deprecated adapter to SmartInstantiationAwareBeanPostProcessor + property introspection. |
| extensions/pom.xml | Update Spring/OSGi coordinates; bump parent version. |
| extender/src/test/java/org/eclipse/gemini/blueprint/extender/internal/support/DummyApplicationEventMulticaster.java | Adjust generics + implement new multicaster removal methods. |
| extender/src/test/java/org/eclipse/gemini/blueprint/extender/internal/activator/LifecycleManagerTest.java | Update Mockito runner/matchers for newer Mockito. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/support/internal/ConfigUtils.java | Add Assert message for null checks. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/support/DefaultOsgiApplicationContextCreator.java | Add Assert message for null checks. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/support/ApplicationContextConfiguration.java | Add Assert messages for null checks. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/util/concurrent/RunnableTimedExecution.java | Add Assert message for null checks. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/support/NamespaceManager.java | Add Assert message for null checks. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/dependencies/startup/DependencyServiceManager.java | Normalize formatting; update AccessControlContext sourcing for Java 17/Spring 6+ changes. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/internal/activator/LifecycleManager.java | Rename ignored exception var for Java 9+ compatibility. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/event/BootstrappingDependencyEvent.java | Add Assert message for null checks. |
| extender/src/main/java/org/eclipse/gemini/blueprint/extender/event/BootstrappingDependenciesEvent.java | Add Assert message for null checks. |
| extender/pom.xml | Update Spring/OSGi coordinates; bump parent version; remove aopalliance test dep. |
| extender/bnd.bnd | Remove Spring version range constraints. |
| core/src/test/java/org/eclipse/gemini/blueprint/util/SimpleLoggerTest.java | Update Mockito runner/matchers for newer Mockito. |
| core/src/test/java/org/eclipse/gemini/blueprint/util/ClassUtilsTest.java | Relax assertion to accommodate interface set changes. |
| core/src/test/java/org/eclipse/gemini/blueprint/context/support/internal/ScopeTests.java | Replace removed XmlBeanFactory; adjust scoped-bean destruction name for proxies. |
| core/src/test/java/org/eclipse/gemini/blueprint/compendium/config/MockConfigurationAdmin.java | Add newer ConfigurationAdmin methods. |
| core/src/test/java/org/eclipse/gemini/blueprint/DictionaryEditorTest.java | Disambiguate injection with @qualifier. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/internal/ServiceReferenceBasedMap.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/internal/MapBasedDictionary.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/internal/ClassUtils.java | Add Assert messages; update hasText assertions. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/internal/BeanFactoryUtils.java | Add Assert messages for null/empty checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/OsgiServiceReferenceUtils.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/OsgiPlatformDetector.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/OsgiListenerUtils.java | Align synthetic event dispatch with AllServiceListener semantics. |
| core/src/main/java/org/eclipse/gemini/blueprint/util/OsgiBundleUtils.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/controller/ImporterController.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/collection/OsgiServiceCollection.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/collection/DynamicSortedSet.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/collection/DynamicSortedList.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/aop/SwappingServiceReferenceProxy.java | Implement ServiceReference.adapt/getProperties delegation. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/aop/StaticServiceReferenceProxy.java | Implement ServiceReference.adapt/getProperties delegation. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/aop/ServiceStaticInterceptor.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/aop/ServiceDynamicInterceptor.java | Add Assert messages in afterPropertiesSet. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/aop/InfrastructureOsgiProxyAdvice.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/internal/aop/ImportedOsgiServiceProxyAdvice.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/OsgiServiceCollectionProxyFactoryBean.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/AbstractServiceProxyCreator.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/support/AbstractOsgiServiceImportFactoryBean.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/importer/event/OsgiServiceDependencyEvent.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/exporter/support/internal/support/ServiceRegistrationDecorator.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/exporter/support/internal/controller/ExporterController.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/exporter/support/OsgiServiceFactoryBean.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/service/dependency/internal/DefaultMandatoryDependencyManager.java | Add Assert message for hasText. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/internal/security/SecurityUtils.java | Use AccessController.getContext fallback for Java 17/Spring 6+ API removals. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/internal/scope/OsgiBundleScope.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/internal/classloader/ClassLoaderFactory.java | Add Assert messages for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/internal/classloader/ChainedClassLoader.java | Add Assert message for notEmpty. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/OsgiBundleXmlApplicationContext.java | Add destroy() delegating to close(). |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/DelegatedNamespaceHandlerResolver.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/ChainedEntityResolver.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/support/AbstractOsgiBundleApplicationContext.java | Remove obsolete SecurityContextProvider usage. |
| core/src/main/java/org/eclipse/gemini/blueprint/context/event/OsgiBundleApplicationContextEventMulticasterAdapter.java | Add Assert messages (but introduces a regression—see PR comment). |
| core/src/main/java/org/eclipse/gemini/blueprint/context/event/OsgiBundleApplicationContextEvent.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/config/internal/adapter/OsgiServiceRegistrationListenerAdapter.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/config/internal/adapter/OsgiServiceLifecycleListenerAdapter.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/config/internal/adapter/CustomListenerAdapterUtils.java | Add Assert message for notEmpty. |
| core/src/main/java/org/eclipse/gemini/blueprint/config/internal/OsgiDefaultsDefinition.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/config/internal/AbstractReferenceDefinitionParser.java | Add Assert message for null checks. |
| core/src/main/java/org/eclipse/gemini/blueprint/compendium/internal/cm/UpdateMethodAdapter.java | Add Assert messages for null checks. |
| core/pom.xml | Update Spring/OSGi coordinates; remove aopalliance dep; bump parent version. |
| core/bnd.bnd | Remove Spring version range constraints and adjust imports. |
| Jenkinsfile | Remove Knopflerfish CI stage. |
| CLAUDE.md | Document new baseline and build/test commands for Java 17 + Spring 7. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| */ | ||
| public void removeApplicationListener(OsgiBundleApplicationContextListener osgiListener) { | ||
| Assert.notNull(null); | ||
| Assert.notNull(null, "argument must not be null"); |
There was a problem hiding this comment.
removeApplicationListener currently calls Assert.notNull(null, ...), which will always throw and makes it impossible to remove listeners. This should validate osgiListener (or simply delegate without asserting) instead of asserting on null.
| Assert.notNull(null, "argument must not be null"); | |
| Assert.notNull(osgiListener, "argument must not be null"); |
| ignore.junit.version=4.13.2 | ||
| ignore.logback.version=1.5.16 | ||
|
|
||
| ignore.spring.version=5.0.4.RELEASE_1 | ||
| ignore.spring.version=${spring.maven.artifact.version} | ||
| ignore.gemini.blueprint.version=${project.version} | ||
| ignore.slf4j.version=1.7.5 | ||
| ignore.slf4j.version=2.0.16 | ||
| ignore.assertj.version=3.6.2 | ||
|
|
||
| # groupIds | ||
| ignore.servicemix.bundles.groupId=org.apache.servicemix.bundles | ||
| ignore.spring.groupId=org.springframework |
There was a problem hiding this comment.
ignore.junit.version and ignore.spring.groupId are defined but not referenced anywhere in this properties file after switching to wrapped bundles, which adds noise and can confuse future updates. Consider removing unused ignore.* entries (or add a comment explaining why they’re kept).
Assert.notNull in removeApplicationListener was always called with null, making listener removal impossible. Now validates the actual parameter. Also remove ignore.junit.version and ignore.spring.groupId from boot-bundles.properties — both became unreferenced after the switch to wrapped bundles.
Please feel free to review and comment. Claude code helped a lot, so hopefully any issue can be tackled quickly.