How the pieces fit
If you haven’t worked with Apache Camel and Maven before, start here. A connector repository holds your inputs, Maven turns them into build outputs, and the applications-live repository deploys those outputs. The following diagram shows the flow: The following terms describe the pieces:- Apache Camel: The integration framework. Routes describe the steps of each operation. For more information, see Anatomy of a connector.
- Camel K and Quarkus: The runtime that runs your routes on Kubernetes.
- Kamelet: A reusable Camel building block, such as
gc-http-caller. For more information, see Kamelets. - Maven: Builds the project, pulls dependencies, generates the Camel REST DSL from the OpenAPI spec, and packages the container image and Helm chart. When you release the repository, CI pushes both to your installation’s Azure Container Registry.
- BOM: The
grandcentral-bomparent POM. It pins versions of Camel, Quarkus, the SDK, Kamelets, and plugins. For more information, see BOM (bill of materials) and Reference artifacts and rules. - JOLT and XSLT: Transformation templates for JSON and XML payloads. For more information, see Transform and validate data.
Build path
Code standards
Coding standards and best practices to apply across all connectors
Set up the project
Naming conventions, project layout, prerequisites, connector styles, and first-time configuration
Anatomy of a connector
The route skeleton and operation patterns for REST/JSON, SOAP/XML, and event connectors
Kamelets
What a Kamelet is and how to create one for a connector
Call REST endpoints
Use the gc-http-caller kamelet for every outbound REST call
Use Camel EIPs
Common Enterprise Integration Patterns: choice, multicast, splitter, doTry, and more
Transform and validate data
JSON Schema validation, JOLT and XSLT transformations, and helper bean calls
Configure properties
Common application.properties values for Camel, HTTP, CXF, retries, and headers
Configure a custom connector
Helm and SOPS configuration that takes effect at deploy time
Test and validate
Run the connector locally, deploy with kamel:dev, and write SDK-based unit tests
Reference artifacts and rules
Maven artifacts published to JFrog and the rules and anti-patterns to follow
Connector styles
Three connector styles exist — REST/JSON, SOAP/XML, and Event/Generic — and the vendor’s integration type determines which to use. Each style pairs a transformation format (JOLT or XSLT) with the appropriate HTTP kamelet. For the full comparison and the exact kamelet to use for each style, see Connector styles in Set up the project.Technology stack
Build custom connectors with the following stack:- Apache Camel K: integration framework for Kubernetes
- Quarkus: runtime
- Maven: build and dependency management
- Java: primary development language
- GitHub Actions: continuous integration and deployment