[ 
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)

Reply via email to