Author: mriou
Date: Thu Aug 17 09:36:46 2006
New Revision: 432288

URL: http://svn.apache.org/viewvc?rev=432288&view=rev
Log:
ODE-27 ODE-14 More management API tests, more bug fixes.

Modified:
    
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ExternalService.java
    
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
    incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl
    
incubator/ode/trunk/axis2/src/test/java/org/apache/ode/axis2/management/ProcessManagementTest.java
    
incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/ProcessManagement.java
    
incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ExtensibilityBucketState.java
    
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java

Modified: 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ExternalService.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ExternalService.java?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ExternalService.java
 (original)
+++ 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/ExternalService.java
 Thu Aug 17 09:36:46 2006
@@ -146,9 +146,6 @@
                 ODEService.genEPRfromWSDL(_definition, _serviceName, 
_portName));
         org.apache.ode.bpel.iapi.EndpointReference ref = 
EndpointFactory.convert(
                 new QName(Namespaces.WS_ADDRESSING_NS, "EndpointReference"), 
eprElmt);
-        System.out.println("INITIAL EPR CREATION 
#########################################################");
-        System.out.println(DOMUtils.domToString(ref.toXML()));
-        
System.out.println("#########################################################");
         return ref;
     }
 

Modified: 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
 (original)
+++ 
incubator/ode/trunk/axis2/src/main/java/org/apache/ode/axis2/service/ManagementService.java
 Thu Aug 17 09:36:46 2006
@@ -50,8 +50,10 @@
 import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import java.io.IOException;
+import java.lang.reflect.Array;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
+import java.util.ArrayList;
 import java.util.Iterator;
 
 /**
@@ -132,7 +134,7 @@
         int paramIdx = 0;
         for (Class<?> paramClass : paramTypes) {
             OMElement omchild = (OMElement) omChildren.next();
-            System.out.println("Extracting param " + paramClass + " from " + 
omchild);
+            __log.debug("Extracting param " + paramClass + " from " + omchild);
             params[paramIdx++] = convertFromOM(paramClass, omchild);
         }
         return params;
@@ -140,7 +142,7 @@
 
     private static Object convertFromOM(Class clazz, OMElement elmt) throws 
AxisFault {
         // Here comes the nasty code...
-        if (elmt == null || elmt.getText() == null || elmt.getText().length() 
== 0) return null;
+        if (elmt == null) return null;
         else if (clazz.equals(String.class)) {
             return elmt.getText();
         } else if (clazz.equals(Boolean.class)) {
@@ -158,13 +160,20 @@
             return qname;
         } else if (clazz.equals(ProcessInfoCustomizer.class)) {
             return new ProcessInfoCustomizer(elmt.getText());
-        } else if (clazz.isAssignableFrom(Node.class)) {
-            return OMUtils.toDOM(elmt);
+        } else if (Node.class.isAssignableFrom(clazz)) {
+            return OMUtils.toDOM(elmt.getFirstElement());
         } else if (clazz.equals(Long.TYPE) || clazz.equals(Long.class)) {
             return Long.parseLong(elmt.getText());
         } else if (clazz.equals(Integer.TYPE) || clazz.equals(Integer.class)) {
             return Integer.parseInt(elmt.getText());
-        } else if (clazz.isAssignableFrom(XmlObject.class)) {
+        } else if (clazz.isArray()) {
+            ArrayList alist = new ArrayList();
+            Iterator children = elmt.getChildElements();
+            Class targetClazz = clazz.getComponentType();
+            while (children.hasNext())
+                alist.add(parseType(targetClazz, 
((OMElement)children.next()).getText()));
+            return alist.toArray((Object[]) Array.newInstance(targetClazz, 
alist.size()));
+        } else if (XmlObject.class.isAssignableFrom(clazz)) {
             try {
                 Class beanFactory = Class.forName(clazz.getCanonicalName() + 
".Factory");
                 return beanFactory.getMethod("parse", XMLStreamReader.class)
@@ -222,5 +231,12 @@
             if (method.getName().equals(methodName)) return method;
         }
         throw new AxisFault("Couldn't find any method named " + methodName + " 
in interface " + clazz.getName());
+    }
+
+    private static Object parseType(Class clazz, String str) {
+        if (clazz.equals(Integer.class)) return Integer.valueOf(str);
+        if (clazz.equals(Float.class)) return Integer.valueOf(str);
+        if (clazz.equals(String.class)) return str;
+        return null;
     }
 }

Modified: incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl (original)
+++ incubator/ode/trunk/axis2/src/main/wsdl/pmapi.wsdl Thu Aug 17 09:36:46 2006
@@ -102,15 +102,6 @@
   <message name="setProcessPropertyOutput">
     <part name="process-info" type="typ:tProcessInfo"/>
   </message>
-  <message name="setEndpointReferenceInput">
-    <part name="pid" type="xsd:QName"/>
-    <part name="partnerLink" type="xsd:string"/>
-    <part name="role" type="xsd:string"/>
-    <part name="endpoint" type="xsd:anyType"/>
-  </message>
-  <message name="setEndpointReferenceOutput">
-    <part name="process-info" type="typ:tProcessInfo"/>
-  </message>
   <message name="activateInput">
     <part name="pid" type="xsd:QName"/>
   </message>
@@ -241,10 +232,6 @@
       <input message="tns:setProcessPropertyNodeInput"/>
       <output message="tns:setProcessPropertyNodeOutput"/>
     </operation>
-    <operation name="setEndpointReference">
-      <input message="tns:setEndpointReferenceInput"/>
-      <output message="tns:setEndpointReferenceOutput"/>
-    </operation>
     <operation name="getExtensibilityElements">
       <input message="tns:getExtensibilityElementsInput"/>
       <output message="tns:getExtensibilityElementsOutput"/>
@@ -373,15 +360,6 @@
       </output>
     </operation>
     <operation name="setProcessPropertyNode">
-      <soap:operation soapAction="" style="rpc"/>
-      <input>
-        <soap:body namespace="http://www.apache.org/ode/pmapi"; use="encoded"/>
-      </input>
-      <output>
-        <soap:body namespace="http://www.apache.org/ode/pmapi"; use="encoded"/>
-      </output>
-    </operation>
-    <operation name="setEndpointReference">
       <soap:operation soapAction="" style="rpc"/>
       <input>
         <soap:body namespace="http://www.apache.org/ode/pmapi"; use="encoded"/>

Modified: 
incubator/ode/trunk/axis2/src/test/java/org/apache/ode/axis2/management/ProcessManagementTest.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/axis2/src/test/java/org/apache/ode/axis2/management/ProcessManagementTest.java?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- 
incubator/ode/trunk/axis2/src/test/java/org/apache/ode/axis2/management/ProcessManagementTest.java
 (original)
+++ 
incubator/ode/trunk/axis2/src/test/java/org/apache/ode/axis2/management/ProcessManagementTest.java
 Thu Aug 17 09:36:46 2006
@@ -104,6 +104,28 @@
         assert(result.toString().indexOf("somevalue") >= 0);
     }
 
+    public void testSetProcessPropertyNode() throws Exception {
+        OMElement propElmt = _factory.createOMElement("testprop", null);
+        propElmt.setText("propvalue");
+        OMElement root = buildMessage("setProcessPropertyNode",
+                new String[] {"pid", "propertyName", "propertyValue"},
+                new Object[] { new QName("http://ode/bpel/unit-test";, 
"DynPartnerMain"),
+                        new QName("http://ode/custom/ns";, "someprop"), 
propElmt });
+        OMElement result = sendToPM(root);
+        assert(result.toString().indexOf("DynPartnerMain") >= 0);
+        assert(result.toString().indexOf("testprop") >= 0);
+        assert(result.toString().indexOf("propvalue") >= 0);
+    }
+
+    public void testGetExtensibilityElements() throws Exception {
+        OMElement root = buildMessage("getExtensibilityElements",
+                new String[] {"pid", "aids"},
+                new Object[] { new QName("http://ode/bpel/unit-test";, 
"DynPartnerMain"),
+                        new String[] {"aid", "12", "14"} });
+        OMElement result = sendToPM(root);
+        assert(result.toString().indexOf("activity-ext-info-list") >= 0);
+    }
+
     protected void setUp() throws Exception {
         // Create a factory
         _factory = OMAbstractFactory.getOMFactory();
@@ -170,19 +192,29 @@
     }
 
     private OMElement buildMessage(String operation, String[] params, Object[] 
values) {
-        //create a factory
-        OMFactory factory = OMAbstractFactory.getOMFactory();
+        int[] ia = new int[] {1, 2, 3};
+        System.out.println("=> " + ia.getClass().isArray());
 
         //use the factory to create three elements
-        OMNamespace pmns = factory.createOMNamespace(PMAPI_NS, "pmapi");
-        OMElement root = factory.createOMElement(operation, pmns);
+        OMNamespace pmns = _factory.createOMNamespace(PMAPI_NS, "pmapi");
+        OMElement root = _factory.createOMElement(operation, pmns);
         for (int m = 0; m < params.length; m++) {
-            OMElement omelmt = factory.createOMElement(params[m], null);
+            OMElement omelmt = _factory.createOMElement(params[m], null);
             if (values[m] instanceof String)
                 omelmt.setText((String) values[m]);
             else if (values[m] instanceof QName)
                 omelmt.setText((QName) values[m]);
-            else throw new UnsupportedOperationException("Type " + 
values[m].getClass() + "isn't supported as " +
+            else if (values[m] instanceof OMElement)
+                omelmt.addChild((OMElement) values[m]);
+            else if (values[m] instanceof Object[]) {
+                Object[] subarr = (Object[]) values[m];
+                String elmtName = (String) subarr[0];
+                for (int p = 1; p < subarr.length; p++) {
+                    OMElement omarrelmt = _factory.createOMElement(elmtName, 
null);
+                    omarrelmt.setText(subarr[p].toString());
+                    omelmt.addChild(omarrelmt);
+                }
+            } else throw new UnsupportedOperationException("Type " + 
values[m].getClass() + "isn't supported as " +
                     "a parameter type (only String and QName are).");
             root.addChild(omelmt);
         }

Modified: 
incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/ProcessManagement.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/ProcessManagement.java?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/ProcessManagement.java
 (original)
+++ 
incubator/ode/trunk/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/ProcessManagement.java
 Thu Aug 17 09:36:46 2006
@@ -72,7 +72,7 @@
    * @param aids activity indentifiers
    * @return a list of activity extension as [EMAIL PROTECTED] 
ActivityExtInfoListDocument}
    */
-  ActivityExtInfoListDocument getExtensibilityElements(QName pid, int[] aids);
+  ActivityExtInfoListDocument getExtensibilityElements(QName pid, Integer[] 
aids);
 
 
   /**

Modified: 
incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ExtensibilityBucketState.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ExtensibilityBucketState.java?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ExtensibilityBucketState.java
 (original)
+++ 
incubator/ode/trunk/bpel-parser/src/main/java/org/apache/ode/sax/fsa/bpel_2_0/ExtensibilityBucketState.java
 Thu Aug 17 09:36:46 2006
@@ -38,60 +38,62 @@
  */
 class ExtensibilityBucketState extends AbstractState {
 
-  private static final StateFactory _factory = new Factory();
+    private static final StateFactory _factory = new Factory();
 
-  private QName _elementQName;
-  private Element _extensibility;
-  private DOMGenerator _domGenerator;
-
-  ExtensibilityBucketState(StartElement se, ParseContext pc) {
-    super(pc);
-    _elementQName = se.getName();
-    _domGenerator = new DOMGenerator();
-  }
-
-  static class Factory implements StateFactory
-  {
-    public State newInstance(StartElement se, ParseContext pc)
-            throws ParseException {
-      return new ExtensibilityBucketState(se, pc);
-    }
-  }
-
-  public void handleSaxEvent(SaxEvent se) throws ParseException {
-    /*
-    * For the moment, this is a basic implementation, but if supporting
-    * extensions is desired, those extensions can be hooked from here.
-    * Ideally, we'd have some kind of registry implementation that routes
-    * SaxEvent streams based on URI or some other scheme. However, for the
-    * moment, we don't have any use cases. WS-BPEL 2.0 extensibility can be
-    * implemented according to the spec, once that's settled.
-    */
-    _domGenerator.handleSaxEvent(se);
-  }
-
-  public void done() {
-    Document doc = DOMUtils.newDocument();
-    Element root = doc.createElementNS(_elementQName.getNamespaceURI(), 
_elementQName.getLocalPart());
-    root.appendChild(doc.importNode(_domGenerator.getRoot(), true));
-    doc.appendChild(root);
-    _extensibility = root;
-  }
-
-  public StateFactory getFactory() {
-    return _factory;
-  }
-
-  public int getType() {
-    return EXTENSIBILITY_ELEMENT;
-  }
-
-  public QName getElementQName() {
-    return _elementQName;
-  }
-
-  public Element getExtensibility() {
-    return _extensibility;
-  }
+    private QName _elementQName;
+    private Element _extensibility;
+    private DOMGenerator _domGenerator;
+
+    ExtensibilityBucketState(StartElement se, ParseContext pc) {
+        super(pc);
+        _elementQName = se.getName();
+        _domGenerator = new DOMGenerator();
+    }
+
+    static class Factory implements StateFactory
+    {
+        public State newInstance(StartElement se, ParseContext pc)
+                throws ParseException {
+            return new ExtensibilityBucketState(se, pc);
+        }
+    }
+
+    public void handleSaxEvent(SaxEvent se) throws ParseException {
+        /*
+        * For the moment, this is a basic implementation, but if supporting
+        * extensions is desired, those extensions can be hooked from here.
+        * Ideally, we'd have some kind of registry implementation that routes
+        * SaxEvent streams based on URI or some other scheme. However, for the
+        * moment, we don't have any use cases. WS-BPEL 2.0 extensibility can be
+        * implemented according to the spec, once that's settled.
+        */
+        _domGenerator.handleSaxEvent(se);
+    }
+
+    public void done() {
+        if (_domGenerator.getRoot() != null) {
+            Document doc = DOMUtils.newDocument();
+            Element root = 
doc.createElementNS(_elementQName.getNamespaceURI(), 
_elementQName.getLocalPart());
+            root.appendChild(doc.importNode(_domGenerator.getRoot(), true));
+            doc.appendChild(root);
+            _extensibility = root;
+        }
+    }
+
+    public StateFactory getFactory() {
+        return _factory;
+    }
+
+    public int getType() {
+        return EXTENSIBILITY_ELEMENT;
+    }
+
+    public QName getElementQName() {
+        return _elementQName;
+    }
+
+    public Element getExtensibility() {
+        return _extensibility;
+    }
 
 }

Modified: 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
URL: 
http://svn.apache.org/viewvc/incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java?rev=432288&r1=432287&r2=432288&view=diff
==============================================================================
--- 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
 (original)
+++ 
incubator/ode/trunk/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
 Thu Aug 17 09:36:46 2006
@@ -370,7 +370,7 @@
         });
     }
 
-    public ActivityExtInfoListDocument getExtensibilityElements(QName pid, 
int[] aids) {
+    public ActivityExtInfoListDocument getExtensibilityElements(QName pid, 
Integer[] aids) {
         ActivityExtInfoListDocument aeild = 
ActivityExtInfoListDocument.Factory.newInstance();
         TActivitytExtInfoList taeil = aeild.addNewActivityExtInfoList();
         OProcess oprocess = _engine.getOProcess(pid);
@@ -656,10 +656,8 @@
      * @param recurse recurse down directories?
      */
     private void genDocumentInfo(TProcessInfo.Documents docinfo,  File 
rootdir, File[] files,boolean recurse) {
-
         if (files == null)
             return;
-
         for (File f : files) {
             if (f.isHidden())
                 continue;
@@ -670,14 +668,11 @@
             } else if (f.isFile()) {
                 genDocumentInfo(docinfo, rootdir, f);
             }
-
         }
-
     }
 
     private void genDocumentInfo(TProcessInfo.Documents docinfo, File rootDir, 
File f) {
         DocumentInfoGenerator dig = new DocumentInfoGenerator(rootDir,f);
-
         if (dig.isRecognized() && dig.isVisible()) {
             TDocumentInfo doc = docinfo.addNewDocument();
 
@@ -685,7 +680,6 @@
             doc.setSource(dig.getURL());
             doc.setType(dig.getType());
         }
-
     }
 
     private void genInstanceSummaryEntry(TInstanceSummary.Instances instances, 
TInstanceStatus.Enum state, ProcessDAO proc) {


Reply via email to