The Java API gives you more control than any other method of creating a module. To be able to use your module, PipeT needs it to be in a JAR file with only two requirements:
As said, a basic requirement of the module class is that it implements net.sf.pipet.api.ModuleInterface. However, there are several abstract classes which may do most of the work for your.
The following code shows a module which ignores the input stream and writes a message to the output stream.
package net.sf.pipet.examples; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintStream; import net.sf.pipet.api.InputOutputModule; import net.sf.pipet.api.ModuleAttributes; import net.sf.qxs.messenger.Messenger; /** * A simple implementation of a module, which writes a predefined string to a predefined pipe. */ public class SimpleModule extends InputOutputModule { /** * The module's title. Keep it short and descriptive. */ private static final String TITLE = "Simple Module"; /** * A free-text string which describes the module. */ private static final String DESCRIPTION = "A simple module which generates a static string."; /** * The module's output: a static string in our case. */ private static final String MESSAGE = "Hello world!"; /** * The module's output type. Best practice is to always use mime types. */ private static final String OUTPUT_TYPE = "text/plain"; public SimpleModule() { super(TITLE, DESCRIPTION, null, OUTPUT_TYPE); } public boolean run(InputStream is, OutputStream os, ModuleAttributes atts, Messenger messenger) { PrintStream out = new PrintStream(os); out.print(MESSAGE); out.close(); return true; } }
Modules extending InputOutputModule should use and package pipet-module-api-1.2.15.jar.
The manifest file must contain a Module-Interface entry which points to the module class. If you use Maven, see Building a Maven module for instructions. The manifest file is located in the JAR in META-INF/MANIFEST.MF and should look like this:
Manifest-Version: 1.0 Module-Interface: org.example.HelloWorld Build-Jdk: 1.6.0_20 Created-By: Apache Maven Archiver-Version: Plexus Archiver
For unit-testing the module, see the PipeT Test Suite manual.