BEBuzen ESB Docs
Integration Surface

Connectors and Components

Buzen ESB ships with connectors for HTTP, JMS, files, databases, and SOAP. Connectors are discovered via ServiceLoader and contribute Camel components, metadata, and health indicators into the runtime.

1. Built-in connectors

Connector IDNameTypeCapabilities
httpHTTP/RESTHTTPINBOUND, OUTBOUND, REQUEST_REPLY
jmsJMS MessagingMESSAGINGINBOUND, OUTBOUND, REQUEST_REPLY, TRANSACTIONAL
fileFile/FTP/SFTPFILEINBOUND, OUTBOUND, POLLING, BATCH
databaseDatabase (JDBC/JPA)DATABASEINBOUND, OUTBOUND, POLLING, TRANSACTIONAL, BATCH
soapSOAP Web ServicesSOAPINBOUND, OUTBOUND, REQUEST_REPLY, VALIDATION

2. URI patterns by connector

ConnectorInbound ExampleOutbound Example
HTTPplatform-http:/orders?httpMethodRestrict=POSThttps://partner.example.com/orders
JMSjms:queue:orders.injms:topic:orders.events
Filefile:/data/input?noop=truefile:/data/output
Databasebuzen-db:execute?dataSourceRef=myDb&query=select+*+from+orders&outputType=SelectListbuzen-db:execute?dataSourceRef=myDb&query=insert+into+orders+values(:#id,:#name)&outputType=UpdateCount
SOAPcxf:/services/customercxf://https://partner/ws?wsdlURL=...

3. Common connector configuration keys

buzen:
  esb:
    connector:
      http:
        context-path: /api
        port: 8080
      jms:
        enabled: true
        broker-type: artemis
      file:
        base-directory: ${buzen.esb.home-dir}/work/files
        inbox-directory: ${buzen.esb.connector.file.base-directory}/inbox
        outbox-directory: ${buzen.esb.connector.file.base-directory}/outbox
        archive-directory: ${buzen.esb.connector.file.base-directory}/archive
        error-directory: ${buzen.esb.connector.file.base-directory}/error

Database and SOAP connectors expose additional metadata through management endpoints:

  • GET /api/v1/connectors
  • GET /api/v1/connectors/{connectorId}/config
  • POST /api/v1/connectors/{connectorId}/test

4. Health and readiness behavior

  • Each connector can provide a Spring Boot HealthIndicator.
  • JMS checks broker connectivity when a connection factory exists.
  • File checks directory accessibility and free-space visibility.
  • Database validates datasource connectivity and metadata.
  • SOAP verifies CXF runtime presence and connector readiness.

5. Build a custom connector (SPI)

Connectors implement Connector from buzen-connector-api and are auto-discovered via ServiceLoader.

public class MyConnector extends AbstractConnector {
    public MyConnector() {
        super(
          "my-connector",
          "My Connector",
          "1.0.0",
          ConnectorType.CUSTOM,
          Set.of(ConnectorCapability.INBOUND)
        );
    }

    @Override
    protected void doInitialize(ConnectorContext context) { }

    @Override
    public void registerComponents(CamelContext camelContext) { }
}

Register class name in:

META-INF/services/com.buzen.esb.connector.api.Connector

6. Module dependency hierarchy

buzen-connector-api
  -> buzen-core
     -> security / transformers / monitoring / management
        -> connectors (http, jms, file, database, soap)
           -> buzen-console
              -> buzen-runtime
When extending connectors, keep shared SPI types only in buzen-connector-api to avoid dependency cycles.

7. Kafka (Camel-native component)

Kafka source and sink nodes appear in the Flow Designer palette, but Kafka is not a Buzen connector module. It is available as an Apache Camel native component (camel-kafka). There is no buzen.esb.connector.kafka.* configuration namespace.

Use standard Camel Kafka URIs:

kafka:topic-name?brokers=broker1:9092&groupId=my-group   (inbound)
kafka:topic-name?brokers=broker1:9092                    (outbound)

8. Database URI disambiguation

Buzen wraps Camel SQL into a convenience component: buzen-db:execute. The Flow Designer and app route editor generate this URI scheme. Raw Camel sql: / jpa: / jdbc: URIs also work in hand-authored YAML, but they bypass Buzen's managed data source resolution and will not round-trip through the Flow Designer.

When building routes for use with the Flow Designer or app route APIs, always use buzen-db:execute. Use raw sql: only for standalone YAML routes that do not require visual editing.