Technical Guidelines for Connector Certifications | MuleSoft Documentation
# Technical Guidelines for Connector Certifications
  1. Set up your development environment using these sections from _Getting Started with the Mule SDK_ :
     * Setting Up Your Development Environment
     *   2. Create or migrate your connector:
     * If you are a partner or developer, create a Mule 4 connector.
       1. Run this command:
`mvn org.mule.extensions:mule-extensions-archetype-maven-plugin:generate`
       2. Complete the configuration through the console:
          * Provide the name of your extension, for example: `cookbook`
          * When you receive a request for the `groupId`, accept the default.
          * Specify the `artifactId` of _your_ extension, for example: `cookbook-connector`
          * Specify the version of your extension.
If this is your first connector, use `1.0.0`. If not, create the major version from your last connector. For example, the latest version of AS/400 Connector is `v1.0.2` for Mule 3. For Mule 4, the connector version is `v2.0.0`.
          * When you receive a request for the main package of your extension, accept the default.
     * If you want to migrate existing Mule 3 connectors to Mule 4, use a migration tool:
       1. Change your Devkit `version` as follows:
```
<parent>
 <groupId>org.mule.tools.dmt</groupId>
 <artifactId>mule-dmt</artifactId>
 <version>1.0.0</version>
</parent>
```

Note that `0.9.0` is a beta version of the Migration tool. See the FAQ for details.
       2. Use the `mvn clean package -Dmaven.test.skip` command.
The generated Mule 4 extension appears in the target folder.
       3. If the migration tool reports errors indicating that it cannot auto-migrate parts of your connector, resolve these errors before continuing.
  3. Update your `pom.xml` file:
     * Locate these `<parent/>` settings:
```
<parent>
 <groupId>org.mule.extensions</groupId>
 <artifactId>mule-modules-parent</artifactId>
 <version>1.9.0</version>
</parent>
```

     * Change the settings to this:
```
<parent>
 <groupId>org.mule.connectors</groupId>
 <artifactId>mule-certified-parent</artifactId>
 <version>1.1.0</version>
</parent>
```

  4. Add one of the following sets of annotations to your `Extension.java`:
     * For MuleSoft Certified Connectors (Free):
Example: Annotations for Azure Storage
```
@Extension(name = “Azure Storage”, category = CERTIFIED, vendor = “Whishworks")
@RequiresEnterpriseLicense(allowEvaluationLicense = true)
```

     * For MuleSoft Certified Connectors (Additional Fee):
Example: Annotations for SAP Hybris
```
@Extension(name = “SAP Hybris”, category = CERTIFIED, vendor = “Admios")
@RequiresEnterpriseLicense
@RequiresEntitlement(name = “sap-hybris-connector")
```

  5. Set the connector icon. See Add a Custom Icon to Your Connector.
  6. Add a folder for `demo`.
  7. Add `License.md` if it is not in the root folder already:
```
About MuleSoft Certified Connectors
MuleSoft Certified Connectors are developed by MuleSoft’s partners and developer community. These connectors have been reviewed and certified by MuleSoft. To purchase the [Connector Name] Connector or to receive assistance or support for it, contact [Partner Name] directly at [Contact Information]. MuleSoft disclaims any support obligation for MuleSoft Certified Connectors.
By installing this connector, you consent to MuleSoft sharing your contact information with the developer of this connector so that you can receive more information about it directly from the developer.
Your license terms
```

You can develop or add operations to your connector by following the Mule SDK documentation.
After you complete the preceding steps, the structure of your connector is ready for Mule 4.
  8. Add unit, functional, and integration test cases for your connectors by following Testing Your Module.
Note that your connector needs test coverage of at least 65%.
  9. Add your connector to Connectivity Assets Manager.
You can use your existing account for Connectivity Assets Manager. If you do not have an account, contact MuleSoft.


**Is there a kit or tool for migrating DevKit to Mule 4 SDK?**
  * Yes. The migration tool will be available for its GA in Q2, 2018. You can use the beta version in the meantime.
```
<parent>
 <groupId>org.mule.tools.dmt</groupId>
 <artifactId>mule-dmt</artifactId>
 <version>1.0.0</version>
</parent>
```



**Where is a sample SDK connector project?**
  * The steps described in this guide let you create a structure of a connector project.


**How can I import a project into Studio 7, and how can I test and add it to Studio?**
  * Functionality for importing a connector project into Studio 7 is not available at this time.
You can install your connector to Studio 7 using this command to create a connector for use in Studio 7: `mvn clean install`
See Installation Example for detailed steps.


**Can a module recognize that it is being executed from Studio as opposed to on premises or in Runtime Manager, or are there any related concerns?**
Background: If a connector has a custom license code based on the target AS/400 server serial numbers, the license check is performed dynamically as the connection is established. MuleSoft allows customers to evaluate the connector within Studio without a license. However, the connector does not work when running on premises or in Runtime Manager.
Answer:
  * Custom license code will not be enforced in Runtime Manager. MuleSoft recommends that you use the license validation supported natively by Mule 4 SDK. You can find more information in Module Licensing.
  * In your `xxxExtension.java`, add the following annotations to use the license validation from Mule 4 SDK. This example uses SAP Hybris Connector built by Admios:
Example: MuleSoft Certified Connectors (Additional Fee)
```
@RequiresEnterpriseLicense
@RequiresEntitlement(name = “sap-hybris-connector")
```



## Installation Example
This example supplements the FAQ, How can I import a project into Studio 7, and how can I test and add it to Studio?.
You can install your connector to Studio 7 using this command to create a connector for use in Studio 7:
  1. Run `mvn clean install`.
This example shows the `cookbook` connector installation to a local Maven repository:
```
[INFO] No primary artifact to install, installing attached artifacts instead.
[INFO] Installing /Users/me/Downloads/mule4SampleConnector/cookbook-connector/pom.xml to /Users/me/.m2/repository/org/mule/extension/cookbook-connector/1.0.0/cookbook-connector-1.0.0.pom
[INFO] Installing /Users/me/Downloads/mule4SampleConnector/cookbook-connector/target/temporal-extension-model.json to /Users/me/.m2/repository/org/mule/extension/cookbook-connector/1.0.0/cookbook-connector-1.0.0-extension-model-4.0.0.json
[INFO] Installing /Users/me/Downloads/mule4SampleConnector/cookbook-connector/target/cookbook-connector-1.0.0-mule-plugin.jar to /Users/me/.m2/repository/org/mule/extension/cookbook-connector/1.0.0/cookbook-connector-1.0.0-mule-plugin.jar
[NOTE]
---
[INFO] BUILD SUCCESS
[NOTE]
---
[INFO] Total time: 35.057 s
[INFO] Finished at: 2018-01-11T17:10:50-08:00
[INFO] Final Memory: 49M/476M
[NOTE]
---
```

  2. Create a Mule project in Studio 7, and open `pom.xml` for this project in Studio 7.
  3. Add a dependency setting (`<dependency/>`) for your connector to the `pom.xml`.
For example, the following `<dependency/>` enables Studio 7 to find the `cookbook-connector` installed in a local Maven repository:
```
<dependency>
 <groupId>org.mule.extension</groupId>
 <artifactId>cookbook-connector</artifactId>
 <version>1.0.0</version>
 <classifier>mule-plugin</classifier>
</dependency>
```

Your connector will now appear the palette. This example shows a Cookbook connector in the Studio palette:


## See Also
Mule 4 SDK (video)
Connector/DevKit/SDK Forum
DevKit Migration Tool