First we create the java class which implements the logic
package customxslt; import java.io.PrintStream; public class AdditionalStringFunctions { public static String replaceChars(String input, String regex, String replaceWith) { String output = input.replaceAll(regex, replaceWith); return output; } public static void main(String[] args) { AdditionalStringFunctions aSF = new AdditionalStringFunctions(); String input = "(+91)80-55555555"; System.out.println(replaceChars(input, "[^0-9]", "")); } }
All the above code does is, check for input string and any characters apart from 0-9 is stripped.
Next create a configuration file.Name the file as ext-mapper-xpath-functions-config.xml. Sample file is provided below
<soa-xpath-functions version="11.1.1" xmlns="http://xmlns.oracle.com/soa/config/xpath" xmlns:regex="http://www.oracle.com/XSL/Transform/java/customxslt.AdditionalStringFunctions"> <function name="regex:replaceChars"> <classname>customxslt.AdditionalStringFunctions</className> <return type="string"/> <params> <param name="input" type="string"/> <param name="regex" type="string"/> <param name="replaceWith" type="string"/> </params> <desc/> <detail> <![CDATA[This function returns the value after stripping special characters.]]> </detail> </function> </soa-xpath-functions>
Create a folder called META-INF under the JDeveloper\mywork\Regex\TestRegex\classes directory and place the configuration file there.
Now create a jar file and make sure the class file and the ext-mapper-xpath-functions-config.xml are included in it.
Next register the JAR file in Jdeveloper designtime
This can be done via "Tools > Preferences… > SOA" add the JAR file and restart JDeveloper.
The newly created extension function will be available in the component palette under user defined functions page. You can make use it from there in your XSL code.
To make this function available at SOA runtime put the jar file under MW_Home/user_projects/domains/domain_name/lib
Restart the server and test your code.
No comments:
Post a Comment