[ https://issues.apache.org/jira/browse/UNOMI-876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Francois Gerthoffert reassigned UNOMI-876: ------------------------------------------ Assignee: Jerome Blanchard (was: Jonathan Sinovassin-Naïk) > Ugrade to the latest stable version of Karaf > -------------------------------------------- > > Key: UNOMI-876 > URL: https://issues.apache.org/jira/browse/UNOMI-876 > Project: Apache Unomi > Issue Type: Sub-task > Reporter: Serge Huber > Assignee: Jerome Blanchard > Priority: Major > > h1. Upgrade to Karaf 4.4.7 and Related Dependencies > h2. Overview > Upgrade Apache Karaf to version 4.4.7 and update related dependencies to > ensure compatibility. This upgrade brings significant changes including Java > 17 requirement and major version updates to key components. > h2. Current Dependencies > Apache Karaf: Current version (based on codebase) > Apache Camel: 2.23.1 > Apache CXF: Current version > Pax Web: 3.1.0 > Aries Blueprint: Current version > Jackson: Various versions > OSGi Core: 6.0.0 > Servlet API: 3.0.1 > h2. Breaking Changes and Required Updates > h3. 1. Java Version Requirement > Current: Java 11 > Required: Java 17 > Impact: All code must be compatible with Java 17 > Tasks: > Update build configuration to require Java 17 > Review and update any Java 11-specific code > Update CI/CD pipelines to use Java 17 > h3. 2. Apache Camel Upgrade > Current: 2.23.1 > Required: 4.9.0 (comes with Karaf 4.4.7) > Breaking Changes: > Package structure changes > API changes in core components > Removal of deprecated features > * Tasks: > Update Camel dependencies in > {code:java} > unomi/extensions/router/pom.xml{code} > Review and update Camel route configurations > Test all Camel integrations > Remove OGNL usage as it's not compatible with Java 17 > h3. 3. Apache CXF > Impact: Major version upgrade > Tasks: > Update CXF dependencies in all REST modules > Review and update JAX-RS annotations > Test all REST endpoints > Update CXF features in Karaf configuration > h3. 4. Pax Web > Current: 3.1.0 > Required: Update to latest compatible version > Tasks: > Update Pax Web dependencies > Review and update web container configurations > Test web applications and servlets > h3. 5. Aries Blueprint > Impact: Version upgrade required > Tasks: > Update Blueprint dependencies > Review and update Blueprint XML configurations > Test Blueprint container functionality > h3. 6. Jackson Dependencies > Current: Multiple versions in use > Required: Update to latest compatible versions > Tasks: > Standardize Jackson versions across modules > Update Jackson annotations and configurations > Test JSON serialization/deserialization > h3. 7. OSGi and Servlet API > Impact: Version updates required > Tasks: > Update OSGi dependencies > Update Servlet API dependencies > Review and update bundle manifests > h2. Code Changes Required > h3. 1. Router Extension > {code:xml} > <!-- Update in unomi/extensions/router/pom.xml --> > <properties> > <camel.version>4.9.0</camel.version> > <!-- Update other versions --> > </properties> > {code} > h3. 2. REST Modules > Update CXF dependencies in all REST modules > Review and update JAX-RS annotations > Test all REST endpoints > h3. 3. Blueprint Configurations > Review and update Blueprint XML files in: > {code:java} > unomi/metrics/src/main/resources/OSGI-INF/blueprint/{code} > {code:java} > unomi/wab/src/main/resources/OSGI-INF/blueprint/{code} > {code:java} > unomi/services/src/main/resources/OSGI-INF/blueprint/{code} > h3. 4. Karaf Features > Update feature definitions in: > {code:java} > unomi/kar/src/main/feature/feature.xml{code} > {code:java} > unomi/extensions/router/router-karaf-feature/src/main/feature/feature.xml{code} > h2. Testing Requirements > h3. 1. Unit Tests > Update test dependencies > Fix any broken tests > Add new tests for Java 17 compatibility > h3. 2. Integration Tests > Update Pax Exam configuration > Test all OSGi bundles > Test all REST endpoints > Test Camel routes > Test Blueprint configurations > h3. 3. Performance Testing > Benchmark critical paths > Memory usage analysis > Startup time analysis > h2. Migration Steps > Create a new branch for the upgrade > Update parent POM with new versions > Update all module POMs > Update code for Java 17 compatibility > Update configurations > Run and fix tests > Perform integration testing > Document changes > Create upgrade guide > h2. Risks and Mitigations > h3. 1. Risk: Breaking changes in Camel 4.x > Mitigation: Thorough testing of all Camel routes > Mitigation: Create migration guide for Camel changes > h3. 2. Risk: Java 17 compatibility issues > Mitigation: Early testing with Java 17 > Mitigation: Code review focusing on Java 17 compatibility > h3. 3. Risk: OSGi bundle compatibility > Mitigation: Test all bundles individually > Mitigation: Review bundle manifests > h3. 4. Risk: Performance regression > Mitigation: Performance testing before/after > Mitigation: Monitoring during deployment > h2. Dependencies > Karaf 4.4.7 > Camel 4.9.0 > Latest compatible versions of: > Apache CXF > Pax Web > Aries Blueprint > Jackson > OSGi Core > Servlet API > h2. Notes > Backup all configurations before upgrade > Document all breaking changes > Update CI/CD pipelines for Java 17 -- This message was sent by Atlassian Jira (v8.20.10#820010)