summaryrefslogtreecommitdiffstats
path: root/wso2bpel-ext/wso2bpel-core/BPEL4RESTLight/src/main/java/de/unistuttgart/iaas/bpel/util/BPELVariableInjectionUtil.java
diff options
context:
space:
mode:
Diffstat (limited to 'wso2bpel-ext/wso2bpel-core/BPEL4RESTLight/src/main/java/de/unistuttgart/iaas/bpel/util/BPELVariableInjectionUtil.java')
-rw-r--r--wso2bpel-ext/wso2bpel-core/BPEL4RESTLight/src/main/java/de/unistuttgart/iaas/bpel/util/BPELVariableInjectionUtil.java149
1 files changed, 0 insertions, 149 deletions
diff --git a/wso2bpel-ext/wso2bpel-core/BPEL4RESTLight/src/main/java/de/unistuttgart/iaas/bpel/util/BPELVariableInjectionUtil.java b/wso2bpel-ext/wso2bpel-core/BPEL4RESTLight/src/main/java/de/unistuttgart/iaas/bpel/util/BPELVariableInjectionUtil.java
deleted file mode 100644
index 2298bf1..0000000
--- a/wso2bpel-ext/wso2bpel-core/BPEL4RESTLight/src/main/java/de/unistuttgart/iaas/bpel/util/BPELVariableInjectionUtil.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/**
- * Copyright 2011
- *
- * @author Uwe Breitenbuecher
- *
- * This class provides some methods for BPEL-Variable-Injection
- */
- package de.unistuttgart.iaas.bpel.util;
-
-import java.io.IOException;
-import java.io.StringReader;
-import java.io.StringWriter;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-import javax.xml.transform.OutputKeys;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.dom.DOMSource;
-import javax.xml.transform.stream.StreamResult;
-
-import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.runtime.extension.ExtensionContext;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-
-public class BPELVariableInjectionUtil {
-
- /**
- * This method serializes a Node into a String
- *
- * @param node
- * @return String representation of the node
- */
- public static String nodeToString(Node node) {
- try {
-
- if (node != null && node.getLocalName().equals("temporary-simple-type-wrapper")) {
- // this is a temporary hack for string variables and the likes,
- // as you may see ODE wrappes simpletypes in wrapper-elements,
- // but this isn't great here
- return node.getTextContent();
- }
-
- // Create transformer
- TransformerFactory transformerFactory = TransformerFactory.newInstance();
- Transformer transformer = transformerFactory.newTransformer();
-
- // Transform Node into a String representation by regarding some
- // formatting rules
- StringWriter stringWriter = new StringWriter();
- transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
- transformer.setOutputProperty(OutputKeys.INDENT, "yes");
- transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "3");
- transformer.transform(new DOMSource(node), new StreamResult(stringWriter));
-
- // Return build string
- return stringWriter.toString();
- } catch (Exception e) {
- e.printStackTrace();
- }
-
- // If any error occurs, return empty string
- return "";
- }
-
- /**
- * This method executes the BPEL-Variable-Injection. It replaces referenced
- * BPEL-Variables with corresponding content
- *
- * @param context ExtensionContext of process
- * @param element DOM-Representation of the BPEL-Code in which the
- * Variable-Injection has to be done
- * @return modified BPEL-Code as DOM-Representation
- */
- public static Element replaceExtensionVariables(ExtensionContext context, Element element) {
-
- try {
- String BPELCodeAsString;
-
- // Transform BPEL-Code (DOM-Representation) into a String
- BPELCodeAsString = nodeToString(element);
-
- // Find and replace referenced BPEL-Variables
- int startIndex = BPELCodeAsString.indexOf("$bpelvar[");
- if (startIndex != -1) {
- while (startIndex != -1) {
- int endIndex = startIndex;
- while (BPELCodeAsString.charAt(endIndex) != ']') {
- endIndex++;
- }
-
- // Extract name of referenced variable
- String variableName = BPELCodeAsString.substring(startIndex + 9, endIndex);
-
- // Extract content of referenced variable
- Node variableContent = context.readVariable(variableName);
-
- System.out.println("Replacing variable " + variableName + "(" + variableContent.getNamespaceURI() + " " + variableContent.getLocalName() + ") with content: \n");
- System.out.println("NodeValue(): " + variableContent.getNodeValue() + "\n");
- System.out.println("TextContent(): " + variableContent.getTextContent());
- System.out.println("The full bpel script (before change) as string: \n" + BPELCodeAsString + "\n");
-
- // Replace variable-reference with corresponding content
- BPELCodeAsString = BPELCodeAsString.replace("$bpelvar[" + variableName + "]", nodeToString(variableContent));
-
- System.out.println("The full bpel script as string: \n" + BPELCodeAsString + "\n");
- startIndex = BPELCodeAsString.indexOf("$bpelvar[");
- }
-
- // Transform modified code (String) into DOM-Representation
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- DocumentBuilder builder = factory.newDocumentBuilder();
-
- InputSource inputSource = new InputSource();
- inputSource.setCharacterStream(new StringReader(BPELCodeAsString));
- Document newDocument = builder.parse(inputSource);
-
- // Return first child (because Document root is not needed)
- return (Element) newDocument.getFirstChild();
-
- } else {
-
- // If no referenced variables are found, return original code
- return element;
- }
- } catch (ParserConfigurationException e) {
- e.printStackTrace();
- } catch (SAXException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (FaultException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
-
- return null;
- }
-
-}