Skip to content

FELIX-6872 dependencymanager jdk25 - #580

Open
paulrutter wants to merge 8 commits into
apache:feature/FELIX-6759-Java-25-LTSfrom
paulrutter:FELIX-6872-dependencymanager-jdk25
Open

paulrutter wants to merge 8 commits into
apache:feature/FELIX-6759-Java-25-LTSfrom
paulrutter:FELIX-6872-dependencymanager-jdk25

Conversation

@paulrutter

Copy link
Copy Markdown
Contributor

Jdk 25 support dependency manager + move to maven

https://issues.apache.org/jira/browse/FELIX-6872

@paulrutter
paulrutter force-pushed the FELIX-6872-dependencymanager-jdk25 branch from 52681dd to 8f5d5e2 Compare October 26, 2026 08:04
@paulrutter
paulrutter force-pushed the feature/FELIX-6759-Java-25-LTS branch from 7a02bfa to 01aab02 Compare October 26, 2026 08:42
AccessController and PrivilegedAction are deprecated for removal along
with the SecurityManager. Drop the doPrivileged wrappers in the core
ServiceTracker and in the runtime InvocationUtil.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
…le 9.8.2

Raise the compile target and the test runtime execution environment from
Java 8 to Java 11 and the bundles to new major versions:
dependencymanager 5.0.0, annotation 6.0.0, runtime 5.0.0, shell 5.0.0
and lambda 2.0.0.

Move the build to bnd 7.4.0 and Gradle 9.8.2, so that it runs on current JDKs,
and adapt the Gradle scripts: locate the bnd workspace from the root project
directory, run Apache Rat (0.16.1) through the Gradle ant builder, and do not
fail the plain test task of the bnd integration test projects, whose tests run
in testOSGi. Stop tracking the Gradle build output.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
Build and test the Dependency Manager against the framework 8.0.0, Gogo 1.2.0
and Config Admin 1.10.0 snapshots of this repository. Update the OSGi core,
compendium and annotation artifacts, JUnit 4.13.2, Mockito 5 (with byte-buddy
and objenesis 3.3), Log and Metatype.

Adapt the tests to the newer APIs: implement ServiceReference.adapt and
getProperties and the LoggerFactory methods in the test stubs. Use a unique
configuration pid per integration test, so that the asynchronous deletion of
the configuration of a previous test cannot reach the next one.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
Add the Dependency Manager to the GitHub Actions workflow with its trigger
paths and path filter. It is built with Gradle after the framework, Gogo and
Config Admin snapshots are installed into the local Maven repository, and the
annotation bundle, which is a bnd plugin used by the other projects, is built
first in a separate Gradle invocation.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
…tRestartedTest

Publish the test instance before releasing the test thread, which otherwise
sometimes compared with the previous instance (seen on JDK 17 in CI).

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
…dTest independent of how often Config Admin delivers the configuration

Config Admin sometimes delivers the factory configuration to the factory more
than once, for example when the factory is registered again. The Dependency
Manager then replaces the adapter instance (stop, then a new start), which the
test, which counted the calls, did not expect: it timed out, or its late calls
failed the next test. Follow the adapter instances instead of counting the
calls. Ran 20 times in a row on 2 CPUs without failure, where the old test
failed 2 times out of 12.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
…me configuration in the configuration tests

Config Admin can provide a configuration to a service twice, for example when
the service registers while its configuration is updated. The configuration
tests count the updates they expect, so a repeated delivery of the same
configuration failed them now and then on the CI runners (expected:<2> but
was:<3>). They now ignore a repeated delivery (helper ConfigDeliveries); a lost
configuration still counts.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
…sage about a new factory configuration in the test base

Config Admin logs "Ignoring new configuration pid=..." at error level when a
factory configuration has been created but not updated yet while the factory
registers; it provides the configuration with the update. The test base fails
a test when an error is logged, so this message failed an otherwise passing
runtime integration test now and then on the CI runners. The test bases ignore
this one message, every other logged error still fails the test.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017MGDWAYvWioowRTBkoQPjA
@paulrutter
paulrutter force-pushed the FELIX-6872-dependencymanager-jdk25 branch from 8f5d5e2 to 2ac9c7e Compare October 26, 2026 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants