PreParser

If it is desirable to manipulate incoming queries prior to being handled by Teiid logic, then a custom pre-parser can be installed. Use the PreParser interface provided in the org.teiid.api jar to plug-in a pre-parser for the Teiid engine. See Setting up the build environment to start development. For Example:

Sample Java Code
import org.teiid.PreParser;
...

package com.something;

public class CustomPreParser implements PreParser {

    @Override
    public String preParse(String command, CommandContext context) {
        //manipulate the command
    }
}

Then build a JAR archive with above implementation class and create a file named org.teiid.PreParser in META-INF/services directory with contents:

com.something.CustomPreParser

The the jar has been built, this needs to be deployed in the WildFly as a module under <jboss-as>/modules directory. Follow the below steps to create a module.

  • Create a directory <jboss-as>/modules/com/something/main

  • Under this directory create a module.xml file that looks like

Sample module.xml file
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.something">
    <resources>
        <resource-root path="something.jar" />
    </resources>
    <dependencies>
        <module name="javax.api"/>
        <module name="javax.resource.api"/>
        <module name="org.jboss.teiid.common-core"/>
        <module name="org.jboss.teiid.teiid-api" />
    </dependencies>
</module>
  • Copy the jar file under this same directory. Make sure you add any additional dependencies if required by your implementation class under dependencies.

  • Use the cli or modify the configuration to set the preparser-module in the Teiid subsystem configuration to the appropriate module name.

  • Restart the server

Development Considerations

  • Changing the incoming query to a different type of statement is not recommended as are any modifications to the number or types of projected symbols.

results matching ""

    No results matching ""