Packaging Your Connector for Release

DevKit is compatible only with Studio 6 and Mule 3. To build Mule 4 connectors, see the Mule SDK documentation.

When your connector is ready for release to a broad audience, take the following additional steps to ensure user success:

  • Create a license agreement for your connector.

  • Develop end-to-end walkthroughs to illustrate performing common use cases with your connector.

9 package


This document assumes that you have successfully developed your connectors and documented them in preparation for their release.

Customize License Agreement

During connector installation, Studio presents the user with a license agreement. Customize the contents of this agreement to reflect your terms.

Maven first searches for a LICENSE.md file in the same directory as the pom.xml file during the build process.

If this file is not found, Maven goes through the following series of steps to locate a license agreement:

  1. Maven checks for a LICENSE.txt file in the same directory as the pom.xml.

  2. If the pom.xml file contains a Licenses section (as described in the Maven documentation), DevKit attempts to to download the text from the license’s URL, then saves the downloaded content as a new LICENSE.md file.

  3. If no license text is found by the above steps, the build fails.

In addition to the global license file, DevKit requires that your source files also contains a license header. In order to apply this license header to every source file in your project, run the following command in a command console at the root of your project (the root of your project should contain the pom.xml file):

mvn license:format

The above will go through your whole project and apply the license header defined in the LICENSE_HEADER.txt file to every source file. This includes java files, SQL scripts, XML files, and more.

Running the command below installs your connector in your local Maven repository. However, before doing so, it checks for license headers in each source files. Therefore, it is required that the above Maven command be run before running the install maven goal.

mvn clean install

To enable verbose logging, use:

mvn clean install -Ddevkit.verbose.logging=true

Alternatively you can choose to package the connector instead of installing. This will create an update site that you can use to install the connector in Anypoint Studio. This update site will contain everything that is needed to use the connector inside your Mule applications (icons for the palette, XSDs, source files, etc.) Therefore it is important that your source files have the license headers before packaging. Note that packaging the connector will not check for license headers in your source files. To package your connector, simply run the following command at the root folder:

mvn clean package

Create End-to-End Use Case Examples

Before releasing your connector to the general public, make sure to include sample end-to-end use cases in your connector documentation or repository. These use cases can be extremely useful in helping users succeed with your connector. They should describe and explain in detail the steps required to use the functionality provided by your connector. This will ensure that users learn how to use your connector effectively.

Certify and Publish Your Connector

MuleSoft’s program certifies and publishes third party connectors to be distributed to the community on mulesoft.org. For more information about this program, please contact us.

Uploading your Connector to Exchange

Anypoint Studio identifies each connector by a Feature ID that spans all versions of the connector. In order to expose your connector via the Anypoint Exchange, you will be prompted by the Exchange to provide this Feature ID when uploading your connector asset, as well as a version number.

Follow the steps below to obtain this ID:

  1. Unzip the file containing your connector’s Update Site

  2. In the created folder, look for the context.xml file and open it with a text editor

  3. In this file, search for a string that follows the following pattern: id=’org.mule.tooling.ui.extension.<connector name>.feature.group’. That entire value is your connector’s Feature ID. As a more concrete example, your Feature ID could be something like ’org.mule.tooling.ui.extension.cloudhub.3.6.0.feature.group’

In this same context.xml file you will find a tag named version next to the Feature ID. Provide this value in the Connector Version field in Exchange. Consumers will later only see a beautified and simpler version number. For example if the version number you provide is, they will just see 2.0.1. The full version number will be displayed ONLY when are editing a specific version.

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub