Waiting for engine...
Skip to main content

Packaging the connector

After testing the connector and verifying that it works as expected, you are ready to package the connector code.

Packaging requirements

Verify this information to ensure you are packaging the connector correctly.

Format and structureMaximum SizeJavaRequired Entries
.zip file in this format:
lib/** (One or more implementation JAR files)
META-INF/** (connector-config.xml)
40 MBThe Runtime runs using the Java 8 JRE, or the Java 11 JDK. Compile your connector with any version but target Java 8. When using Java 11, it must be approved.You must include in the connector package:
lib\<your_connector_name>.jar (Source files, resource files, etc.)
Connector configuration file
Connector descriptor file
tip

If your connector exceeds 40 MB, reach out to your Boomi representative to obtain approval for uploading larger connectors.

  • Boomi will require all SDK connectors to run in strict class loading mode eventually. To learn more, refer to Enabling strict class loading mode for connectors. We recommend you ensure all third-party dependencies are packaged in the connector archive file to prevent errors during this transition. If there are missing runtime dependencies, you may see the following error message:

    Caused by: \<ThirdPartyClassName\> referenced from a method is not visible from class loader:com.boomi.connector.factory.ConnectorManager$ConnectorClassLoader@1052f423

  • Do not include multiple versions of the same JAR file in the connector package.

  • The connector configuration file's SDK version (@sdkApiVersion attribute) should match the version in your JAR files. Additionally, ensure that the SDK version in your JAR files is the same and does not conflict with the version in Atom's JARs.

  • The recommended packaging is taken care of for you in the latest version of the connector gradle plugin (0.5.1). Opting out of strict mode is possible by providing your own connector-config.xml file instead of the plugin generating one for you, but that is not a recommended configuration at this point.

Important

Strict mode will be enforced when uploading new connectors in the future, so it is highly recommended for new connectors adopt strict mode.

Optional packaging entries

You can optionally include the following in the connector package:

  • connector-sdk-util-<sdkVersion>.jar - This optional JAR file contains utility classes for facilitating connector implementations. Include this JAR if your connector implementation uses it.

  • Additional JARs and their license files if you choose to package the connector yourself or if you use Maven. You should package any libraries and jar files you may need at the time of running your connector into the final connector archive file.

    As long as your entries do not conflict with the libraries or include any malicious code, you can include them in the connector package. All files uploaded to the platform are scanned for viruses to prevent malicious data from compromising your integrations.

Tip

When you package your connector yourself, use SDK version 2.23.2 or later if you plan to utilize strictClassLoading mode. Changes were made to make the packaging experience as seamless as possible and older versions may cause incompatibilities.

  • Additional configuration files such as schemas, overrides, etc. The entries you can include are typically part of the resource in the lib\<your_connector_name>.jar file in the connector package.

Optional Artifacts and JAR files

It is not necessary to package connector-sdk-api with your connector in any mode, those classes and interfaces are always provided in the classloader running your connector code.

If you haven’t opted into strictClassloading mode yet, please provide an Overrides file for any third party artifacts if you require them in your connector. The following are all the third party artifacts and their current versions provided by the Boomi Atom Runtime environment:

Optional Artifacts and JAR files

bcprov-jdk16

  • groupId: org.bouncycastle

  • Version: 1.4.5

  • Scope: Provided

  • Can be overridden: yes

com.noelios.restlet.ext.net

  • groupId: com.noelios.restlet

  • Version: 1.0.11

  • Scope: Provided

  • Can be overridden: yes

rg.restlet

  • groupId: org.restlet

  • Version: 1.0.11

  • Scope: Provided

  • Can be overridden: yes

boomi-json-util

note

This is dependent on Jackson libraries. If you are using a newer Jackson library, in addition to boomi-json-util, then this needs to be overriden.

  • groupId: com.boomi.util

  • Version: 1.2.4

  • Scope: Provided

  • Can be overridden: yes

boomi-util

  • groupId: com.boomi.util

  • Version: 3.0.14

  • Scope: Provided

  • Can be overridden: no

boomi-restlet-util

  • groupId: com.boomi.restlet.util

  • Version: 2.1.17

  • Scope: Provided

  • Can be overridden: yes

dom4j

  • groupId: dom4j

  • Version: 1.6.1

  • Scope: Provided

  • Can be overridden: yes

ehcache-core

  • groupId: net.sf.ehcache

  • Version: 2.4.7

  • Scope: Provided

  • Can be overridden: yes

jackson-annotations

note

The Runtime provides three jackson artifacts (com.fasterxml.jackson.annotations, com.fasterxml.jackson.core, and com.fasterxml.jackson.databind). You can override all of the Jackson artifacts by overriding the full com.fasterxml.jackson package.

  • groupId: com.fasterxml.jackson.annotations

  • Version: 2.5.3

  • Scope: Provided

  • Can be overridden: yes

jackson-core

  • groupId: com.fasterxml.jackson.core

  • Version: 2.5.3

  • Scope: Provided

  • Can be overridden: yes

jackson-databind

  • groupId: com.fasterxml.jackson.databind

  • Version: 2.5.3

  • Scope: Provided

  • Can be overridden: yes

jdom

  • groupId: jdom

  • Version: 1.0

  • Scope: Provided

  • Can be overridden: yes

jjwt

  • groupId: io.jsonwebtoken

  • Version: 0.9.0

  • Scope: Provided

  • Can be overridden: yes

json

  • groupId: org.json

  • Version: 20131018

  • Scope: Provided

  • Can be overridden: yes

lucene-core

  • groupId: org.apache.lucene

  • Version: 3.5.0-boomi1

  • Scope: Provided

  • Can be overridden: yes

mail

  • groupId: javax.mail

  • Version: 1.4.7

  • Scope: Provided

  • Can be overridden: yes

mimepull

  • groupId: org.jvnet

  • Version: 1.3

  • Scope: Provided

  • Can be overridden: yes

netty

  • groupId: io.netty

  • Version: 3.10.1.Final

  • Scope: Provided

  • Can be overridden: yes

org.apache.oltu.oauth2.client

  • groupId: org.apache.oltu.oauth2

  • Version: 1.0.0

  • Scope: Provided

  • Can be overridden: yes

sqlbuilder

  • groupId: com.healthmarketscience.sqlbuilder

  • Version: 2.0.13

  • Scope: Provided

  • Can be overridden: yes

hsqldbmin

  • groupId: org.hsqldb

  • Version: 2.3.3.boomi1

  • Scope: Provided

  • Can be overridden: yes

JAXB implementation

Any core XML API or implementation

  • JAR files defining or implementing interfaces in the packages org.w3c.dom, org.xml.sax, javax.xml from the standard JDK.

  • Do not include or use axis-saaj.jar

connector-sdk-api.jar

java.util.logging

  • Built in the Java logging system and is the preferred logging API.

commons logging

slf4j
log4j

Overriding artifacts and JARs provided by the Atom

In a connector, you can selectively override the artifacts, and JAR files previously indicated (Can be overridden: yes) with versions from your distribution. For example, suppose you want to override the configuration for mail.jar. To override the classes, package an Overrides file (a line-delimited text file com.boomi.Overrides) with the package(s) you want to override, and any relevant JARs for the package. As long as you package the Overrides file with the connector, you can also package a JAR containing a new version of mail.jar.

Sample Overrides File

Here is a sample Overrides file illustrating how to override mail.jar with multiple packages (javax.mail, com.sun.mail) and include an Overrides with a connector:

note

Typically, configuration files provided by are stored in the META-INF/ folder. In this example, the path to the Overrides file is META-INF/com.boomi.Overrides


javax.mail.
com.sun.mail.

On this Page