Author: vanto
Date: Tue Oct 21 15:00:46 2008
New Revision: 706793

URL: http://svn.apache.org/viewvc?rev=706793&view=rev
Log:
More comfort in ExtensionContext.

Modified:
    ode/trunk/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties
    
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java

Modified: ode/trunk/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties
URL: 
http://svn.apache.org/viewvc/ode/trunk/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties?rev=706793&r1=706792&r2=706793&view=diff
==============================================================================
--- ode/trunk/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties 
(original)
+++ ode/trunk/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties Tue 
Oct 21 15:00:46 2008
@@ -27,6 +27,7 @@
 log4j.category.org.apache.ode.bpel.engine=DEBUG
 log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=DEBUG
 log4j.category.org.apache.ode.bpel.epr=INFO
+log4j.category.org.apache.ode.extension.Console=INFO
 
 # Console appender
 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender

Modified: 
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java?rev=706793&r1=706792&r2=706793&view=diff
==============================================================================
--- 
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java 
(original)
+++ 
ode/trunk/bpel-test/src/main/java/org/apache/ode/test/MockExtensionContext.java 
Tue Oct 21 15:00:46 2008
@@ -18,15 +18,19 @@
  */
 package org.apache.ode.test;
 
+import java.net.URI;
+import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.rtrep.v2.OScope;
-import org.apache.ode.bpel.rtrep.v2.OProcess;
+import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
 import org.apache.ode.bpel.rtrep.v2.OActivity;
 import org.apache.ode.bpel.rtrep.v2.OLink;
-import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.bpel.rtrep.v2.OProcess;
+import org.apache.ode.bpel.rtrep.v2.OScope;
+import org.apache.ode.bpel.rtrep.v2.OdeInternalInstance;
 import org.apache.ode.utils.DOMUtils;
 import org.w3c.dom.Node;
 
@@ -39,13 +43,15 @@
        private Map<String, Node> variables = new HashMap<String, Node>();
        public boolean completed;
        public boolean faulted;
+       public URI duDir;
+       public List<String> msgs = new ArrayList<String>();
        
        public Map<String, Node> getVariables() {
                return variables;
        }
        
        public Long getProcessId() {
-               return 0L;
+               return 4711L;
        }
 
        public Node readVariable(String variableName) throws FaultException {
@@ -59,6 +65,10 @@
                System.out.println("Storing in " + variableName + ": " + 
DOMUtils.domToString(value));
        }
 
+       public boolean isVariableVisible(String varName) {
+               return variables.containsKey(varName);
+       }
+
        public String getActivityName() {
                return "mockActivity";
        }
@@ -102,5 +112,18 @@
                this.completed = true;
                this.faulted = true;
        }
+
+       public OdeInternalInstance getInternalInstance() {
+               throw new UnsupportedOperationException("This method is not 
available in this mock implementation.");
+       }
+
+       public URI getDUDir() {
+               return duDir;
+       }
+
+       public void printToConsole(String msg) {
+               System.out.println(msg);
+               msgs.add(msg);
+       }
        
 }
\ No newline at end of file

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java?rev=706793&r1=706792&r2=706793&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
 Tue Oct 21 15:00:46 2008
@@ -18,20 +18,25 @@
  */
 package org.apache.ode.bpel.rtrep.common.extension;
 
+import java.net.URI;
 import java.util.Map;
 
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.evar.ExternalVariableModuleException;
-import org.apache.ode.bpel.rtrep.v2.OScope;
-import org.apache.ode.bpel.rtrep.v2.OProcess;
 import org.apache.ode.bpel.rtrep.v2.OActivity;
+import org.apache.ode.bpel.rtrep.v2.OProcess;
+import org.apache.ode.bpel.rtrep.v2.OScope;
+import org.apache.ode.bpel.rtrep.v2.OdeInternalInstance;
 import org.w3c.dom.Node;
 
 
 /**
  * Context for executing extension activities or extension assign operations. 
- * Implementations of the [EMAIL PROTECTED] 
org.apache.ode.bpel.extension.ExtensionOperation} class use this interface to 
access BPEL
- * variables, property sets and link status.
+ * Implementations of the [EMAIL PROTECTED] 
org.apache.ode.bpel.extension.ExtensionOperation} class 
+ * use this interface to access BPEL variables, property sets and link status.
+ * 
+ * All <code>ExtensionOperation</code> implementations must complete with
+ * <code>complete()</code>, <code>completeWithFault(...)</code>.
  * 
  * @author Tammo van Lessen (University of Stuttgart)
  */
@@ -46,12 +51,19 @@
        Map<String, OScope.Variable> getVisibleVariables() throws 
FaultException;
        
        /**
+        * Returns whether a variable is visible in the current scope or not.
+        *
+        * @param variableName name of the variable.
+        * @return true if the variable is visible.
+        * @throws FaultException
+        */
+       boolean isVariableVisible(String variableName);
+       
+       /**
      * Read the value of a BPEL variable.
      *
      * @param variable
      *          variable to read
-     * @param part
-     *          the part (or <code>null</code>)
      * @return the value of the variable, wrapped in a <code>Node</code>
      */
     Node readVariable(OScope.Variable variable) throws FaultException;
@@ -61,8 +73,6 @@
      *
      * @param variableName
      *          variable to read
-     * @param part
-     *          the part (or <code>null</code>)
      * @return the value of the variable, wrapped in a <code>Node</code>
      */
     Node readVariable(String variableName) throws FaultException;
@@ -114,13 +124,47 @@
     String getActivityName();
     
     /**
-     * Low-level-method
+     * Returns the location of the deployment bundle of the executed process.
+     * @return URI of the deployment bundle.
      */
-    OActivity getOActivity();
+    URI getDUDir();
     
-    //ScopeFrame getScopeFrame();
+       /**
+        * Allows printing debug output to the console. Output will be 
redirected
+        * to the logger associated with 
<code>org.apache.ode.extension.Console</code>.
+        * The target log level is INFO.
+        */
+    void printToConsole(String msg);
+    
+    /**
+     * Marks the currently executed activity as successfully completed.
+     */
     void complete();
     
+    /**
+     * Marks the currently executed activity as faulted.
+     * @param t an exception to be reported as the fault cause.
+     */
     void completeWithFault(Throwable t);
+
+    /**
+     * Marks the currently executed activity as faulted.
+     * @param fault a fault.
+     */
     void completeWithFault(FaultException fault);
+
+    /*
+     * Low-level-methods
+     */
+    
+    /**
+     * Returns the OActivity object. 
+     */
+    OActivity getOActivity();
+    
+    /**
+     * Returns ODE's internal runtime instance. 
+     */
+    OdeInternalInstance getInternalInstance();
+    
 }

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java?rev=706793&r1=706792&r2=706793&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
 Tue Oct 21 15:00:46 2008
@@ -20,6 +20,7 @@
 
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.net.URI;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -28,11 +29,11 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.evar.ExternalVariableModuleException;
 import org.apache.ode.bpel.evt.ScopeEvent;
 import org.apache.ode.bpel.evt.VariableModificationEvent;
-import org.apache.ode.bpel.evar.ExternalVariableModuleException;
-import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
 import org.apache.ode.bpel.rtrep.common.extension.ExtensionContext;
+import org.apache.ode.bpel.rtrep.v2.channels.FaultData;
 import org.apache.ode.utils.Namespaces;
 import org.w3c.dom.Node;
 
@@ -91,27 +92,39 @@
 
        public void writeVariable(String variableName, Node value)
                        throws FaultException, ExternalVariableModuleException {
-               VariableInstance vi = 
_scopeFrame.resolve(getVisibleVariable(variableName));
-               _context.commitChanges(vi, _scopeFrame, value);
+               OScope.Variable var = getVisibleVariable(variableName);
+               if (var == null) {
+                       throw new RuntimeException("Variable '" + variableName 
+ "' not visible.");
+               }
+               writeVariable(var, value);
        }
 
        public Node readVariable(String variableName) throws FaultException {
-               VariableInstance vi = 
_scopeFrame.resolve(getVisibleVariable(variableName));
-               return _context.fetchVariableData(vi, _scopeFrame, true);
+               OScope.Variable var = getVisibleVariable(variableName);
+               if (var == null) {
+                       throw new RuntimeException("Variable '" + variableName 
+ "' not visible.");
+               }
+
+               return readVariable(var);
        }
 
        public void writeVariable(OScope.Variable variable, Node value)
                        throws FaultException, ExternalVariableModuleException {
                VariableInstance vi = _scopeFrame.resolve(variable);
-               _context.commitChanges(vi, _scopeFrame, value);
+               //_context.commitChanges(vi, _scopeFrame, value);
+               _context.initializeVariable(vi, _scopeFrame, value);
         VariableModificationEvent vme = new 
VariableModificationEvent(variable.name);
         vme.setNewValue(value);
         sendEvent(vme);
        }
 
-       private OScope.Variable getVisibleVariable(String varName) {
+       public OScope.Variable getVisibleVariable(String varName) {
        return _scopeFrame.oscope.getVisibleVariable(varName);
     }
+       
+       public boolean isVariableVisible(String varName) {
+               return _scopeFrame.oscope.getVisibleVariable(varName) != null;
+       }
 
        public String getActivityName() {
                return _activityInfo.o.name;
@@ -167,4 +180,16 @@
                }
 
        }
+
+       public OdeInternalInstance getInternalInstance() {
+               return _context;
+       }
+
+       public URI getDUDir() {
+               return _context.getBaseResourceURI();
+       }
+
+       public void printToConsole(String msg) {
+               
LogFactory.getLog("org.apache.ode.extension.Console").info(msg);                
+       }
 }


Reply via email to