[ https://issues.apache.org/jira/browse/UNOMI-876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Serge Huber updated UNOMI-876: ------------------------------ Description: 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 > 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 > 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)