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) {