Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade DataBridge to V2 #326

Open
mdanish98 opened this issue Oct 24, 2024 · 0 comments
Open

Upgrade DataBridge to V2 #326

mdanish98 opened this issue Oct 24, 2024 · 0 comments

Comments

@mdanish98
Copy link
Contributor

mdanish98 commented Oct 24, 2024

DataBridge needs an update to V2, it also includes upgrading it to Apache Camel 4.x

Rules

  • Camel should be upgraded to Spring based camel 4.x
  • Design should be similar to BaSyx V2
  • Create a Document side-by-side on BaSyx Wiki.

Entry Points

  1. Upgrading Camel 3.21 to 4.x
  • Camel 4 supports Java 17. Support for Java 11 is dropped.
  • All the camel-test modules that were JUnit 4.x based has been removed. All test modules now use JUnit 5.
  • There are some components removed, I checked briefly and none of them are currently being used in this.
  • The InOnly and InOut EIPs has been removed. Instead, use SetExchangePattern or To where you can specify exchange pattern to use.
  • The polled endpoint URI is now stored as property on the Exchange (with key CamelToEndpoint) like all other EIPs. Before the URI was stored as a message header. (used in the HTTP polling)
  • Health checks are now by default only readiness checks out of the box.
  • Some components has been upgraded/changed such as:
    • camel-http - upgraded to use Apache HttpComponents v5
    • camel-http-common - The API in org.apache.camel.http.common.HttpBinding has changed slightly to be more reusable.
    • camel-main

https://camel.apache.org/manual/camel-4-migration-guide.html

  1. Changing the existing configuration to be compatible with the AID/AIMC
  • Update the existing configuration to make it compatible with the AID/AIMC.
  1. Change Design Similar to basyx-java-server-sdk
  • If the above upgradation is successful then most of the requirements are already met.
  • All the integration modules such as camel-aas, camel-http, etc. can stay like this but dependencies needs to be upgraded.
  • If needed, all these integration modules can be moved to databridge.integration.modules module.
  • databridge.core can be used as a common module, similar to basyx.common, and all the commonly used code/modules can be kept here.
  • databridge.examples can remain as it is except the dependency upgrade and conformant to Spring.
  • databridge.component can be modified to behave similar to component of the basyx-java-server-sdk, such as aasrepository.component. All the integration and regression tests should be defined here.
  • Docker image build process should be same as basyx-java-server-sdk
  • The main parent pom should be designed similar to basyx-java-server-sdk.

https://github.com/eclipse-basyx/basyx-java-server-sdk

Acceptance Criteria

  • Camel is upgraded to 4.x
  • Design is similar to BaSyx V2.

Risks and Assumptions

  • Dependency related issues when upgrading the project to Java 17 (because Apache Camel 4.x supports 17)
  • Some components do not work as it is or require efforts.

References & Notes

Dependencies and Blockers

@mdanish98 mdanish98 self-assigned this Oct 24, 2024
@mdanish98 mdanish98 converted this from a draft issue Oct 24, 2024
@aaronzi aaronzi moved this from DataBridge to Sprint Plan in BaSyx Backlog Feb 22, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Sprint Plan
Development

No branches or pull requests

1 participant