Skip to content

Modernize Java support, update dependencies, and improve OSGi compatibility #477

@RutujChheda

Description

@RutujChheda

Summary

This issue tracks the modernization of the project's build configuration, dependency updates, and code improvements to ensure compatibility with newer Java versions and OSGi frameworks.

Background

The project currently uses outdated dependencies and doesn't test against the latest Java LTS versions. This limits our ability to leverage modern Java features and may cause compatibility issues for users on newer Java versions.

Proposed Changes

1. Build and CI Improvements

  • Update GitHub Actions workflow to test against Java 21 and 25
  • Add support for origin/* branch patterns in workflow triggers for better CI coverage
  • Verify builds pass on all supported Java versions

2. Dependency Upgrades

  • Upgrade OSGi core to 6.0.0 and OSGi enterprise to 5.0.0 in osgi-over-slf4j/pom.xml
  • Update Apache Felix from 5.6.1 to 7.0.5 in integration/pom.xml
  • Upgrade Javassist to 3.30.2-GA and correct groupId in slf4j-ext/pom.xml
  • Update reload4j to 1.2.26 in parent/pom.xml
  • Update JUnit to 4.13.2 in parent/pom.xml

3. Code Modernization

  • Replace Properties with Hashtable<String, String> in OSGi Activator.java to follow OSGi best practices
  • Review and update any deprecated API usage
  • Clean up formatting and comments where needed

Benefits

  • Future-proofing: Support for Java 21 and 25 ensures the project remains compatible with modern JDK releases
  • Security & Stability: Updated dependencies include bug fixes and security patches
  • Best Practices: Code changes align with OSGi recommendations for better type safety
  • Better Testing: Expanded CI coverage catches compatibility issues earlier

Testing Requirements

  • All existing tests must pass on Java 8, 11, 17, 21, and 25
  • OSGi bundle activation should work correctly with updated dependencies
  • No breaking changes to public APIs

Related

  • Addresses technical debt around outdated dependencies
  • Improves long-term maintainability

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions