processing element

Extending for other scripting languages

Version: 17.07

Supported Since: 17.07

Creating new evaluators for other scripting languages

The Script Evaluator family of processing elements are based on the JSR223 specification, with all core implementations wrapped by a parent class org.adroitlogic.x.processor.scripting.jsr223.base.ScriptEvaluator. If you wish to utilize a currently unsupported language for scripting inside an integration flow, for which there exists a JSR223-compliant binding, you can simply write a new processing element by extending the org.adroitlogic.x.processor.scripting.jsr223.base.ScriptEvaluator class and passing as the superclads constructor argument the name of the language accepted by the JSR223 binding.

For example, for a language AcmeScript that has a JSR223 binding com.acme:jacme:1.0:

package org.adroitlogic.x.processor.scripting.jsr223.python;

import org.adroitlogic.x.annotation.config.Processor;
import org.adroitlogic.x.api.config.ProcessorType;
import org.adroitlogic.x.logging.LogInfo;
import org.adroitlogic.x.processor.scripting.jsr223.base.ScriptEvaluator;

@Processor(displayName = "Acme Snippet", type = {ProcessorType.GENERIC})
public class AcmeSnippet extends ScriptEvaluator {
    public AcmeSnippet() {
        super("acme");  // JSR223 language name supported by com.acme:jacme binding
    }
}

Be sure to also include the binding library as a runtime dependency of your project, either as an IDEA library or as a Maven dependency:

        <dependency>
            <groupId>com.acme</groupId>
            <artifactId>jacme</artifactId>
            <version>1.0</version>
            <scope>runtime</scope>
        </dependency>
In this topic
In this topic
Contact Us