-
Notifications
You must be signed in to change notification settings - Fork 82
Creating Custom Components
Metl comes with a large set of prepackaged components. These components cover a broad set of functional capabilities commonly used in etl/elt and service based integration scenarios. However, if a unique need aries, custom components can be created to implement specialized needs. Building custom components is straight forward and done in the same manner as Metl’s prepackaged components. The basic steps to build a component are as follows:
-
Create a Java Project - The java project will contain the source code and related files for the custom component
-
Create the Component Definition - The component definition defines the basic aspects of the component including the name, description, type, source file, message and resource types, settings, etc.
-
Create the Component User Interface Definition - The user interface definition defines aspects of the user interface including icons, and if needed, custom ui java classes
-
Implement the Component Methods - Every component implements an interface that tells the component what to do on startup, when a message is received, and on shutdown
-
Package the component - Files in the java project are packaged into .jar files or .zip files for deployment
-
Deploy the Component - Provide the packaged component to Metl via uploading it directly to the running Metl instance or loading it into a maven repository accessible to that Metl instance.
The core Metl engine including its prepackaged projects are built in java. In order to create a custom component, first create a java project to hold the source code and related files for the component. The java project will need to have a dependency on the metl-core library which can be found in the JumpMind maven repository (http://maven.jumpmind.com/repo). Sample gradle and maven dependencies are s follows:
build.gradle
dependencies {
compileOnly 'org.jumpmind.metl:metl-core:2.0.6.r.65'
}
pom.xml
<dependencies>
<dependency org="org.jumpmind.metl" name="metl-core" rev="2.0.6.r.65" />
</dependencies>