Skip to main content
After provisioning your repository from grandcentral-connector-template (see Request repository creation), the provisioning workflow has already:
  • Set the pom.xml artifact ID equal to the repository name
  • Set the initial project version to 0.1.0-SNAPSHOT
  • Cleaned CHANGELOG.md
  • Run mvn clean verify to confirm the repository is buildable
Before you scaffold operations, work through the following conventions, layout, and configuration steps.

Naming conventions

Use these names consistently across the project. Camel-K relies on several of them at runtime.
  • Repository and artifact: gc-{vendor}-{domain}-connector. The repository name and the Maven artifactId are identical.
  • Inbound connectors: for vendor-initiated callbacks or events into Grand Central, append the -inbound-connector suffix: gc-{vendor}-{domain}-inbound-connector.
  • Connector class: {Vendor}{Domain}Connector extending org.apache.camel.builder.RouteBuilder. The Java filename must match the class name exactly.
  • Java package: com.backbase.gc.connector.
  • Route IDs:
    • Never call .routeId(...). Camel-K assigns IDs automatically; manual IDs cause Kubernetes deployment conflicts.
    • Use direct://operationId with a double slash for routes that map 1:1 to an OpenAPI operationId.
    • Use direct:internalRouteName with a single slash for internal sub-routes.
  • Resource files in src/main/resources/:
    • {op}-{entity}-schema-validation.json: Draft-07 JSON Schema
    • {op}-{entity}-request-transformation.json: JOLT request spec
    • {op}-{entity}-response-transformation.json: JOLT response spec
    • {op}-{entity}-request-transformation.xslt: XSLT request stylesheet for SOAP
    • {op}-{entity}-response-transformation.xslt: XSLT response stylesheet for SOAP
  • Test classes in src/test/java/com/backbase/gc/connector/:
    • {Vendor}{Domain}ConnectorTest.java: route integration test
    • {Op}{Entity}TransformationTest.java: JOLT/XSLT unit test
    • {Op}{Entity}SchemaValidationTest.java: JSON Schema unit test

Project layout

pom.xml
src/
├── main/
│   ├── java/com/backbase/gc/connector/
│   │   └── {Vendor}{Domain}Connector.java
│   └── resources/
│       ├── application.properties
│       ├── {op}-{entity}-schema-validation.json
│       ├── {op}-{entity}-request-transformation.json
│       └── {op}-{entity}-response-transformation.json
└── test/
    ├── java/com/backbase/gc/connector/
    │   ├── {Vendor}{Domain}ConnectorTest.java
    │   ├── {Op}{Entity}TransformationTest.java
    │   └── {Op}{Entity}SchemaValidationTest.java
    └── resources/
        ├── mock-{entity}-{scenario}-response.json
        └── expected-{op}-{entity}-response.json

Connector styles

Three connector styles exist. The vendor’s integration type determines which to use.
StyleWhen to useTransformationHTTP kamelet
REST/JSONVendor exposes a REST API with JSONJOLT (.json)gc-http-caller
SOAP/XMLVendor exposes a SOAP/WSDL API with XMLXSLT (.xslt){vendor}-api-caller (from vendor SDK if available, otherwise create a new one)
Event / GenericPull from a third-party REST API and push to ASB (or polling)JOLT (.json)gc-http-caller (GET to source, POST to ASB)

First-time configuration checklist

StepWhat to doWhere
1Set api.artifact-id to the Grand Central OpenAPI spec the connector implementspom.xml <properties>
2Set api.artifact-version to the spec version chosen earlierpom.xml <properties>
3Align the connector project version’s MAJOR.MINOR with the spec MAJOR.MINORpom.xml <version>
4Set the grandcentral-bom parent version chosen earlierpom.xml <parent>
5Add the vendor SDK dependency for SOAP styles, or none for pure RESTpom.xml <dependencies>
6Configure your local ~/.m2/settings.xml to authenticate against the JFrog repositoryLocal Maven settings (Optional if done already)
Pin the OpenAPI spec from pom.xml:
<properties>
    <api.artifact-id>grandcentral-{domain}-api</api.artifact-id>
    <api.artifact-version>2.0.0</api.artifact-version>
</properties>
The camel-restdsl-openapi-plugin, inherited from grandcentral-bom, reads that spec at build time, generates the Camel REST DSL, and wires it to your direct://... routes.

Next step

With the project scaffolded and pinned, move on to the route layout. See Anatomy of a connector.