JFrog reference artifacts
Backbase publishes every Grand Central artifact to the internal JFrog repository, including the BOM, SDK, kamelets, API specs, and Maven plugins. Use the repository as your single source of truth for available versions when you don’t have GitHub access to the source repositories. Browse the tree: Grand Central artifacts on JFrog.Artifact (Maven groupId:artifactId) | What it provides | Where to use it |
|---|---|---|
com.backbase.gc:grandcentral-bom | Parent POM that pins versions for Camel, Quarkus, Camel-K, the kamel/helm plugins, and the Grand Central linter | <parent> in your connector’s pom.xml |
com.backbase.gc:grandcentral-connectors-sdk | Cross-vendor utilities: GrandCentralUtil, GrandCentralTestSupportUtil, JunitUtil, RemoveNullOrEmptyJsonSerializer, HeaderRemovalPolicy, PredicatesValidatingProcessor, GrandCentralServiceExceptionProcessor, EndpointCaller, exception classes, error constants, holiday parser | Managed by the BOM; used directly in connector code |
com.backbase.gc.generic:grandcentral-platform-kamelets | All platform kamelets, including gc-http-caller, gc-asb-producer-caller, all exception-handler kamelets, pgp-transform, determine-offset-array, and handle-no-records | Managed by the BOM; referenced by name in routes (kamelet:<name>) |
com.backbase.gc.api:grandcentral-{domain}-api | The Grand Central OpenAPI spec for a given domain such as payment-order, deposit, party, batch-payment, fraud-detection, device-administration, or generic | api.artifact-id / api.artifact-version in pom.xml <properties> |
com.backbase.gc:{vendor}-connector-sdk | Vendor-specific SDK for SOAP-style vendors only. Provides the {vendor}-api-caller and {vendor}-properties kamelets and any vendor-common Java utilities | <dependency> in the connector’s pom.xml |
com.backbase.gc:kamel-maven-plugin | Maven plugin that builds Camel-K integrations (mvn kamel:dev, mvn kamel:run) | Inherited from grandcentral-bom |
com.backbase.gc:maven-kamel-helm-plugin | Maven plugin that generates the Helm chart and values for a connector at package time | Inherited from grandcentral-bom |
com.backbase.gc:gc-linter-maven-plugin | Maven plugin that lints JOLT, XSLT, and JSON-validator files at the verify phase | Inherited from grandcentral-bom |
Important rules and anti-patterns
The following table lists the conventions every connector must follow, along with the rationale for each rule. Apply them when you author or review connector code.| Rule | Rationale |
|---|---|
Never use .routeId(...) | Camel-K assigns route IDs; manual IDs cause Kubernetes deployment conflicts |
Never use Spring annotations (@Component, @Autowired, @Value) | The runtime is Quarkus, not Spring Boot |
Use @PropertyInject (Camel), not @Value (Spring) | Quarkus Camel uses Camel’s property injection |
| Don’t annotate the connector class | Quarkus Camel registers RouteBuilder automatically |
Promote all string literals to private static final String constants | Prevents typos in kamelet URIs and route keys |
Use {{?propertyName}} for optional properties | The ? prefix prevents PropertiesException when a property is absent |
| Use exchange properties for side-channel data | HeaderRemovalPolicy strips headers, but exchange properties survive every step |
Set the URL on the gc-http-caller-url exchange property | The kamelet reads the URL from this property, not from a header |
Set query params on the gc-http-caller-queryParams property | The value must be a Map<String, Object> |
Place JOLT, XSLT, and schema files in src/main/resources/ | Camel resolves them from the classpath |
| Pin the BOM version explicitly per connector | Different connectors target different BOM versions; align with your team’s choice rather than copying from a sibling connector |
| Pin the API spec version explicitly per connector | Set <api.artifact-version> to the version your team has chosen for this connector; never leave it at a stale default |
After converting XML to JSON, call correctNumericAndBooleanValuesInJsonFromProperties | Fixes string-to-number/boolean coercion from Jackson’s XML deserializer |
Use doTry/doCatch for optional data extraction | Prevents route failure when an optional JSON or XML field is absent |
Use GrandCentralTestSupportUtil and JunitUtil for all JUnit tests | Both are from grandcentral-connectors-sdk (managed by the BOM); never write custom base test classes |