Mulesoft es una de las herramientas tecnológicas más útiles del mercado en cuanto a integración de datos y conectores se trata. Es capaz de integrar varias aplicaciones web y softwares en un solo lugar, incluso ofrece la posibilidad de conectores personalizados trabajando con Anypoint Connectors.
Anypoint Connectors es una función de Mulesoft que proporciona a sus usuarios la posibilidad de crear una conexión entre un flujo Mule y un sistema externo, como por ejemplo con una fuente de contenido o base de datos. Además de esto, en paralelo a los conectares ya listos que tiene disponibles para usar, se puede crear un personalizado que mejor se adapte a las necesidades del proyecto.
Puede que en ocasiones no se consiga el conector correcto para integrar los sistemas o el que termine siendo el elegido eventualmente no tenga las funcionalidades necesarias para mantenerse con el paso del tiempo, por lo que se necesite cambiarlo y así tener que trabajar extra.
Antes de explicar los pasos para la creación, se debe estar familiarizado con Anypoint Studio 7+ y tener instaladas las versiones de JDK, Anypoint Studio 7+ y Maven.
Ahora sí, para crear el conector se debe ejecutar el comando a continuación en el símbolo donde se quiera crear el proyecto. Debido a que no puede hacerse desde Anypoint Studio, se debe utilizar un arquetipo de Maven.
Paso 1: Abra el símbolo del sistema/git bash donde desea crear el proyecto y ejecute el siguiente comando como se muestra a continuación:
mvn org.mule.extensions:mule-extensions-archetype-maven-plugin:generate
Paso 2: Configuración
Luego de ejecutado el comando anterior, le pedirá configurar lo siguiente:
Estos datos deben proporcionarse de esta manera:
Paso 3: Importar
En este paso, se debe importar el proyecto a su lugar de trabajo.
Paso 4: Instalar el proyecto
Luego de que se importó el proyecto, ve al espacio de trabajo y ejecuta este comando para construir el jar:
mvn clean install –DskipTests
Paso 5: Actualizar las dependencias
El usuario ahora debe dirigirse a la aplicación Mule donde se instalará el conector y actualizar la dependencia de la siguiente manera:
<dependency> <groupId> com.Demo.muleConnector</groupId> <artifactId> mulesoft-demo-connector</artifactId> <version>1.0.0</version> <classifier>mule-plugin</classifier> </dependency>
Paso 6: Paleta Mule
Luego de agregar la dependencia, se hace clic en guardar para que el conector se agregue a la paleta Mule. Así:
Paso 7: Instalar conector
El siguiente paso consiste en agregar la versión del conector en la aplicación pom.xml donde se desea instalar el conector y guardarlo para que se actualice y se pueda mostrar de la siguiente manera:
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.Demo.muleConnector</groupId> <artifactId>mulesoft-demo-connector</artifactId> <version>1.0.1 </version> <packaging>mule-extension</packaging> <name>Demo Extension-Project</name> <parent> <groupId>org.mule.extensions</groupId> <artifactId>mule-modules-parent</artifactId> <version>1.1.3</version> </parent> </project>
Paso 8: Configuración de conector personalizada
Para crear configuración en el conector personalizado se deben seguir los siguientes pasos:
/** * Example of an operation that uses the configuration and a connection instance to perform some action. */ @MediaType(value = ANY, strict = false) public String retrieveInfo(@Config DemoConfiguration configuration, @Connection DemoConnection connection){ return "Using Configuration [" + configuration.getConfigId() + "] with Connection id [" + connection.getId() + "]"; }
Paso 9: Creación de configuración y las clases de conexión
Existe un campo para la configuración y dos campos para las clases de conexión, y se pueden crear de la siguiente manera:
Configuración:
/** * This class represents an extension configuration, values set in this class are commonly used across multiple * operations since they represent something core from the extension. */ @Operations(DemoOperations.class) @ConnectionProviders(DemoConnectionProvider.class) public class DemoConfiguration { @Parameter private String configId; public String getConfigId(){ return configId; } }
Clases de conexión:
/** * A parameter that is always required to be configured. */ @Parameter private String requiredParameter; /** * A parameter that is not required to be configured by the user. */ @DisplayName("Friendly Name") @Parameter @Optional(defaultValue = "100") private int optionalParameter;
De esta manera es posible crear un conector personalizado con Mulesoft.