[ 
https://issues.apache.org/jira/browse/UNOMI-876?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jonathan Sinovassin-Naïk reassigned UNOMI-876:
----------------------------------------------

    Assignee: 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: Jonathan Sinovassin-Naïk
>            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)

Reply via email to