riftsaw SVN: r1235 - in branches/RiftSaw-ODE-2.2.x: agents and 89 other directories.
by riftsaw-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2011-01-16 07:02:21 -0500 (Sun, 16 Jan 2011)
New Revision: 1235
Added:
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test1.wsdl
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/resources/xslt/
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/resources/xslt/test.xml
branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/
branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel
branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIfBoolean.wsdl
branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml
branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties
branches/RiftSaw-ODE-2.2.x/distro/license/bubbling-LICENSE
branches/RiftSaw-ODE-2.2.x/distro/license/yui-LICENSE
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/pom.xml
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl
branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd
Modified:
branches/RiftSaw-ODE-2.2.x/RELEASE_NOTES
branches/RiftSaw-ODE-2.2.x/agents/pom.xml
branches/RiftSaw-ODE-2.2.x/axis2-war/pom.xml
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/assembly/bin.xml
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/deployment.html
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/fileupload.jsp
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/index.html
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/instances.html
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/js/ODE.js
branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/processes.html
branches/RiftSaw-ODE-2.2.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
branches/RiftSaw-ODE-2.2.x/axis2/pom.xml
branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java
branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
branches/RiftSaw-ODE-2.2.x/axis2/src/main/wsdl/pmapi.wsdl
branches/RiftSaw-ODE-2.2.x/bpel-api-jca/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-api/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-compiler/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
branches/RiftSaw-ODE-2.2.x/bpel-connector/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-dao/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-epr/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java
branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
branches/RiftSaw-ODE-2.2.x/bpel-obj/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-ql/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-runtime/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java
branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
branches/RiftSaw-ODE-2.2.x/bpel-schemas/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-scripts/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-store/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
branches/RiftSaw-ODE-2.2.x/bpel-test/pom.xml
branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java
branches/RiftSaw-ODE-2.2.x/dao-hibernate-db/pom.xml
branches/RiftSaw-ODE-2.2.x/dao-hibernate/pom.xml
branches/RiftSaw-ODE-2.2.x/dao-jpa-hibernate/.classpath
branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa-derby/pom.xml
branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa/.classpath
branches/RiftSaw-ODE-2.2.x/dao-jpa/pom.xml
branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessInstanceDAOImpl.java
branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessManagementDAOImpl.java
branches/RiftSaw-ODE-2.2.x/distro/pom.xml
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml
branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl
branches/RiftSaw-ODE-2.2.x/jacob/pom.xml
branches/RiftSaw-ODE-2.2.x/jbi-bundle/pom.xml
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java
branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml
branches/RiftSaw-ODE-2.2.x/jbi-karaf/src/main/resources/features.xml
branches/RiftSaw-ODE-2.2.x/jbi/pom.xml
branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
branches/RiftSaw-ODE-2.2.x/jca-ra/pom.xml
branches/RiftSaw-ODE-2.2.x/jca-server/pom.xml
branches/RiftSaw-ODE-2.2.x/pom.xml
branches/RiftSaw-ODE-2.2.x/scheduler-simple/pom.xml
branches/RiftSaw-ODE-2.2.x/tools/pom.xml
branches/RiftSaw-ODE-2.2.x/utils/pom.xml
branches/RiftSaw-ODE-2.2.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
Log:
*RIFTSAW-323, upgrade to ODE-1.3.5
Modified: branches/RiftSaw-ODE-2.2.x/RELEASE_NOTES
===================================================================
--- branches/RiftSaw-ODE-2.2.x/RELEASE_NOTES 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/RELEASE_NOTES 2011-01-16 12:02:21 UTC (rev 1235)
@@ -2,25 +2,56 @@
Apache ODE Release Notes
========================
-Apache ODE 1.3.4 includes about 100 bug fixes and new features. It's
-also the most stable version of ODE released so far.
+Apache ODE 1.3.5 includes about 30 bug fixes and performance improvements.
-Apache ODE 1.3.4 requires Java 1.5.x or higher. The WAR distribution can
+Apache ODE 1.3.5 requires Java 1.5.x or higher. The WAR distribution can
run in most J2EE servlet container. The JBI distribution should be able
-to run in any JBI container but has only been tested with ServiceMix 3.2.1
-and latest ServiceMix 4 (OSGi bundle) so far. See the BUILDING file if you
+to run in any JBI container but has only been tested with ServiceMix 3.x
+and latest ServiceMix 4.x (OSGi bundle) so far. See the BUILDING file if you
want to build your own distribution from the source release.
-New Features:
-------------
- * [ODE-483] - Instance replayer
- * [ODE-776] - Build support for both Buildr and Maven 2/3
- * [ODE-778] - Add a possibility to deploy processes as OSGi bundles
- * [ODE-814] - Add spring confgurable process properties
+The performance improvements affect XPath 2.0 processing in assign activities
+or transition conditions and makes it up to 10 times faster than ODE 1.3.4.
Changes:
-------
-See our Jira for more information:
+** Sub-task
+ * [ODE-739] - Add recoverActivity command
-https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310270&styleName=Html&version=12314168
+** Bug
+ * [ODE-155] - Examples: Exceptions for SOAP calls after retrieving WSDL
+ * [ODE-374] - MMC is quite noisy when it loses the connection to ODE
+ * [ODE-472] - utf-8 encoding is handled incorrectly within xslt stylesheets
+ * [ODE-625] - Deployment Poller Crashes when trying to deploy BPEL File with errors
+ * [ODE-661] - processes and instances do not appear to show up on the console in the web container
+ * [ODE-678] - org.apache.ode.bpel.memdao.ProcessDaoImpl cleans instances which are already cleaned and the instances are nulls
+ * [ODE-699] - Exceptions when instance data cleanup is enabled
+ * [ODE-733] - Patch to fix "Error occurred during getting processes or no processes"
+ * [ODE-737] - Patch for NullPointerException in ProcessStoreImpl
+ * [ODE-763] - boolean variable false() was judged as true()
+ * [ODE-780] - examples-ode-ping-pong doesn't start correctly
+ * [ODE-828] - BPEL process deployment problem in ODE
+ * [ODE-856] - BPEL/WSDL files do not show up in management console (deployment tab)
+ * [ODE-865] - getVariableInfo() returns invalid response
+ * [ODE-876] - ODE 1.3.4 is 10 times slower than ODE 1.3.3
+ * [ODE-878] - Processes are not recompiled if .deploy is deleted and .bpel has changed
+ * [ODE-885] - whitespaces in dynamic EPR cause AxisFault: Transport out has not been set
+ * [ODE-887] - Number of instances is always shown as 0 at the start page
+ * [ODE-891] - Compiler cannot deal with unicode characters in inline XSD in WSDLs
+ * [ODE-892] - routing fails as terminated instance's data was not cleaned up.
+ * [ODE-900] - xsd boolean element is handled as xsd string in if conditions.
+ * [ODE-901] - Cannot Deploy More than One Process on Servicemix 4 Using OSGi Bundling
+
+** Improvement
+ * [ODE-43] - Provide service description for ServiceEndpoints
+ * [ODE-881] - SchemaCaptureTest fails locally with spaces in path
+ * [ODE-904] - document() function in XSL scripts can not resolve remote documents
+ * [ODE-905] - Example for PMAPI access over JBI/http
+ * [ODE-906] - Example for HelloWorld on OSGi
+
+** Task
+ * [ODE-903] - Refactor jbi-karaf-commands to make them work with SMX >= 4.3
+
+ See our Jira for more information:
+ * https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310270...
Modified: branches/RiftSaw-ODE-2.2.x/agents/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/agents/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/agents/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-agents</artifactId>
<name>ODE :: Agents</name>
Modified: branches/RiftSaw-ODE-2.2.x/axis2/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-axis2</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -385,6 +385,7 @@
try {
__log.debug("shutdown BpelConnector");
_connector.shutdown();
+ _connector = null;
} catch (Throwable t) {
__log.error("Unable to cleanup temp files.", t);
}
@@ -393,6 +394,7 @@
__log.debug("shutting down HTTP connection manager.");
try {
httpConnectionManager.shutdown();
+ httpConnectionManager = null;
} catch(Throwable t) {
__log.error("Unable to shut down HTTP connection manager.", t);
}
@@ -401,6 +403,7 @@
__log.debug("shutting down Idle Connection Timeout Thread.");
try {
idleConnectionTimeoutThread.shutdown();
+ idleConnectionTimeoutThread = null;
} catch(Throwable t) {
__log.error("Unable to shut down Idle Connection Timeout Thread.", t);
}
@@ -412,6 +415,8 @@
__log.error("Unable to cleanup temp files.", t);
}
+ _executorService.shutdownNow();
+ _executorService = null;
__log.info(__msgs.msgOdeShutdownCompleted());
} finally {
Modified: branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -93,8 +93,9 @@
}
out.write("<p><a href=\"" + url + "\">" + serviceName + "</a></p>");
-
- out.write("<ul><li>Endpoint: " + (root + "/processes/" + serviceName) + "</li>");
+ String axis2wsdl = root + "/processes/" + serviceName + "?wsdl";
+ out.write("<ul><li>Axis2 WSDL: <a href=\"" + axis2wsdl + "\">" + axis2wsdl + "</a></li>");
+ out.write("<li>Endpoint: " + (root + "/processes/" + serviceName) + "</li>");
Iterator iter = service.getOperations();
ArrayList<String> ops = new ArrayList<String>();
while (iter.hasNext()) ops.add(((AxisOperation)iter.next()).getName().getLocalPart());
@@ -213,11 +214,11 @@
out.write("<process><pid>"+pid+"</pid>");
for (final File file : files) {
if (file.getPath().endsWith(".wsdl")) {
- String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1);
+ String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1).replace(File.separatorChar, '/');
out.write("<wsdl>"+ relativePath + "</wsdl>");
}
if (file.getPath().endsWith(".bpel")) {
- String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1);
+ String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1).replace(File.separatorChar, '/');
out.write("<bpel>"+ relativePath + "</bpel>");
}
Modified: branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -244,6 +244,9 @@
} else if (operation.equals("listProcesses")) {
OMElement namePart = messageContext.getEnvelope().getBody().getFirstElement().getFirstElement();
List<QName> processIds = _store.listProcesses(namePart.getText());
+ if (processIds == null) {
+ throw new OdeFault("Could not find process package: " + namePart.getText());
+ }
OMElement response = factory.createOMElement("processIds", null);
for (QName qname : processIds) {
OMElement nameElmt = factory.createOMElement("id", _deployapi);
Modified: branches/RiftSaw-ODE-2.2.x/axis2/src/main/wsdl/pmapi.wsdl
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2/src/main/wsdl/pmapi.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2/src/main/wsdl/pmapi.wsdl 2011-01-16 12:02:21 UTC (rev 1235)
@@ -170,7 +170,7 @@
<part name="varName" type="xsd:string"/>
</message>
<message name="getVariableInfoOutput">
- <part name="scope-info" type="typ:tVariableInfo"/>
+ <part name="variable-info" type="typ:tVariableInfo"/>
</message>
<message name="listEventsInput">
<part name="instanceFilter" type="xsd:string"/>
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-axis2-war</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/assembly/bin.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/assembly/bin.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/assembly/bin.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -26,6 +26,10 @@
</formats>
<fileSets>
+ <fileSet>
+ <directory>${project.build.directory}/axis2-webapp</directory>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
<fileSet>
<directory>src/main/webapp</directory>
@@ -177,7 +181,6 @@
<include>org.apache.axis2:addressing:mar</include>
</includes>
</dependencySet>
-
</dependencySets>
</assembly>
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/deployment.html
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/deployment.html 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/deployment.html 2011-01-16 12:02:21 UTC (rev 1235)
@@ -105,6 +105,9 @@
<li class="current">
<a href="#">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/fileupload.jsp
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/fileupload.jsp 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/fileupload.jsp 2011-01-16 12:02:21 UTC (rev 1235)
@@ -110,7 +110,7 @@
out.println("Package deployement failed!");
}
} catch (AxisFault axisFault) {
- out.println("Axis2 Fault Occurred while Sending the request!");
+ out.println(axisFault.getMessage());
}
}else{
out.println("No package Name specified!");
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/index.html
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/index.html 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/index.html 2011-01-16 12:02:21 UTC (rev 1235)
@@ -176,6 +176,9 @@
<li>
<a href="deployment.html">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/instances.html
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/instances.html 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/instances.html 2011-01-16 12:02:21 UTC (rev 1235)
@@ -79,6 +79,9 @@
<li>
<a href="deployment.html">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/js/ODE.js
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/js/ODE.js 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/js/ODE.js 2011-01-16 12:02:21 UTC (rev 1235)
@@ -27,6 +27,12 @@
}
var baseDirectoryURL = baseURL + baseDirectoryName;
+debug = function (log_txt) {
+ if (window.console != undefined) {
+ console.log(log_txt);
+ }
+}
+
var org;
if (!org) {
org = {};
@@ -320,12 +326,8 @@
return listAllProcessesRes;
}
catch (e) {
- if (typeof e == "string") {
- alert("Exception Occurred " + e.toString());
- }
- else {
- alert("Exception Occurred!" + e);
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
return null;
}
}
@@ -353,6 +355,10 @@
}
function processProcessInfoList(listAllProcessesRes){
+ if (listAllProcessesRes == null) {
+ return 0;
+ }
+
var returnInfoArray = [];
var processInfoList = org.apache.ode.DOMHelper.getElementsByTagName(
processInfoTagName,
@@ -372,10 +378,10 @@
var terminatedInstances = 0;
var scopeEle = processInfoList[i];
-
+
var pidEle = org.apache.ode.DOMHelper.getElementsByTagName("pid", processInfoNS, processInfoNSPrefix, scopeEle)[0];
var pid = org.apache.ode.DOMHelper.getText(pidEle);
-
+
var versionEle = org.apache.ode.DOMHelper.getElementsByTagName('version', processInfoNS, processInfoNSPrefix, scopeEle)[0];
var version = org.apache.ode.DOMHelper.getText(versionEle);
@@ -399,10 +405,11 @@
var urlOfName = pid.substr(++startPos, (endPos - 2));
var instanceSummaryEle = org.apache.ode.DOMHelper.getElementsByTagName("instance-summary", processInfoNS, processInfoNSPrefix, scopeEle)[0];
-
+
for(var m = instanceSummaryEle.firstChild; m != null; m = m.nextSibling){
var state = m.getAttribute("state");
var count = m.getAttribute("count");
+
if (state == 'ACTIVE') {
activeInstances = parseInt(count);
}else if (state == 'COMPLETED') {
@@ -552,7 +559,7 @@
}
var stat;
var processes = processProcessInfoList(loadProcessInfo());
- var numOfProcesses = processes.length;
+ var numOfProcesses = (processes == 0) ? 0 : processes.length;
var _ter = 0;
var _act = 0;
var _error = 0;
@@ -821,12 +828,9 @@
return responseDoc;
}
catch (e) {
- if (typeof(e) == "string") {
- org.apache.ode.Widgets.alert("Exception occured in loadInstanceInfo():\n" + e.toString());
- }
- else {
- org.apache.ode.Widgets.alert("Exception occurred in loadInstanceInfo()!");
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
+ return null;
}
}
@@ -844,6 +848,9 @@
}
function processInstanceInfo(instanceInfoDoc){
+ if (instanceInfoDoc == null) {
+ return 0;
+ }
var returnInstanceArray = [];
var instanceInfoList = org.apache.ode.DOMHelper.getElementsByTagName(
instanceInfoTagName,
@@ -1158,17 +1165,18 @@
var response = DeploymentService.listDeployedPackages();
return response;
}catch(e){
- if(typeof e == 'string'){
- org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
- }else{
- org.apache.ode.Widgets.alert("Exception occurred in loadDeployedBundles.");
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
+ return null;
}
}
function getDeployedPackages(){
var packageNames = [];
var response = loadDeployedPackages();
+ if (response == null) {
+ return 0;
+ }
var names = org.apache.ode.DOMHelper.getElementsByTagName('name',"http://www.apache.org/ode/deployapi","deployapi",response);
//var names = response.getElementsByTagName('name');
if (names.length != 0) {
@@ -1186,7 +1194,7 @@
try{
var processes = [];
var response = DeploymentService.listProcesses(packageName);
- var ids = response.getElementsByTagName('id');
+ var ids = org.apache.ode.DOMHelper.getElementsByTagName('id',"http://www.apache.org/ode/deployapi","deployapi",response);
if(ids.length != 0){
for(var i =0; i < ids.length; i++){
processes[i] = org.apache.ode.DOMHelper.getText(ids[i]);
@@ -1197,11 +1205,9 @@
}
}catch(e){
- if(typeof e == 'string'){
- org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
- }else{
- org.apache.ode.Widgets.alert("Exception occurred in getProcesses.");
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
+ return 0;
}
}
function getPackageContents(packageName){
@@ -1244,7 +1250,7 @@
var processes = getProcesses(deployedPacks[i]);
if(processes != 0){
for(var j = 0; j < processes.length; j++){
- contentHtml += processes[j]+', ';
+ contentHtml += processes[j] + (j+1 < processes.length ? ', ' : '');
}
}else{
contentHtml += 'Error occurred during getting processes or no processes.';
@@ -1255,7 +1261,7 @@
for(var k =0; k < content.length; k++){
var strC = content[k];
var index = strC.indexOf('/');
- contentHtml += strC.substr(index+1) + ", ";
+ contentHtml += strC.substr(index+1) + (k+1 < content.length ? ", " : "");
}
}else{
contentHtml += 'Error occurred during getting package Content or no content.'
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/processes.html
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/processes.html 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/main/webapp/processes.html 2011-01-16 12:02:21 UTC (rev 1235)
@@ -76,6 +76,9 @@
<li>
<a href="deployment.html">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/RiftSaw-ODE-2.2.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -225,6 +225,8 @@
} else {
System.clearProperty("ode.persistence");
}
+
+ server = null;
}
protected class ODEAxis2Server extends AxisServer {
Modified: branches/RiftSaw-ODE-2.2.x/bpel-api/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-api/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-api/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-api</artifactId>
<name>ODE :: APIs</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-api-jca/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-api-jca/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-api-jca/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-api-jca</artifactId>
<name>ODE :: JCA Connector</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-compiler/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-compiler</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -110,6 +110,7 @@
import org.apache.ode.bpel.o.OVarType;
import org.apache.ode.bpel.o.OXsdTypeVarType;
import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.GUID;
import org.apache.ode.utils.NSContext;
import org.apache.ode.utils.Namespaces;
@@ -1611,8 +1612,10 @@
return null;
try {
- return new String(StreamUtils.read(is));
- } catch (IOException e) {
+ // verify that sheet is well-formed and preserve encoding.
+ Document doc = DOMUtils.parse(is);
+ return DOMUtils.domToString(doc);
+ } catch (Exception e) {
__log.debug("IO error", e);
// todo: this should produce a message
return null;
Modified: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -22,6 +22,7 @@
import java.io.PrintWriter;
import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
import javax.wsdl.Definition;
import javax.wsdl.WSDLException;
@@ -76,6 +77,12 @@
ExtensionRegistry extensionRegistry)
throws WSDLException {
DOMUtils.pancakeNamespaces(element);
- return new XMLSchemaType(DOMUtils.domToString(element).getBytes());
+ try {
+ // xml dump is encoded in UTF-8, so the byte array should use the same encoding
+ // the reading xml parser should be able to correctly detect the encoding then.
+ return new XMLSchemaType(DOMUtils.domToString(element).getBytes("UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ throw new WSDLException(WSDLException.OTHER_ERROR, e.getMessage(), e);
+ }
}
}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -58,11 +58,13 @@
/**
* XPath compiler based on the SAXON implementation.
+ *
* @author Matthieu Riou <mriou at apache dot org>
*/
public class XPath20ExpressionCompilerImpl implements ExpressionCompiler {
- protected static final Log __log = LogFactory.getLog(XPath20ExpressionCompilerBPEL20.class);
+ protected static final Log __log = LogFactory
+ .getLog(XPath20ExpressionCompilerBPEL20.class);
protected String _bpelNS;
protected QName _qnLinkStatus;
@@ -70,32 +72,39 @@
protected QName _qnVarData;
protected QName _qnXslTransform;
- protected final XPathMessages __msgs = MessageBundle.getMessages(XPathMessages.class);
+ protected final XPathMessages __msgs = MessageBundle
+ .getMessages(XPathMessages.class);
protected Map<String, String> _properties = new HashMap<String, String>();
protected CompilerContext _compilerContext;
public XPath20ExpressionCompilerImpl(String bpelNS) {
_bpelNS = bpelNS;
_qnLinkStatus = new QName(_bpelNS, Constants.EXT_FUNCTION_GETLINKSTATUS);
- _qnVarProp = new QName(_bpelNS, Constants.EXT_FUNCTION_GETVARIABLEPROPERTY);
+ _qnVarProp = new QName(_bpelNS,
+ Constants.EXT_FUNCTION_GETVARIABLEPROPERTY);
_qnVarData = new QName(_bpelNS, Constants.EXT_FUNCTION_GETVARIABLEDATA);
- _qnXslTransform = new QName(_bpelNS, Constants.EXT_FUNCTION_DOXSLTRANSFORM);
+ _qnXslTransform = new QName(_bpelNS,
+ Constants.EXT_FUNCTION_DOXSLTRANSFORM);
- _properties.put("runtime-class", "org.apache.ode.bpel.elang.xpath20.runtime.XPath20ExpressionRuntime");
+ _properties
+ .put("runtime-class",
+ "org.apache.ode.bpel.elang.xpath20.runtime.XPath20ExpressionRuntime");
TransformerFactory trsf = new net.sf.saxon.TransformerFactoryImpl();
XslTransformHandler.getInstance().setTransformerFactory(trsf);
}
public void setCompilerContext(CompilerContext compilerContext) {
_compilerContext = compilerContext;
- XslCompilationErrorListener xe = new XslCompilationErrorListener(compilerContext);
+ XslCompilationErrorListener xe = new XslCompilationErrorListener(
+ compilerContext);
XslTransformHandler.getInstance().setErrorListener(xe);
}
/**
* @see org.apache.ode.bpel.compiler.api.ExpressionCompiler#compileJoinCondition(java.lang.Object)
*/
- public OExpression compileJoinCondition(Object source) throws CompilationException {
+ public OExpression compileJoinCondition(Object source)
+ throws CompilationException {
return _compile((Expression) source, true);
}
@@ -109,70 +118,81 @@
/**
* @see org.apache.ode.bpel.compiler.api.ExpressionCompiler#compileLValue(java.lang.Object)
*/
- public OLValueExpression compileLValue(Object source) throws CompilationException {
+ public OLValueExpression compileLValue(Object source)
+ throws CompilationException {
return (OLValueExpression) _compile((Expression) source, false);
}
/**
* @see org.apache.ode.bpel.compiler.api.ExpressionCompiler#compile(java.lang.Object)
*/
- private OExpression _compile(org.apache.ode.bpel.compiler.bom.Expression xpath, boolean isJoinCondition)
- throws CompilationException {
- OXPath20ExpressionBPEL20 oexp = new OXPath20ExpressionBPEL20(_compilerContext.getOProcess(), _qnVarData,
- _qnVarProp, _qnLinkStatus, _qnXslTransform, isJoinCondition);
+ private OExpression _compile(
+ org.apache.ode.bpel.compiler.bom.Expression xpath,
+ boolean isJoinCondition) throws CompilationException {
+ OXPath20ExpressionBPEL20 oexp = new OXPath20ExpressionBPEL20(
+ _compilerContext.getOProcess(), _qnVarData, _qnVarProp,
+ _qnLinkStatus, _qnXslTransform, isJoinCondition);
oexp.namespaceCtx = xpath.getNamespaceContext();
doJaxpCompile(oexp, xpath);
return oexp;
}
- private void doJaxpCompile(OXPath20ExpressionBPEL20 out, Expression source) throws CompilationException {
+ private void doJaxpCompile(OXPath20ExpressionBPEL20 out, Expression source)
+ throws CompilationException {
String xpathStr;
Node node = source.getExpression();
if (node == null) {
- throw new CompilationException(__msgs.errEmptyExpression(source.getURI(), new QName(source.getElement().getNamespaceURI(), source.getElement().getNodeName())));
+ throw new CompilationException(__msgs.errEmptyExpression(source
+ .getURI(), new QName(source.getElement().getNamespaceURI(),
+ source.getElement().getNodeName())));
}
if (node.getNodeType() != Node.TEXT_NODE) {
- throw new CompilationException(__msgs.errUnexpectedNodeTypeForXPath(DOMUtils.domToString(node)));
+ throw new CompilationException(
+ __msgs.errUnexpectedNodeTypeForXPath(DOMUtils
+ .domToString(node)));
}
xpathStr = node.getNodeValue();
xpathStr = xpathStr.trim();
if (xpathStr.length() == 0) {
- throw new CompilationException(__msgs.warnXPath20Syntax(DOMUtils.domToString(node), "empty string"));
+ throw new CompilationException(__msgs.warnXPath20Syntax(
+ DOMUtils.domToString(node), "empty string"));
}
out.xpath = xpathStr;
- try {
- __log.debug("Compiling expression " + xpathStr);
+ try {
+ __log.debug("Compiling expression " + xpathStr);
XPathFactory xpf = new XPathFactoryImpl();
JaxpFunctionResolver funcResolver = new JaxpFunctionResolver(
- _compilerContext, out, source.getNamespaceContext(), _bpelNS);
- JaxpVariableResolver varResolver = new JaxpVariableResolver(_compilerContext, out);
+ _compilerContext, out, source.getNamespaceContext(),
+ _bpelNS);
+ JaxpVariableResolver varResolver = new JaxpVariableResolver(
+ _compilerContext, out);
XPath xpe = xpf.newXPath();
xpe.setXPathFunctionResolver(funcResolver);
xpe.setXPathVariableResolver(varResolver);
- xpe.setNamespaceContext(source.getNamespaceContext());
+ xpe.setNamespaceContext(source.getNamespaceContext());
XPathExpression expr = xpe.compile(xpathStr);
// evaluate the expression so as to initialize the variables
- try {
- expr.evaluate(node);
- } catch (XPathExpressionException xpee) {
- // swallow errors caused by uninitialized variable
+ try {
+ expr.evaluate(node);
+ } catch (XPathExpressionException xpee) {
+ // swallow errors caused by uninitialized variable
}
for (String varExpr : extractVariableExprs(xpathStr)) {
expr = xpe.compile(varExpr);
- try {
- expr.evaluate(node);
- } catch (XPathExpressionException xpee) {
- // swallow errors caused by uninitialized variable
- }
+ try {
+ expr.evaluate(node);
+ } catch (XPathExpressionException xpee) {
+ // swallow errors caused by uninitialized variable
+ }
}
for (String functionExpr : extractFunctionExprs(xpathStr)) {
expr = xpe.compile(functionExpr);
- try {
- expr.evaluate(node);
- } catch (XPathExpressionException xpee) {
- // swallow errors caused by uninitialized variable
- }
+ try {
+ expr.evaluate(node);
+ } catch (XPathExpressionException xpee) {
+ // swallow errors caused by uninitialized variable
+ }
}
} catch (XPathExpressionException e) {
__log.debug(e);
@@ -188,90 +208,96 @@
/**
* Returns the list of variable references in the given XPath expression
- * that may not have been resolved properly, which is the case especially
- * if the expression contains a function, which short circuited the evaluation.
- *
+ * that may not have been resolved properly, which is the case especially if
+ * the expression contains a function, which short circuited the evaluation.
+ *
* @param xpathStr
- * @return list of variable expressions that may not have been resolved properly
+ * @return list of variable expressions that may not have been resolved
+ * properly
*/
- private List<String> extractVariableExprs(String xpathStr) {
- ArrayList<String> variableExprs = new ArrayList<String>();
- int firstVariable = xpathStr.indexOf("$"),
- lastVariable = xpathStr.lastIndexOf("$"),
- firstFunction = xpathStr.indexOf("(");
- StringBuffer variableExpr = new StringBuffer();
- if ((firstVariable > 0 && // the xpath references a variable
- firstFunction > 0) || // the xpath contains a function
- (firstVariable < lastVariable)) { // the xpath references multiple variables
- // most likely, the variable reference has not been resolved, so make that happen
- boolean quoted = false, doubleQuoted = false, variable = false;
- Name11Checker nameChecker = Name11Checker.getInstance();
- for (int index = 0; index < xpathStr.length(); index++) {
- char ch = xpathStr.charAt(index);
- if (ch == '\''){
- quoted = !quoted;
- }
- if (ch == '\"') {
- doubleQuoted = !doubleQuoted;
- }
- if (quoted || doubleQuoted){
- continue;
- }
- if (ch == '$') {
- variable = true;
- variableExpr.setLength(0);
- variableExpr.append(ch);
- } else {
- if (variable) {
- variableExpr.append(ch);
- // in the name is qualified, don't check if its a qname when we're at the ":" character
- if (ch == ':') {
- continue;
- }
- if (index == xpathStr.length() ||
- !nameChecker.isQName(variableExpr.substring(1))) {
- variable = false;
- variableExpr.setLength(variableExpr.length() - 1);
- variableExprs.add(variableExpr.toString());
- variableExpr.setLength(0);
- }
- }
- }
- }
- if (variableExpr.length() > 0) {
- variableExprs.add(variableExpr.toString());
- }
- }
- return variableExprs;
- }
+ private List<String> extractVariableExprs(String xpathStr) {
+ ArrayList<String> variableExprs = new ArrayList<String>();
+ int firstVariable = xpathStr.indexOf("$"), lastVariable = xpathStr
+ .lastIndexOf("$"), firstFunction = xpathStr.indexOf("(");
+ StringBuffer variableExpr = new StringBuffer();
+ if ((firstVariable > 0 && // the xpath references a variable
+ firstFunction > 0)
+ || // the xpath contains a function
+ (firstVariable < lastVariable)) { // the xpath references
+ // multiple variables
+ // most likely, the variable reference has not been resolved, so
+ // make that happen
+ boolean quoted = false, doubleQuoted = false, variable = false;
+ Name11Checker nameChecker = Name11Checker.getInstance();
+ for (int index = 0; index < xpathStr.length(); index++) {
+ char ch = xpathStr.charAt(index);
+ if (ch == '\'') {
+ quoted = !quoted;
+ }
+ if (ch == '\"') {
+ doubleQuoted = !doubleQuoted;
+ }
+ if (quoted || doubleQuoted) {
+ continue;
+ }
+ if (ch == '$') {
+ variable = true;
+ variableExpr.setLength(0);
+ variableExpr.append(ch);
+ } else {
+ if (variable) {
+ variableExpr.append(ch);
+ // in the name is qualified, don't check if its a qname
+ // when we're at the ":" character
+ if (ch == ':') {
+ continue;
+ }
+ if (index == xpathStr.length()
+ || !nameChecker.isQName(variableExpr
+ .substring(1))) {
+ variable = false;
+ variableExpr.setLength(variableExpr.length() - 1);
+ variableExprs.add(variableExpr.toString());
+ variableExpr.setLength(0);
+ }
+ }
+ }
+ }
+ if (variableExpr.length() > 0) {
+ variableExprs.add(variableExpr.toString());
+ }
+ }
+ return variableExprs;
+ }
/**
* Returns the list of function references in the given XPath expression
- * that may not have been resolved properly, which is the case especially
- * if the expression contains a preceding function, which short circuited the evaluation.
- *
+ * that may not have been resolved properly, which is the case especially if
+ * the expression contains a preceding function, which short circuited the
+ * evaluation.
+ *
* @param xpathStr
- * @return list of function expressions that may not have been resolved properly
+ * @return list of function expressions that may not have been resolved
+ * properly
*/
- private List<String> extractFunctionExprs(String xpathStr) {
- ArrayList<String> functionExprs = new ArrayList<String>();
- // Match the prefix : function name ( all contents except the ) and the closing )'s that may occur
- final String FUNCTION_REGEX = "\\w+:\\w+\\([.[^\\)]]*\\)*";
- int firstFunction = xpathStr.indexOf("("),
- lastFunction = xpathStr.lastIndexOf("(");
- if ((firstFunction > 0 && firstFunction < lastFunction)) {
- Pattern regex = Pattern.compile(FUNCTION_REGEX);
- Matcher matcher = regex.matcher(xpathStr);
-
- while (matcher.find()) {
- String function = matcher.group();
- functionExprs.add(function);
- }
- }
- return functionExprs;
- }
-
- public Map<String, String> getProperties() {
+ private List<String> extractFunctionExprs(String xpathStr) {
+ ArrayList<String> functionExprs = new ArrayList<String>();
+ final String FUNCTION_REGEX = "(\\w+:)?\\w+\\((.+)?\\)";
+ int firstFunction = xpathStr.indexOf("("), lastFunction = xpathStr
+ .lastIndexOf("(");
+ if ((firstFunction > 0 && firstFunction < lastFunction)) {
+ Pattern regex = Pattern.compile(FUNCTION_REGEX);
+ Matcher matcher = regex.matcher(xpathStr);
+
+ while (matcher.find()) {
+ String function = matcher.group();
+ functionExprs.add(function);
+ }
+ }
+ return functionExprs;
+ }
+
+ public Map<String, String> getProperties() {
return _properties;
}
Added: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.bpel.compiler_2_0;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.compiler.BpelCompiler20;
+import org.apache.ode.bpel.compiler.DefaultResourceFinder;
+import org.apache.ode.bpel.compiler.ResourceFinder;
+import org.apache.ode.bpel.compiler.bom.BpelObjectFactory;
+import org.apache.ode.bpel.o.OProcess;
+import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.DOMUtils;
+import org.apache.ode.utils.StreamUtils;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+
+public class XslTest {
+
+ private final Log __log = LogFactory.getLog(getClass());
+ private BpelCompiler20 _compiler;
+ private ResourceFinder _resfinder;
+
+ @Before
+ public void setUp() throws Exception {
+ _compiler = new BpelCompiler20();
+ File dir = new File(getClass().getResource(".").toURI());
+ _resfinder = new DefaultResourceFinder(dir, dir);
+ _compiler.setResourceFinder(_resfinder);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ _compiler = null;
+ }
+
+ @Test
+ public void testUTFEncoding() throws Exception {
+ Document original = DOMUtils.parse(getClass().getResourceAsStream("/xslt/test-utf8.xslt"));
+ OProcess op = compile("xsl-utf8");
+ OXslSheet sheet = op.xslSheets.get(URI.create("test-utf8.xslt"));
+ Assert.assertNotNull(sheet);
+ Assert.assertEquals(DOMUtils.domToString(original), sheet.sheetBody);
+ }
+
+ @Test
+ public void testISOEncoding() throws Exception {
+ Document original = DOMUtils.parse(getClass().getResourceAsStream("/xslt/test-iso.xslt"));
+ OProcess op = compile("xsl-iso");
+ OXslSheet sheet = op.xslSheets.get(URI.create("test-iso.xslt"));
+ Assert.assertNotNull(sheet);
+ Assert.assertEquals(DOMUtils.domToString(original), sheet.sheetBody);
+ }
+
+ private OProcess compile(String bpelFile) throws Exception {
+ URL bpelURL = getClass().getResource("/xslt/" + bpelFile + ".bpel");
+
+ InputSource isrc = new InputSource(bpelURL.openStream());
+ isrc.setSystemId(bpelURL.toExternalForm());
+
+ org.apache.ode.bpel.compiler.bom.Process process = BpelObjectFactory.getInstance().parse(isrc, bpelURL.toURI());
+
+ return _compiler.compile(process, _resfinder, 0);
+ }
+}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -24,33 +24,32 @@
import org.junit.*;
+public class XPath20ExpressionCompilerImplTest {
-public class XPath20ExpressionCompilerImplTest {
-
private static final String TEST_NAMESPACE = "http://www.example.com/";
private static final String EXTRACT_FUNCTION_EXPRS = "extractFunctionExprs";
@Test
public void testresolvedFunctionsExpr() throws Exception {
- XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(TEST_NAMESPACE);
- final Method[] methods =
- xp20Exp.getClass().getDeclaredMethods();
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
for (int i = 0; i < methods.length; ++i) {
if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
final Object params[] = { "count(count(1))" };
methods[i].setAccessible(true);
Object ret = methods[i].invoke(xp20Exp, params);
List<?> values = (List<?>) ret;
- Assert.assertEquals(0, values.size());
+ Assert.assertEquals(1, values.size());
}
}
}
-
+
@Test
public void testTimeStampInFunction() throws Exception {
- XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(TEST_NAMESPACE);
- final Method[] methods =
- xp20Exp.getClass().getDeclaredMethods();
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
for (int i = 0; i < methods.length; ++i) {
if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
final Object params[] = { "concat(xs:concat(\"P\", \"08:30:00.000+08:00\"))" };
@@ -62,25 +61,45 @@
}
}
-
+
@Test
public void testresolvedFunctionsTimeStamp() throws Exception {
- XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(TEST_NAMESPACE);
- final Method[] methods =
- xp20Exp.getClass().getDeclaredMethods();
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
for (int i = 0; i < methods.length; ++i) {
if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
- final Object params[] = { "concat(current-date() + xs:dayTimeDuration(concat(\"P\", $DAYS_TO_NEXT_REMINDER, \"D\")), \"T\", \"08:30:00.000+08:00\")" };
+ String multipleFunctions = "concat(current-date() + xs:dayTimeDuration(concat(\"P\", $DAYS_TO_NEXT_REMINDER, \"D\")), \"T\", \"08:30:00.000+08:00\")";
+ final Object params[] = { multipleFunctions };
methods[i].setAccessible(true);
Object ret = methods[i].invoke(xp20Exp, params);
List<?> values = (List<?>) ret;
Assert.assertEquals(1, values.size());
- Assert.assertEquals("Unexpected Function value", "xs:dayTimeDuration(concat(\"P\", $DAYS_TO_NEXT_REMINDER, \"D\"))", (String)values.get(0));
+ Assert.assertEquals("Unexpected Function value",
+ multipleFunctions, (String) values.get(0));
}
}
}
-
-
-
+ @Test
+ public void testExtractFunctionsExprs() throws Exception {
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
+ String ODE_840 = "bpel:doXslTransform(\"1.0.1/some.xsl\", $Variable.body, \"someParameter\", $OtherVariable.body, \"someParameter2\", $SwsHeaderRQ, \"someParameter3\", true(), \"someXpathParameter\", $XPath)";
+
+ for (int i = 0; i < methods.length; ++i) {
+ if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
+ final Object params[] = { ODE_840 };
+ methods[i].setAccessible(true);
+ Object ret = methods[i].invoke(xp20Exp, params);
+ List<?> values = (List<?>) ret;
+ Assert.assertEquals(1, values.size());
+ Assert.assertEquals("Unexpected Function value", ODE_840,
+ (String) values.get(0));
+ }
+ }
+
+ }
+
}
Added: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fn="http://www.w3.org/2005/xpath-functions"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://example.org/test"
+ >
+ <xsl:output method="xml" indent="no" />
+
+ <xsl:template match="/">
+ <tns:testxslt>
+ <tns:from-xslt>
+ <xsl:value-of select="'Prova lettere accentate: � � � � �'"/>
+ </tns:from-xslt>
+ <tns:from-document>
+ <xsl:value-of select="document('test.xml')"/>
+ </tns:from-document>
+ </tns:testxslt>
+ </xsl:template>
+
+ <xsl:template match="text()|@*"/>
+
+</xsl:stylesheet>
Added: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fn="http://www.w3.org/2005/xpath-functions"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://example.org/test"
+ >
+ <xsl:output method="xml" indent="no" />
+
+ <xsl:template match="/">
+ <tns:testxslt>
+ <tns:from-xslt>
+ <xsl:value-of select="'Prova lettere accentate: à è ì ò ù'"/>
+ </tns:from-xslt>
+ <tns:from-document>
+ <xsl:value-of select="document('test.xml')"/>
+ </tns:from-document>
+ </tns:testxslt>
+ </xsl:template>
+
+ <xsl:template match="text()|@*"/>
+
+</xsl:stylesheet>
Added: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test1.wsdl
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test1.wsdl (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/test1.wsdl 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<definitions name="test1"
+ targetNamespace="http://example.org/test1"
+ xmlns:tns="http://example.org/test1"
+ xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ TYPE DEFINITION - List of types participating in this BPEL process
+ The BPEL Designer will generate default request and response types
+ but you can define or import any XML Schema type and use them as part
+ of the message types.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <types>
+ <schema attributeFormDefault="unqualified" elementFormDefault="qualified"
+ targetNamespace="http://example.org/test1"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <element name="test1">
+ <complexType>
+ <sequence>
+ <element name="action" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="test1Response">
+ <complexType>
+ <sequence>
+ <any namespace="##any" processContents="lax"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ MESSAGE TYPE DEFINITION - Definition of the message types used as
+ part of the port type defintions
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <message name="test1RequestMessage">
+ <part name="payload" element="tns:test1"/>
+ </message>
+ <message name="test1ResponseMessage">
+ <part name="payload" element="tns:test1Response"/>
+ </message>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ PORT TYPE DEFINITION - A port type groups a set of operations into
+ a logical service unit.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- portType implemented by the test1 BPEL process -->
+ <portType name="test1">
+ <operation name="test1">
+ <input message="tns:test1RequestMessage" />
+ <output message="tns:test1ResponseMessage"/>
+ </operation>
+ </portType>
+
+ <binding name="test1" type="tns:test1">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
+ <operation name="test1">
+ <soap:operation soapAction="http://example.org/test1/test1"></soap:operation>
+ <input>
+ <soap:body use="literal"></soap:body>
+ </input>
+ <output>
+ <soap:body use="literal"></soap:body>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="test1">
+ <port binding="tns:test1" name="test1">
+ <soap:address location="http://FILLED_BY_SERVER/ode/processes/test1" />
+ </port>
+ </service>
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ PARTNER LINK TYPE DEFINITION
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <plnk:partnerLinkType name="test1">
+ <plnk:role name="test1Provider" portType="tns:test1"/>
+ </plnk:partnerLinkType>
+
+</definitions>
Added: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpws:process exitOnStandardFault="yes" name="test1"
+ suppressJoinFailure="yes" targetNamespace="http://example.org/test1"
+ xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="http://example.org/test1">
+ <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
+ location="test1.wsdl" namespace="http://example.org/test1"/>
+ <bpws:partnerLinks>
+ <bpws:partnerLink myRole="test1Provider" name="client" partnerLinkType="tns:test1"/>
+ </bpws:partnerLinks>
+ <bpws:variables>
+ <bpws:variable messageType="tns:test1RequestMessage" name="input"/>
+ <bpws:variable messageType="tns:test1ResponseMessage" name="output"/>
+ </bpws:variables>
+ <bpws:sequence name="main">
+ <bpws:receive createInstance="yes" name="receiveInput"
+ operation="test1" partnerLink="client" portType="tns:test1" variable="input"/>
+ <bpws:assign name="prepareResponse" validate="no">
+ <bpws:copy>
+ <bpws:from>
+ <bpws:literal>
+ <test1Response xmlns="http://example.org/test1">
+ <testxslt xmlns="http://example.org/test"/>
+ </test1Response>
+ </bpws:literal>
+ </bpws:from>
+ <bpws:to part="payload" variable="output"/>
+ </bpws:copy>
+ <bpws:copy>
+ <bpws:from><![CDATA[bpws:doXslTransform("test-iso.xslt", $input.payload)]]></bpws:from>
+ <bpws:to><![CDATA[$output.payload/*[1]]]></bpws:to>
+ </bpws:copy>
+ </bpws:assign>
+ <bpws:reply name="replyOutput" operation="test1"
+ partnerLink="client" portType="tns:test1" variable="output"/>
+ </bpws:sequence>
+</bpws:process>
Added: branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpws:process exitOnStandardFault="yes" name="test1"
+ suppressJoinFailure="yes" targetNamespace="http://example.org/test1"
+ xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="http://example.org/test1">
+ <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
+ location="test1.wsdl" namespace="http://example.org/test1"/>
+ <bpws:partnerLinks>
+ <bpws:partnerLink myRole="test1Provider" name="client" partnerLinkType="tns:test1"/>
+ </bpws:partnerLinks>
+ <bpws:variables>
+ <bpws:variable messageType="tns:test1RequestMessage" name="input"/>
+ <bpws:variable messageType="tns:test1ResponseMessage" name="output"/>
+ </bpws:variables>
+ <bpws:sequence name="main">
+ <bpws:receive createInstance="yes" name="receiveInput"
+ operation="test1" partnerLink="client" portType="tns:test1" variable="input"/>
+ <bpws:assign name="prepareResponse" validate="no">
+ <bpws:copy>
+ <bpws:from>
+ <bpws:literal>
+ <test1Response xmlns="http://example.org/test1">
+ <testxslt xmlns="http://example.org/test"/>
+ </test1Response>
+ </bpws:literal>
+ </bpws:from>
+ <bpws:to part="payload" variable="output"/>
+ </bpws:copy>
+ <bpws:copy>
+ <bpws:from><![CDATA[bpws:doXslTransform("test-utf8.xslt", $input.payload)]]></bpws:from>
+ <bpws:to><![CDATA[$output.payload/*[1]]]></bpws:to>
+ </bpws:copy>
+ </bpws:assign>
+ <bpws:reply name="replyOutput" operation="test1"
+ partnerLink="client" portType="tns:test1" variable="output"/>
+ </bpws:sequence>
+</bpws:process>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-connector/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-connector/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-connector/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-connector</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-dao/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-dao/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-dao/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-dao</artifactId>
<name>ODE :: DAO Interfaces</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-epr/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-epr/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-epr/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-epr</artifactId>
<name>ODE :: Interface Layers Common</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -40,7 +40,7 @@
}
public String getUrl() {
- return _url;
+ return _url != null ? _url.trim() : null;
}
public void setUrl(String url) {
Modified: branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -90,7 +90,7 @@
}
public String getUrl() {
- return _eprElmt.getElementsByTagNameNS(Namespaces.WS_ADDRESSING_NS, "Address").item(0).getTextContent();
+ return _eprElmt.getElementsByTagNameNS(Namespaces.WS_ADDRESSING_NS, "Address").item(0).getTextContent().trim();
}
public void setUrl(String url) {
Modified: branches/RiftSaw-ODE-2.2.x/bpel-obj/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-obj/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-obj/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-obj</artifactId>
<name>ODE :: OBJ</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-ql/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-ql/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-ql/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-ql</artifactId>
<name>ODE :: BPEL Query Language</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-runtime</artifactId>
<name>ODE :: Runtime Engine</name>
Added: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.bpel.elang;
+
+import java.io.InputStream;
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
+import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.StreamUtils;
+import org.apache.ode.utils.fs.FileUtils;
+
+/**
+ * Used to give the Xsl processor a way to access included XSL sheets
+ * by using the maps of sheets pre-processed at compilation time and
+ * stored in the OXPath10Expression.
+ */
+public class XslRuntimeUriResolver implements URIResolver {
+
+ private static final Log __log = LogFactory.getLog(XslRuntimeUriResolver.class);
+
+ private OXPath10Expression _expr;
+ private final URI _baseResourceURI;
+
+ public XslRuntimeUriResolver(OXPath10Expression expr, URI baseResourceURI) {
+ _expr = expr;
+ _baseResourceURI= baseResourceURI;
+ }
+
+ public Source resolve(String href, String base) throws TransformerException {
+ URI uri;
+ try {
+ uri = new URI(FileUtils.encodePath(href));
+ } catch (URISyntaxException e) {
+ return null;
+ }
+
+ OXslSheet sheet = _expr.getXslSheet(uri);
+ if( sheet != null) {
+ String result = sheet.sheetBody;
+ if (result != null) {
+ return new StreamSource(new StringReader(result));
+ } else {
+ return null;
+ }
+ }
+
+ InputStream result = getResourceAsStream(uri);
+ if( result != null ) {
+ return new StreamSource(result);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Given a URI this function will attempt to retrieve the resource declared at that URI location
+ * as a stream. This URI can be defined as being relative to the executing process instance's
+ * physical file location or can point to an HTTP(S) resource.
+ *
+ * @param docUri - the URI to resolve
+ * @return stream - the resource contents, or null if none found.
+ */
+ private InputStream getResourceAsStream(URI docUri) {
+ URI resolvedURI = _baseResourceURI.resolve(docUri);
+ InputStream is = null;
+
+ try {
+ // treat URI as URL and try to load it.
+ URL url = resolvedURI.toURL();
+ is = url.openStream();
+
+ // and read it to a buffer.
+ return is;
+ } catch (Exception e) {
+ __log.warn("Couldn't load XSL resource " + docUri, e);
+ }
+ return null;
+ }
+
+}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,9 +18,21 @@
*/
package org.apache.ode.bpel.elang.xpath10.runtime;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.transform.dom.DOMSource;
+
+import net.sf.saxon.dom.NodeWrapper;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.elang.XslRuntimeUriResolver;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10ExpressionBPEL20;
import org.apache.ode.bpel.explang.EvaluationContext;
@@ -33,7 +45,6 @@
import org.apache.ode.bpel.o.OXsdTypeVarType;
import org.apache.ode.bpel.o.OXslSheet;
import org.apache.ode.utils.DOMUtils;
-import org.apache.ode.utils.xsd.XSTypes;
import org.apache.ode.utils.xsl.XslTransformHandler;
import org.jaxen.Context;
import org.jaxen.Function;
@@ -42,23 +53,11 @@
import org.jaxen.UnresolvableException;
import org.jaxen.VariableContext;
import org.jaxen.XPathFunctionContext;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-import javax.xml.namespace.QName;
-import javax.xml.transform.dom.DOMSource;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import net.sf.saxon.dom.NodeWrapper;
-
-
/**
* Implementation of the various JAXEN evaluation contexts in terms of the
* {@link EvaluationContext}.
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -46,6 +46,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.elang.XslRuntimeUriResolver;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10ExpressionBPEL20;
import org.apache.ode.bpel.elang.xpath20.compiler.Constants;
@@ -82,7 +83,9 @@
}
public XPathFunction resolveFunction(QName functionName, int arity) {
- __log.debug("Resolving function " + functionName);
+ if (__log.isDebugEnabled()) {
+ __log.debug("Resolving function " + functionName);
+ }
if (functionName.getNamespaceURI() == null) {
throw new NullPointerException("Undeclared namespace for " + functionName);
} else if (functionName.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS) ||
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -19,13 +19,10 @@
package org.apache.ode.bpel.elang.xpath20.runtime;
-import java.util.Calendar;
-
import javax.xml.namespace.QName;
import javax.xml.xpath.XPathVariableResolver;
import net.sf.saxon.Configuration;
-import net.sf.saxon.om.Item;
import net.sf.saxon.type.AtomicType;
import net.sf.saxon.type.SchemaType;
import net.sf.saxon.type.ValidationException;
@@ -46,8 +43,6 @@
import org.apache.ode.bpel.o.OXsdTypeVarType;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.Namespaces;
-import org.apache.ode.utils.xsd.XSTypes;
-import org.w3c.dom.Document;
import org.w3c.dom.Node;
/**
@@ -68,7 +63,9 @@
}
public Object resolveVariable(QName variableName) {
- __log.debug("Resolving variable " + variableName);
+ if (__log.isDebugEnabled()) {
+ __log.debug("Resolving variable " + variableName);
+ }
if (!(_oxpath instanceof OXPath10ExpressionBPEL20)) {
throw new IllegalStateException("XPath variables not supported for bpel 1.1");
@@ -128,7 +125,7 @@
}
}
- public static Value convertSimpleTypeToSaxon(QName type, String value, Configuration _config) {
+ public Value convertSimpleTypeToSaxon(QName type, String value) {
int fp = _config.getNamePool().allocate("", type.getNamespaceURI(), type.getLocalPart());
SchemaType type2 = _config.getSchemaType(fp);
if (type2 == null || !type2.isAtomicType()) {
@@ -148,11 +145,12 @@
}
}
- public static Object getSimpleContent(Node simpleNode, QName type) {
- Document doc = (simpleNode instanceof Document) ? ((Document) simpleNode) : simpleNode.getOwnerDocument();
+ public Object getSimpleContent(Node simpleNode, QName type) {
String text = simpleNode.getTextContent();
- Object o = convertSimpleTypeToSaxon(type, text, Configuration.makeConfiguration(null, null));
- __log.debug("getSimpleContent for " + DOMUtils.domToString(simpleNode) + " " + type + " returned " + o);
+ Object o = convertSimpleTypeToSaxon(type, text);
+ if (__log.isDebugEnabled()) {
+ __log.debug("getSimpleContent for " + DOMUtils.domToString(simpleNode) + " " + type + " returned " + o);
+ }
return o;
}
}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -33,8 +33,8 @@
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-import net.sf.saxon.om.NamespaceConstant;
-import net.sf.saxon.trans.DynamicError;
+import net.sf.saxon.Configuration;
+import net.sf.saxon.trans.XPathException;
import net.sf.saxon.value.DurationValue;
import net.sf.saxon.xpath.XPathFactoryImpl;
@@ -73,6 +73,8 @@
/** Class-level logger. */
private static final Log __log = LogFactory.getLog(XPath20ExpressionRuntime.class);
+
+ private final XPathFactory _xpf = new XPathFactoryImpl();
public XPath20ExpressionRuntime(){
}
@@ -114,7 +116,9 @@
}
if (someRes instanceof List) {
result = (List) someRes;
- __log.debug("Returned list of size " + result.size());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned list of size " + result.size());
+ }
if ((result.size() == 1) && !(result.get(0) instanceof Node)) {
// Dealing with a Java class
Object simpleType = result.get(0);
@@ -139,7 +143,9 @@
}
} else if (someRes instanceof NodeList) {
NodeList retVal = (NodeList) someRes;
- __log.debug("Returned node list of size " + retVal.getLength());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned node list of size " + retVal.getLength());
+ }
result = new ArrayList(retVal.getLength());
for(int m = 0; m < retVal.getLength(); ++m) {
Node val = retVal.item(m);
@@ -165,10 +171,25 @@
public Node evaluateNode(OExpression cexp, EvaluationContext ctx) throws FaultException, EvaluationException {
List retVal = evaluate(cexp, ctx);
- if (retVal.size() == 0)
- throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, "No results for expression: " + cexp, new Throwable("ignoreMissingFromData"));
- if (retVal.size() > 1)
- throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, "Multiple results for expression: " + cexp);
+ if (retVal.size() == 0 || retVal.size() > 1) {
+ StringBuffer msg = new StringBuffer((retVal.size() == 0) ? "No results for expression: '" : "Multiple results for expression: '");
+ if (cexp instanceof OXPath10Expression) {
+ msg.append(((OXPath10Expression)cexp).xpath);
+ } else {
+ msg.append(cexp.toString());
+ }
+ msg.append('\'');
+ if (ctx.getRootNode() != null) {
+ msg.append(" against '");
+ msg.append(DOMUtils.domToString(ctx.getRootNode()));
+ msg.append('\'');
+ }
+
+ if (retVal.size() == 0)
+ throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, msg.toString(), new Throwable("ignoreMissingFromData"));
+ if (retVal.size() > 1)
+ throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, msg.toString());
+ }
return (Node) retVal.get(0);
}
@@ -213,21 +234,22 @@
private Object evaluate(OExpression cexp, EvaluationContext ctx, QName type) throws FaultException, EvaluationException {
try {
OXPath20ExpressionBPEL20 oxpath20 = ((OXPath20ExpressionBPEL20) cexp);
- XPathFactory xpf = new XPathFactoryImpl();
- JaxpFunctionResolver funcResolver = new JaxpFunctionResolver(
- ctx, oxpath20);
- JaxpVariableResolver varResolver = new JaxpVariableResolver(ctx, oxpath20, ((XPathFactoryImpl) xpf).getConfiguration());
- xpf.setXPathFunctionResolver(funcResolver);
- xpf.setXPathVariableResolver(varResolver);
- XPath xpe = xpf.newXPath();
+ JaxpFunctionResolver funcResolver = new JaxpFunctionResolver(ctx, oxpath20);
+ JaxpVariableResolver varResolver = new JaxpVariableResolver(ctx, oxpath20, ((XPathFactoryImpl) _xpf).getConfiguration());
+ XPath xpe = _xpf.newXPath();
+ xpe.setXPathFunctionResolver(funcResolver);
+ xpe.setXPathVariableResolver(varResolver);
xpe.setNamespaceContext(oxpath20.namespaceCtx);
String xpath = ((OXPath10Expression)cexp).xpath;
XPathExpression expr = xpe.compile(xpath);
- Node contextNode = ctx.getRootNode() == null ? DOMUtils.newDocument() : ctx.getRootNode();
+ Node contextNode = ctx.getRootNode();
+ if (contextNode == null) {
+ contextNode = DOMUtils.newDocument();
+ }
// Create step nodes in XPath in case it is incompletely instantiated
if (oxpath20.insertMissingData) {
- XPath20ExpressionModifier modifier = new XPath20ExpressionModifier(oxpath20.namespaceCtx, ((XPathFactoryImpl) xpf).getConfiguration().getNamePool());
+ XPath20ExpressionModifier modifier = new XPath20ExpressionModifier(oxpath20.namespaceCtx, ((XPathFactoryImpl) _xpf).getConfiguration().getNamePool());
modifier.insertMissingData(expr, ctx.getRootNode());
}
Object evalResult = expr.evaluate(contextNode, type);
@@ -241,8 +263,8 @@
} catch (XPathExpressionException e) {
// Extracting the real cause from all this wrapping isn't a simple task
Throwable cause = e.getCause() != null ? e.getCause() : e;
- if (cause instanceof DynamicError) {
- Throwable th = ((DynamicError)cause).getException();
+ if (cause instanceof XPathException) {
+ Throwable th = ((XPathException)cause).getException();
if (th != null) {
cause = th;
if (cause.getCause() != null) cause = cause.getCause();
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -162,7 +162,9 @@
if (someRes instanceof List) {
result = (List) someRes;
- __log.debug("Returned list of size " + result.size());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned list of size " + result.size());
+ }
if ((result.size() == 1) && !(result.get(0) instanceof Node)) {
// Dealing with a Java class
@@ -191,7 +193,9 @@
}
} else if (someRes instanceof NodeList) {
NodeList retVal = (NodeList) someRes;
- __log.debug("Returned node list of size " + retVal.getLength());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned node list of size " + retVal.getLength());
+ }
result = new ArrayList(retVal.getLength());
for (int m = 0; m < retVal.getLength(); ++m) {
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -951,7 +951,7 @@
// If we have a transaction, we do this in the current transaction
if(__log.isDebugEnabled()) __log.debug("Creating new process DAO for " + _pid + " (guid=" + _oprocess.guid + ")...");
createProcessDAO(_engine._contexts.dao.getConnection(), _pid, _pconf.getVersion(), _oprocess);
- if(__log.isInfoEnabled()) __log.info("Created new process DAO for " + _pid + " (guid=" + _oprocess.guid + ").");
+ if(__log.isDebugEnabled()) __log.debug("Created new process DAO for " + _pid + " (guid=" + _oprocess.guid + ").");
} else {
try {
_engine._contexts.scheduler.execTransaction(new Callable<Object>() {
@@ -977,7 +977,7 @@
private void bounceProcessDAOInDB(final BpelDAOConnection conn, final QName pid, final long version, final OProcess oprocess) {
if(__log.isDebugEnabled()) __log.debug("Creating new process DAO for " + pid + " (guid=" + oprocess.guid + ")...");
createProcessDAO(conn, pid, version, oprocess);
- if(__log.isInfoEnabled()) __log.info("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ").");
+ if(__log.isDebugEnabled()) __log.debug("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ").");
}
public int getInstanceInUseCount() {
@@ -1008,7 +1008,7 @@
for (String correlator : oprocess.getCorrelators()) {
newDao.addCorrelator(correlator);
}
- if(__log.isInfoEnabled()) __log.info("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ")");
+ if(__log.isDebugEnabled()) __log.debug("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ")");
}
} catch (BpelEngineException ex) {
throw ex;
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -700,6 +700,14 @@
_dao.finishCompletion();
failOutstandingMessageExchanges();
+
+ _bpelProcess._engine._contexts.scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
+ public void afterCompletion(boolean success) {
+ }
+ public void beforeCompletion() {
+ _dao.delete(_bpelProcess.getCleanupCategories(false), false);
+ }
+ });
}
public void registerTimer(TimerResponseChannel timerChannel, Date timeToFire) {
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -40,7 +40,7 @@
__extToTypeMap.put(".xsd", "http://www.w3.org/2001/XMLSchema");
__extToTypeMap.put(".svg", "http://www.w3.org/2000/svg");
- __extToTypeMap.put(".cbp", "http://www.fivesight.com/schemas/2005/12/19/CompiledBPEL");
+ __extToTypeMap.put(".cbp", "http://ode.apache.org/schemas/2005/12/19/CompiledBPEL");
// Assume BPEL is 2.0 for now...
__extToTypeMap.put(".bpel", "http://schemas.xmlsoap.org/ws/2004/03/business-process/");
}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -114,7 +114,9 @@
public Object invoke(String actionName, Object[] params, String[] signature)
throws MBeanException, ReflectionException {
- try {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
Method m = _pm.getClass().getMethod(actionName, findTypes(_pm.getClass().getClassLoader(), signature));
if (m == null) {
throw new ReflectionException(new NoSuchMethodException(actionName));
@@ -122,7 +124,9 @@
return m.invoke(_pm, params);
} catch (Exception e) {
throw new ReflectionException(e);
- }
+ } finally {
+ Thread.currentThread().setContextClassLoader(cl);
+ }
}
private Class[] findTypes(ClassLoader loader, String[] signature) throws ReflectionException {
Added: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.bpel.elang;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+import java.net.URI;
+
+import javax.xml.transform.Source;
+
+import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
+import org.apache.ode.utils.DOMUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.w3c.dom.Document;
+
+public class URIResolverTest {
+
+ @Test
+ public void testResolveExistingFile() throws Exception {
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xpath20/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+ Source source = resolver.resolve("variables.xml", null);
+ Document doc = DOMUtils.sourceToDOM(source);
+
+ assertThat(DOMUtils.domToString(doc), containsString("<variables>"));
+ }
+
+ @Test
+ public void testResolveNonExistingFile() throws Exception {
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xpath20/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+
+ assertNull(resolver.resolve("variablesa.xml", null));
+ }
+
+ @Test
+ public void testEncoding() throws Exception {
+ Document original = DOMUtils.parse(getClass().getResourceAsStream("/xslt/test.xml"));
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xslt/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+
+ Document doc = DOMUtils.sourceToDOM(resolver.resolve("test.xml", null));
+ assertArrayEquals(original.getDocumentElement().getTextContent().trim().getBytes(), doc.getDocumentElement().getTextContent().trim().getBytes());
+ }
+
+ @Test
+ @Ignore("automated tests should not rely on remote connections.")
+ public void testResolveURL() throws Exception {
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xpath20/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+ Source source = resolver.resolve("https://svn.apache.org/repos/asf/ode/trunk/bpel-schemas/src/main/xsd/pmap...", null);
+ Document doc = DOMUtils.sourceToDOM(source);
+
+ assertThat(DOMUtils.domToString(doc), containsString("activity-info"));
+ }
+
+}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -20,7 +20,11 @@
package org.apache.ode.bpel.elang.xpath20.runtime;
import javax.xml.namespace.QName;
+import javax.xml.xpath.XPathFactory;
+import net.sf.saxon.Configuration;
+import net.sf.saxon.xpath.XPathFactoryImpl;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.utils.DOMUtils;
@@ -31,15 +35,19 @@
private static Log __log = LogFactory.getLog(XsdTypesTest.class);
public void testDateTime() throws Exception {
- Object o = JaxpVariableResolver.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper>2010-01-25T15:38:54.82Z</temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
+ XPathFactoryImpl xpf = new XPathFactoryImpl();
+ JaxpVariableResolver jvr = new JaxpVariableResolver(null, null, xpf.getConfiguration());
+ Object o = jvr.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper>2010-01-25T15:38:54.82Z</temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
__log.debug(o);
assertTrue(o.toString().contains("2010-01-25T15:38:54.82Z"));
}
public void testEmptyDateTime() throws Exception {
- Object o = JaxpVariableResolver.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper></temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
+ XPathFactoryImpl xpf = new XPathFactoryImpl();
+ JaxpVariableResolver jvr = new JaxpVariableResolver(null, null, xpf.getConfiguration());
+ Object o = jvr.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper></temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
__log.debug(o);
assertTrue(o.toString().equals(""));
}
-
+
}
Added: branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/resources/xslt/test.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/resources/xslt/test.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-runtime/src/test/resources/xslt/test.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document xmlns="http://example.org/testDocument">
+Prova lettere accentate: à è ì ò ù
+</document>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-schemas/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-schemas/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-schemas/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-schemas</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-scripts/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-scripts/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-scripts/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-scripts</artifactId>
<name>ODE :: BPEL Test Script Files</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-store/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-store/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-store/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-store</artifactId>
<name>ODE :: Process Store</name>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -55,17 +55,8 @@
import org.apache.ode.utils.InternPool.InternableBlock;
import org.apache.ode.utils.fs.FileUtils;
import org.apache.xmlbeans.XmlOptions;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationEvent;
-import org.springframework.context.MessageSourceResolvable;
-import org.springframework.context.NoSuchMessageException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.context.support.FileSystemXmlApplicationContext;
-import org.springframework.core.io.Resource;
import org.w3c.dom.Node;
/**
@@ -170,7 +161,7 @@
for (File bpel : bpels) {
String b = bpel.getAbsolutePath();
File cbp = new File(b.substring(0,b.lastIndexOf(".bpel")) + ".cbp");
- if (!cbp.exists()) {
+ if (!cbp.exists() || cbp.lastModified() < bpel.lastModified()) {
__log.debug("compiling " + bpel);
compile(bpel);
} else {
Modified: branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -149,6 +149,10 @@
shutdownInternalDB(_inMemDs);
_inMemDs = null;
}
+ if (_executor != null) {
+ _executor.shutdownNow();
+ _executor = null;
+ }
}
@Override
@@ -960,8 +964,11 @@
}
public void refreshSchedules(String packageName) {
- for( QName pid : listProcesses(packageName) ) {
- fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.SCHEDULE_SETTINGS_CHANGED, pid, packageName));
+ List<QName> pids = listProcesses(packageName);
+ if (pids != null) {
+ for( QName pid : pids ) {
+ fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.SCHEDULE_SETTINGS_CHANGED, pid, packageName));
+ }
}
}
}
Modified: branches/RiftSaw-ODE-2.2.x/bpel-test/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-test/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-test/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-test</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -54,6 +54,10 @@
go("/bpel/2.0/TestIf");
}
+ @Test public void testIfBoolean() throws Throwable {
+ go("/bpel/2.0/TestIfBoolean");
+ }
+
/**
* Tests the wait "for" syntax.
* @throws Throwable
Added: branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,88 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<process name="TestIfBoolean"
+ targetNamespace="http://ode/bpel/unit-test"
+ xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="http://ode/bpel/unit-test"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:test="http://ode/bpel/unit-test.wsdl">
+
+ <import location="TestIfBoolean.wsdl"
+ namespace="http://ode/bpel/unit-test.wsdl"
+ importType="http://schemas.xmlsoap.org/wsdl/" />
+
+ <partnerLinks>
+ <partnerLink name="helloPartnerLink"
+ partnerLinkType="test:HelloPartnerLinkType"
+ myRole="me" />
+ </partnerLinks>
+
+ <variables>
+ <variable name="myVar" messageType="test:HelloMessage"/>
+ <variable name="tmpBool" type="xsd:boolean"/>
+ </variables>
+
+ <sequence>
+ <receive
+ name="start"
+ partnerLink="helloPartnerLink"
+ portType="test:HelloPortType"
+ operation="hello"
+ variable="myVar"
+ createInstance="yes"/>
+
+ <assign name="assign1">
+ <copy>
+ <from>false()</from>
+ <to variable="tmpBool"/>
+ </copy>
+ </assign>
+ <if>
+ <!-- <condition>boolean($tmpBool)</condition> --> <!-- TRUE -->
+ <!-- <condition>$tmpBool</condition> --> <!-- TRUE -->
+ <!-- <condition>string($tmpBool)='true'</condition> --> <!-- FALSE -->
+ <!-- <condition>true()</condition> --><!-- TRUE -->
+ <condition>$tmpBool</condition>
+ <assign name="assignTrue">
+ <copy>
+ <from>
+ <literal>TRUE</literal>
+ </from>
+ <to variable="myVar" part="TestPart"/>
+ </copy>
+ </assign>
+ <else>
+ <assign name="assignFalse">
+ <copy>
+ <from>
+ <literal>FALSE</literal>
+ </from>
+ <to variable="myVar" part="TestPart"/>
+ </copy>
+ </assign>
+ </else>
+ </if>
+ <reply name="end"
+ partnerLink="helloPartnerLink"
+ portType="test:HelloPortType"
+ operation="hello"
+ variable="myVar"/>
+ </sequence>
+</process>
Added: branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIfBoolean.wsdl
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIfBoolean.wsdl (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIfBoolean.wsdl 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<wsdl:definitions
+ targetNamespace="http://ode/bpel/unit-test.wsdl"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ode/bpel/unit-test.wsdl"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
+
+ <wsdl:message name="HelloMessage">
+ <wsdl:part name="TestPart" type="xsd:string"/>
+ </wsdl:message>
+
+ <wsdl:portType name="HelloPortType">
+ <wsdl:operation name="hello">
+ <wsdl:input message="tns:HelloMessage" name="TestIn"/>
+ <wsdl:output message="tns:HelloMessage" name="TestOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="HelloSoapBinding" type="tns:HelloPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="hello">
+ <soap:operation soapAction="" style="rpc"/>
+ <wsdl:input>
+ <soap:body
+ namespace="http://ode/bpel/unit-test.wsdl"
+ use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body
+ namespace="http://ode/bpel/unit-test.wsdl"
+ use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="HelloService">
+ <wsdl:port name="HelloPort" binding="tns:HelloSoapBinding">
+ <soap:address location="http://localhost:8080/ode/processes/helloWorld"/>
+ </wsdl:port>
+ </wsdl:service>
+
+ <plnk:partnerLinkType name="HelloPartnerLinkType">
+ <plnk:role name="me" portType="tns:HelloPortType"/>
+ <plnk:role name="you" portType="tns:HelloPortType"/>
+ </plnk:partnerLinkType>
+</wsdl:definitions>
+
Added: branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,30 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
+ xmlns:pns="http://ode/bpel/unit-test"
+ xmlns:wns="http://ode/bpel/unit-test.wsdl">
+
+
+ <process name="pns:TestIfBoolean">
+ <active>true</active>
+ <provide partnerLink="helloPartnerLink">
+ <service name="wns:HelloService" port="HelloPort"/>
+ </provide>
+ </process>
+</deploy>
Added: branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties
===================================================================
--- branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,22 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+namespace=http://ode/bpel/unit-test.wsdl
+service=HelloService
+operation=hello
+request1=<message><TestPart>2.0</TestPart></message>
+response1=.*FALSE.*
Modified: branches/RiftSaw-ODE-2.2.x/dao-hibernate/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-hibernate/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-hibernate/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-dao-hibernate</artifactId>
<name>ODE :: Hibernate DAO Implementation</name>
Modified: branches/RiftSaw-ODE-2.2.x/dao-hibernate-db/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-hibernate-db/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-hibernate-db/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-dao-hib-db</artifactId>
@@ -68,8 +68,8 @@
<phase>generate-sources</phase>
<configuration>
<tasks>
- <property name="maven.runtime.classpath" refid="maven.compile.classpath"/>
- <ant antfile="build.xml" target="create-schema" inheritRefs="true"/>
+ <property name="maven.runtime.classpath" refid="maven.compile.classpath" />
+ <ant antfile="build.xml" target="create-schema" inheritRefs="true" />
</tasks>
</configuration>
<goals>
Modified: branches/RiftSaw-ODE-2.2.x/dao-jpa/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-jpa/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-jpa/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,7 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-dao-jpa</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessInstanceDAOImpl.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessInstanceDAOImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessInstanceDAOImpl.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -70,17 +70,23 @@
@NamedQuery(name=ProcessInstanceDAOImpl.SELECT_FAULT_IDS_BY_PROCESS, query="select i._faultId from ProcessInstanceDAOImpl as i where i._process = :process and i._faultId is not null"),
@NamedQuery(name=ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID,
query="select count(i._instanceId), max(i._lastRecovery) from ProcessInstanceDAOImpl as i where i._process._processId = :processId and i._state in(:states) and exists(select r from ActivityRecoveryDAOImpl r where i = r._instance)"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS,
+ query="select i._process._processId, count(i._instanceId), max(i._lastRecovery) from ProcessInstanceDAOImpl as i where i._process._processId in (:processIds) and i._state = 20 and exists(select r from ActivityRecoveryDAOImpl r where i = r._instance) group by i._process._processId"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES,
+ query="select i._process._processId, count(i._instanceId) from ProcessInstanceDAOImpl as i where i._process._processId in (:processIds) and i._state in(:states) group by i._process._processId"),
@NamedQuery(name=ProcessInstanceDAOImpl.DELETE_INSTANCE_BY_ID, query="delete from ProcessInstanceDAOImpl as p where p._instanceId = :instanceId")
})
public class ProcessInstanceDAOImpl extends BpelDAO implements ProcessInstanceDAO {
private static final Log __log = LogFactory.getLog(ProcessInstanceDAOImpl.class);
public final static String DELETE_INSTANCES_BY_PROCESS = "DELETE_INSTANCES_BY_PROCESS";
- public final static String SELECT_INSTANCE_IDS_BY_PROCESS = "SELECT_INSTANCE_IDS_BY_PROCESS";
- public final static String COUNT_INSTANCE_IDS_BY_PROCESS = "COUNT_INSTANCE_IDS_BY_PROCESS";
+ public final static String SELECT_INSTANCE_IDS_BY_PROCESS = "SELECT_INSTANCE_IDS_BY_PROCESS";
+ public final static String COUNT_INSTANCE_IDS_BY_PROCESS = "COUNT_INSTANCE_IDS_BY_PROCESS";
public final static String SELECT_FAULT_IDS_BY_PROCESS = "SELECT_FAULT_IDS_BY_PROCESS";
public final static String COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID = "COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID";
+ public final static String COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS = "COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS";
+ public static final String COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES = "COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES";
public final static String DELETE_INSTANCE_BY_ID = "DELETE_INSTANCE_BY_ID";
Modified: branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessManagementDAOImpl.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessManagementDAOImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/bpel/ProcessManagementDAOImpl.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -20,23 +20,25 @@
package org.apache.ode.dao.jpa.bpel;
import java.util.Collection;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import javax.xml.namespace.QName;
+
import javax.persistence.EntityManager;
import javax.persistence.Query;
+import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.InstanceFilter;
+import org.apache.ode.bpel.common.InstanceFilter.StatusKeys;
import org.apache.ode.dao.bpel.BpelDAOConnection;
import org.apache.ode.dao.bpel.ProcessInstanceDAO;
import org.apache.ode.dao.bpel.ProcessManagementDAO;
-import org.apache.ode.dao.bpel.ProcessManagementDAO.FailedSummaryValue;
-import org.apache.ode.dao.bpel.ProcessManagementDAO.InstanceSummaryKey;
+
public class ProcessManagementDAOImpl implements ProcessManagementDAO {
private static final Log __log = LogFactory.getLog(ProcessManagementDAOImpl.class);
@@ -85,10 +87,35 @@
}
public Map<InstanceSummaryKey, Long> countInstancesSummary(Set<String> pids) {
- return new HashMap<InstanceSummaryKey, Long>();
+ Map<InstanceSummaryKey, Long> result = new HashMap<InstanceSummaryKey, Long>();
+ if (!pids.isEmpty()) {
+ for (StatusKeys status : InstanceFilter.StatusKeys.values()) {
+ Query query = em.createNamedQuery(ProcessInstanceDAOImpl.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES);
+ query.setParameter("states", new InstanceFilter("status=" + status.toString()).convertFilterState());
+ query.setParameter("processIds", pids);
+ for (Object o : query.getResultList()) {
+ Object[] row = (Object[]) o;
+ InstanceSummaryKey key = new InstanceSummaryKey(row[0].toString(), status.toString());
+ result.put(key, (Long) row[1]);
+ }
+ }
+ }
+
+ return result;
}
public Map<String, FailedSummaryValue> findFailedCountAndLastFailedDateForProcessIds(Set<String> pids) {
- return new HashMap<String, FailedSummaryValue>();
+ Map<String, FailedSummaryValue> result = new HashMap<String, FailedSummaryValue>();
+ if (!pids.isEmpty()) {
+ Query query = em.createNamedQuery(ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS);
+ query.setParameter("processIds", pids);
+ for (Object o : query.getResultList()) {
+ System.out.println(o);
+ Object[] row = (Object[]) o;
+ result.put(row[0].toString(), new FailedSummaryValue((Long) row[1], (Date) row[2]));
+ }
+ }
+ return result;
+
}
}
Modified: branches/RiftSaw-ODE-2.2.x/dao-jpa-hibernate/.classpath
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-jpa-hibernate/.classpath 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-jpa-hibernate/.classpath 2011-01-16 12:02:21 UTC (rev 1235)
@@ -88,7 +88,6 @@
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-jms/2.0.6/spring-jms-2.0.6.jar"/>
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-support/2.0.6/spring-support-2.0.6.jar"/>
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/woden/woden/1.0-incubating-M7b/woden-1.0-incubating-M7b.jar"/>
<classpathentry kind="var" path="M2_REPO/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/woodstox/wstx-asl/3.2.4/wstx-asl-3.2.4.jar"/>
<classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar"/>
Modified: branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa/.classpath
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa/.classpath 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa/.classpath 2011-01-16 12:02:21 UTC (rev 1235)
@@ -93,7 +93,6 @@
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-jms/2.0.6/spring-jms-2.0.6.jar"/>
<classpathentry kind="var" path="M2_REPO/org/springframework/spring-support/2.0.6/spring-support-2.0.6.jar"/>
<classpathentry kind="var" path="M2_REPO/stax/stax-api/1.0.1/stax-api-1.0.1.jar"/>
- <classpathentry kind="var" path="M2_REPO/org/apache/woden/woden/1.0-incubating-M7b/woden-1.0-incubating-M7b.jar"/>
<classpathentry kind="var" path="M2_REPO/wsdl4j/wsdl4j/1.6.2/wsdl4j-1.6.2.jar"/>
<classpathentry kind="var" path="M2_REPO/org/codehaus/woodstox/wstx-asl/3.2.4/wstx-asl-3.2.4.jar"/>
<classpathentry kind="var" path="M2_REPO/xalan/xalan/2.7.1/xalan-2.7.1.jar"/>
Modified: branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa-derby/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa-derby/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/dao-jpa-ojpa-derby/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,7 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-dao-jpa-ojpa-derby</artifactId>
@@ -161,7 +161,7 @@
</goals>
<configuration>
<tasks>
- <property name="maven.runtime.classpath" refid="maven.compile.classpath"/>
+ <property name="maven.runtime.classpath" refid="maven.compile.classpath" />
<ant antfile="build.xml" target="create-schema" />
</tasks>
</configuration>
@@ -204,7 +204,7 @@
</goals>
<configuration>
<tasks>
- <property name="ode.version" value="${project.version}"/>
+ <property name="ode.version" value="${project.version}" />
<ant antfile="build.xml" target="zip-derby-db" />
</tasks>
</configuration>
Added: branches/RiftSaw-ODE-2.2.x/distro/license/bubbling-LICENSE
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/license/bubbling-LICENSE (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/license/bubbling-LICENSE 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,41 @@
+Software License Agreement (BSD License)
+
+* Javascript Bubbling Library
+* http://www.bubbling-library.com
+
+Copyright (c) 2009, Caridy Patino.
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the
+ following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+To get started using Bubbling Library. Simply include the two source files into the head of your document:
+
+<!-- YUI Core -->
+<script src="http://yui.yahooapis.com/2.7.0/build/utilities/utilities.js" type="text/javascript"></script>
+<!-- Bubbling Library Core -->
+<script src="http://js.bubbling-library.com/2.1/build/bubbling/bubbling.js" type="text/javascript"></script>
+
+The documentation can be found here:
+http://www.bubbling-library.com/eng/api/docs/
+
+Best,
+Caridy Patino
\ No newline at end of file
Added: branches/RiftSaw-ODE-2.2.x/distro/license/yui-LICENSE
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/license/yui-LICENSE (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/license/yui-LICENSE 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,58 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with
+or without modification, are permitted provided that the following
+conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer. * Redistributions
+in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution. * Neither the name of
+Yahoo! Inc. nor the names of its contributors may be used to endorse or
+promote products derived from this software without specific prior
+written permission of Yahoo! Inc.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Sources of
+Intellectual Property Included in the YUI Library
+
+YUI is issued by Yahoo! under the BSD license above. Below is a list of
+certain publicly available software that is the source of intellectual
+property in YUI, along with the licensing terms that pertain to
+thosesources of IP. This list is for informational purposes only and is
+not intended to represent an exhaustive list of third party
+contributions to the YUI.
+
+* Douglas Crockford's JSON parsing and stringifying methods: In the JSON
+Utility, Douglas Crockford's JSON parsing and stringifying methods are
+adapted from work published at JSON.org. The adapted work is in the
+public domain.
+
+* Robert Penner's animation-easing algorithms: In the Animation Utility,
+YUI makes use of Robert Penner's algorithms for easing.
+
+* Geoff Stearns's SWFObject: In the Charts Control and the Uploader
+versions through 2.7.0, YUI makes use of Geoff Stearns's SWFObject v1.5
+for Flash Player detection and embedding. More information on SWFObject
+can be found here (http://blog.deconcept.com/swfobject/). SWFObject is
+(c) 2007 Geoff Stearns and is released under the MIT License
+(http://www.opensource.org/licenses/mit-license.php).
+
+* Diego Perini's IEContentLoaded technique: The Event Utility employs a
+technique developed by Diego Perini and licensed under GPL. YUI's use of
+this technique is included under our BSD license with the author's
+permission.
+
+
Modified: branches/RiftSaw-ODE-2.2.x/distro/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/distro/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-distro</artifactId>
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,3 @@
+Import-Package: org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi
+Include-Resource: src/main/resources
+Export-Package:
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.ode.examples</groupId>
+ <artifactId>helloworld-bundle</artifactId>
+ <name>ODE :: Examples :: Hello World OSGi</name>
+ <version>1.3.5</version>
+ <packaging>bundle</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>1.4.3</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.groupId}-${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <_include>-osgi.bnd</_include>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>send</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>eviware</groupId>
+ <artifactId>maven-soapui-plugin</artifactId>
+ <version>3.6</version>
+ <configuration>
+ <projectFile>${basedir}/src/test/resources/helloworld-soapui-project.xml</projectFile>
+ <printReport>true</printReport>
+ </configuration>
+ <executions>
+ <execution>
+ <id>soap-integration-test</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>eviwarePluginRepository</id>
+ <url>http://www.eviware.com/repository/maven2/</url>
+ </pluginRepository>
+ </pluginRepositories>
+ </profile>
+ </profiles>
+
+</project>
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<process name="HelloWorld2"
+ targetNamespace="urn:/HeaderTest.bpel"
+ xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="urn:/HeaderTest.bpel"
+ xmlns:hello="urn:/HelloWorld2.wsdl"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <import location="HelloWorld2.wsdl"
+ namespace="urn:/HelloWorld2.wsdl"
+ importType="http://schemas.xmlsoap.org/wsdl/" />
+
+ <partnerLinks>
+ <partnerLink name="helloPartnerLink"
+ partnerLinkType="hello:HelloPartnerLinkType"
+ myRole="Provider" />
+ </partnerLinks>
+
+ <variables>
+ <variable name="request" messageType="hello:HelloRequest"/>
+ <variable name="response" messageType="hello:HelloResponse"/>
+ <variable name="text" type="xsd:string"/>
+ </variables>
+
+ <sequence>
+ <receive
+ name="start"
+ partnerLink="helloPartnerLink"
+ portType="hello:HelloPortType"
+ operation="Hello"
+ variable="request"
+ createInstance="yes"/>
+
+ <assign name="assign1">
+ <copy>
+ <from>$request.body/hello:text</from>
+ <to variable="text"/>
+ </copy>
+ <copy>
+ <from>
+ <literal>
+ <hello:HelloResponse>
+ <hello:text/>
+ </hello:HelloResponse>
+ </literal>
+ </from>
+ <to>$response.body</to>
+ </copy>
+ <copy>
+ <from>concat($text,' World')</from>
+ <to>$response.body/hello:text</to>
+ </copy>
+ </assign>
+
+ <reply name="end"
+ partnerLink="helloPartnerLink"
+ portType="hello:HelloPortType"
+ operation="Hello"
+ variable="response"/>
+ </sequence>
+</process>
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<definitions name="Hello"
+ targetNamespace="urn:/HelloWorld2.wsdl"
+ xmlns:tns="urn:/HelloWorld2.wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema targetNamespace="urn:/HelloWorld2.wsdl"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="HelloRequest">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ <element name="HelloResponse">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+
+ <message name="HelloRequest">
+ <part name="body" element="tns:HelloRequest"/>
+ </message>
+
+ <message name="HelloResponse">
+ <part name="body" element="tns:HelloResponse"/>
+ </message>
+
+ <portType name="HelloPortType">
+ <operation name="Hello">
+ <input message="tns:HelloRequest"/>
+ <output message="tns:HelloResponse"/>
+ </operation>
+ </portType>
+
+ <plnk:partnerLinkType name="HelloPartnerLinkType">
+ <plnk:role name="Provider" portType="tns:HelloPortType"/>
+ </plnk:partnerLinkType>
+
+ <binding name="HelloSoapBinding" type="tns:HelloPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="Hello">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="HelloService">
+ <port name="HelloPort" binding="tns:HelloSoapBinding">
+ <soap:address location="http://unused.url/here"/>
+ </port>
+ </service>
+
+</definitions>
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://servicemix.apache.org/cxfbc/1.0
+ http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ ">
+
+ <bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
+
+ <cxfbc:consumer
+ xmlns:helloworld="urn:/HelloWorld2.wsdl"
+ wsdl="classpath:HelloWorld2.wsdl"
+ locationURI="http://localhost:8193/HelloService"
+ targetService="helloworld:HelloService"
+ targetEndpoint="HelloPort"
+ />
+
+</beans>
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,30 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
+ xmlns:pns="urn:/HeaderTest.bpel"
+ xmlns:sns="urn:/HelloWorld2.wsdl" >
+
+
+ <process name="pns:HelloWorld2">
+ <active>true</active>
+ <provide partnerLink="helloPartnerLink">
+ <service name="sns:HelloService" port="HelloPort"/>
+ </provide>
+ </process>
+</deploy>
Added: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<con:soapui-project name="HelloService" resourceRoot="" soapui-version="3.5.1" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="HelloSoapBinding" type="wsdl" bindingName="{urn:/HelloWorld2.wsdl}HelloSoapBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost:8193/HelloService?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost:8193/HelloService?wsdl"><con:part><con:url>http://localhost:8193/HelloService?wsdl</con:url><con:content><![CDATA[<definitions name="Hello" targetNamespace="urn:/HelloWorld2.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:smix="http://servicemix.org/wsdl/jbi/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:/HelloWorld2.wsdl">
+ <types>
+ <schema targetNamespace="urn:/HelloWorld2.wsdl" xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="HelloRequest">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ <element name="HelloResponse">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+ <message name="HelloResponse">
+ <part element="tns:HelloResponse" name="body"></part>
+ </message>
+ <message name="HelloRequest">
+ <part element="tns:HelloRequest" name="body"></part>
+ </message>
+ <portType name="HelloPortType">
+ <operation name="Hello">
+ <input message="tns:HelloRequest"></input>
+ <output message="tns:HelloResponse"></output>
+ </operation>
+ </portType>
+ <binding name="HelloSoapBinding" type="tns:HelloPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="Hello">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloService">
+ <port binding="tns:HelloSoapBinding" name="HelloPort">
+ <soap:address location="http://localhost:8193/HelloService"/>
+ <smix:endpoint defaultMep="in-out" role="consumer"/>
+ </port>
+ </service>
+</definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8193/HelloService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="Hello" bindingOperationName="Hello" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8193/HelloService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="urn:/HelloWorld2.wsdl">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <hel:HelloRequest>
+ <hel:text>Hello</hel:text>
+ </hel:HelloRequest>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="urn:/HelloWorld2.wsdl/HelloPortType/HelloRequest"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:testSuite name="TestSend"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Send" searchProperties="true"><con:settings/><con:testStep type="request" name="Hello - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>HelloSoapBinding</con:interface><con:operation>Hello</con:operation><con:request name="Hello - Request 1" outgoingWss="" incomingWss="" timeout="" wssPasswordType=""><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></!
con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8193/HelloService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="urn:/HelloWorld2.wsdl">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <hel:HelloRequest>
+ <hel:text>Hello</hel:text>
+ </hel:HelloRequest>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="urn:/HelloWorld2.wsdl/HelloPortType/HelloRequest"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/></con:soapui-project>
\ No newline at end of file
Modified: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd 2011-01-16 12:02:21 UTC (rev 1235)
@@ -1,4 +1,3 @@
-Bundle-Activator: org.apache.ode.jbi.osgi.ServiceUnitActivator
+Import-Package: org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi
Export-Package: org.apache.ode.ping
-Import-Package: org.apache.ode.jbi.osgi,org.apache.servicemix.http,org.apache.servicemix.common.osgi
Include-Resource: src/main/resources
Modified: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel.examples</groupId>
<artifactId>ping-pong-bundle</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,27 +18,22 @@
~ under the License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:http="http://servicemix.apache.org/http/1.0"
- xmlns:ping="urn:/Ping.wsdl"
- xmlns:pong="urn:/Pong.wsdl"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://servicemix.apache.org/http/1.0
- http://servicemix.apache.org/http/1.0/servicemix-http.xsd">
- <http:endpoint
- service="ping:PingService"
- endpoint="http"
- targetService="ping:PingService"
- targetEndpoint="PingPort"
- defaultOperation="Ping"
- role="consumer"
- locationURI="http://localhost:8192/PingHttp/"
- defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
- wsdlResource="classpath:Ping.wsdl"
- soapVersion="1.1"
- soap="true" />
-
+ http://servicemix.apache.org/cxfbc/1.0
+ http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ ">
+
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
+ <cxfbc:consumer
+ xmlns:ping="urn:/Ping.wsdl"
+ xmlns:pong="urn:/Pong.wsdl"
+ wsdl="classpath:Ping.wsdl"
+ locationURI="http://localhost:8193/PingService"
+ targetService="ping:PingService"
+ targetEndpoint="PingPort" />
+
</beans>
Modified: branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl
===================================================================
--- branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl 2011-01-16 12:02:21 UTC (rev 1235)
@@ -49,12 +49,24 @@
<plnk:role name="Provider" portType="tns:PingPortType"/>
</plnk:partnerLinkType>
- <!--
+ <binding name="PingSoapBinding" type="tns:PingPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="Ping">
+ <soap:operation soapAction="" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
- This is an abstract interface/portType definition. Note the lack of
- binding and service: these are defined by the HTTP binding component.
- See ping-http/Ping.wsdl for details.
+ <service name="PingService">
+ <port name="PingPort" binding="tns:PingSoapBinding">
+ <!-- this address will be overridden by CXF -->
+ <soap:address location="http://unused.url/here" />
+ </port>
+ </service>
- -->
-
</definitions>
Modified: branches/RiftSaw-ODE-2.2.x/jacob/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jacob/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jacob/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-jacob</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/jbi/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -434,9 +434,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- FIXME: temporary skip it -->
- <!--
<skipTests>true</skipTests>
- -->
<systemProperties>
<property>
<name>java.naming.factory.initial</name>
Modified: branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeContext.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -51,6 +51,7 @@
import org.apache.ode.bpel.pmapi.InstanceManagement;
import org.apache.ode.bpel.pmapi.ProcessManagement;
import org.apache.ode.dao.bpel.BpelDAOConnectionFactory;
+import org.apache.ode.dao.scheduler.SchedulerDAOConnectionFactory;
import org.apache.ode.dao.store.ConfStoreDAOConnectionFactory;
import org.apache.ode.jbi.msgmap.Mapper;
import org.apache.ode.jbi.util.WSDLFlattener;
@@ -102,6 +103,8 @@
BpelDAOConnectionFactory _daocf;
ConfStoreDAOConnectionFactory _cdaocf;
+
+ SchedulerDAOConnectionFactory _schedaocf;
OdeConfigProperties _config;
Modified: branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi/src/main/java/org/apache/ode/jbi/OdeLifeCycle.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -39,13 +39,15 @@
import org.apache.ode.bpel.extvar.jdbc.JdbcExternalVariableModule;
import org.apache.ode.bpel.iapi.BpelEventListener;
+import org.apache.ode.bpel.iapi.CacheProvider;
import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
import org.apache.ode.dao.bpel.BpelDAOConnectionFactory;
+import org.apache.ode.dao.scheduler.SchedulerDAOConnectionFactory;
import org.apache.ode.dao.store.ConfStoreDAOConnectionFactory;
+import org.apache.ode.il.cache.CacheProviderFactory;
import org.apache.ode.il.dbutil.Database;
import org.apache.ode.il.dbutil.DatabaseConfigException;
import org.apache.ode.jbi.msgmap.Mapper;
-import org.apache.ode.scheduler.simple.JdbcDelegate;
import org.apache.ode.scheduler.simple.SimpleScheduler;
import org.apache.ode.store.ProcessStoreImpl;
import org.apache.ode.utils.GUID;
@@ -77,6 +79,8 @@
private ObjectName _mbeanName;
private OdeConfigProperties _config;
+
+ private CacheProvider _cacheProvider;
public OdeLifeCycle() {
@@ -128,7 +132,9 @@
__log.debug("Starting Dao.");
initDao();
-
+
+ initCacheProvider();
+
__log.debug("Starting BPEL server.");
initBpelServer();
@@ -196,6 +202,16 @@
_ode._dataSource = _db.getDataSource();
}
+ private void initCacheProvider() {
+ _cacheProvider = CacheProviderFactory.getCacheProvider(_ode._config);
+ try {
+ _cacheProvider.start();
+ } catch (Exception e) {
+ __log.error("Error in starting cache provider");
+ throw new RuntimeException("Error in initCacheProvider.", e);
+ }
+ }
+
/**
* Load the "ode-jbi.properties" file from the install directory.
*
@@ -230,12 +246,12 @@
_ode._executorService = Executors.newCachedThreadPool();
else
_ode._executorService = Executors.newFixedThreadPool(_ode._config.getThreadPoolMaxSize());
- _ode._scheduler = new SimpleScheduler(new GUID().toString(),new JdbcDelegate(_ode._dataSource), _ode._config.getProperties());
+ _ode._scheduler = new SimpleScheduler(new GUID().toString(), _ode._schedaocf, _ode.getTransactionManager(), _ode._config.getProperties());
_ode._scheduler.setJobProcessor(_ode._server);
_ode._scheduler.setExecutorService(_ode._executorService);
_ode._scheduler.setTransactionManager((TransactionManager) _ode.getContext().getTransactionManager());
- _ode._store = new ProcessStoreImpl(_ode._eprContext , _ode.getTransactionManager(), _ode._cdaocf);
+ _ode._store = new ProcessStoreImpl(_ode._eprContext , _ode.getTransactionManager(), _ode._cdaocf, _cacheProvider);
registerExternalVariableModules();
_ode._store.loadAll();
@@ -267,15 +283,18 @@
private void initDao() throws JBIException {
BpelDAOConnectionFactory bcf;
ConfStoreDAOConnectionFactory ccf;
+ SchedulerDAOConnectionFactory scf;
try {
bcf = _db.createDaoCF();
ccf = _db.createDaoStoreCF();
+ scf = _db.createDaoSchedulerCF();
} catch (DatabaseConfigException e) {
String errmsg = __msgs.msgDAOInstantiationFailed(_ode._config.getDAOConnectionFactory());
throw new JBIException(errmsg,e);
}
_ode._daocf = bcf;
_ode._cdaocf = ccf;
+ _ode._schedaocf = scf;
}
private void initConnector() throws JBIException {
@@ -464,6 +483,14 @@
} catch (Exception ex) {
}
+
+ if (_cacheProvider != null) {
+ try {
+ _cacheProvider.stop();
+ } catch(Exception e) {
+ __log.debug("Error stopping cache provider.", e);
+ }
+ }
try {
_db.shutdown();
Modified: branches/RiftSaw-ODE-2.2.x/jbi-bundle/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!--
@@ -138,5 +137,20 @@
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>4.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>4.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-osgi-core</artifactId>
+ <version>1.2.0</version>
+ </dependency>
</dependencies>
</project>
Modified: branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -19,101 +19,27 @@
package org.apache.ode.jbi.osgi;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Enumeration;
+import java.util.logging.Logger;
-import javax.jbi.component.Component;
-import javax.jbi.component.ServiceUnitManager;
-
-import org.apache.commons.io.IOUtils;
-import org.osgi.framework.Bundle;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
+
/**
- * @author mproch
+ * This class is now deprecated in favor of using OdeExtender service, which watches
+ * deployment of bundles and manages start/stop/install/uninstall/update from OSGi
+ * to ODE.
*
+ * @deprecated
+ * @see OdeExtenderImpl
*/
public class ServiceUnitActivator implements BundleActivator {
+ private static final Logger LOG = Logger.getLogger(ServiceUnitActivator.class.getName());
- File rootDir;
- String generatedName;
-
public void start(BundleContext context) throws Exception {
- generatedName = context.getBundle().getSymbolicName();
- rootDir = context.getDataFile("bpelData");
- rootDir.mkdirs();
- Enumeration<?> en = context.getBundle().findEntries("/", "*", false);
- while (en.hasMoreElements()) {
- copyOne(rootDir, (URL) en.nextElement());
- }
- ServiceReference[] refs = context.getAllServiceReferences(
- "javax.jbi.component.Component", "(&(NAME=OdeBpelEngine))");
- if (refs == null || refs.length != 1) {
- throw new RuntimeException("no appropriate service :(");
- }
- ServiceUnitManager suM = ((Component) context.getService(refs[0]))
- .getServiceUnitManager();
- ClassLoader l = Thread.currentThread().getContextClassLoader();
- try {
- ClassLoader suL = suM.getClass().getClassLoader();
- Thread.currentThread().setContextClassLoader(new BundleClassLoader(suL, context.getBundle()));
- suM.deploy(generatedName, rootDir.getAbsolutePath());
- suM.init(generatedName, rootDir.getAbsolutePath());
- suM.start(generatedName);
- } finally {
- Thread.currentThread().setContextClassLoader(l);
- }
-
+ LOG.warning("Use of " + this.getClass().getName() + " has been deprecated. BPEL bundle deployment is now handled by the ODE extender service. Remove Bundle-Activator from OSGi manifest for bundle: " + context.getBundle().getSymbolicName());
}
- private void copyOne(File dest, URL url) throws Exception {
- File d = new File(dest, url.getPath());
- InputStream str = url.openStream();
- if (str != null) {
- FileWriter wr = new FileWriter(d);
- try {
- IOUtils.copy(str, wr);
- } finally {
- wr.flush();
- wr.close();
- }
- }
- }
-
public void stop(BundleContext context) throws Exception {
- ServiceReference[] refs = context.getAllServiceReferences(
- "javax.jbi.component.Component", "(&(NAME=OdeBpelEngine))");
- if (refs == null || refs.length != 1) {
- throw new RuntimeException("no appropriate service :(");
- }
- ServiceUnitManager suM = ((Component) context.getService(refs[0]))
- .getServiceUnitManager();
- suM.shutDown(generatedName);
- suM.undeploy(generatedName, rootDir.getAbsolutePath());
-
}
-
- public class BundleClassLoader extends ClassLoader {
- private final Bundle delegate;
-
- public BundleClassLoader(ClassLoader parent, Bundle delegate) {
- super(parent);
- this.delegate = delegate;
- }
-
- @Override
- public Class<?> loadClass(String name) throws ClassNotFoundException {
- try {
- return getParent().loadClass(name);
- } catch (Exception e) {
- return delegate.loadClass(name);
- }
- }
- }
-
}
Added: branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,303 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.FilenameFilter;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.jbi.component.Component;
+import javax.jbi.component.ComponentLifeCycle;
+import javax.jbi.component.ServiceUnitManager;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.xml.namespace.QName;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.ode.bpel.iapi.ProcessStore;
+import org.apache.ode.jbi.OdeContext;
+import org.osgi.framework.Bundle;
+
+public class OdeDeployedBundle {
+ private static final Logger LOG = Logger.getLogger(OdeDeployedBundle.class.getName());
+ private boolean updated;
+ private Bundle bundle;
+ private OdeExtenderImpl odeRegistrationService;
+ private File rootDir;
+ private String duName;
+ private String name;
+
+ OdeDeployedBundle(Bundle bundle, OdeExtenderImpl odeRegistrationService) {
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Initialized ODE service unit deployer for bundle: " + bundle.getSymbolicName());
+ this.bundle = bundle;
+ this.odeRegistrationService = odeRegistrationService;
+ }
+
+ String getName() {
+ if (this.name == null)
+ this.name = this.bundle.getSymbolicName();
+ return this.name;
+ }
+
+ private String getDUName() {
+ if (this.duName == null)
+ this.duName = getName() + "-" + bundle.getVersion().getMicro();
+ return this.duName;
+ }
+
+ private File getRootDir() {
+ if (this.rootDir == null && this.bundle.getBundleContext() != null)
+ this.rootDir = this.bundle.getBundleContext().getDataFile("bpelData/" + getDUName());
+ return this.rootDir;
+ }
+
+ void doStart() throws Exception {
+ // If we are already started, don't bother starting again.
+ LOG.info("Starting ODE service unit: " + getName());
+
+ // Wait until ODE is available before starting.
+ waitAvailable();
+
+ // Do we need to undeploy first?
+ boolean needUpdate = updated;
+ boolean forceDeploy = needUpdate;
+ this.updated = false;
+
+ // Do deploy.
+ this.deploy(this.bundle, this.odeRegistrationService.getOdeComponent().getServiceUnitManager(), forceDeploy, needUpdate);
+ }
+
+ void doStop() throws Exception {
+ LOG.info("Stopping ODE service unit: " + getName());
+ this.shutdown(this.bundle, this.odeRegistrationService.getOdeComponent().getServiceUnitManager());
+ }
+
+ void doInstall() throws Exception {
+ LOG.info("Installing ODE service unit: " + getName());
+ }
+
+ void doUninstall() throws Exception {
+ LOG.info("Uninstalling ODE service unit: " + getName());
+ this.undeploy(this.bundle, this.odeRegistrationService.getOdeComponent().getServiceUnitManager());
+ }
+
+ void doUpdate() throws Exception {
+ LOG.info("Updating ODE service unit: " + getName());
+
+ // We simply mark the update state of this bundle so that on next start, we do a redeploy
+ updated = true;
+ }
+
+ private void deploy(Bundle bundle, ServiceUnitManager suM, boolean forceDeploy, boolean undeploy) throws Exception {
+ // Do deployment.
+ File rootDir = getRootDir();
+ String duName = getDUName();
+ boolean needDeploy = rootDir.mkdirs() || forceDeploy;
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Exploding content to " + rootDir + " for " + duName);
+ Enumeration<?> en = bundle.findEntries("/", "*", false);
+ while (en.hasMoreElements())
+ needDeploy |= copyOne(rootDir, (URL) en.nextElement());
+
+ // Now start it.
+ ClassLoader l = Thread.currentThread().getContextClassLoader();
+ try {
+ ClassLoader suL = suM.getClass().getClassLoader();
+ Thread.currentThread().setContextClassLoader(new BundleClassLoader(suL, bundle));
+ try {
+ // Try first an init/start, which will fail if the process isn't
+ // here.
+ if (needDeploy) {
+ // If deployed, undeploy first.
+ if (undeploy && isDeployed(duName)) {
+ // Do the undeploy to service unit manager.
+ LOG.info("Performing undeploy " + duName + " from dir " + rootDir);
+ suM.undeploy(duName, rootDir.getAbsolutePath());
+
+ // Now, remove any .cbp files.
+ File[] cbpFiles = rootDir.listFiles(new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".cbp");
+ }
+ });
+ for (File cbpFile : cbpFiles) {
+ LOG.info("Removing compiled bpel process: " + cbpFile);
+ cbpFile.delete();
+ }
+ }
+
+ LOG.info("Deploying " + duName + " to dir " + rootDir);
+ suM.deploy(duName, rootDir.getAbsolutePath());
+ }
+ suM.init(duName, rootDir.getAbsolutePath());
+ suM.start(duName);
+ } catch (javax.jbi.management.DeploymentException e) {
+ LOG.log(Level.WARNING, "Deploy failed; could not deploy/start this bundle: " + this.getName(), e);
+ throw e;
+ }
+ } finally {
+ Thread.currentThread().setContextClassLoader(l);
+ }
+ }
+
+ private boolean isDeployed(String processName) {
+ boolean Result = true;
+ try {
+ // Get the "ProcessStore" interface by grabbing the internal field
+ // of OdeContext and querying for the processes. Could also use PMAPI here,
+ // but in any case we just need to know if the process exists in a deployed state.
+ //
+ // TODO: add a OdeContext.getStore() method to clean this up.
+ OdeContext inst = OdeContext.getInstance();
+ Field _store = inst.getClass().getDeclaredField("_store");
+ _store.setAccessible(true);
+ ProcessStore ps = (ProcessStore) _store.get(inst);
+ List<QName> processes = ps.listProcesses(processName);
+ Result = processes != null && !processes.isEmpty();
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Could not determine deployment state for process: " + processName, e);
+ }
+ return Result;
+ }
+
+ private boolean copyOne(File dest, URL url) throws Exception {
+ File d = new File(dest, url.getPath());
+ boolean needDeploy = !d.exists();
+ long length = d.exists() ? d.length() : 0L;
+ InputStream str = url.openStream();
+ if (str != null) {
+ FileWriter wr = new FileWriter(d);
+ try {
+ IOUtils.copy(str, wr);
+ } finally {
+ wr.flush();
+ wr.close();
+ }
+
+ // If file is zero-length (which is the case handling a directory),
+ // just remove it.
+ if (d.exists() && d.length() == 0) {
+ d.delete();
+ needDeploy = false;
+ } else
+ needDeploy |= length != d.length();
+ }
+ return needDeploy;
+ }
+
+ private void shutdown(Bundle bundle, ServiceUnitManager suM) throws Exception {
+ String duName = getDUName();
+ if (suM != null) {
+ suM.stop(duName);
+ suM.shutDown(duName);
+ } else {
+ LOG.warning("Could not shutdown this process (" + duName + ") because ode component was never located");
+ }
+ }
+
+ private void undeploy(Bundle bundle, ServiceUnitManager suM) throws Exception {
+ String duName = getDUName();
+ if (suM != null) {
+ if (isDeployed(duName)) {
+ // Use ODE's classloader to avoid class loading from the bundle
+ // being undeployed.
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(suM.getClass().getClassLoader());
+ File rootDir = getRootDir();
+ LOG.info("Performing undeploy " + duName + " from dir " + rootDir);
+ suM.undeploy(duName, rootDir.getAbsolutePath());
+ } finally {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+ }
+ } else {
+ LOG.warning("Could not shutdown this process (" + duName + ") because ode component was never located");
+ }
+ }
+
+ public class BundleClassLoader extends ClassLoader {
+ private final Bundle delegate;
+
+ public BundleClassLoader(ClassLoader parent, Bundle delegate) {
+ super(parent);
+ this.delegate = delegate;
+ }
+
+ @Override
+ public Class<?> loadClass(String name) throws ClassNotFoundException {
+ try {
+ return getParent().loadClass(name);
+ } catch (Exception e) {
+ return delegate.loadClass(name);
+ }
+ }
+ }
+
+ private void waitAvailable() throws InterruptedException {
+ /**
+ * We need to wait until the service unit manager is available before
+ * proceeding. Also, since the ode component itself does an asynchronous
+ * start with respect to this bundle, we need to wait until it is done
+ * initializing. This would be much cleaner if we could simply
+ * call "isStarted" on OdeLifeCycle, which maintains a started state.
+ *
+ * If we do not wait until the ode component is started, deployments
+ * will fail sporadically because of asynchronous start race conditions.
+ */
+ boolean showedWait = false;
+ while (this.odeRegistrationService.getOdeComponent().getServiceUnitManager() == null || !isStarted(this.odeRegistrationService.getOdeComponent())) {
+
+ // Do a wait.
+ if (!showedWait) {
+ LOG.info("Waiting for ODE to arrive (" + getName() + ")...");
+ showedWait = true;
+ }
+ Thread.sleep(500L);
+ }
+ }
+
+ private boolean isStarted(Component odeComponent) {
+
+ boolean Result = true;
+ try {
+ // Get the ODE component started state by grabbing the internal field
+ // of OdeLifeCycle. We cannot rely on the started state of the ODE
+ // component bundle.
+ //
+ // TODO: add OdeLifeCycle.isStarted() and do a cast of odeComponent.getLifeCycle() accordingly.
+ ComponentLifeCycle inst = odeComponent.getLifeCycle();
+ Field _started = inst.getClass().getDeclaredField("_started");
+ _started.setAccessible(true);
+ Result = Boolean.TRUE.equals(_started.get(inst));
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Could not determine started state for ode component", e);
+ }
+ return Result;
+ }
+}
Added: branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import org.osgi.framework.Bundle;
+
+public interface OdeExtender {
+ public Bundle[] getBundles();
+}
Added: branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,287 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import java.net.URL;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.jbi.component.Component;
+
+import org.apache.ode.jbi.osgi.ServiceUnitActivator;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.Constants;
+import org.osgi.util.tracker.BundleTracker;
+import org.osgi.util.tracker.BundleTrackerCustomizer;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.osgi.context.BundleContextAware;
+
+public class OdeExtenderImpl implements OdeExtender, InitializingBean, DisposableBean, BundleContextAware {
+ private static final Logger LOG = Logger.getLogger(OdeExtenderImpl.class.getName());
+ private static final String SU_ACTIVATOR_DEPRECATED = ServiceUnitActivator.class.getName();
+ private BundleContext bundleContext;
+ private BundleTracker tracker;
+ private Component odeComponent;
+ private Executor executor;
+
+ public OdeExtenderImpl() {
+ }
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ public void afterPropertiesSet() throws Exception {
+ // Create our executor.
+ executor = Executors.newSingleThreadExecutor(new OdeExtenderThreadFactory("ODE Extender"));
+
+ // Start tracking bundles. We are looking for /deploy.xml as a signature
+ // to deploy the ODE BPEL bundle, if the bundle has at least one .bpel
+ // file.
+ int stateMask = Bundle.STARTING | Bundle.ACTIVE | Bundle.STOPPING | Bundle.INSTALLED | Bundle.UNINSTALLED;
+ this.tracker = new BundleTracker(this.bundleContext, stateMask, new ODEBundleTrackerCustomizer());
+ this.tracker.open();
+ }
+
+ public void destroy() throws Exception {
+ // Close the tracker.
+ BundleTracker tracker = this.tracker;
+ this.tracker = null;
+ if (tracker != null)
+ tracker.close();
+
+ // Drop our thread pool.
+ this.executor = null;
+ }
+
+ public Bundle[] getBundles() {
+ return this.tracker.getBundles();
+ }
+
+ public void setOdeComponent(Component odeComponent) {
+ this.odeComponent = odeComponent;
+ }
+
+ public Component getOdeComponent() {
+ return odeComponent;
+ }
+
+ private boolean isBPELBundle(Bundle bundle) {
+ boolean result = false;
+
+ // First see if there is a deploy.xml.
+ URL entry = bundle.getEntry("deploy.xml");
+ if (entry != null) {
+ // Next, check if there's at least one BPEL file.
+ @SuppressWarnings("rawtypes")
+ Enumeration bpelFiles = bundle.findEntries("/", "*.bpel", false);
+ if (bpelFiles != null && bpelFiles.hasMoreElements()) {
+ // Make sure there's a symbolic name.
+ if (bundle.getSymbolicName() != null) {
+ // Make sure there's no bundle activator.
+ // NOTE: if the "ServiceUnitActivator" is found, we hijack those bundles as well and manage them.
+ Dictionary<?, ?> headers = bundle.getHeaders();
+ Object activator = null;
+ if (headers == null || (activator = headers.get(Constants.BUNDLE_ACTIVATOR)) == null || SU_ACTIVATOR_DEPRECATED.equals(activator)) {
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Recognized ODE deployment bundle: " + bundle.getSymbolicName());
+ result = true;
+ } else
+ LOG.warning("Ignoring ODE bundle " + bundle.getSymbolicName() + " which has custom activator: " + activator);
+ } else
+ LOG.warning("Ignoring ODE bundle " + bundle.getBundleId() + " which has no OSGi symbolic name");
+ }
+ }
+
+ return result;
+ }
+
+ private class ODEBundleTrackerCustomizer implements BundleTrackerCustomizer {
+ private Map<Long, OdeDeployedBundle> bundles = new ConcurrentHashMap<Long, OdeDeployedBundle>();
+
+ public void removedBundle(Bundle bundle, BundleEvent event, Object object) {
+ }
+
+ public void modifiedBundle(Bundle bundle, BundleEvent event, Object object) {
+ if (event != null) {
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Received " + getEventType(event.getType()) + " event for bundle: " + bundle.getSymbolicName());
+ switch (event.getType()) {
+ case BundleEvent.STARTED:
+ executor.execute(new Start((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.STOPPING:
+ executor.execute(new Stop((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.INSTALLED:
+ executor.execute(new Install((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.UNINSTALLED:
+ executor.execute(new Uninstall((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.UPDATED:
+ executor.execute(new Update((OdeDeployedBundle) object));
+ break;
+ }
+
+ // Do this outside the try/catch above. Last chance to drop a
+ // bundle.
+ if (event.getType() == BundleEvent.UNINSTALLED)
+ bundles.remove(bundle.getBundleId());
+ }
+ }
+
+ private String getEventType(int type) {
+ switch (type) {
+ case BundleEvent.INSTALLED:
+ return "installed";
+ case BundleEvent.LAZY_ACTIVATION:
+ return "lazy activation";
+ case BundleEvent.RESOLVED:
+ return "resolved";
+ case BundleEvent.STARTED:
+ return "started";
+ case BundleEvent.STARTING:
+ return "starting";
+ case BundleEvent.STOPPED:
+ return "stopped";
+ case BundleEvent.STOPPING:
+ return "stopping";
+ case BundleEvent.UNINSTALLED:
+ return "uninstalled";
+ case BundleEvent.UNRESOLVED:
+ return "unresolved";
+ case BundleEvent.UPDATED:
+ return "updated";
+ }
+ return "(unknown: " + type + ")";
+ }
+
+ public Object addingBundle(Bundle bundle, BundleEvent event) {
+ Object result = null;
+
+ // Is this a BPEL bundle?
+ if (isBPELBundle(bundle)) {
+ // Found BPEL signature; setup deployer.
+ OdeDeployedBundle deployer = bundles.get(bundle.getBundleId());
+ if (deployer == null)
+ bundles.put(bundle.getBundleId(), deployer = new OdeDeployedBundle(bundle, OdeExtenderImpl.this));
+ result = deployer;
+
+ // Is this an initial bundle?
+ if (event == null) {
+ // If the bundle is active, then we didn't start it. So
+ // start it now.
+ if (bundle.getState() == Bundle.ACTIVE)
+ executor.execute(new Start(deployer));
+ } else
+ modifiedBundle(bundle, event, deployer);
+ }
+
+ return result;
+ }
+ }
+
+ private static abstract class OperationClosure implements Runnable {
+ protected OdeDeployedBundle target;
+
+ OperationClosure(OdeDeployedBundle target) {
+ this.target = target;
+ }
+
+ public final void run() {
+ String name = Thread.currentThread().getName();
+ try {
+ Thread.currentThread().setName(name + ":" + getClass().getSimpleName() + ":" + target.getName());
+ perform();
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Could not perform '" + getClass().getSimpleName() + "' operation on bundle: " + target.getName(), e);
+ } finally {
+ Thread.currentThread().setName(name);
+ }
+ }
+
+ protected abstract void perform() throws Exception;
+ }
+
+ private static class Start extends OperationClosure {
+ Start(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doStart();
+ }
+ }
+
+ private static class Stop extends OperationClosure {
+ Stop(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doStop();
+ }
+ }
+
+ private static class Install extends OperationClosure {
+ Install(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doInstall();
+ }
+ }
+
+ private static class Uninstall extends OperationClosure {
+ Uninstall(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doUninstall();
+ }
+ }
+
+ private static class Update extends OperationClosure {
+ Update(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doUpdate();
+ }
+ }
+}
Added: branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+
+public class OdeExtenderThreadFactory implements ThreadFactory {
+ private final ThreadFactory factory = Executors.defaultThreadFactory();
+ private final String name;
+
+ public OdeExtenderThreadFactory(String name) {
+ this.name = name;
+ }
+
+ public Thread newThread(Runnable r) {
+ final Thread t = factory.newThread(r);
+ t.setName(name);
+ t.setDaemon(true);
+ return t;
+ }
+}
Modified: branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -63,5 +63,18 @@
<prop key="ode-jbi.jca.port">0</prop>
<prop key="javax.persistence.provider">org.apache.openjpa.persistence.PersistenceProviderImpl</prop>
</osgix:cm-properties>
-
+
+ <!-- ODE Extender Service -->
+ <bean id="ode-extender-service" class="org.apache.ode.jbi.osgi.deployer.OdeExtenderImpl">
+ <property name="odeComponent">
+ <ref bean="ode-jbi-component" />
+ </property>
+ </bean>
+
+ <osgi:service ref="ode-extender-service">
+ <osgi:interfaces>
+ <value>org.apache.ode.jbi.osgi.deployer.OdeExtender</value>
+ </osgi:interfaces>
+ </osgi:service>
+
</beans>
Modified: branches/RiftSaw-ODE-2.2.x/jbi-karaf/src/main/resources/features.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf/src/main/resources/features.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf/src/main/resources/features.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -23,54 +23,66 @@
<bundle>mvn:commons-beanutils/commons-beanutils/1.8.2</bundle>
<bundle>mvn:commons-io/commons-io/1.4</bundle>
<bundle>wrap:mvn:jaxen/jaxen/1.1.1</bundle>
- <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/9.1.0.8_1-SNAPSHOT</bundle>
+ <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/9.1.0.8_1</bundle>
+ <bundle>mvn:org.apache.geronimo.components/geronimo-connector/2.1.3</bundle>
</feature>
<feature name="ode-core" version="${ode.version}">
<bundle>mvn:org.apache.ode/ode-jbi-bundle/${ode.version}</bundle>
</feature>
- <feature name="ode-hib-deps" version="${project.version}">
+ <feature name="ode-hib-deps" version="${ode.version}">
<bundle>wrap:mvn:dom4j/dom4j/1.6.1</bundle>
<bundle>wrap:mvn:org.hibernate/hibernate/3.2.5.ga</bundle>
</feature>
- <feature name="ode-jpa-deps" version="${project.version}">
+ <feature name="ode-jpa-deps" version="${ode.version}">
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.java-persistence-api-1.1.1/1.4.0</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_2</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.openjpa/1.2.1_2</bundle>
</feature>
- <feature name="ode-derby-deps" version="${project.version}">
+ <feature name="ode-derby-deps" version="${ode.version}">
<bundle>wrap:mvn:org.tranql/tranql-connector/1.4</bundle>
<bundle>mvn:org.apache.derby/derby/${derby.version}</bundle>
</feature>
- <feature name="ode-sqlserver-deps" version="${project.version}">
+ <feature name="ode-sqlserver-deps" version="${ode.version}">
<bundle>wrap:mvn:com.microsoft.sqlserver/sqljdbc/1.2</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector/1.4</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector-sqlserver2005-common/1.1</bundle>
</feature>
- <feature name="ode-oracle-deps" version="${project.version}">
+ <feature name="ode-oracle-deps" version="${ode.version}">
<bundle>wrap:mvn:oracle/ojdbc5/11.1.0.6.0</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector/1.4</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector-oracle-common/1.4</bundle>
</feature>
- <feature name="ode" version="${project.version}">
- <feature version="${project.version}">ode-derby-deps</feature>
- <feature version="${project.version}">ode-jpa-deps</feature>
- <feature version="${project.version}">ode-core-deps</feature>
- <feature version="${project.version}">ode-core</feature>
+ <feature name="ode" version="${ode.version}">
+ <feature version="${ode.version}">ode-derby-deps</feature>
+ <feature version="${ode.version}">ode-jpa-deps</feature>
+ <feature version="${ode.version}">ode-core-deps</feature>
+ <feature version="${ode.version}">ode-core</feature>
</feature>
- <feature name="ode-hib-oracle" version="${project.version}">
- <feature version="${project.version}">ode-oracle-deps</feature>
- <feature version="${project.version}">ode-hib-deps</feature>
- <feature version="${project.version}">ode-core-deps</feature>
- <feature version="${project.version}">ode-core</feature>
+ <feature name="ode-hib-oracle" version="${ode.version}">
+ <feature version="${ode.version}">ode-oracle-deps</feature>
+ <feature version="${ode.version}">ode-hib-deps</feature>
+ <feature version="${ode.version}">ode-core-deps</feature>
+ <feature version="${ode.version}">ode-core</feature>
</feature>
- <feature name="ode-hib-sqlserver" version="${project.version}">
- <feature version="${project.version}">ode-sqlserver-deps</feature>
- <feature version="${project.version}">ode-hib-deps</feature>
- <feature version="${project.version}">ode-core-deps</feature>
- <feature version="${project.version}">ode-core</feature>
+ <feature name="ode-hib-sqlserver" version="${ode.version}">
+ <feature version="${ode.version}">ode-sqlserver-deps</feature>
+ <feature version="${ode.version}">ode-hib-deps</feature>
+ <feature version="${ode.version}">ode-core-deps</feature>
+ <feature version="${ode.version}">ode-core</feature>
</feature>
- <feature name="examples-ode-ping-pong" version="${project.version}">
- <feature version="${project.version}">ode</feature>
- <bundle>mvn:org.apache.ode.examples/ping-pong-bundle/${project.version}</bundle>
+ <feature name="ode-commands" version="${ode.version}">
+ <bundle>mvn:org.apache.ode/ode-jbi-karaf-commands/${ode.version}</bundle>
</feature>
+ <feature name="ode-pmapi-httpbinding" version="${ode.version}">
+ <bundle>mvn:org.apache.ode/ode-jbi-karaf-pmapi-httpbinding/${ode.version}</bundle>
+ </feature>
+ <feature name="examples-ode-ping-pong" version="${ode.version}">
+ <feature version="${ode.version}">ode</feature>
+ <bundle>mvn:org.apache.ode.examples/ping-pong-bundle/${ode.version}</bundle>
+ </feature>
+ <feature name="examples-ode-helloworld" version="${ode.version}">
+ <feature version="${ode.version}">ode</feature>
+ <bundle>mvn:org.apache.ode.examples/helloworld-bundle/${ode.version}</bundle>
+ </feature>
+
</features>
Modified: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -28,7 +28,7 @@
import javax.management.*;
-import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.ode.bpel.pmapi.*;
import org.apache.ode.jbi.OdeContext;
@@ -36,9 +36,13 @@
protected static String COMPONENT_NAME = "org.apache.servicemix:Type=Component,Name=OdeBpelEngine,SubType=Management";
+ protected static final String LIST_INSTANCES = "listInstances";
+ protected static final String LIST_ALL_INSTANCES = "listAllInstances";
protected static final String LIST_ALL_PROCESSES = "listAllProcesses";
- protected static final String LIST_ALL_INSTANCES = "listAllInstances";
+ protected static final String RECOVER_ACTIVITY= "recoverActivity";
protected static final String TERMINATE = "terminate";
+ protected static final String SUSPEND = "suspend";
+ protected static final String RESUME = "resume";
protected MBeanServer getMBeanServer() {
OdeContext ode = OdeContext.getInstance();
@@ -59,7 +63,7 @@
*/
@SuppressWarnings("unchecked")
protected <T> T invoke(final String operationName, final Object[] params,
- final String[] signature, Class<?> T, long timeoutInSeconds)
+ final String[] signature, long timeoutInSeconds)
throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<T> callable = new Callable<T>() {
@@ -77,28 +81,67 @@
return future.get(timeoutInSeconds, TimeUnit.SECONDS);
}
- protected List<TProcessInfo> getProcesses(long timeoutInSeconds)
- throws Exception {
- ProcessInfoListDocument result = invoke(LIST_ALL_PROCESSES, null, null,
- ProcessInfoListDocument.class, timeoutInSeconds);
- if (result != null) {
- return result.getProcessInfoList().getProcessInfoList();
+ protected List<TInstanceInfo> getActiveInstances(long timeoutInSeconds)
+ throws Exception {
+ return getFilteredInstances(timeoutInSeconds, "status=active");
+ }
+
+ protected List<TInstanceInfo> getSuspendedInstances(long timeoutInSeconds)
+ throws Exception {
+ return getFilteredInstances(timeoutInSeconds, "status=suspended");
+ }
+
+ protected List<TInstanceInfo> getFilteredInstances(long timeoutInSeconds, String filter)
+ throws Exception {
+ InstanceInfoListDocument instances = invoke(LIST_INSTANCES,
+ new Object[] {filter, "pid", 10},
+ new String[] {String.class.getName(), String.class.getName(), int.class.getName()},
+ timeoutInSeconds);
+ if (instances != null) {
+ return instances.getInstanceInfoList().getInstanceInfoList();
}
return null;
}
-
- protected List<TInstanceInfo> getActiveInstances(long timeoutInSeconds)
+
+ protected List<TInstanceInfo> getAllInstances(long timeoutInSeconds)
throws Exception {
InstanceInfoListDocument instances = invoke(LIST_ALL_INSTANCES, null,
- null, InstanceInfoListDocument.class, timeoutInSeconds);
+ null, timeoutInSeconds);
if (instances != null) {
return instances.getInstanceInfoList().getInstanceInfoList();
}
return null;
}
+
+ protected List<TProcessInfo> getProcesses(long timeoutInSeconds)
+ throws Exception {
+ ProcessInfoListDocument result = invoke(LIST_ALL_PROCESSES, null, null, timeoutInSeconds);
+ if (result != null) {
+ return result.getProcessInfoList().getProcessInfoList();
+ }
+ return null;
+ }
+ protected InstanceInfoDocument recoverActivity(Long instanceId, Long activityId, String action, long timeoutInSeconds) throws Exception {
+ InstanceInfoDocument result = invoke(RECOVER_ACTIVITY, new Object[] {instanceId, activityId, action},
+ new String[] {Long.class.getName(), Long.class.getName(), String.class.getName()},
+ timeoutInSeconds);
+ return result;
+ }
+
protected void terminate(Long iid, long timeoutInSeconds) throws Exception {
invoke(TERMINATE, new Long[] { iid }, new String[] { Long.class
- .getName() }, InstanceInfoDocument.class, timeoutInSeconds);
+ .getName() }, timeoutInSeconds);
}
+
+ protected void suspend(Long iid, long timeoutInSeconds) throws Exception {
+ invoke(SUSPEND, new Long[] { iid }, new String[] { Long.class
+ .getName() }, timeoutInSeconds);
+ }
+
+ protected void resume(Long iid, long timeoutInSeconds) throws Exception {
+ invoke(RESUME, new Long[] { iid }, new String[] { Long.class
+ .getName() }, timeoutInSeconds);
+ }
+
}
Modified: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -19,17 +19,14 @@
package org.apache.ode.karaf.commands;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
+import java.util.*;
import java.util.concurrent.TimeoutException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.felix.gogo.commands.Command;
-import org.apache.ode.bpel.pmapi.TInstanceInfo;
-import org.apache.ode.bpel.pmapi.TInstanceStatus;
-import org.apache.ode.bpel.pmapi.TProcessInfo;
+import org.apache.felix.gogo.commands.*;
+import org.apache.ode.bpel.pmapi.*;
+import org.apache.ode.bpel.pmapi.TScopeInfo.Activities;
/**
* Lists the deployed process as well as the active instances
@@ -41,6 +38,9 @@
private static final Log __log = LogFactory.getLog(OdeListCommand.class);
+ @Option(name = "-a", aliases = "--all", description = "Show all (even completed) instances")
+ private boolean showAll;
+
private long timeoutInSeconds = 30;
@Override
@@ -50,11 +50,20 @@
System.out.println("------------------");
List<TProcessInfo> processes = getProcesses(timeoutInSeconds);
if (processes != null) {
+ System.out.println("[ ] [Version] [PID ]");
Set<String> sorted = new TreeSet<String>(
String.CASE_INSENSITIVE_ORDER);
for (TProcessInfo info : processes) {
- sorted.add(info.getDefinitionInfo().getProcessName()
- .getLocalPart());
+ StringBuilder line = new StringBuilder();
+ line.append("[");
+ line.append(info.getStatus().toString().charAt(0));
+ line.append("] [");
+ line.append(getNameString(Long.toString(info.getVersion()), 7, false));
+ line.append("] [");
+ line.append(getNameString(info.getPid().toString(), 63, true));
+ line.append("]");
+
+ sorted.add(line.toString());
}
for (String s : sorted) {
System.out.println(s);
@@ -64,20 +73,33 @@
System.out.println("Active instances");
System.out.println("----------------");
- List<TInstanceInfo> instances = getActiveInstances(timeoutInSeconds);
+ List<TInstanceInfo> instances = showAll ? getAllInstances(timeoutInSeconds) : getActiveInstances(timeoutInSeconds);
if (instances != null) {
- System.out.println("[Instance Id] [Process Name ]");
+ System.out.println("[ ] [IID ] [Process Name ] [Failed Activities ]");
for (TInstanceInfo info : instances) {
- if (info.getStatus() == TInstanceStatus.ACTIVE) {
- StringBuilder line = new StringBuilder();
- line.append("[");
- line.append(getNameString(info.getIid(), 11));
- line.append("] [");
- line.append(getNameString(info.getProcessName()
- .getLocalPart(), 20));
- line.append("]");
- System.out.println(line.toString());
+ StringBuilder line = new StringBuilder();
+ line.append("[");
+ line.append(info.getStatus().toString().charAt(0));
+ line.append("] [");
+ line.append(getNameString(info.getIid(), 5, false));
+ line.append("] [");
+ line.append(getNameString(info.getPid(), 31, true));
+ line.append("] [");
+ StringBuilder failedString = new StringBuilder();
+ List<TActivityInfo> failedActivities = getFailedActivities(info);
+ if (!failedActivities.isEmpty()) {
+ boolean first = true;
+ for (TActivityInfo failed : failedActivities) {
+ if (!first) {
+ failedString.append(", ");
+ }
+ failedString.append(failed.getAiid());
+ first = false;
+ }
}
+ line.append(getNameString(failedString.toString(), 31, false));
+ line.append("]");
+ System.out.println(line.toString());
}
}
} catch (TimeoutException e) {
@@ -86,9 +108,64 @@
return null;
}
+
+ private List<TActivityInfo> getFailedActivities(TInstanceInfo instance) {
+ List<TActivityInfo> failedActivites = new ArrayList<TActivityInfo>();
+ try {
+ TScopeInfo scopeInfo = getScopeInfo(instance.getRootScope());
+ if (scopeInfo != null) {
+ collectFailedActivities(scopeInfo, failedActivites);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return failedActivites;
+ }
+
+ private TScopeInfo getScopeInfo(TScopeRef scopeRef) {
+ if (scopeRef != null) {
+ try {
+ ScopeInfoDocument scopeInfoDoc = invoke("getScopeInfoWithActivity", new Object[] {scopeRef.getSiid(), true},
+ new String[] {String.class.getName(), boolean.class.getName()}, 30);
+ if (scopeInfoDoc != null) {
+ return scopeInfoDoc.getScopeInfo();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+ private void collectFailedActivities(TScopeInfo scopeInfo, List<TActivityInfo> bin) {
+ Activities acts = scopeInfo.getActivities();
+ if (acts != null) {
+ for (TActivityInfo actInfo : acts.getActivityInfoList()) {
+ if (actInfo.getStatus() == TActivityStatus.FAILURE) {
+ bin.add(actInfo);
+ }
+ }
+ }
+ TScopeInfo.Children children = scopeInfo.getChildren();
+ if (children != null) {
+ for (TScopeRef child : children.getChildRefList()) {
+ TScopeInfo childScopeInfo = getScopeInfo(child);
+ if (childScopeInfo != null) {
+ collectFailedActivities(childScopeInfo, bin);
+ }
+ }
+ }
+
+ }
- private String getNameString(String name, int colLength) {
+ private String getNameString(String name, int colLength, boolean stripBefore) {
String ret = name;
+ if (name.length() > colLength) {
+ if (stripBefore) {
+ ret = "..." + name.substring(name.length() - (colLength - 3));
+ } else {
+ ret = name.substring(0, colLength - 3) + "...";
+ }
+ }
for (int i = 0; i < colLength - name.length(); i++) {
ret = ret + " ";
}
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.karaf.commands;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.felix.gogo.commands.*;
+
+@Command(scope = "ode", name = "recoverActivity", description = "Recover a failed BPEL activity in ODE")
+public class OdeRecoverActivityCommand extends OdeCommandsBase {
+ private static final Log __log = LogFactory.getLog(OdeRecoverActivityCommand.class);
+
+ private static final String RETRY = "retry";
+ private static final String FAULT = "fault";
+ private static final String CANCEL = "cancel";
+
+ @Argument(name="iid", description="Instance ID", index=0, required=true)
+ private Long instanceId;
+
+ @Argument(name="aid", description="Activity IDs to attempt recovery", index=1, required=true, multiValued=true)
+ private Long[] activityIds;
+
+ @Option(name="-r", aliases="--retry", description="Retry the activity (default=retry)")
+ private boolean retry = false;
+
+ @Option(name="-f", aliases="--fault", description="Fault the activity (default=retry)")
+ private boolean fault = false;
+
+ @Option(name="-c", aliases="--cancel", description="Cancel the activity (default=retry)")
+ private boolean cancel = false;
+
+ @Override
+ protected Object doExecute() throws Exception {
+ /*
+ * Unfortunatly there isn't a way to make options mutually exclusive, so we give precedence in this order
+ * retry > fault > cancel
+ */
+ String action = null;
+
+ if (retry) {
+ action = RETRY;
+ } else if (fault) {
+ action = FAULT;
+ } else if (cancel) {
+ action = CANCEL;
+ } else {
+ // Also make retry the default action
+ action = RETRY;
+ }
+
+ for (Long aiid : activityIds) {
+ try {
+ recoverActivity(instanceId, aiid, action, 30);
+ } catch (Exception e) {
+ __log.error("An error occuring trying to recover activity", e);
+ }
+ }
+
+ return null;
+ }
+
+}
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.karaf.commands;
+
+import java.util.List;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.felix.gogo.commands.*;
+import org.apache.ode.bpel.pmapi.TInstanceInfo;
+
+@Command(scope = "ode", name = "resume", description = "Resume suspended ODE process instances")
+public class OdeResumeCommand extends OdeCommandsBase {
+
+ private static final Log __log = LogFactory.getLog(OdeResumeCommand.class);
+
+ @Argument(name = "iids", description = "Instance IDs to resume", multiValued = true)
+ private static Long[] iids;
+
+ @Option(name = "-a", aliases = "--all", description = "Resume all suspended instances")
+ private boolean resumeAll;
+
+ private long timeoutInSeconds = 30;
+
+ @Override
+ protected Object doExecute() throws Exception {
+ try {
+ if (resumeAll) {
+ List<TInstanceInfo> instances = getSuspendedInstances(timeoutInSeconds);
+ if (instances != null) {
+ for (TInstanceInfo instance : instances) {
+ resume(Long.parseLong(instance.getIid()),
+ timeoutInSeconds);
+ }
+ }
+ } else {
+ if (iids == null) {
+ System.out.println("No instance ids to resume");
+ } else {
+ for (Long iid : iids) {
+ resume(iid, timeoutInSeconds);
+ }
+ }
+ }
+ } catch (TimeoutException e) {
+ __log.error("Timed out after " + timeoutInSeconds + " seconds", e);
+ }
+
+ return null;
+ }
+
+}
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.karaf.commands;
+
+import java.util.List;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.felix.gogo.commands.*;
+import org.apache.ode.bpel.pmapi.TInstanceInfo;
+
+@Command(scope = "ode", name = "suspend", description = "Suspend active ODE process instances")
+public class OdeSuspendCommand extends OdeCommandsBase {
+
+ private static final Log __log = LogFactory.getLog(OdeSuspendCommand.class);
+
+ @Argument(name = "iids", description = "Instance IDs to suspend", multiValued = true)
+ private static Long[] iids;
+
+ @Option(name = "-a", aliases = "--all", description = "Suspend all active instances")
+ private boolean suspendAll;
+
+ private long timeoutInSeconds = 30;
+
+ @Override
+ protected Object doExecute() throws Exception {
+ try {
+ if (suspendAll) {
+ List<TInstanceInfo> instances = getActiveInstances(timeoutInSeconds);
+ if (instances != null) {
+ for (TInstanceInfo instance : instances) {
+ suspend(Long.parseLong(instance.getIid()),
+ timeoutInSeconds);
+ }
+ }
+ } else {
+ if (iids == null) {
+ System.out.println("No instance ids to suspend");
+ } else {
+ for (Long iid : iids) {
+ suspend(iid, timeoutInSeconds);
+ }
+ }
+ }
+ } catch (TimeoutException e) {
+ __log.error("Timed out after " + timeoutInSeconds + " seconds", e);
+ }
+
+ return null;
+ }
+
+}
Modified: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -27,12 +27,12 @@
import org.apache.felix.gogo.commands.*;
import org.apache.ode.bpel.pmapi.TInstanceInfo;
-@Command(scope = "ode", name = "terminate", description = "Terminate an active ode process instances")
+@Command(scope = "ode", name = "terminate", description = "Terminate active ODE process instances")
public class OdeTerminateCommand extends OdeCommandsBase {
- private static final Log __log = LogFactory.getLog(OdeListCommand.class);
+ private static final Log __log = LogFactory.getLog(OdeTerminateCommand.class);
- @Argument(name = "iids", description = "Instance ID's to terminate", multiValued = true)
+ @Argument(name = "iids", description = "Instance IDs to terminate", multiValued = true)
private static Long[] iids;
@Option(name = "-a", aliases = "--all", description = "Terminate all active instances")
Modified: branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -16,7 +16,7 @@
limitations under the License.
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:shell="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
+ xmlns:shell="http://karaf.apache.org/xmlns/shell/v1.0.0">
<shell:command-bundle>
<shell:command name="ode/list">
@@ -25,6 +25,15 @@
<shell:command name="ode/terminate">
<shell:action class="org.apache.ode.karaf.commands.OdeTerminateCommand" />
</shell:command>
+ <shell:command name="ode/suspend">
+ <shell:action class="org.apache.ode.karaf.commands.OdeSuspendCommand" />
+ </shell:command>
+ <shell:command name="ode/resume">
+ <shell:action class="org.apache.ode.karaf.commands.OdeResumeCommand" />
+ </shell:command>
+ <shell:command name="ode/recoverActivity">
+ <shell:action class="org.apache.ode.karaf.commands.OdeRecoverActivityCommand" />
+ </shell:command>
</shell:command-bundle>
</blueprint>
\ No newline at end of file
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/pom.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.ode</groupId>
+ <artifactId>ode</artifactId>
+ <version>1.3.5</version>
+ </parent>
+ <artifactId>ode-jbi-karaf-pmapi-httpbinding</artifactId>
+ <packaging>bundle</packaging>
+ <name>ODE :: PMAPI HTTP Binding</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>1.4.3</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.groupId}-${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <Import-Package>
+ org.apache.servicemix.cxfbc,
+ org.apache.servicemix.common.osgi
+ </Import-Package>
+ <Export-Package>
+ wsdl.ode.pmapi
+ </Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:osgi="http://www.springframework.org/schema/osgi"
+ xsi:schemaLocation="
+ http://servicemix.apache.org/cxfbc/1.0
+ http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
+ http://www.springframework.org/schema/osgi
+ http://www.springframework.org/schema/osgi/spring-osgi.xsd
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util-3.0.xsd
+ ">
+
+ <bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
+
+ <cxfbc:consumer
+ xmlns:pmapi="http://www.apache.org/ode/pmapi"
+ wsdl="classpath:wsdl/ode/pmapi/pmapi.wsdl"
+ locationURI="http://localhost:8193/ode/pmapi/ProcessManagementService"
+ targetService="pmapi:ProcessManagementService"
+ useJBIWrapper="false"
+ useSOAPEnvelope="false"
+ />
+
+ <cxfbc:consumer
+ xmlns:pmapi="http://www.apache.org/ode/pmapi"
+ wsdl="classpath:wsdl/ode/pmapi/pmapi.wsdl"
+ locationURI="http://localhost:8193/ode/pmapi/InstanceManagementService"
+ targetService="pmapi:InstanceManagementService"
+ useJBIWrapper="false"
+ useSOAPEnvelope="false"
+ />
+
+</beans>
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,762 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<definitions
+ name="ProcessAndInstanceManagement"
+ targetNamespace="http://www.apache.org/ode/pmapi"
+ xmlns:tns="http://www.apache.org/ode/pmapi"
+ xmlns:typ="http://www.apache.org/ode/pmapi/types/2006/08/02/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://www.apache.org/ode/pmapi/types/2006/08/02/" schemaLocation="pmapi.xsd"/>
+ </xsd:schema>
+ <xsd:schema targetNamespace="http://www.apache.org/ode/pmapi">
+ <xsd:complexType name="aidsType">
+ <xsd:all>
+ <xsd:element name="aid" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:complexType name="listType">
+ <xsd:all>
+ <xsd:element name="element" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:element name="ManagementFault" type="xsd:string"/>
+ </xsd:schema>
+ </types>
+
+ <message name="listProcessesInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="orderKeys" type="xsd:string"/>
+ </message>
+ <message name="listProcessesOutput">
+ <part name="process-info-list" type="typ:tProcessInfoList"/>
+ </message>
+ <message name="listProcessesCustomInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="orderKeys" type="xsd:string"/>
+ <part name="customizer" type="xsd:string"/>
+ </message>
+ <message name="listProcessesCustomOutput">
+ <part name="process-info-list" type="typ:tProcessInfoList"/>
+ </message>
+ <message name="listAllProcessesInput"/>
+ <message name="listAllProcessesOutput">
+ <part name="process-info-list" type="typ:tProcessInfoList"/>
+ </message>
+ <message name="getProcessInfoInput">
+ <part name="pid" type="xsd:QName"/>
+ </message>
+ <message name="getProcessInfoOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="getProcessInfoCustomInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="customizer" type="xsd:string"/>
+ </message>
+ <message name="getProcessInfoCustomOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="getExtensibilityElementsInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="aids" type="tns:aidsType"/>
+ </message>
+ <message name="getExtensibilityElementsOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="setProcessPropertyNodeInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="propertyName" type="xsd:QName"/>
+ <part name="propertyValue" type="xsd:anyType"/>
+ </message>
+ <message name="setProcessPropertyNodeOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="setProcessPropertyInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="propertyName" type="xsd:QName"/>
+ <part name="propertyValue" type="xsd:string"/>
+ </message>
+ <message name="setProcessPropertyOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="activateInput">
+ <part name="pid" type="xsd:QName"/>
+ </message>
+ <message name="activateOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="setRetiredInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="retired" type="xsd:boolean"/>
+ </message>
+ <message name="setRetiredOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+
+ <message name="listInstancesInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="order" type="xsd:string"/>
+ <part name="limit" type="xsd:int"/>
+ </message>
+ <message name="listInstancesOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="listInstancesSummaryInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="order" type="xsd:string"/>
+ <part name="limit" type="xsd:int"/>
+ </message>
+ <message name="listInstancesSummaryOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="queryInstancesInput">
+ <part name="payload" type="xsd:string"/>
+ </message>
+ <message name="queryInstancesOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="listAllInstancesInput"/>
+ <message name="listAllInstancesOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="listAllInstancesWithLimitInput">
+ <part name="payload" type="xsd:int"/>
+ </message>
+ <message name="listAllInstancesWithLimitOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="getInstanceInfoInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="getInstanceInfoOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="getScopeInfoInput">
+ <part name="siid" type="xsd:long"/>
+ </message>
+ <message name="getScopeInfoOutput">
+ <part name="scope-info" type="typ:tScopeInfo"/>
+ </message>
+ <message name="getScopeInfoWithActivityInput">
+ <part name="sid" type="xsd:long"/>
+ <part name="activityInfo" type="xsd:boolean"/>
+ </message>
+ <message name="getScopeInfoWithActivityOutput">
+ <part name="scope-info" type="typ:tScopeInfo"/>
+ </message>
+ <message name="getVariableInfoInput">
+ <part name="sid" type="xsd:string"/>
+ <part name="varName" type="xsd:string"/>
+ </message>
+ <message name="getVariableInfoOutput">
+ <part name="scope-info" type="typ:tVariableInfo"/>
+ </message>
+ <message name="listEventsInput">
+ <part name="instanceFilter" type="xsd:string"/>
+ <part name="eventFilter" type="xsd:string"/>
+ <part name="maxCount" type="xsd:int"/>
+ </message>
+ <message name="listEventsOutput">
+ <part name="bpel-event-list" type="typ:tEventInfoList"/>
+ </message>
+ <message name="getEventTimelineInput">
+ <part name="instanceFilter" type="xsd:string"/>
+ <part name="eventFilter" type="xsd:string"/>
+ </message>
+ <message name="getEventTimelineOutput">
+ <part name="dates" type="tns:listType"/>
+ </message>
+ <message name="suspendInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="suspendOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="resumeInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="resumeOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="terminateInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="terminateOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="faultInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="faultOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="deleteInput">
+ <part name="filter" type="xsd:string"/>
+ </message>
+ <message name="deleteOutput">
+ <part name="list" type="tns:listType"/>
+ </message>
+ <message name="recoverActivityInput">
+ <part name="iid" type="xsd:long"/>
+ <part name="aid" type="xsd:long"/>
+ <part name="action" type="xsd:string"/>
+ </message>
+ <message name="recoverActivityOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="replayInput">
+ <part name="replay" type="typ:Replay"/>
+ </message>
+ <message name="replayOutput">
+ <part name="replayResponse" type="typ:ReplayResponse"/>
+ </message>
+ <message name="getCommunicationInput">
+ <part name="getCommunication" type="typ:GetCommunication"/>
+ </message>
+ <message name="getCommunicationOutput">
+ <part name="getCommunicationResponse" type="typ:GetCommunicationResponse"/>
+ </message>
+ <message name="managementFault">
+ <part name="managementFault" element="tns:ManagementFault"/>
+ </message>
+
+ <portType name="ProcessManagementPortType">
+ <operation name="listProcesses">
+ <input message="tns:listProcessesInput"/>
+ <output message="tns:listProcessesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listAllProcesses">
+ <input message="tns:listAllProcessesInput"/>
+ <output message="tns:listAllProcessesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listProcessesCustom">
+ <input message="tns:listProcessesCustomInput"/>
+ <output message="tns:listProcessesCustomOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getProcessInfo">
+ <input message="tns:getProcessInfoInput"/>
+ <output message="tns:getProcessInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getProcessInfoCustom">
+ <input message="tns:getProcessInfoCustomInput"/>
+ <output message="tns:getProcessInfoCustomOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="setProcessProperty">
+ <input message="tns:setProcessPropertyInput"/>
+ <output message="tns:setProcessPropertyOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="setProcessPropertyNode">
+ <input message="tns:setProcessPropertyNodeInput"/>
+ <output message="tns:setProcessPropertyNodeOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getExtensibilityElements">
+ <input message="tns:getExtensibilityElementsInput"/>
+ <output message="tns:getExtensibilityElementsOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="activate">
+ <input message="tns:activateInput"/>
+ <output message="tns:activateOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="setRetired">
+ <input message="tns:setRetiredInput"/>
+ <output message="tns:setRetiredOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ </portType>
+
+ <portType name="InstanceManagementPortType">
+ <operation name="listInstances">
+ <input message="tns:listInstancesInput"/>
+ <output message="tns:listInstancesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listInstancesSummary">
+ <input message="tns:listInstancesSummaryInput"/>
+ <output message="tns:listInstancesSummaryOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="queryInstances">
+ <input message="tns:queryInstancesInput"/>
+ <output message="tns:queryInstancesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listAllInstances">
+ <input message="tns:listAllInstancesInput"/>
+ <output message="tns:listAllInstancesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listAllInstancesWithLimit">
+ <input message="tns:listAllInstancesWithLimitInput"/>
+ <output message="tns:listAllInstancesWithLimitOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getInstanceInfo">
+ <input message="tns:getInstanceInfoInput"/>
+ <output message="tns:getInstanceInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getScopeInfo">
+ <input message="tns:getScopeInfoInput"/>
+ <output message="tns:getScopeInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getScopeInfoWithActivity">
+ <input message="tns:getScopeInfoWithActivityInput"/>
+ <output message="tns:getScopeInfoWithActivityOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getVariableInfo">
+ <input message="tns:getVariableInfoInput"/>
+ <output message="tns:getVariableInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listEvents">
+ <input message="tns:listEventsInput"/>
+ <output message="tns:listEventsOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getEventTimeline">
+ <input message="tns:getEventTimelineInput"/>
+ <output message="tns:getEventTimelineOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="suspend">
+ <input message="tns:suspendInput"/>
+ <output message="tns:suspendOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="resume">
+ <input message="tns:resumeInput"/>
+ <output message="tns:resumeOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="terminate">
+ <input message="tns:terminateInput"/>
+ <output message="tns:terminateOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="fault">
+ <input message="tns:faultInput"/>
+ <output message="tns:faultOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="delete">
+ <input message="tns:deleteInput"/>
+ <output message="tns:deleteOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="recoverActivity">
+ <input message="tns:recoverActivityInput"/>
+ <output message="tns:recoverActivityOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="replay">
+ <input message="tns:replayInput"/>
+ <output message="tns:replayOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getCommunication">
+ <input message="tns:getCommunicationInput"/>
+ <output message="tns:getCommunicationOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ </portType>
+
+ <binding name="ProcessManagementBinding" type="tns:ProcessManagementPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="listProcesses">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listAllProcesses">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listProcessesCustom">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getProcessInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getProcessInfoCustom">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getExtensibilityElements">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="setProcessProperty">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="setProcessPropertyNode">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="activate">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="setRetired">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+
+ <binding name="InstanceManagementBinding" type="tns:InstanceManagementPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="listInstances">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listInstancesSummary">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="queryInstances">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listAllInstances">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listAllInstancesWithLimit">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getInstanceInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getScopeInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getScopeInfoWithActivity">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getVariableInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listEvents">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getEventTimeline">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="suspend">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="resume">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="terminate">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="fault">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="delete">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="recoverActivity">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="replay">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getCommunication">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+
+ <service name="ProcessManagementService">
+ <port name="ProcessManagementPort" binding="tns:ProcessManagementBinding">
+ <soap:address location="http://localhost:8080/ode/processes/ProcessManagement"/>
+ </port>
+ </service>
+ <service name="InstanceManagementService">
+ <port name="InstanceManagementPort" binding="tns:InstanceManagementBinding">
+ <soap:address location="http://localhost:8080/ode/processes/InstanceManagement"/>
+ </port>
+ </service>
+
+</definitions>
Added: branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd (rev 0)
+++ branches/RiftSaw-ODE-2.2.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd 2011-01-16 12:02:21 UTC (rev 1235)
@@ -0,0 +1,843 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pmapi="http://www.apache.org/ode/pmapi/types/2006/08/02/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.apache.org/ode/pmapi/types/2006/08/02/"
+ elementFormDefault="qualified">
+ <element name="process-info" type="pmapi:tProcessInfo" id="process-info"/>
+ <element name="activity-info" type="pmapi:tActivityInfo" id="activity-info"/>
+ <element name="process-info-list" type="pmapi:tProcessInfoList"/>
+ <element name="instance-info" type="pmapi:tInstanceInfo" id="instance-info"/>
+ <element name="instance-info-list" type="pmapi:tInstanceInfoList"/>
+ <element name="scope-info" type="pmapi:tScopeInfo"/>
+ <element name="variable-info" type="pmapi:tVariableInfo"/>
+ <element name="activity-ext-info-list" type="pmapi:tActivitytExtInfoList"/>
+ <element name="activity-ext-info" type="pmapi:tActivityExtInfo"/>
+ <element name="event-info" type="pmapi:tEventInfo"/>
+ <element name="event-info-list" type="pmapi:tEventInfoList"/>
+
+ <simpleType name="ExchangeType">
+ <restriction base="string">
+ <enumeration value="M"/>
+ <enumeration value="P"/>
+ </restriction>
+ </simpleType>
+
+ <xs:complexType name="ReplayType">
+ <xs:choice>
+ <xs:element name="mock" type="anySimpleType"></xs:element>
+ <xs:element name="mockQuery" type="string"></xs:element>
+ <xs:element name="live" type="anySimpleType"></xs:element>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:element name="mockQueryRequest">
+ <xs:complexType>
+ <xs:sequence>
+ <element name="createTime" type="dateTime"/>
+ <element name="service" type="QName"/>
+ <element name="operation" type="string"/>
+ <element name="in" type="anyType"/>
+ <xs:element name="pattern">
+ <xs:simpleType>
+ <restriction base="string">
+ <enumeration value="IN_ONLY"/>
+ <enumeration value="IN_OUT"/>
+ </restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="mockQueryResponse" type="pmapi:ResponseType"/>
+
+ <xs:complexType name="ResponseType">
+ <choice>
+ <element name="out" type="anyType" />
+ <element name="fault" type="pmapi:FaultType" />
+ <element name="failure" type="pmapi:FailureType" />
+ </choice>
+ </xs:complexType>
+
+ <complexType name="GetCommunication">
+ <xs:sequence>
+ <xs:element name="iid" type="long" maxOccurs="unbounded"></xs:element>
+ </xs:sequence>
+ </complexType>
+
+ <xs:complexType name="GetCommunicationResponse">
+ <xs:sequence>
+ <element name="restoreInstance" minOccurs="0" maxOccurs="unbounded" type="pmapi:CommunicationType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <element name="getCommunicationResponse" type="pmapi:GetCommunicationResponse"/>
+
+ <complexType name="FaultType">
+ <sequence>
+ <element name="type" type="QName" />
+ <element name="explanation" type="string" />
+ <element name="message" type="anyType" />
+ </sequence>
+ </complexType>
+
+ <complexType name="FailureType">
+ <sequence>
+ <element name="explanation" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="CommunicationType">
+ <sequence>
+ <element name="processType" type="QName" />
+ <element name="rollbackOnFault" type="boolean" minOccurs="0" default="true"/>
+
+ <element name="serviceConfig" maxOccurs="unbounded">
+ <complexType>
+ <sequence>
+ <element name="service" type="QName" />
+ <xs:element name="replayType" type="pmapi:ReplayType"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="exchange" maxOccurs="unbounded">
+ <complexType>
+ <sequence>
+ <element name="type" type="pmapi:ExchangeType" />
+ <element name="createTime" type="dateTime" />
+ <element name="service" type="QName" />
+ <element name="operation" type="string" />
+ <element name="in" type="anyType" />
+ <choice> <!-- ResponseType -->
+ <element name="out" type="anyType"/>
+ <element name="fault" type="pmapi:FaultType"/>
+ <element name="failure" type="pmapi:FailureType"/>
+ </choice>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+
+ <complexType name="Replay">
+ <sequence>
+ <element name="upgradeInstance" minOccurs="0" maxOccurs="unbounded" type="long"/>
+ <element name="replaceInstance" minOccurs="0" maxOccurs="unbounded" type="long"/>
+ <element name="restoreInstance" minOccurs="0" maxOccurs="unbounded" type="pmapi:CommunicationType"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ReplayResponse">
+ <sequence>
+ <element name="restoredIID" type="long" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <element name="replayResponse" type="pmapi:ReplayResponse"/>
+
+ <complexType name="tProcessInfo">
+ <annotation>
+ <documentation>Information about a BPEL process.</documentation>
+ </annotation>
+ <sequence>
+ <element name="pid" type="xs:string">
+ <annotation>
+ <documentation>The unique name/id of the process.</documentation>
+ </annotation>
+ </element>
+ <element name="status" type="pmapi:tProcessStatus">
+ <annotation>
+ <documentation>Process status.</documentation>
+ </annotation>
+ </element>
+ <element name="version" type="xs:long">
+ <annotation>
+ <documentation>Process version.</documentation>
+ </annotation>
+ </element>
+ <element name="definition-info" type="pmapi:tDefinitionInfo">
+ <annotation>
+ <documentation>Information about the process
+ definition.</documentation>
+ </annotation>
+ </element>
+ <element name="deployment-info" type="pmapi:tDeploymentInfo">
+ <annotation>
+ <documentation>Information about the process
+ deployment.</documentation>
+ </annotation>
+ </element>
+ <element name="instance-summary" type="pmapi:tInstanceSummary" minOccurs="0">
+ <annotation>
+ <documentation>Summary of the instances belonging to this
+ process.</documentation>
+ </annotation>
+ </element>
+ <element name="properties" type="pmapi:tProcessProperties">
+ <annotation>
+ <documentation>Process properties.</documentation>
+ </annotation>
+ </element>
+ <element name="endpoints" type="pmapi:tEndpointReferences">
+ <annotation>
+ <documentation>Endpoint references.</documentation>
+ </annotation>
+ </element>
+ <element name="documents">
+ <annotation>
+ <documentation>Process documents</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="document" type="pmapi:tDocumentInfo" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##other" processContents="lax"/>
+ </complexType>
+ <simpleType name="tProcessStatus">
+ <annotation>
+ <documentation>Enumeration of process status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ACTIVE">
+ <annotation>
+ <documentation>Process is accepting new
+ requests.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="RETIRED">
+ <annotation>
+ <documentation>Process is NOT accepting new
+ requests.</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <simpleType name="tActivityStatus">
+ <annotation>
+ <documentation>Enumeration of scope status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ENABLED">
+ <annotation>
+ <documentation>Activity is enabled, but not necessarily ready to execute.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="STARTED">
+ <annotation>
+ <documentation>Activity has started execution.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPLETED">
+ <annotation>
+ <documentation>Activity has finished execution.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAILURE">
+ <annotation>
+ <documentation>Activity is in failure state, recovery required.</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <simpleType name="tScopeStatus">
+ <annotation>
+ <documentation>Enumeration of scope status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ACTIVE">
+ <annotation>
+ <documentation>Scope is active.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPLETED">
+ <annotation>
+ <documentation>Scope has completed.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAULTED">
+ <annotation>
+ <documentation>Scope has faulted.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAULTHANDLING">
+ <annotation>
+ <documentation>Scope is executing its fault
+ handler.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPENSATING">
+ <annotation>
+ <documentation>Scope is executing its compensation
+ handler.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPENSATED">
+ <annotation>
+ <documentation>Scope has been compensated.</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <complexType name="tDefinitionInfo">
+ <annotation>
+ <documentation>Information about the process definition.</documentation>
+ </annotation>
+ <sequence>
+ <element name="process-name" type="xs:QName">
+ <annotation>
+ <documentation>The qualified name of the BPEL
+ process.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tDocumentInfo">
+ <annotation>
+ <documentation>Information about a document.</documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="xs:string">
+ <annotation>
+ <documentation>Name of the document.</documentation>
+ </annotation>
+ </element>
+ <element name="type" type="xs:anyURI">
+ <annotation>
+ <documentation>Type of document (e.g.
+ WSDL/BPEL/etc...).</documentation>
+ </annotation>
+ </element>
+ <element name="source" type="xs:anyURI">
+ <annotation>
+ <documentation>URL where the document can be
+ retrieved.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tDeploymentInfo">
+ <annotation>
+ <documentation>Information about a BPEL process
+ deployment.</documentation>
+ </annotation>
+ <sequence>
+ <element name="package" type="xs:string">
+ <annotation>
+ <documentation>Deployment package the process was deployed into.</documentation>
+ </annotation>
+ </element>
+ <element name="document" type="xs:string">
+ <annotation>
+ <documentation>File name of BPEL document.</documentation>
+ </annotation>
+ </element>
+ <element name="deploy-date" type="xs:dateTime">
+ <annotation>
+ <documentation>Date the process was deployed.</documentation>
+ </annotation>
+ </element>
+ <element name="deployer" type="xs:string">
+ <annotation>
+ <documentation>The user that deployed this
+ process.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tProcessProperties">
+ <sequence>
+ <element name="property" minOccurs="0" maxOccurs="unbounded">
+ <annotation>
+ <documentation>Process property (name-value pair).</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="xs:QName">
+ <annotation>
+ <documentation>Name of the property.</documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tEndpointReferences">
+ <sequence>
+ <element name="endpoint-ref" minOccurs="0" maxOccurs="unbounded">
+ <annotation>
+ <documentation>Endpoint references associated with the process partner links roles.</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="partner-link" type="xs:string">
+ <annotation>
+ <documentation>Name of the partner link this endpoint reference is associated with.</documentation>
+ </annotation>
+ </attribute>
+ <attribute name="partner-role" type="xs:string">
+ <annotation>
+ <documentation>Name of the partner role this endpoint reference is associated with.</documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <simpleType name="tInstanceStatus">
+ <annotation>
+ <documentation>Enumeration of instant status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ACTIVE">
+ <annotation>
+ <documentation>Instance is active.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPLETED">
+ <annotation>
+ <documentation>Instance has completed.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="TERMINATED">
+ <annotation>
+ <documentation>Instance was terminated.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAILED">
+ <annotation>
+ <documentation>Instance failed (with a fault).</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="SUSPENDED">
+ <annotation>
+ <documentation>Instance has been suspended.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="ERROR">
+ <annotation>
+ <documentation>Instance is.....</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <complexType name="tInstanceSummary">
+ <annotation>
+ <documentation>A summary of the number of instances in each state.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="instances" minOccurs="0" maxOccurs="unbounded">
+ <complexType>
+ <attribute name="state" type="pmapi:tInstanceStatus" use="required"/>
+ <attribute name="count" type="xs:int" use="required"/>
+ </complexType>
+ </element>
+ <element name="failures" type="pmapi:tFailuresInfo" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ <complexType name="tScopeInfo">
+ <sequence>
+ <element name="siid" type="xs:string">
+ <annotation>
+ <documentation>Scope instance identifier.</documentation>
+ </annotation>
+ </element>
+ <element name="name" type="xs:string">
+ <annotation>
+ <documentation>Scope name.</documentation>
+ </annotation>
+ </element>
+ <element name="status" type="pmapi:tScopeStatus">
+ <annotation>
+ <documentation>Scope instance identifier.</documentation>
+ </annotation>
+ </element>
+ <element name="parent-scope-ref" type="pmapi:tScopeRef" minOccurs="0">
+ <annotation>
+ <documentation>Parent scope reference.</documentation>
+ </annotation>
+ </element>
+ <element name="children" minOccurs="0">
+ <complexType>
+ <sequence>
+ <element name="child-ref" type="pmapi:tScopeRef" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="activities" minOccurs="0">
+ <complexType>
+ <sequence>
+ <element ref="pmapi:activity-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="variables" minOccurs="0">
+ <complexType>
+ <sequence>
+ <element name="variable-ref" type="pmapi:tVariableRef" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="correlation-sets" minOccurs="0">
+ <annotation>
+ <documentation>Lists all correlation correlation sets associated with
+ this scope with their valued correlation properties.</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="correlation-set" maxOccurs="unbounded">
+ <complexType>
+ <sequence>
+ <element name="correlation-property" type="pmapi:tCorrelationProperty" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="xs:string" use="required"/>
+ <attribute name="csetid" type="xs:string" use="required"/>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="endpoints" type="pmapi:tEndpointReferences">
+ <annotation>
+ <documentation>Endpoint references.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tActivityInfo">
+ <annotation>
+ <documentation>Information about an activity.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="xs:string" minOccurs="0"/>
+ <element name="type" type="xs:string"/>
+ <element name="aiid" type="xs:string"/>
+ <element name="status" type="pmapi:tActivityStatus"/>
+ <element name="scope" type="pmapi:tScopeRef" minOccurs="0">
+ <annotation>
+ <documentation>ID for scope in which this activity is executing.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-enabled" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation>The date/time when the activity was enabled.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-started" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation>The date/time when the activity was
+ started.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-completed" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation>The date/time when the activity was
+ completed.</documentation>
+ </annotation>
+ </element>
+ <element name="failure" type="pmapi:tFailureInfo" minOccurs="0">
+ <annotation>
+ <documentation>Indicates activity is in the failure state and requires recovery.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tFailureInfo">
+ <annotation>
+ <documentation>Indicates activity is in the failure state and requires recovery.</documentation>
+ </annotation>
+ <sequence>
+ <element name="dt-failure" type="xs:dateTime">
+ <annotation>
+ <documentation>The date/time when failure occurred.</documentation>
+ </annotation>
+ </element>
+ <element name="retries" type="xs:int">
+ <annotation>
+ <documentation>Number of retries.</documentation>
+ </annotation>
+ </element>
+ <element name="reason" type="xs:string">
+ <annotation>
+ <documentation>Reason for failure.</documentation>
+ </annotation>
+ </element>
+ <element name="actions" type="xs:string">
+ <annotation>
+ <documentation>Allowed recovery actions (space separated list of action names).</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tVariableInfo">
+ <annotation>
+ <documentation>Information about a variable (basically the value)
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="self" type="pmapi:tVariableRef"/>
+ <element name="value" minOccurs="0">
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tInstanceInfo">
+ <sequence>
+ <element name="iid" type="xs:string">
+ <annotation>
+ <documentation>The unique instance identifier. </documentation>
+ </annotation>
+ </element>
+ <element name="pid" type="xs:string">
+ <annotation>
+ <documentation>Process id of the process to which this instance
+ belongs.</documentation>
+ </annotation>
+ </element>
+ <element name="process-name" type="QName"/>
+ <element name="root-scope" type="pmapi:tScopeRef" minOccurs="0">
+ <annotation>
+ <documentation>Root scope id (might not exist). </documentation>
+ </annotation>
+ </element>
+ <element name="status" type="pmapi:tInstanceStatus">
+ <annotation>
+ <documentation>Status of ths instance.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-started" type="xs:dateTime">
+ <annotation>
+ <documentation>The date/time when the instance was
+ started.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-last-active" type="xs:dateTime">
+ <annotation>
+ <documentation>The date/time when the last activity
+ occured.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-error-since" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation> If present, indicates the date/time since which the
+ instance has been in an error state. </documentation>
+ </annotation>
+ </element>
+ <element name="correlation-properties" minOccurs="0">
+ <annotation>
+ <documentation>Lists all correlation properties with their values that
+ are associated with this process instance.</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="correlation-property" type="pmapi:tCorrelationProperty" maxOccurs="unbounded">
+ <annotation>
+ <documentation>Instance correlation property.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="event-info" minOccurs="0">
+ <annotation>
+ <documentation> Information about the events for this instance. If
+ absent, indicates events are not available. </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="count" type="xs:int">
+ <annotation>
+ <documentation> Indicates the datetime of the first event
+ </documentation>
+ </annotation>
+ </element>
+ <element name="first-dtime" type="xs:dateTime">
+ <annotation>
+ <documentation> Indicates the datetime of the first event
+ </documentation>
+ </annotation>
+ </element>
+ <element name="last-dtime" type="xs:dateTime">
+ <annotation>
+ <documentation> Indicates the datetime of the last event.
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="fault-info" type="pmapi:tFaultInfo" minOccurs="0">
+ <annotation>
+ <documentation> If present, indicates the fault with which this
+ instance failed. </documentation>
+ </annotation>
+ </element>
+ <element name="failures" type="pmapi:tFailuresInfo" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ <complexType name="tScopeRef">
+ <annotation>
+ <documentation> Reference to a scope. </documentation>
+ </annotation>
+ <attribute name="siid" type="xs:string" use="required"/>
+ <attribute name="name" type="xs:string" use="optional"/>
+ <attribute name="modelId" type="xs:string" use="required"/>
+ <attribute name="status" type="pmapi:tScopeStatus" use="required"/>
+ </complexType>
+ <complexType name="tVariableRef">
+ <annotation>
+ <documentation>Reference to a variable.</documentation>
+ </annotation>
+ <attribute name="iid" type="xs:string" use="required"/>
+ <attribute name="siid" type="xs:string" use="required"/>
+ <attribute name="name" type="xs:string" use="required"/>
+ </complexType>
+ <complexType name="tFaultInfo">
+ <annotation>
+ <documentation> Type used for reporting faults. </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="xs:QName"/>
+ <element name="explanation" type="xs:string"/>
+ <element name="line-number" type="xs:int"/>
+ <element name="aiid" type="xs:int"/>
+ <element name="data" minOccurs="0">
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tFailuresInfo">
+ <annotation>
+ <documentation>Indicates one or more activities are in the failure
+ state and require recovery.</documentation>
+ </annotation>
+ <sequence>
+ <element name="dt-failure" type="xs:dateTime">
+ <annotation>
+ <documentation>Date/time of last failure.</documentation>
+ </annotation>
+ </element>
+ <element name="count" type="xs:int">
+ <annotation>
+ <documentation>Number of activities in failure state.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <!-- Yew that's ugly, but there aren't so many ways to map an heritage -->
+ <complexType name="tEventInfo">
+ <sequence>
+ <element name="name" type="xs:string"/>
+ <element name="type" type="xs:string"/>
+ <element name="line-number" type="xs:int"/>
+ <element name="timestamp" type="xs:dateTime"/>
+ <element name="process-id" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="process-type" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="instance-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="scope-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="parent-scope-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="scope-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="scope-definition-id" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-definition-id" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-failure-reason" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-recovery-action" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="variable-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="new-value" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="port-type" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="operation" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="correlation-set" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="mex-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="correlation-key" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="expression" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="fault" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="fault-line-number" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="explanation" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="result" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="root-scope-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="root-scope-declaration-id" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="partner-link-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="old-state" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="new-state" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="success" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ </complexType>
+ <complexType name="tInstanceInfoList">
+ <sequence>
+ <element ref="pmapi:instance-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tProcessInfoList">
+ <sequence>
+ <element ref="pmapi:process-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tEventInfoList">
+ <sequence>
+ <element ref="pmapi:event-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tCorrelationProperty" mixed="true">
+ <simpleContent>
+ <extension base="xs:string">
+ <attribute name="csetid" type="xs:string" use="required"/>
+ <attribute name="propertyName" type="xs:QName" use="required"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="tActivityExtInfo">
+ <annotation>
+ <documentation>Information about an activity.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="aiid" type="xs:string"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tActivitytExtInfoList">
+ <sequence>
+ <element ref="pmapi:activity-ext-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+</schema>
Modified: branches/RiftSaw-ODE-2.2.x/jca-ra/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jca-ra/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jca-ra/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-jca-ra</artifactId>
<name>ODE :: JCA Resource Archive</name>
Modified: branches/RiftSaw-ODE-2.2.x/jca-server/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/jca-server/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/jca-server/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -17,8 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-jca-server</artifactId>
<name>ODE :: JCA Server</name>
Modified: branches/RiftSaw-ODE-2.2.x/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -23,9 +23,9 @@
</licenses>
<scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/ode/</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/ode/</developerConnection>
- <url>http://svn.apache.org/repos/asf/ode/</url>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/ode/tags/ode-1.3.5</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/ode/tags/ode-1.3.5</developerConnection>
+ <url>http://svn.apache.org/repos/asf/ode/tags/ode-1.3.5</url>
</scm>
<organization>
@@ -181,11 +181,13 @@
<module>bpel-connector</module>
<module>bpel-test</module>
<module>axis2</module>
- <!--module>jbi</module>
+ <module>jbi</module>
<module>jbi-bundle</module>
<module>jbi-karaf</module>
+ <module>distro/src/examples-jbi/maven2/helloworld2-osgi</module>
+ <module>jbi-karaf-pmapi-httpbinding</module>
<module>axis2-war</module>
- <module>distro</module-->
+ <module>distro</module>
</modules>
<build>
@@ -313,6 +315,18 @@
<updatePolicy>never</updatePolicy>
</snapshots>
</repository>
+
+ <repository>
+ <id>intalio</id>
+ <name>intalio repo</name>
+ <url>http://www.intalio.org/public/maven2</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
</repositories>
<!-- |
Modified: branches/RiftSaw-ODE-2.2.x/scheduler-simple/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/scheduler-simple/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/scheduler-simple/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-scheduler-simple</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/tools/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/tools/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/tools/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-tools</artifactId>
Modified: branches/RiftSaw-ODE-2.2.x/utils/pom.xml
===================================================================
--- branches/RiftSaw-ODE-2.2.x/utils/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/utils/pom.xml 2011-01-16 12:02:21 UTC (rev 1235)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-utils</artifactId>
<name>ODE :: Utilities</name>
Modified: branches/RiftSaw-ODE-2.2.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
===================================================================
--- branches/RiftSaw-ODE-2.2.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java 2011-01-16 11:52:46 UTC (rev 1234)
+++ branches/RiftSaw-ODE-2.2.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java 2011-01-16 12:02:21 UTC (rev 1235)
@@ -30,14 +30,14 @@
import org.apache.xerces.xs.XSModel;
import org.w3c.dom.ls.LSInput;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import java.io.ByteArrayInputStream;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
/**
* Various utility methods related to XML Schema processing.
*/
@@ -64,7 +64,7 @@
DOMInputImpl input = new DOMInputImpl();
input.setSystemId(systemURI.toString());
- input.setStringData(new String(schemaData));
+ input.setByteStream(new ByteArrayInputStream(schemaData));
Map<URI, byte[]> ret = captureSchema(input, resolver);
ret.put(systemURI, schemaData);
13 years, 11 months
riftsaw SVN: r1234 - in branches/ODE/ODE-1.x: agents and 90 other directories.
by riftsaw-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2011-01-16 06:52:46 -0500 (Sun, 16 Jan 2011)
New Revision: 1234
Added:
branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/
branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt
branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt
branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test1.wsdl
branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel
branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java
branches/ODE/ODE-1.x/bpel-runtime/src/test/resources/xslt/
branches/ODE/ODE-1.x/bpel-runtime/src/test/resources/xslt/test.xml
branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/
branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel
branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpelex
branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.wsdl
branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml
branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties
branches/ODE/ODE-1.x/distro/license/bubbling-LICENSE
branches/ODE/ODE-1.x/distro/license/yui-LICENSE
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml
branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/
branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java
branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java
branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java
branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/pom.xml
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl
branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd
branches/ODE/ODE-1.x/tasks/gpg.rake
Modified:
branches/ODE/ODE-1.x/BUILDING
branches/ODE/ODE-1.x/RELEASE_NOTES
branches/ODE/ODE-1.x/Rakefile
branches/ODE/ODE-1.x/agents/pom.xml
branches/ODE/ODE-1.x/axis2-war/pom.xml
branches/ODE/ODE-1.x/axis2-war/src/main/assembly/bin.xml
branches/ODE/ODE-1.x/axis2-war/src/main/webapp/deployment.html
branches/ODE/ODE-1.x/axis2-war/src/main/webapp/fileupload.jsp
branches/ODE/ODE-1.x/axis2-war/src/main/webapp/index.html
branches/ODE/ODE-1.x/axis2-war/src/main/webapp/instances.html
branches/ODE/ODE-1.x/axis2-war/src/main/webapp/js/ODE.js
branches/ODE/ODE-1.x/axis2-war/src/main/webapp/processes.html
branches/ODE/ODE-1.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
branches/ODE/ODE-1.x/axis2/pom.xml
branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java
branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
branches/ODE/ODE-1.x/axis2/src/main/wsdl/pmapi.wsdl
branches/ODE/ODE-1.x/bpel-api-jca/pom.xml
branches/ODE/ODE-1.x/bpel-api/pom.xml
branches/ODE/ODE-1.x/bpel-compiler/pom.xml
branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java
branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
branches/ODE/ODE-1.x/bpel-connector/pom.xml
branches/ODE/ODE-1.x/bpel-dao/pom.xml
branches/ODE/ODE-1.x/bpel-epr/pom.xml
branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java
branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
branches/ODE/ODE-1.x/bpel-obj/pom.xml
branches/ODE/ODE-1.x/bpel-ql/pom.xml
branches/ODE/ODE-1.x/bpel-runtime/pom.xml
branches/ODE/ODE-1.x/bpel-runtime/pom2.xml
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java
branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
branches/ODE/ODE-1.x/bpel-schemas/pom.xml
branches/ODE/ODE-1.x/bpel-scripts/pom.xml
branches/ODE/ODE-1.x/bpel-store/pom.xml
branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
branches/ODE/ODE-1.x/bpel-test/pom.xml
branches/ODE/ODE-1.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java
branches/ODE/ODE-1.x/dao-hibernate-db/pom.xml
branches/ODE/ODE-1.x/dao-hibernate/pom.xml
branches/ODE/ODE-1.x/dao-jpa-ojpa-derby/pom.xml
branches/ODE/ODE-1.x/dao-jpa/pom.xml
branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
branches/ODE/ODE-1.x/dependencies.rb
branches/ODE/ODE-1.x/distro/pom.xml
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml
branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl
branches/ODE/ODE-1.x/jacob-ap/pom.xml
branches/ODE/ODE-1.x/jacob/pom.xml
branches/ODE/ODE-1.x/jbi-bundle/pom.xml
branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java
branches/ODE/ODE-1.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml
branches/ODE/ODE-1.x/jbi-karaf/pom.xml
branches/ODE/ODE-1.x/jbi-karaf/src/main/resources/features.xml
branches/ODE/ODE-1.x/jbi/pom.xml
branches/ODE/ODE-1.x/jca-ra/pom.xml
branches/ODE/ODE-1.x/jca-server/pom.xml
branches/ODE/ODE-1.x/pom.xml
branches/ODE/ODE-1.x/repositories.rb
branches/ODE/ODE-1.x/scheduler-simple/pom.xml
branches/ODE/ODE-1.x/tasks/bnd.rake
branches/ODE/ODE-1.x/tasks/ws-security.rake
branches/ODE/ODE-1.x/tools/pom.xml
branches/ODE/ODE-1.x/utils/pom.xml
branches/ODE/ODE-1.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
Log:
*RIFTSAW-323, upgrade to ODE-1.3.5.
Modified: branches/ODE/ODE-1.x/BUILDING
===================================================================
--- branches/ODE/ODE-1.x/BUILDING 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/BUILDING 2011-01-16 11:52:46 UTC (rev 1234)
@@ -16,19 +16,16 @@
Building With Buildr
--------------------
-Buildr requires a Ruby interpreter. If you're running Linux or Mac OS you most probably already have Ruby installed on your machine. For Winows user Ruby installation is very simple. You will need the following:
+Our build is based on Buildr 1.4.3 or higher, a Ruby-based build tool for Java applications. Although Buildr runs nicely with Ruby, we recommend using JRuby 1.5.x
+Detailed instructions on installing Buildr can be found here: http://buildr.apache.org/installing.html
- * Ruby 1.8.x with RubyGems 0.9 or later. For Windows users using the Ruby One-Click Installer is the easiest (http://rubyforge.org/projects/rubyinstaller/). For Linux or Mac OS users, a Ruby interpreter is usually preinstalled. Just make sure to have the ruby-dev package (mkmf is needed for RJB).
-
- * Buildr. Install it by running 'gem install buildr -v 1.3.5'. A proper JAVA_HOME environment variable must be set. Make sure to choose either win32 or ruby platforms (don't choose java for Antwrap, that's JRuby).
-
Building is then pretty simple. Open a command in the source root directory and run:
-buildr _1.3.5_ package
+buildr package
To try the test cases bundled with ODE:
-buildr _1.3.5_ test
+buildr test
It just works! For more information about buildr see http://buildr.apache.org/.
Modified: branches/ODE/ODE-1.x/RELEASE_NOTES
===================================================================
--- branches/ODE/ODE-1.x/RELEASE_NOTES 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/RELEASE_NOTES 2011-01-16 11:52:46 UTC (rev 1234)
@@ -2,25 +2,56 @@
Apache ODE Release Notes
========================
-Apache ODE 1.3.4 includes about 100 bug fixes and new features. It's
-also the most stable version of ODE released so far.
+Apache ODE 1.3.5 includes about 30 bug fixes and performance improvements.
-Apache ODE 1.3.4 requires Java 1.5.x or higher. The WAR distribution can
+Apache ODE 1.3.5 requires Java 1.5.x or higher. The WAR distribution can
run in most J2EE servlet container. The JBI distribution should be able
-to run in any JBI container but has only been tested with ServiceMix 3.2.1
-and latest ServiceMix 4 (OSGi bundle) so far. See the BUILDING file if you
+to run in any JBI container but has only been tested with ServiceMix 3.x
+and latest ServiceMix 4.x (OSGi bundle) so far. See the BUILDING file if you
want to build your own distribution from the source release.
-New Features:
-------------
- * [ODE-483] - Instance replayer
- * [ODE-776] - Build support for both Buildr and Maven 2/3
- * [ODE-778] - Add a possibility to deploy processes as OSGi bundles
- * [ODE-814] - Add spring confgurable process properties
+The performance improvements affect XPath 2.0 processing in assign activities
+or transition conditions and makes it up to 10 times faster than ODE 1.3.4.
Changes:
-------
-See our Jira for more information:
+** Sub-task
+ * [ODE-739] - Add recoverActivity command
-https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310270&styleName=Html&version=12314168
+** Bug
+ * [ODE-155] - Examples: Exceptions for SOAP calls after retrieving WSDL
+ * [ODE-374] - MMC is quite noisy when it loses the connection to ODE
+ * [ODE-472] - utf-8 encoding is handled incorrectly within xslt stylesheets
+ * [ODE-625] - Deployment Poller Crashes when trying to deploy BPEL File with errors
+ * [ODE-661] - processes and instances do not appear to show up on the console in the web container
+ * [ODE-678] - org.apache.ode.bpel.memdao.ProcessDaoImpl cleans instances which are already cleaned and the instances are nulls
+ * [ODE-699] - Exceptions when instance data cleanup is enabled
+ * [ODE-733] - Patch to fix "Error occurred during getting processes or no processes"
+ * [ODE-737] - Patch for NullPointerException in ProcessStoreImpl
+ * [ODE-763] - boolean variable false() was judged as true()
+ * [ODE-780] - examples-ode-ping-pong doesn't start correctly
+ * [ODE-828] - BPEL process deployment problem in ODE
+ * [ODE-856] - BPEL/WSDL files do not show up in management console (deployment tab)
+ * [ODE-865] - getVariableInfo() returns invalid response
+ * [ODE-876] - ODE 1.3.4 is 10 times slower than ODE 1.3.3
+ * [ODE-878] - Processes are not recompiled if .deploy is deleted and .bpel has changed
+ * [ODE-885] - whitespaces in dynamic EPR cause AxisFault: Transport out has not been set
+ * [ODE-887] - Number of instances is always shown as 0 at the start page
+ * [ODE-891] - Compiler cannot deal with unicode characters in inline XSD in WSDLs
+ * [ODE-892] - routing fails as terminated instance's data was not cleaned up.
+ * [ODE-900] - xsd boolean element is handled as xsd string in if conditions.
+ * [ODE-901] - Cannot Deploy More than One Process on Servicemix 4 Using OSGi Bundling
+
+** Improvement
+ * [ODE-43] - Provide service description for ServiceEndpoints
+ * [ODE-881] - SchemaCaptureTest fails locally with spaces in path
+ * [ODE-904] - document() function in XSL scripts can not resolve remote documents
+ * [ODE-905] - Example for PMAPI access over JBI/http
+ * [ODE-906] - Example for HelloWorld on OSGi
+
+** Task
+ * [ODE-903] - Refactor jbi-karaf-commands to make them work with SMX >= 4.3
+
+ See our Jira for more information:
+ * https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12310270...
Modified: branches/ODE/ODE-1.x/Rakefile
===================================================================
--- branches/ODE/ODE-1.x/Rakefile 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/Rakefile 2011-01-16 11:52:46 UTC (rev 1234)
@@ -14,7 +14,7 @@
# limitations under the License.
#
-gem "buildr", "~>1.3"
+gem "buildr", "~>1.4.3"
require "buildr"
require "buildr/xmlbeans.rb"
require "buildr/openjpa"
@@ -22,12 +22,29 @@
require "buildr/jetty"
require "buildr/hibernate"
+Buildr.settings.build['jmock'] = "1.2.0"
+
+Buildr::Hibernate::REQUIRES[:xdoclet] = Buildr.group("xdoclet", "xdoclet-xdoclet-module", "xdoclet-hibernate-module",
+ :under=>"xdoclet", :version=>"1.2.3") + ["xdoclet:xjavadoc:jar:1.1-j5"]
+
+# dirty workaround for BUILDR-541/BUILDR-508
+Java.classpath << Buildr::OpenJPA::REQUIRES
+
require File.join(File.dirname(__FILE__), 'repositories.rb')
require File.join(File.dirname(__FILE__), 'dependencies.rb')
# Keep this structure to allow the build system to update version numbers.
-VERSION_NUMBER = "1.3.4"
+VERSION_NUMBER = "1.3.5-SNAPSHOT"
+# Apache Nexus Repositories
+if VERSION_NUMBER =~ /SNAPSHOT/
+ # Apache Development Snapshot Repository
+ repositories.release_to[:url] ||= 'https://repository.apache.org/content/repositories/snapshots'
+else
+ # Apache Release Distribution Repository
+ repositories.release_to[:url] ||= 'https://repository.apache.org/service/local/staging/deploy/maven2'
+end
+
BUNDLE_VERSIONS = {
"ode.version" => VERSION_NUMBER,
"commons.collections.version" => artifact(COMMONS.collections).version,
@@ -40,7 +57,7 @@
"servicemix.shared.version" => "2009.02-SNAPSHOT",
"servicemix.specs.version" => "1.4-SNAPSHOT",
}
-Release.find.tag_name = lambda { |version| "APACHE_ODE_#{version.upcase}" } if Release.find
+Release.tag_name = lambda { |version| "APACHE_ODE_#{version.upcase}" } if Release
desc "Apache ODE"
define "ode" do
@@ -103,7 +120,7 @@
end
end
- test.using :testng, :properties=>{ "log4j.debug" => true, "log4j.configuration"=>"test-log4j.properties", "test.ports" => ENV['TEST_PORTS'] }, :java_args=>['-Xmx1024M', '-XX:MaxPermSize=1024m']
+ test.using :testng, :properties=>{ "log4j.debug" => true, "log4j.configuration"=>"test-log4j.properties", "test.ports" => ENV['TEST_PORTS'] }
test.with projects("tools"), libs, AXIS2_TEST, AXIOM, JAVAX.servlet, Buildr::Jetty::REQUIRES, HIBERNATE, DOM4J, SLF4J, LOG4J
webapp_dir = "#{test.compile.target}/webapp"
test.setup task(:prepare_webapp) do |task|
@@ -203,7 +220,7 @@
test.with projects("scheduler-simple", "dao-jpa", "dao-hibernate", "bpel-epr"),
- BACKPORT, COMMONS.pool, COMMONS.lang, DERBY, JAVAX.connector, JAVAX.transaction,
+ BACKPORT, COMMONS.pool, COMMONS.lang, COMMONS.io, DERBY, JAVAX.connector, JAVAX.transaction,
GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, TRANQL, HSQLDB, JAVAX.ejb,
OPENJPA, XERCES, XALAN, LOG4J, SLF4J,
DOM4J, HIBERNATE,
@@ -291,16 +308,12 @@
dao_hibernate = project("dao-hibernate").compile.target
bpel_store = project("bpel-store").compile.target
- Buildr::Hibernate::REQUIRES[:xdoclet] = Buildr.group("xdoclet", "xdoclet-xdoclet-module", "xdoclet-hibernate-module",
+ hibernate_requires[:xdoclet] = Buildr.group("xdoclet", "xdoclet-xdoclet-module", "xdoclet-hibernate-module",
:under=>"xdoclet", :version=>"1.2.3") + ["xdoclet:xjavadoc:jar:1.1-j5"] + projects("dao-hibernate")
export = lambda do |properties, source, target|
file(target=>[properties, source]) do |task|
mkpath File.dirname(target), :verbose=>false
- # Protection against a buildr bug until the fix is released, avoids build failure
-
- class << task ; attr_accessor :ant ; end
- task.enhance { |task| task.ant = Buildr::Hibernate.schemaexport }
hibernate_schemaexport target do |task, ant|
ant.schemaexport(:properties=>properties.to_s, :quiet=>"yes", :text=>"yes", :delimiter=>";",
@@ -428,64 +441,138 @@
end
end
-# desc "ODE Commmands for Karaf"
-# define "jbi-karaf-commands" do
-# compile.with projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, COMMONS.logging
-# libs = artifacts(projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, COMMONS.logging)
-# package(:bundle).tap do |bnd|
-# bnd.bnd_file = _("org.apache.ode.commands.bnd")
-# bnd.sourcepath = _("src/main/java")
-# bnd.classpath = _("target/classes") + File::PATH_SEPARATOR + libs.join(File::PATH_SEPARATOR)
-# bnd.properties.update(BUNDLE_VERSIONS)
-# end
-# end
-#
-# desc "ODE JBI Packaging for Karaf"
-# define "jbi-karaf" do
-# ode_libs = artifacts(projects("bpel-api", "bpel-api-jca", "bpel-compiler", "bpel-connector", "bpel-dao",
-# "bpel-epr", "jca-ra", "jca-server", "bpel-obj", "bpel-ql", "bpel-runtime",
-# "scheduler-simple", "bpel-schemas", "bpel-store", "dao-hibernate", "dao-jpa",
-# "jacob", "jacob-ap", "utils", "agents"))
-# libs = artifacts(ANT, AXIOM, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.dbcp, COMMONS.lang, COMMONS.pool,
-# COMMONS.primitives, DERBY, GERONIMO.connector, GERONIMO.transaction, JAXEN, JAVAX.connector,
-# JAVAX.ejb, JAVAX.jms, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, LOG4J, OPENJPA,
-# SAXON, TRANQL, XALAN, XERCES, XMLBEANS, WSDL4J)
-# package(:bundle).tap do |bnd|
-# bnd.bnd_file = _("bnd.bnd")
-# bnd.classpath = (ode_libs + artifacts(project("jbi").package(:jar)) + libs).join(File::PATH_SEPARATOR)
-# bnd.properties.update(BUNDLE_VERSIONS)
-#
-# # inline log4j helper classes
-# bnd.properties["log4j.jar"] = artifact(LOG4J).to_s
-#
-# # inline dao zip files
-# zips = artifacts(project("dao-hibernate-db").package(:zip), project("dao-jpa-ojpa-derby").package(:zip))
-# inlines = zips.map{|item| "@" + item.to_s}
-# bnd.properties["inlines"] = inlines.join(', ')
-#
-# # embed jars
-# bnd_libs = ode_libs + artifacts(AXIOM, BACKPORT, GERONIMO.connector, JAXEN,
-# JAVAX.connector, JAVAX.persistence, JAVAX.ejb,
-# OPENJPA, SAXON, TRANQL,
-# XALAN, XERCES, XMLBEANS, WSDL4J)
-# includes = bnd_libs.map{|item| File.basename(item.to_s)}
-# bnd.properties["includes"] = includes.join(', ')
-# end
-#
-# # Generate features.xml
-# def package_as_feature(file_name)
-# file file_name => [_("src/main/filtered-resources/features.xml")] do
-# filter(_("src/main/filtered-resources")).include("features.xml").into(_("target")).using(BUNDLE_VERSIONS).run
-# mv _("target/features.xml"), file_name
-# end
-# end
-# def package_as_feature_spec(spec)
-# spec.merge({ :type=>:xml, :classifier=>'features' })
-# end
-# package(:feature)
-#
-# end
+ desc "ODE Commmands for Karaf"
+ define "jbi-karaf-commands" do
+ compile.with projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, COMMONS.logging
+ libs = artifacts(projects("bpel-schemas", "jbi"), JBI, KARAF, XMLBEANS, COMMONS.logging)
+ package(:bundle).tap do |bnd|
+ bnd.classpath = [_("target/classes"), libs].flatten
+ BUNDLE_VERSIONS.each {|key, value| bnd[key] = value }
+ bnd['Bundle-Name'] = "Apache ODE :: Commands"
+ bnd['Bundle-Version'] = VERSION_NUMBER
+ bnd['Require-Bundle'] = "org.apache.ode.ode-jbi-bundle;version=#{VERSION_NUMBER}"
+ bnd['Import-Package'] = 'org.osgi.service.command,org.apache.karaf.shell.console;version="[2.0,2.1)",*'
+ bnd['Private-Package'] = "org.apache.ode.karaf.commands;version=#{VERSION_NUMBER}"
+ bnd['Include-Resource'] = _('src/main/resources')
+ end
+ end
+ desc "ODE Examples for Karaf"
+ define "jbi-karaf-examples",
+ :group => "org.apache.ode.examples",
+ :base_dir => "distro/src/examples-jbi/maven2" do
+
+ define "helloworld2-osgi" do
+ package(:bundle, :id => "helloworld-bundle").tap do |bnd|
+ bnd.classpath = [KARAF, project("ode:jbi-bundle")]
+ bnd['Bundle-Name'] = "Apache ODE :: Hello World Example"
+ bnd['Bundle-SymbolicName'] = "org.apache.ode.examples-helloworld2-bundle"
+ bnd['Bundle-Version'] = VERSION_NUMBER
+ bnd['Require-Bundle'] = "org.apache.ode.ode-jbi-bundle;version=#{VERSION_NUMBER}"
+ bnd['Import-Package'] = "org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi"
+ bnd['Export-Package'] = ""
+ bnd['-exportcontents'] = ""
+ bnd['Include-Resource'] = _('src/main/resources')
+ end
+ # we package sources and javadocs separately to give them a custom id
+ package(:sources, :id => "helloworld-bundle")
+
+ # This project does not contain java classes, hence there are no javadocs.
+ # But since Nexus will complain about a missing javadoc artifact, we make sure that an empty one is created.
+ package(:javadoc, :id => "helloworld-bundle").enhance { mkdir_p _("target/doc") }
+ end
+
+ define "ping-pong-osgi" do
+ compile
+ package(:bundle, :id => "ping-pong-bundle").tap do |bnd|
+ bnd.classpath = [_("target/classes"), KARAF, project("ode:jbi-bundle")].flatten
+ bnd['Bundle-Name'] = "Apache ODE :: Ping-Pong Example"
+ bnd['Bundle-SymbolicName'] = "org.apache.ode.examples-ping-pong-bundle"
+ bnd['Bundle-Version'] = VERSION_NUMBER
+ bnd['Require-Bundle'] = "org.apache.ode.ode-jbi-bundle;version=#{VERSION_NUMBER}"
+ bnd['Import-Package'] = "org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi"
+ bnd['Export-Package'] = "org.apache.ode.ping"
+ bnd['Include-Resource'] = _('src/main/resources')
+ end
+
+ # we package sources and javadocs separately to give them a custom id
+ package(:sources, :id => "ping-pong-bundle")
+ package(:javadoc, :id => "ping-pong-bundle")
+ end
+ end
+
+ define "jbi-karaf-pmapi-httpbinding" do
+ package(:bundle).tap do |bnd|
+ bnd.classpath = [KARAF, project("ode:jbi-bundle")]
+ bnd['Bundle-Name'] = "Apache ODE :: PMAPI HTTP Binding"
+ bnd['Bundle-SymbolicName'] = "org.apache.ode-pmapi-httpbinding"
+ bnd['Bundle-Version'] = VERSION_NUMBER
+ bnd['Require-Bundle'] = "org.apache.ode.ode-jbi-bundle;version=#{VERSION_NUMBER}"
+ bnd['Import-Package'] = "org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi"
+ bnd['-exportcontents'] = ""
+ bnd['Include-Resource'] = _('src/main/resources')
+ end
+ end
+
+ desc "ODE JBI Packaging for Karaf"
+ define "jbi-karaf" do
+ resources.filter.using(BUNDLE_VERSIONS)
+ package :jar
+ # Generate features.xml
+ def package_as_feature(file_name)
+ file file_name => [_("src/main/resources/features.xml")] do
+ filter(_("src/main/resources")).include("features.xml").into(_("target")).using(BUNDLE_VERSIONS).run
+ mv _("target/features.xml"), file_name
+ end
+ end
+ def package_as_feature_spec(spec)
+ spec.merge({ :type=>:xml, :classifier=>'features' })
+ end
+ package(:feature)
+ end
+
+ desc "ODE JBI Bundle"
+ define "jbi-bundle" do
+ ode_libs = artifacts(projects("bpel-api", "bpel-api-jca", "bpel-compiler", "bpel-connector", "bpel-dao",
+ "bpel-epr", "jca-ra", "jca-server", "bpel-obj", "bpel-ql", "bpel-runtime",
+ "scheduler-simple", "bpel-schemas", "bpel-store", "dao-hibernate", "dao-jpa",
+ "jacob", "jacob-ap", "utils", "agents"))
+ libs = artifacts(ANT, AXIOM, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.dbcp, COMMONS.lang, COMMONS.pool,
+ COMMONS.primitives, COMMONS.io, DERBY, GERONIMO.connector, GERONIMO.transaction, JAXEN, JAVAX.connector,
+ JAVAX.ejb, JAVAX.jms, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, LOG4J, OPENJPA,
+ SAXON, TRANQL, XALAN, XERCES, XMLBEANS, WSDL4J, KARAF)
+ compile.with projects("bpel-schemas", "jbi", "bpel-api"), JBI, libs, KARAF, SPRING, SPRING_OSGI
+
+ package(:bundle).tap do |bnd|
+ # inline dao zip files
+ zips = artifacts(project("dao-hibernate-db").package(:zip), project("dao-jpa-ojpa-derby").package(:zip))
+ inlines = zips.map{|item| "@" + item.to_s}
+
+ # embed jars
+ bnd_libs = ode_libs + artifacts(AXIOM, BACKPORT, GERONIMO.connector, JAXEN,
+ JAVAX.connector, JAVAX.persistence, JAVAX.ejb,
+ OPENJPA, SAXON, TRANQL,
+ XALAN, XERCES, XMLBEANS, WSDL4J)
+ includes = bnd_libs.map{|item| File.basename(item.to_s)}
+ bnd["includes"] = includes.join(', ')
+
+ # embedd *.xsd, *.xml, xmlbeans* from ode libs
+ embedres = ode_libs.map {|pkg| ['**.xsd', '**.xml', 'schemaorg_apache_xmlbeans/**'].map {|x| '@' + pkg.to_s + '!/' + x}}.join(', ')
+ bnd['Export-Package'] = "org.apache.ode*;version=#{VERSION_NUMBER};-split-package:=merge-first"
+ bnd['Import-Package'] = '!com.sun.mirror*, !org.apache.axis2.client*, javax.jbi*;version="1.0", javax.transaction*;version="1.1", org.tranql.connector.jdbc, org.apache.commons.httpclient*;version="3.0", org.apache.commons.logging*;version="1.1", org.apache.commons*, org.apache.geronimo.transaction.manager;version="2.0", org.osgi.service.command;version="[0.2,1)", org.springframework.beans.factory.xml;version="2.5", org.w3c.dom, org.xml.sax, org.xml.sax.ext, org.xml.sax.helpers, org.jaxen.saxpath,net.sf.saxon.xpath,*;resolution:=optional'
+ bnd['Embed-Dependency'] = '*;inline=**.xsd|schemaorg_apache_xmlbeans/**|**.xml'
+ bnd['DynamicImport-Package'] = '*'
+ bnd['Include-Resource'] = [embedres, _('src/main/resources'), inlines].flatten.join(', ')
+ bnd['Bundle-Vendor'] = 'Apache Software Foundation'
+ bnd['Bundle-License'] = 'http://www.apache.org/licenses/LICENSE-2.0'
+ bnd['Bundle-DocURL'] = 'http://ode.apache.org'
+ bnd['Bundle-Name'] = 'Apache ODE :: BPEL Service Engine'
+ bnd.classpath = [project.compile.target, bnd_libs, artifacts(project("jbi").package(:jar)), libs].flatten
+
+ BUNDLE_VERSIONS.each {|key, value| bnd[key] = value }
+ end
+ end
+
desc "ODE JCA Resource Archive"
define "jca-ra" do
compile.with project("utils"), JAVAX.connector
@@ -519,6 +606,13 @@
package(:jar).with :manifest=>_("src/main/resources/META-INF/MANIFEST.MF")
end
+ # sources and javadocs of jbi-karaf-examples are packaged separately.
+ package_with_sources :except => ["jbi-karaf-examples:helloworld2-osgi", "jbi-karaf-examples:ping-pong-osgi"]
+ package_with_javadoc :except => ["jbi-karaf-examples:helloworld2-osgi", "jbi-karaf-examples:ping-pong-osgi"] unless ENV["JAVADOC"] =~ /^(no|off|false|skip)$/i
+
+ # sign artifacts
+ gpg_sign_before_upload
+
end
define "apache-ode" do
@@ -530,7 +624,7 @@
project.package(:zip, :id=>id).enhance(project("ode").projects.map(&:packages).flatten) do |pkg|
pkg.path("#{id}-#{version}").tap do |zip|
zip.include meta_inf + ["RELEASE_NOTES", "README"].map { |f| path_to(f) }
- zip.path("examples").include project.path_to("src/examples"+postfix), :as=>"."
+ zip.path("examples").include(project.path_to("src/examples"+postfix), :as=>".").exclude "**/target"
# Libraries
zip.path("lib").include artifacts(COMMONS.logging, COMMONS.codec, COMMONS.httpclient,
@@ -599,12 +693,17 @@
if File.exist?(".svn")
`svn status -v`.reject { |l| l[0] == ?? || l[0] == ?D || l.strip.empty? || l[0...3] == "---"}.
map { |l| l.split.last }.reject { |f| File.directory?(f) }.
- each { |f| zip.include f, :as=>f }
+ each { |f| zip.include f, :as=>f.gsub("\\", "/") }
+ elsif File.exist? '.git/config'
+ `git ls-files`.split("\n").each { |f| zip.include f, :as=>f.gsub("\\", "/") }
else
zip.include Dir.pwd, :as=>"."
end
end
- package(:zip, :id=>"#{id}-docs").include(javadoc(project("ode").projects).target) unless ENV["JAVADOC"] =~ /^(no|off|false|skip)$/i
+ package(:zip, :id=>"#{id}-docs").include(doc.from(project("ode").projects).
+ using(:javadoc, :windowtitle=>"Apache ODE #{project.version}").target, :as=>"#{id}-docs-#{version}") unless ENV["JAVADOC"] =~ /^(no|off|false|skip)$/i
+
+ # sign packages
+ gpg_sign_before_upload
end
-
Modified: branches/ODE/ODE-1.x/agents/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/agents/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/agents/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-agents</artifactId>
<name>ODE :: Agents</name>
@@ -28,6 +28,6 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
</project>
Modified: branches/ODE/ODE-1.x/axis2/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/axis2/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-axis2</artifactId>
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<properties>
Modified: branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java
===================================================================
--- branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/ODEServer.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -357,6 +357,7 @@
try {
__log.debug("shutdown BpelConnector");
_connector.shutdown();
+ _connector = null;
} catch (Throwable t) {
__log.error("Unable to cleanup temp files.", t);
}
@@ -365,6 +366,7 @@
__log.debug("shutting down HTTP connection manager.");
try {
httpConnectionManager.shutdown();
+ httpConnectionManager = null;
} catch(Throwable t) {
__log.error("Unable to shut down HTTP connection manager.", t);
}
@@ -373,6 +375,7 @@
__log.debug("shutting down Idle Connection Timeout Thread.");
try {
idleConnectionTimeoutThread.shutdown();
+ idleConnectionTimeoutThread = null;
} catch(Throwable t) {
__log.error("Unable to shut down Idle Connection Timeout Thread.", t);
}
@@ -384,6 +387,8 @@
__log.error("Unable to cleanup temp files.", t);
}
+ _executorService.shutdownNow();
+ _executorService = null;
__log.info(__msgs.msgOdeShutdownCompleted());
} finally {
Modified: branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java
===================================================================
--- branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentBrowser.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -93,8 +93,9 @@
}
out.write("<p><a href=\"" + url + "\">" + serviceName + "</a></p>");
-
- out.write("<ul><li>Endpoint: " + (root + "/processes/" + serviceName) + "</li>");
+ String axis2wsdl = root + "/processes/" + serviceName + "?wsdl";
+ out.write("<ul><li>Axis2 WSDL: <a href=\"" + axis2wsdl + "\">" + axis2wsdl + "</a></li>");
+ out.write("<li>Endpoint: " + (root + "/processes/" + serviceName) + "</li>");
Iterator iter = service.getOperations();
ArrayList<String> ops = new ArrayList<String>();
while (iter.hasNext()) ops.add(((AxisOperation)iter.next()).getName().getLocalPart());
@@ -213,11 +214,11 @@
out.write("<process><pid>"+pid+"</pid>");
for (final File file : files) {
if (file.getPath().endsWith(".wsdl")) {
- String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1);
+ String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1).replace(File.separatorChar, '/');
out.write("<wsdl>"+ relativePath + "</wsdl>");
}
if (file.getPath().endsWith(".bpel")) {
- String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1);
+ String relativePath = file.getPath().substring(_store.getDeployDir().getCanonicalPath().length() + 1).replace(File.separatorChar, '/');
out.write("<bpel>"+ relativePath + "</bpel>");
}
Modified: branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java
===================================================================
--- branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2/src/main/java/org/apache/ode/axis2/service/DeploymentWebService.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -244,6 +244,9 @@
} else if (operation.equals("listProcesses")) {
OMElement namePart = messageContext.getEnvelope().getBody().getFirstElement().getFirstElement();
List<QName> processIds = _store.listProcesses(namePart.getText());
+ if (processIds == null) {
+ throw new OdeFault("Could not find process package: " + namePart.getText());
+ }
OMElement response = factory.createOMElement("processIds", null);
for (QName qname : processIds) {
OMElement nameElmt = factory.createOMElement("id", _deployapi);
Modified: branches/ODE/ODE-1.x/axis2/src/main/wsdl/pmapi.wsdl
===================================================================
--- branches/ODE/ODE-1.x/axis2/src/main/wsdl/pmapi.wsdl 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2/src/main/wsdl/pmapi.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
@@ -170,7 +170,7 @@
<part name="varName" type="xsd:string"/>
</message>
<message name="getVariableInfoOutput">
- <part name="scope-info" type="typ:tVariableInfo"/>
+ <part name="variable-info" type="typ:tVariableInfo"/>
</message>
<message name="listEventsInput">
<part name="instanceFilter" type="xsd:string"/>
Modified: branches/ODE/ODE-1.x/axis2-war/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-axis2-war</artifactId>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<properties>
@@ -247,6 +247,35 @@
<build>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack-axis2-webapp</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>org.apache.axis2</groupId>
+ <artifactId>axis2-webapp</artifactId>
+ <version>${axis2.version}</version>
+ <type>war</type>
+ <overWrite>false</overWrite>
+ </artifactItem>
+ </artifactItems>
+ <includes>axis2-web/**,WEB-INF/classes/org/**,WEB-INF/modules/*</includes>
+ <outputDirectory>${project.build.directory}/axis2-webapp</outputDirectory>
+ <overWriteReleases>false</overWriteReleases>
+ <overWriteSnapshots>false</overWriteSnapshots>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/assembly/bin.xml
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/assembly/bin.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/assembly/bin.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -26,6 +26,10 @@
</formats>
<fileSets>
+ <fileSet>
+ <directory>${project.build.directory}/axis2-webapp</directory>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
<fileSet>
<directory>src/main/webapp</directory>
@@ -177,7 +181,6 @@
<include>org.apache.axis2:addressing:mar</include>
</includes>
</dependencySet>
-
</dependencySets>
</assembly>
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/webapp/deployment.html
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/webapp/deployment.html 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/webapp/deployment.html 2011-01-16 11:52:46 UTC (rev 1234)
@@ -105,6 +105,9 @@
<li class="current">
<a href="#">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/webapp/fileupload.jsp
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/webapp/fileupload.jsp 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/webapp/fileupload.jsp 2011-01-16 11:52:46 UTC (rev 1234)
@@ -110,7 +110,7 @@
out.println("Package deployement failed!");
}
} catch (AxisFault axisFault) {
- out.println("Axis2 Fault Occurred while Sending the request!");
+ out.println(axisFault.getMessage());
}
}else{
out.println("No package Name specified!");
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/webapp/index.html
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/webapp/index.html 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/webapp/index.html 2011-01-16 11:52:46 UTC (rev 1234)
@@ -176,6 +176,9 @@
<li>
<a href="deployment.html">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/webapp/instances.html
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/webapp/instances.html 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/webapp/instances.html 2011-01-16 11:52:46 UTC (rev 1234)
@@ -79,6 +79,9 @@
<li>
<a href="deployment.html">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/webapp/js/ODE.js
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/webapp/js/ODE.js 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/webapp/js/ODE.js 2011-01-16 11:52:46 UTC (rev 1234)
@@ -27,6 +27,12 @@
}
var baseDirectoryURL = baseURL + baseDirectoryName;
+debug = function (log_txt) {
+ if (window.console != undefined) {
+ console.log(log_txt);
+ }
+}
+
var org;
if (!org) {
org = {};
@@ -320,12 +326,8 @@
return listAllProcessesRes;
}
catch (e) {
- if (typeof e == "string") {
- alert("Exception Occurred " + e.toString());
- }
- else {
- alert("Exception Occurred!" + e);
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
return null;
}
}
@@ -353,6 +355,10 @@
}
function processProcessInfoList(listAllProcessesRes){
+ if (listAllProcessesRes == null) {
+ return 0;
+ }
+
var returnInfoArray = [];
var processInfoList = org.apache.ode.DOMHelper.getElementsByTagName(
processInfoTagName,
@@ -372,10 +378,10 @@
var terminatedInstances = 0;
var scopeEle = processInfoList[i];
-
+
var pidEle = org.apache.ode.DOMHelper.getElementsByTagName("pid", processInfoNS, processInfoNSPrefix, scopeEle)[0];
var pid = org.apache.ode.DOMHelper.getText(pidEle);
-
+
var versionEle = org.apache.ode.DOMHelper.getElementsByTagName('version', processInfoNS, processInfoNSPrefix, scopeEle)[0];
var version = org.apache.ode.DOMHelper.getText(versionEle);
@@ -399,10 +405,11 @@
var urlOfName = pid.substr(++startPos, (endPos - 2));
var instanceSummaryEle = org.apache.ode.DOMHelper.getElementsByTagName("instance-summary", processInfoNS, processInfoNSPrefix, scopeEle)[0];
-
+
for(var m = instanceSummaryEle.firstChild; m != null; m = m.nextSibling){
var state = m.getAttribute("state");
var count = m.getAttribute("count");
+
if (state == 'ACTIVE') {
activeInstances = parseInt(count);
}else if (state == 'COMPLETED') {
@@ -552,7 +559,7 @@
}
var stat;
var processes = processProcessInfoList(loadProcessInfo());
- var numOfProcesses = processes.length;
+ var numOfProcesses = (processes == 0) ? 0 : processes.length;
var _ter = 0;
var _act = 0;
var _error = 0;
@@ -821,12 +828,9 @@
return responseDoc;
}
catch (e) {
- if (typeof(e) == "string") {
- org.apache.ode.Widgets.alert("Exception occured in loadInstanceInfo():\n" + e.toString());
- }
- else {
- org.apache.ode.Widgets.alert("Exception occurred in loadInstanceInfo()!");
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
+ return null;
}
}
@@ -844,6 +848,9 @@
}
function processInstanceInfo(instanceInfoDoc){
+ if (instanceInfoDoc == null) {
+ return 0;
+ }
var returnInstanceArray = [];
var instanceInfoList = org.apache.ode.DOMHelper.getElementsByTagName(
instanceInfoTagName,
@@ -1158,17 +1165,18 @@
var response = DeploymentService.listDeployedPackages();
return response;
}catch(e){
- if(typeof e == 'string'){
- org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
- }else{
- org.apache.ode.Widgets.alert("Exception occurred in loadDeployedBundles.");
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
+ return null;
}
}
function getDeployedPackages(){
var packageNames = [];
var response = loadDeployedPackages();
+ if (response == null) {
+ return 0;
+ }
var names = org.apache.ode.DOMHelper.getElementsByTagName('name',"http://www.apache.org/ode/deployapi","deployapi",response);
//var names = response.getElementsByTagName('name');
if (names.length != 0) {
@@ -1186,7 +1194,7 @@
try{
var processes = [];
var response = DeploymentService.listProcesses(packageName);
- var ids = response.getElementsByTagName('id');
+ var ids = org.apache.ode.DOMHelper.getElementsByTagName('id',"http://www.apache.org/ode/deployapi","deployapi",response);
if(ids.length != 0){
for(var i =0; i < ids.length; i++){
processes[i] = org.apache.ode.DOMHelper.getText(ids[i]);
@@ -1197,11 +1205,9 @@
}
}catch(e){
- if(typeof e == 'string'){
- org.apache.ode.Widgets.alert("Exception occured:\n" + e.toString());
- }else{
- org.apache.ode.Widgets.alert("Exception occurred in getProcesses.");
- }
+ // probably a connection error. We don't want to spam the user, so we're just logging it if a console is available
+ debug("Exception in " + arguments.callee.toString().match(/function\s+([^(]+)/)[1] + ": " + e.toString());
+ return 0;
}
}
function getPackageContents(packageName){
@@ -1244,7 +1250,7 @@
var processes = getProcesses(deployedPacks[i]);
if(processes != 0){
for(var j = 0; j < processes.length; j++){
- contentHtml += processes[j]+', ';
+ contentHtml += processes[j] + (j+1 < processes.length ? ', ' : '');
}
}else{
contentHtml += 'Error occurred during getting processes or no processes.';
@@ -1255,7 +1261,7 @@
for(var k =0; k < content.length; k++){
var strC = content[k];
var index = strC.indexOf('/');
- contentHtml += strC.substr(index+1) + ", ";
+ contentHtml += strC.substr(index+1) + (k+1 < content.length ? ", " : "");
}
}else{
contentHtml += 'Error occurred during getting package Content or no content.'
Modified: branches/ODE/ODE-1.x/axis2-war/src/main/webapp/processes.html
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/main/webapp/processes.html 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/main/webapp/processes.html 2011-01-16 11:52:46 UTC (rev 1234)
@@ -76,6 +76,9 @@
<li>
<a href="deployment.html">Deployment</a>
</li>
+ <li>
+ <a href="deployment/" target="_blank">Deployment Browser</a>
+ </li>
</ul>
</div>
<div id="wrapper">
Modified: branches/ODE/ODE-1.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java
===================================================================
--- branches/ODE/ODE-1.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/axis2-war/src/test/java/org/apache/ode/axis2/Axis2TestBase.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -220,6 +220,8 @@
} else {
System.clearProperty("ode.persistence");
}
+
+ server = null;
}
protected class ODEAxis2Server extends AxisServer {
Modified: branches/ODE/ODE-1.x/bpel-api/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-api/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-api/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-api</artifactId>
<name>ODE :: APIs</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-api-jca/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-api-jca/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-api-jca/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-api-jca</artifactId>
<name>ODE :: JCA Connector</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-compiler/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-compiler/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-compiler</artifactId>
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -110,6 +110,7 @@
import org.apache.ode.bpel.o.OVarType;
import org.apache.ode.bpel.o.OXsdTypeVarType;
import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.GUID;
import org.apache.ode.utils.NSContext;
import org.apache.ode.utils.Namespaces;
@@ -1608,8 +1609,10 @@
return null;
try {
- return new String(StreamUtils.read(is));
- } catch (IOException e) {
+ // verify that sheet is well-formed and preserve encoding.
+ Document doc = DOMUtils.parse(is);
+ return DOMUtils.domToString(doc);
+ } catch (Exception e) {
__log.debug("IO error", e);
// todo: this should produce a message
return null;
Modified: branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/wsdl/XMLSchemaTypeSerializer.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -22,6 +22,7 @@
import java.io.PrintWriter;
import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
import javax.wsdl.Definition;
import javax.wsdl.WSDLException;
@@ -76,6 +77,12 @@
ExtensionRegistry extensionRegistry)
throws WSDLException {
DOMUtils.pancakeNamespaces(element);
- return new XMLSchemaType(DOMUtils.domToString(element).getBytes());
+ try {
+ // xml dump is encoded in UTF-8, so the byte array should use the same encoding
+ // the reading xml parser should be able to correctly detect the encoding then.
+ return new XMLSchemaType(DOMUtils.domToString(element).getBytes("UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ throw new WSDLException(WSDLException.OTHER_ERROR, e.getMessage(), e);
+ }
}
}
Modified: branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -58,11 +58,13 @@
/**
* XPath compiler based on the SAXON implementation.
+ *
* @author Matthieu Riou <mriou at apache dot org>
*/
public class XPath20ExpressionCompilerImpl implements ExpressionCompiler {
- protected static final Log __log = LogFactory.getLog(XPath20ExpressionCompilerBPEL20.class);
+ protected static final Log __log = LogFactory
+ .getLog(XPath20ExpressionCompilerBPEL20.class);
protected String _bpelNS;
protected QName _qnLinkStatus;
@@ -70,32 +72,39 @@
protected QName _qnVarData;
protected QName _qnXslTransform;
- protected final XPathMessages __msgs = MessageBundle.getMessages(XPathMessages.class);
+ protected final XPathMessages __msgs = MessageBundle
+ .getMessages(XPathMessages.class);
protected Map<String, String> _properties = new HashMap<String, String>();
protected CompilerContext _compilerContext;
public XPath20ExpressionCompilerImpl(String bpelNS) {
_bpelNS = bpelNS;
_qnLinkStatus = new QName(_bpelNS, Constants.EXT_FUNCTION_GETLINKSTATUS);
- _qnVarProp = new QName(_bpelNS, Constants.EXT_FUNCTION_GETVARIABLEPROPERTY);
+ _qnVarProp = new QName(_bpelNS,
+ Constants.EXT_FUNCTION_GETVARIABLEPROPERTY);
_qnVarData = new QName(_bpelNS, Constants.EXT_FUNCTION_GETVARIABLEDATA);
- _qnXslTransform = new QName(_bpelNS, Constants.EXT_FUNCTION_DOXSLTRANSFORM);
+ _qnXslTransform = new QName(_bpelNS,
+ Constants.EXT_FUNCTION_DOXSLTRANSFORM);
- _properties.put("runtime-class", "org.apache.ode.bpel.elang.xpath20.runtime.XPath20ExpressionRuntime");
+ _properties
+ .put("runtime-class",
+ "org.apache.ode.bpel.elang.xpath20.runtime.XPath20ExpressionRuntime");
TransformerFactory trsf = new net.sf.saxon.TransformerFactoryImpl();
XslTransformHandler.getInstance().setTransformerFactory(trsf);
}
public void setCompilerContext(CompilerContext compilerContext) {
_compilerContext = compilerContext;
- XslCompilationErrorListener xe = new XslCompilationErrorListener(compilerContext);
+ XslCompilationErrorListener xe = new XslCompilationErrorListener(
+ compilerContext);
XslTransformHandler.getInstance().setErrorListener(xe);
}
/**
* @see org.apache.ode.bpel.compiler.api.ExpressionCompiler#compileJoinCondition(java.lang.Object)
*/
- public OExpression compileJoinCondition(Object source) throws CompilationException {
+ public OExpression compileJoinCondition(Object source)
+ throws CompilationException {
return _compile((Expression) source, true);
}
@@ -109,70 +118,81 @@
/**
* @see org.apache.ode.bpel.compiler.api.ExpressionCompiler#compileLValue(java.lang.Object)
*/
- public OLValueExpression compileLValue(Object source) throws CompilationException {
+ public OLValueExpression compileLValue(Object source)
+ throws CompilationException {
return (OLValueExpression) _compile((Expression) source, false);
}
/**
* @see org.apache.ode.bpel.compiler.api.ExpressionCompiler#compile(java.lang.Object)
*/
- private OExpression _compile(org.apache.ode.bpel.compiler.bom.Expression xpath, boolean isJoinCondition)
- throws CompilationException {
- OXPath20ExpressionBPEL20 oexp = new OXPath20ExpressionBPEL20(_compilerContext.getOProcess(), _qnVarData,
- _qnVarProp, _qnLinkStatus, _qnXslTransform, isJoinCondition);
+ private OExpression _compile(
+ org.apache.ode.bpel.compiler.bom.Expression xpath,
+ boolean isJoinCondition) throws CompilationException {
+ OXPath20ExpressionBPEL20 oexp = new OXPath20ExpressionBPEL20(
+ _compilerContext.getOProcess(), _qnVarData, _qnVarProp,
+ _qnLinkStatus, _qnXslTransform, isJoinCondition);
oexp.namespaceCtx = xpath.getNamespaceContext();
doJaxpCompile(oexp, xpath);
return oexp;
}
- private void doJaxpCompile(OXPath20ExpressionBPEL20 out, Expression source) throws CompilationException {
+ private void doJaxpCompile(OXPath20ExpressionBPEL20 out, Expression source)
+ throws CompilationException {
String xpathStr;
Node node = source.getExpression();
if (node == null) {
- throw new CompilationException(__msgs.errEmptyExpression(source.getURI(), new QName(source.getElement().getNamespaceURI(), source.getElement().getNodeName())));
+ throw new CompilationException(__msgs.errEmptyExpression(source
+ .getURI(), new QName(source.getElement().getNamespaceURI(),
+ source.getElement().getNodeName())));
}
if (node.getNodeType() != Node.TEXT_NODE) {
- throw new CompilationException(__msgs.errUnexpectedNodeTypeForXPath(DOMUtils.domToString(node)));
+ throw new CompilationException(
+ __msgs.errUnexpectedNodeTypeForXPath(DOMUtils
+ .domToString(node)));
}
xpathStr = node.getNodeValue();
xpathStr = xpathStr.trim();
if (xpathStr.length() == 0) {
- throw new CompilationException(__msgs.warnXPath20Syntax(DOMUtils.domToString(node), "empty string"));
+ throw new CompilationException(__msgs.warnXPath20Syntax(
+ DOMUtils.domToString(node), "empty string"));
}
out.xpath = xpathStr;
- try {
- __log.debug("Compiling expression " + xpathStr);
+ try {
+ __log.debug("Compiling expression " + xpathStr);
XPathFactory xpf = new XPathFactoryImpl();
JaxpFunctionResolver funcResolver = new JaxpFunctionResolver(
- _compilerContext, out, source.getNamespaceContext(), _bpelNS);
- JaxpVariableResolver varResolver = new JaxpVariableResolver(_compilerContext, out);
+ _compilerContext, out, source.getNamespaceContext(),
+ _bpelNS);
+ JaxpVariableResolver varResolver = new JaxpVariableResolver(
+ _compilerContext, out);
XPath xpe = xpf.newXPath();
xpe.setXPathFunctionResolver(funcResolver);
xpe.setXPathVariableResolver(varResolver);
- xpe.setNamespaceContext(source.getNamespaceContext());
+ xpe.setNamespaceContext(source.getNamespaceContext());
XPathExpression expr = xpe.compile(xpathStr);
// evaluate the expression so as to initialize the variables
- try {
- expr.evaluate(node);
- } catch (XPathExpressionException xpee) {
- // swallow errors caused by uninitialized variable
+ try {
+ expr.evaluate(node);
+ } catch (XPathExpressionException xpee) {
+ // swallow errors caused by uninitialized variable
}
for (String varExpr : extractVariableExprs(xpathStr)) {
expr = xpe.compile(varExpr);
- try {
- expr.evaluate(node);
- } catch (XPathExpressionException xpee) {
- // swallow errors caused by uninitialized variable
- }
+ try {
+ expr.evaluate(node);
+ } catch (XPathExpressionException xpee) {
+ // swallow errors caused by uninitialized variable
+ }
}
for (String functionExpr : extractFunctionExprs(xpathStr)) {
expr = xpe.compile(functionExpr);
- try {
- expr.evaluate(node);
- } catch (XPathExpressionException xpee) {
- // swallow errors caused by uninitialized variable
- }
+ try {
+ expr.evaluate(node);
+ } catch (XPathExpressionException xpee) {
+ // swallow errors caused by uninitialized variable
+ }
}
} catch (XPathExpressionException e) {
__log.debug(e);
@@ -188,90 +208,96 @@
/**
* Returns the list of variable references in the given XPath expression
- * that may not have been resolved properly, which is the case especially
- * if the expression contains a function, which short circuited the evaluation.
- *
+ * that may not have been resolved properly, which is the case especially if
+ * the expression contains a function, which short circuited the evaluation.
+ *
* @param xpathStr
- * @return list of variable expressions that may not have been resolved properly
+ * @return list of variable expressions that may not have been resolved
+ * properly
*/
- private List<String> extractVariableExprs(String xpathStr) {
- ArrayList<String> variableExprs = new ArrayList<String>();
- int firstVariable = xpathStr.indexOf("$"),
- lastVariable = xpathStr.lastIndexOf("$"),
- firstFunction = xpathStr.indexOf("(");
- StringBuffer variableExpr = new StringBuffer();
- if ((firstVariable > 0 && // the xpath references a variable
- firstFunction > 0) || // the xpath contains a function
- (firstVariable < lastVariable)) { // the xpath references multiple variables
- // most likely, the variable reference has not been resolved, so make that happen
- boolean quoted = false, doubleQuoted = false, variable = false;
- Name11Checker nameChecker = Name11Checker.getInstance();
- for (int index = 0; index < xpathStr.length(); index++) {
- char ch = xpathStr.charAt(index);
- if (ch == '\''){
- quoted = !quoted;
- }
- if (ch == '\"') {
- doubleQuoted = !doubleQuoted;
- }
- if (quoted || doubleQuoted){
- continue;
- }
- if (ch == '$') {
- variable = true;
- variableExpr.setLength(0);
- variableExpr.append(ch);
- } else {
- if (variable) {
- variableExpr.append(ch);
- // in the name is qualified, don't check if its a qname when we're at the ":" character
- if (ch == ':') {
- continue;
- }
- if (index == xpathStr.length() ||
- !nameChecker.isQName(variableExpr.substring(1))) {
- variable = false;
- variableExpr.setLength(variableExpr.length() - 1);
- variableExprs.add(variableExpr.toString());
- variableExpr.setLength(0);
- }
- }
- }
- }
- if (variableExpr.length() > 0) {
- variableExprs.add(variableExpr.toString());
- }
- }
- return variableExprs;
- }
+ private List<String> extractVariableExprs(String xpathStr) {
+ ArrayList<String> variableExprs = new ArrayList<String>();
+ int firstVariable = xpathStr.indexOf("$"), lastVariable = xpathStr
+ .lastIndexOf("$"), firstFunction = xpathStr.indexOf("(");
+ StringBuffer variableExpr = new StringBuffer();
+ if ((firstVariable > 0 && // the xpath references a variable
+ firstFunction > 0)
+ || // the xpath contains a function
+ (firstVariable < lastVariable)) { // the xpath references
+ // multiple variables
+ // most likely, the variable reference has not been resolved, so
+ // make that happen
+ boolean quoted = false, doubleQuoted = false, variable = false;
+ Name11Checker nameChecker = Name11Checker.getInstance();
+ for (int index = 0; index < xpathStr.length(); index++) {
+ char ch = xpathStr.charAt(index);
+ if (ch == '\'') {
+ quoted = !quoted;
+ }
+ if (ch == '\"') {
+ doubleQuoted = !doubleQuoted;
+ }
+ if (quoted || doubleQuoted) {
+ continue;
+ }
+ if (ch == '$') {
+ variable = true;
+ variableExpr.setLength(0);
+ variableExpr.append(ch);
+ } else {
+ if (variable) {
+ variableExpr.append(ch);
+ // in the name is qualified, don't check if its a qname
+ // when we're at the ":" character
+ if (ch == ':') {
+ continue;
+ }
+ if (index == xpathStr.length()
+ || !nameChecker.isQName(variableExpr
+ .substring(1))) {
+ variable = false;
+ variableExpr.setLength(variableExpr.length() - 1);
+ variableExprs.add(variableExpr.toString());
+ variableExpr.setLength(0);
+ }
+ }
+ }
+ }
+ if (variableExpr.length() > 0) {
+ variableExprs.add(variableExpr.toString());
+ }
+ }
+ return variableExprs;
+ }
/**
* Returns the list of function references in the given XPath expression
- * that may not have been resolved properly, which is the case especially
- * if the expression contains a preceding function, which short circuited the evaluation.
- *
+ * that may not have been resolved properly, which is the case especially if
+ * the expression contains a preceding function, which short circuited the
+ * evaluation.
+ *
* @param xpathStr
- * @return list of function expressions that may not have been resolved properly
+ * @return list of function expressions that may not have been resolved
+ * properly
*/
- private List<String> extractFunctionExprs(String xpathStr) {
- ArrayList<String> functionExprs = new ArrayList<String>();
- // Match the prefix : function name ( all contents except the ) and the closing )'s that may occur
- final String FUNCTION_REGEX = "\\w+:\\w+\\([.[^\\)]]*\\)*";
- int firstFunction = xpathStr.indexOf("("),
- lastFunction = xpathStr.lastIndexOf("(");
- if ((firstFunction > 0 && firstFunction < lastFunction)) {
- Pattern regex = Pattern.compile(FUNCTION_REGEX);
- Matcher matcher = regex.matcher(xpathStr);
-
- while (matcher.find()) {
- String function = matcher.group();
- functionExprs.add(function);
- }
- }
- return functionExprs;
- }
-
- public Map<String, String> getProperties() {
+ private List<String> extractFunctionExprs(String xpathStr) {
+ ArrayList<String> functionExprs = new ArrayList<String>();
+ final String FUNCTION_REGEX = "(\\w+:)?\\w+\\((.+)?\\)";
+ int firstFunction = xpathStr.indexOf("("), lastFunction = xpathStr
+ .lastIndexOf("(");
+ if ((firstFunction > 0 && firstFunction < lastFunction)) {
+ Pattern regex = Pattern.compile(FUNCTION_REGEX);
+ Matcher matcher = regex.matcher(xpathStr);
+
+ while (matcher.find()) {
+ String function = matcher.group();
+ functionExprs.add(function);
+ }
+ }
+ return functionExprs;
+ }
+
+ public Map<String, String> getProperties() {
return _properties;
}
Added: branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java (rev 0)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler_2_0/XslTest.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,90 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.bpel.compiler_2_0;
+
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.compiler.BpelCompiler20;
+import org.apache.ode.bpel.compiler.DefaultResourceFinder;
+import org.apache.ode.bpel.compiler.ResourceFinder;
+import org.apache.ode.bpel.compiler.bom.BpelObjectFactory;
+import org.apache.ode.bpel.o.OProcess;
+import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.DOMUtils;
+import org.apache.ode.utils.StreamUtils;
+import org.junit.After;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.w3c.dom.Document;
+import org.xml.sax.InputSource;
+
+
+public class XslTest {
+
+ private final Log __log = LogFactory.getLog(getClass());
+ private BpelCompiler20 _compiler;
+ private ResourceFinder _resfinder;
+
+ @Before
+ public void setUp() throws Exception {
+ _compiler = new BpelCompiler20();
+ File dir = new File(getClass().getResource(".").toURI());
+ _resfinder = new DefaultResourceFinder(dir, dir);
+ _compiler.setResourceFinder(_resfinder);
+ }
+
+ @After
+ public void tearDown() throws Exception {
+ _compiler = null;
+ }
+
+ @Test
+ public void testUTFEncoding() throws Exception {
+ Document original = DOMUtils.parse(getClass().getResourceAsStream("/xslt/test-utf8.xslt"));
+ OProcess op = compile("xsl-utf8");
+ OXslSheet sheet = op.xslSheets.get(URI.create("test-utf8.xslt"));
+ Assert.assertNotNull(sheet);
+ Assert.assertEquals(DOMUtils.domToString(original), sheet.sheetBody);
+ }
+
+ @Test
+ public void testISOEncoding() throws Exception {
+ Document original = DOMUtils.parse(getClass().getResourceAsStream("/xslt/test-iso.xslt"));
+ OProcess op = compile("xsl-iso");
+ OXslSheet sheet = op.xslSheets.get(URI.create("test-iso.xslt"));
+ Assert.assertNotNull(sheet);
+ Assert.assertEquals(DOMUtils.domToString(original), sheet.sheetBody);
+ }
+
+ private OProcess compile(String bpelFile) throws Exception {
+ URL bpelURL = getClass().getResource("/xslt/" + bpelFile + ".bpel");
+
+ InputSource isrc = new InputSource(bpelURL.openStream());
+ isrc.setSystemId(bpelURL.toExternalForm());
+
+ org.apache.ode.bpel.compiler.bom.Process process = BpelObjectFactory.getInstance().parse(isrc, bpelURL.toURI());
+
+ return _compiler.compile(process, _resfinder, 0);
+ }
+}
Modified: branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -24,33 +24,32 @@
import org.junit.*;
+public class XPath20ExpressionCompilerImplTest {
-public class XPath20ExpressionCompilerImplTest {
-
private static final String TEST_NAMESPACE = "http://www.example.com/";
private static final String EXTRACT_FUNCTION_EXPRS = "extractFunctionExprs";
@Test
public void testresolvedFunctionsExpr() throws Exception {
- XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(TEST_NAMESPACE);
- final Method[] methods =
- xp20Exp.getClass().getDeclaredMethods();
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
for (int i = 0; i < methods.length; ++i) {
if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
final Object params[] = { "count(count(1))" };
methods[i].setAccessible(true);
Object ret = methods[i].invoke(xp20Exp, params);
List<?> values = (List<?>) ret;
- Assert.assertEquals(0, values.size());
+ Assert.assertEquals(1, values.size());
}
}
}
-
+
@Test
public void testTimeStampInFunction() throws Exception {
- XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(TEST_NAMESPACE);
- final Method[] methods =
- xp20Exp.getClass().getDeclaredMethods();
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
for (int i = 0; i < methods.length; ++i) {
if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
final Object params[] = { "concat(xs:concat(\"P\", \"08:30:00.000+08:00\"))" };
@@ -62,25 +61,45 @@
}
}
-
+
@Test
public void testresolvedFunctionsTimeStamp() throws Exception {
- XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(TEST_NAMESPACE);
- final Method[] methods =
- xp20Exp.getClass().getDeclaredMethods();
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
for (int i = 0; i < methods.length; ++i) {
if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
- final Object params[] = { "concat(current-date() + xs:dayTimeDuration(concat(\"P\", $DAYS_TO_NEXT_REMINDER, \"D\")), \"T\", \"08:30:00.000+08:00\")" };
+ String multipleFunctions = "concat(current-date() + xs:dayTimeDuration(concat(\"P\", $DAYS_TO_NEXT_REMINDER, \"D\")), \"T\", \"08:30:00.000+08:00\")";
+ final Object params[] = { multipleFunctions };
methods[i].setAccessible(true);
Object ret = methods[i].invoke(xp20Exp, params);
List<?> values = (List<?>) ret;
Assert.assertEquals(1, values.size());
- Assert.assertEquals("Unexpected Function value", "xs:dayTimeDuration(concat(\"P\", $DAYS_TO_NEXT_REMINDER, \"D\"))", (String)values.get(0));
+ Assert.assertEquals("Unexpected Function value",
+ multipleFunctions, (String) values.get(0));
}
}
}
-
-
-
+ @Test
+ public void testExtractFunctionsExprs() throws Exception {
+ XPath20ExpressionCompilerImpl xp20Exp = new XPath20ExpressionCompilerImpl(
+ TEST_NAMESPACE);
+ final Method[] methods = xp20Exp.getClass().getDeclaredMethods();
+ String ODE_840 = "bpel:doXslTransform(\"1.0.1/some.xsl\", $Variable.body, \"someParameter\", $OtherVariable.body, \"someParameter2\", $SwsHeaderRQ, \"someParameter3\", true(), \"someXpathParameter\", $XPath)";
+
+ for (int i = 0; i < methods.length; ++i) {
+ if (methods[i].getName().equals(EXTRACT_FUNCTION_EXPRS)) {
+ final Object params[] = { ODE_840 };
+ methods[i].setAccessible(true);
+ Object ret = methods[i].invoke(xp20Exp, params);
+ List<?> values = (List<?>) ret;
+ Assert.assertEquals(1, values.size());
+ Assert.assertEquals("Unexpected Function value", ODE_840,
+ (String) values.get(0));
+ }
+ }
+
+ }
+
}
Added: branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt (rev 0)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-iso.xslt 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="iso-8859-1"?>
+<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fn="http://www.w3.org/2005/xpath-functions"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://example.org/test"
+ >
+ <xsl:output method="xml" indent="no" />
+
+ <xsl:template match="/">
+ <tns:testxslt>
+ <tns:from-xslt>
+ <xsl:value-of select="'Prova lettere accentate: � � � � �'"/>
+ </tns:from-xslt>
+ <tns:from-document>
+ <xsl:value-of select="document('test.xml')"/>
+ </tns:from-document>
+ </tns:testxslt>
+ </xsl:template>
+
+ <xsl:template match="text()|@*"/>
+
+</xsl:stylesheet>
Added: branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt (rev 0)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test-utf8.xslt 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fn="http://www.w3.org/2005/xpath-functions"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:tns="http://example.org/test"
+ >
+ <xsl:output method="xml" indent="no" />
+
+ <xsl:template match="/">
+ <tns:testxslt>
+ <tns:from-xslt>
+ <xsl:value-of select="'Prova lettere accentate: à è ì ò ù'"/>
+ </tns:from-xslt>
+ <tns:from-document>
+ <xsl:value-of select="document('test.xml')"/>
+ </tns:from-document>
+ </tns:testxslt>
+ </xsl:template>
+
+ <xsl:template match="text()|@*"/>
+
+</xsl:stylesheet>
Added: branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test1.wsdl
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test1.wsdl (rev 0)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/test1.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,88 @@
+<?xml version="1.0"?>
+<definitions name="test1"
+ targetNamespace="http://example.org/test1"
+ xmlns:tns="http://example.org/test1"
+ xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ TYPE DEFINITION - List of types participating in this BPEL process
+ The BPEL Designer will generate default request and response types
+ but you can define or import any XML Schema type and use them as part
+ of the message types.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <types>
+ <schema attributeFormDefault="unqualified" elementFormDefault="qualified"
+ targetNamespace="http://example.org/test1"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+
+ <element name="test1">
+ <complexType>
+ <sequence>
+ <element name="action" type="string"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="test1Response">
+ <complexType>
+ <sequence>
+ <any namespace="##any" processContents="lax"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ MESSAGE TYPE DEFINITION - Definition of the message types used as
+ part of the port type defintions
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <message name="test1RequestMessage">
+ <part name="payload" element="tns:test1"/>
+ </message>
+ <message name="test1ResponseMessage">
+ <part name="payload" element="tns:test1Response"/>
+ </message>
+
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ PORT TYPE DEFINITION - A port type groups a set of operations into
+ a logical service unit.
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+
+ <!-- portType implemented by the test1 BPEL process -->
+ <portType name="test1">
+ <operation name="test1">
+ <input message="tns:test1RequestMessage" />
+ <output message="tns:test1ResponseMessage"/>
+ </operation>
+ </portType>
+
+ <binding name="test1" type="tns:test1">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"></soap:binding>
+ <operation name="test1">
+ <soap:operation soapAction="http://example.org/test1/test1"></soap:operation>
+ <input>
+ <soap:body use="literal"></soap:body>
+ </input>
+ <output>
+ <soap:body use="literal"></soap:body>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="test1">
+ <port binding="tns:test1" name="test1">
+ <soap:address location="http://FILLED_BY_SERVER/ode/processes/test1" />
+ </port>
+ </service>
+<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ PARTNER LINK TYPE DEFINITION
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -->
+ <plnk:partnerLinkType name="test1">
+ <plnk:role name="test1Provider" portType="tns:test1"/>
+ </plnk:partnerLinkType>
+
+</definitions>
Added: branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel (rev 0)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-iso.bpel 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpws:process exitOnStandardFault="yes" name="test1"
+ suppressJoinFailure="yes" targetNamespace="http://example.org/test1"
+ xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="http://example.org/test1">
+ <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
+ location="test1.wsdl" namespace="http://example.org/test1"/>
+ <bpws:partnerLinks>
+ <bpws:partnerLink myRole="test1Provider" name="client" partnerLinkType="tns:test1"/>
+ </bpws:partnerLinks>
+ <bpws:variables>
+ <bpws:variable messageType="tns:test1RequestMessage" name="input"/>
+ <bpws:variable messageType="tns:test1ResponseMessage" name="output"/>
+ </bpws:variables>
+ <bpws:sequence name="main">
+ <bpws:receive createInstance="yes" name="receiveInput"
+ operation="test1" partnerLink="client" portType="tns:test1" variable="input"/>
+ <bpws:assign name="prepareResponse" validate="no">
+ <bpws:copy>
+ <bpws:from>
+ <bpws:literal>
+ <test1Response xmlns="http://example.org/test1">
+ <testxslt xmlns="http://example.org/test"/>
+ </test1Response>
+ </bpws:literal>
+ </bpws:from>
+ <bpws:to part="payload" variable="output"/>
+ </bpws:copy>
+ <bpws:copy>
+ <bpws:from><![CDATA[bpws:doXslTransform("test-iso.xslt", $input.payload)]]></bpws:from>
+ <bpws:to><![CDATA[$output.payload/*[1]]]></bpws:to>
+ </bpws:copy>
+ </bpws:assign>
+ <bpws:reply name="replyOutput" operation="test1"
+ partnerLink="client" portType="tns:test1" variable="output"/>
+ </bpws:sequence>
+</bpws:process>
Added: branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel
===================================================================
--- branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel (rev 0)
+++ branches/ODE/ODE-1.x/bpel-compiler/src/test/resources/xslt/xsl-utf8.bpel 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpws:process exitOnStandardFault="yes" name="test1"
+ suppressJoinFailure="yes" targetNamespace="http://example.org/test1"
+ xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="http://example.org/test1">
+ <bpws:import importType="http://schemas.xmlsoap.org/wsdl/"
+ location="test1.wsdl" namespace="http://example.org/test1"/>
+ <bpws:partnerLinks>
+ <bpws:partnerLink myRole="test1Provider" name="client" partnerLinkType="tns:test1"/>
+ </bpws:partnerLinks>
+ <bpws:variables>
+ <bpws:variable messageType="tns:test1RequestMessage" name="input"/>
+ <bpws:variable messageType="tns:test1ResponseMessage" name="output"/>
+ </bpws:variables>
+ <bpws:sequence name="main">
+ <bpws:receive createInstance="yes" name="receiveInput"
+ operation="test1" partnerLink="client" portType="tns:test1" variable="input"/>
+ <bpws:assign name="prepareResponse" validate="no">
+ <bpws:copy>
+ <bpws:from>
+ <bpws:literal>
+ <test1Response xmlns="http://example.org/test1">
+ <testxslt xmlns="http://example.org/test"/>
+ </test1Response>
+ </bpws:literal>
+ </bpws:from>
+ <bpws:to part="payload" variable="output"/>
+ </bpws:copy>
+ <bpws:copy>
+ <bpws:from><![CDATA[bpws:doXslTransform("test-utf8.xslt", $input.payload)]]></bpws:from>
+ <bpws:to><![CDATA[$output.payload/*[1]]]></bpws:to>
+ </bpws:copy>
+ </bpws:assign>
+ <bpws:reply name="replyOutput" operation="test1"
+ partnerLink="client" portType="tns:test1" variable="output"/>
+ </bpws:sequence>
+</bpws:process>
Modified: branches/ODE/ODE-1.x/bpel-connector/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-connector/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-connector/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-connector</artifactId>
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-dao/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-dao/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-dao/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-dao</artifactId>
<name>ODE :: DAO Interfaces</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-epr/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-epr/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-epr/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-epr</artifactId>
<name>ODE :: Interface Layers Common</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/URLEndpoint.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -40,7 +40,7 @@
}
public String getUrl() {
- return _url;
+ return _url != null ? _url.trim() : null;
}
public void setUrl(String url) {
Modified: branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-epr/src/main/java/org/apache/ode/bpel/epr/WSAEndpoint.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -90,7 +90,7 @@
}
public String getUrl() {
- return _eprElmt.getElementsByTagNameNS(Namespaces.WS_ADDRESSING_NS, "Address").item(0).getTextContent();
+ return _eprElmt.getElementsByTagNameNS(Namespaces.WS_ADDRESSING_NS, "Address").item(0).getTextContent().trim();
}
public void setUrl(String url) {
Modified: branches/ODE/ODE-1.x/bpel-obj/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-obj/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-obj/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-obj</artifactId>
<name>ODE :: OBJ</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-ql/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-ql/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-ql/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-ql</artifactId>
<name>ODE :: BPEL Query Language</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-runtime/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-runtime</artifactId>
<name>ODE :: Runtime Engine</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-runtime/pom2.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/pom2.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/pom2.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4-SNAPSHOT</version>
+ <version>1.3.5-SNAPSHOT</version>
</parent>
<dependencies>
Added: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java (rev 0)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/XslRuntimeUriResolver.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.bpel.elang;
+
+import java.io.InputStream;
+import java.io.StringReader;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.net.URL;
+
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.URIResolver;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
+import org.apache.ode.bpel.o.OXslSheet;
+import org.apache.ode.utils.StreamUtils;
+import org.apache.ode.utils.fs.FileUtils;
+
+/**
+ * Used to give the Xsl processor a way to access included XSL sheets
+ * by using the maps of sheets pre-processed at compilation time and
+ * stored in the OXPath10Expression.
+ */
+public class XslRuntimeUriResolver implements URIResolver {
+
+ private static final Log __log = LogFactory.getLog(XslRuntimeUriResolver.class);
+
+ private OXPath10Expression _expr;
+ private final URI _baseResourceURI;
+
+ public XslRuntimeUriResolver(OXPath10Expression expr, URI baseResourceURI) {
+ _expr = expr;
+ _baseResourceURI= baseResourceURI;
+ }
+
+ public Source resolve(String href, String base) throws TransformerException {
+ URI uri;
+ try {
+ uri = new URI(FileUtils.encodePath(href));
+ } catch (URISyntaxException e) {
+ return null;
+ }
+
+ OXslSheet sheet = _expr.getXslSheet(uri);
+ if( sheet != null) {
+ String result = sheet.sheetBody;
+ if (result != null) {
+ return new StreamSource(new StringReader(result));
+ } else {
+ return null;
+ }
+ }
+
+ InputStream result = getResourceAsStream(uri);
+ if( result != null ) {
+ return new StreamSource(result);
+ } else {
+ return null;
+ }
+ }
+
+ /**
+ * Given a URI this function will attempt to retrieve the resource declared at that URI location
+ * as a stream. This URI can be defined as being relative to the executing process instance's
+ * physical file location or can point to an HTTP(S) resource.
+ *
+ * @param docUri - the URI to resolve
+ * @return stream - the resource contents, or null if none found.
+ */
+ private InputStream getResourceAsStream(URI docUri) {
+ URI resolvedURI = _baseResourceURI.resolve(docUri);
+ InputStream is = null;
+
+ try {
+ // treat URI as URL and try to load it.
+ URL url = resolvedURI.toURL();
+ is = url.openStream();
+
+ // and read it to a buffer.
+ return is;
+ } catch (Exception e) {
+ __log.warn("Couldn't load XSL resource " + docUri, e);
+ }
+ return null;
+ }
+
+}
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath10/runtime/JaxenContexts.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,9 +18,21 @@
*/
package org.apache.ode.bpel.elang.xpath10.runtime;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.xml.namespace.QName;
+import javax.xml.transform.dom.DOMSource;
+
+import net.sf.saxon.dom.NodeWrapper;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.elang.XslRuntimeUriResolver;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10ExpressionBPEL20;
import org.apache.ode.bpel.explang.EvaluationContext;
@@ -33,7 +45,6 @@
import org.apache.ode.bpel.o.OXsdTypeVarType;
import org.apache.ode.bpel.o.OXslSheet;
import org.apache.ode.utils.DOMUtils;
-import org.apache.ode.utils.xsd.XSTypes;
import org.apache.ode.utils.xsl.XslTransformHandler;
import org.jaxen.Context;
import org.jaxen.Function;
@@ -42,23 +53,11 @@
import org.jaxen.UnresolvableException;
import org.jaxen.VariableContext;
import org.jaxen.XPathFunctionContext;
+import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
-import org.w3c.dom.Document;
-import org.xml.sax.SAXException;
-import javax.xml.namespace.QName;
-import javax.xml.transform.dom.DOMSource;
-import java.io.IOException;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import net.sf.saxon.dom.NodeWrapper;
-
-
/**
* Implementation of the various JAXEN evaluation contexts in terms of the
* {@link EvaluationContext}.
@@ -68,6 +67,8 @@
/** Static, thread-safe singleton implementing default XPath functions */
private static final FunctionContext __defaultXPathFunctions = XPathFunctionContext.getInstance();
+
+ private static final QName BOOLEAN = new QName("http://www.w3.org/2001/XMLSchema", "boolean");
private OXPath10Expression _oxpath;
private EvaluationContext _xpathEvalCtx;
@@ -186,7 +187,13 @@
}
if (_xpathEvalCtx.narrowTypes() && type instanceof OXsdTypeVarType && ((OXsdTypeVarType)type).simple) {
- return variableNode.getTextContent();
+ String value = variableNode.getTextContent();
+ OXsdTypeVarType theType = (OXsdTypeVarType)type;
+
+ if (BOOLEAN.equals(theType.xsdType)) {
+ return new Boolean(value) ;
+ }
+ return value;
} else {
return variableNode;
}
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpFunctionResolver.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -46,6 +46,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.FaultException;
+import org.apache.ode.bpel.elang.XslRuntimeUriResolver;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
import org.apache.ode.bpel.elang.xpath10.o.OXPath10ExpressionBPEL20;
import org.apache.ode.bpel.elang.xpath20.compiler.Constants;
@@ -82,7 +83,9 @@
}
public XPathFunction resolveFunction(QName functionName, int arity) {
- __log.debug("Resolving function " + functionName);
+ if (__log.isDebugEnabled()) {
+ __log.debug("Resolving function " + functionName);
+ }
if (functionName.getNamespaceURI() == null) {
throw new NullPointerException("Undeclared namespace for " + functionName);
} else if (functionName.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS) ||
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/JaxpVariableResolver.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -19,13 +19,10 @@
package org.apache.ode.bpel.elang.xpath20.runtime;
-import java.util.Calendar;
-
import javax.xml.namespace.QName;
import javax.xml.xpath.XPathVariableResolver;
import net.sf.saxon.Configuration;
-import net.sf.saxon.om.Item;
import net.sf.saxon.type.AtomicType;
import net.sf.saxon.type.SchemaType;
import net.sf.saxon.type.ValidationException;
@@ -46,8 +43,6 @@
import org.apache.ode.bpel.o.OXsdTypeVarType;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.Namespaces;
-import org.apache.ode.utils.xsd.XSTypes;
-import org.w3c.dom.Document;
import org.w3c.dom.Node;
/**
@@ -68,7 +63,9 @@
}
public Object resolveVariable(QName variableName) {
- __log.debug("Resolving variable " + variableName);
+ if (__log.isDebugEnabled()) {
+ __log.debug("Resolving variable " + variableName);
+ }
if (!(_oxpath instanceof OXPath10ExpressionBPEL20)) {
throw new IllegalStateException("XPath variables not supported for bpel 1.1");
@@ -128,7 +125,7 @@
}
}
- public static Value convertSimpleTypeToSaxon(QName type, String value, Configuration _config) {
+ public Value convertSimpleTypeToSaxon(QName type, String value) {
int fp = _config.getNamePool().allocate("", type.getNamespaceURI(), type.getLocalPart());
SchemaType type2 = _config.getSchemaType(fp);
if (type2 == null || !type2.isAtomicType()) {
@@ -148,11 +145,12 @@
}
}
- public static Object getSimpleContent(Node simpleNode, QName type) {
- Document doc = (simpleNode instanceof Document) ? ((Document) simpleNode) : simpleNode.getOwnerDocument();
+ public Object getSimpleContent(Node simpleNode, QName type) {
String text = simpleNode.getTextContent();
- Object o = convertSimpleTypeToSaxon(type, text, Configuration.makeConfiguration(null, null));
- __log.debug("getSimpleContent for " + DOMUtils.domToString(simpleNode) + " " + type + " returned " + o);
+ Object o = convertSimpleTypeToSaxon(type, text);
+ if (__log.isDebugEnabled()) {
+ __log.debug("getSimpleContent for " + DOMUtils.domToString(simpleNode) + " " + type + " returned " + o);
+ }
return o;
}
}
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xpath20/runtime/XPath20ExpressionRuntime.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -33,8 +33,8 @@
import javax.xml.xpath.XPathExpressionException;
import javax.xml.xpath.XPathFactory;
-import net.sf.saxon.om.NamespaceConstant;
-import net.sf.saxon.trans.DynamicError;
+import net.sf.saxon.Configuration;
+import net.sf.saxon.trans.XPathException;
import net.sf.saxon.value.DurationValue;
import net.sf.saxon.xpath.XPathFactoryImpl;
@@ -73,6 +73,8 @@
/** Class-level logger. */
private static final Log __log = LogFactory.getLog(XPath20ExpressionRuntime.class);
+
+ private final XPathFactory _xpf = new XPathFactoryImpl();
public XPath20ExpressionRuntime(){
}
@@ -114,7 +116,9 @@
}
if (someRes instanceof List) {
result = (List) someRes;
- __log.debug("Returned list of size " + result.size());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned list of size " + result.size());
+ }
if ((result.size() == 1) && !(result.get(0) instanceof Node)) {
// Dealing with a Java class
Object simpleType = result.get(0);
@@ -139,7 +143,9 @@
}
} else if (someRes instanceof NodeList) {
NodeList retVal = (NodeList) someRes;
- __log.debug("Returned node list of size " + retVal.getLength());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned node list of size " + retVal.getLength());
+ }
result = new ArrayList(retVal.getLength());
for(int m = 0; m < retVal.getLength(); ++m) {
Node val = retVal.item(m);
@@ -165,10 +171,25 @@
public Node evaluateNode(OExpression cexp, EvaluationContext ctx) throws FaultException, EvaluationException {
List retVal = evaluate(cexp, ctx);
- if (retVal.size() == 0)
- throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, "No results for expression: " + cexp, new Throwable("ignoreMissingFromData"));
- if (retVal.size() > 1)
- throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, "Multiple results for expression: " + cexp);
+ if (retVal.size() == 0 || retVal.size() > 1) {
+ StringBuffer msg = new StringBuffer((retVal.size() == 0) ? "No results for expression: '" : "Multiple results for expression: '");
+ if (cexp instanceof OXPath10Expression) {
+ msg.append(((OXPath10Expression)cexp).xpath);
+ } else {
+ msg.append(cexp.toString());
+ }
+ msg.append('\'');
+ if (ctx.getRootNode() != null) {
+ msg.append(" against '");
+ msg.append(DOMUtils.domToString(ctx.getRootNode()));
+ msg.append('\'');
+ }
+
+ if (retVal.size() == 0)
+ throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, msg.toString(), new Throwable("ignoreMissingFromData"));
+ if (retVal.size() > 1)
+ throw new FaultException(cexp.getOwner().constants.qnSelectionFailure, msg.toString());
+ }
return (Node) retVal.get(0);
}
@@ -213,21 +234,22 @@
private Object evaluate(OExpression cexp, EvaluationContext ctx, QName type) throws FaultException, EvaluationException {
try {
OXPath20ExpressionBPEL20 oxpath20 = ((OXPath20ExpressionBPEL20) cexp);
- XPathFactory xpf = new XPathFactoryImpl();
- JaxpFunctionResolver funcResolver = new JaxpFunctionResolver(
- ctx, oxpath20);
- JaxpVariableResolver varResolver = new JaxpVariableResolver(ctx, oxpath20, ((XPathFactoryImpl) xpf).getConfiguration());
- xpf.setXPathFunctionResolver(funcResolver);
- xpf.setXPathVariableResolver(varResolver);
- XPath xpe = xpf.newXPath();
+ JaxpFunctionResolver funcResolver = new JaxpFunctionResolver(ctx, oxpath20);
+ JaxpVariableResolver varResolver = new JaxpVariableResolver(ctx, oxpath20, ((XPathFactoryImpl) _xpf).getConfiguration());
+ XPath xpe = _xpf.newXPath();
+ xpe.setXPathFunctionResolver(funcResolver);
+ xpe.setXPathVariableResolver(varResolver);
xpe.setNamespaceContext(oxpath20.namespaceCtx);
String xpath = ((OXPath10Expression)cexp).xpath;
XPathExpression expr = xpe.compile(xpath);
- Node contextNode = ctx.getRootNode() == null ? DOMUtils.newDocument() : ctx.getRootNode();
+ Node contextNode = ctx.getRootNode();
+ if (contextNode == null) {
+ contextNode = DOMUtils.newDocument();
+ }
// Create step nodes in XPath in case it is incompletely instantiated
if (oxpath20.insertMissingData) {
- XPath20ExpressionModifier modifier = new XPath20ExpressionModifier(oxpath20.namespaceCtx, ((XPathFactoryImpl) xpf).getConfiguration().getNamePool());
+ XPath20ExpressionModifier modifier = new XPath20ExpressionModifier(oxpath20.namespaceCtx, ((XPathFactoryImpl) _xpf).getConfiguration().getNamePool());
modifier.insertMissingData(expr, ctx.getRootNode());
}
Object evalResult = expr.evaluate(contextNode, type);
@@ -241,8 +263,8 @@
} catch (XPathExpressionException e) {
// Extracting the real cause from all this wrapping isn't a simple task
Throwable cause = e.getCause() != null ? e.getCause() : e;
- if (cause instanceof DynamicError) {
- Throwable th = ((DynamicError)cause).getException();
+ if (cause instanceof XPathException) {
+ Throwable th = ((XPathException)cause).getException();
if (th != null) {
cause = th;
if (cause.getCause() != null) cause = cause.getCause();
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/elang/xquery10/runtime/XQuery10ExpressionRuntime.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -162,7 +162,9 @@
if (someRes instanceof List) {
result = (List) someRes;
- __log.debug("Returned list of size " + result.size());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned list of size " + result.size());
+ }
if ((result.size() == 1) && !(result.get(0) instanceof Node)) {
// Dealing with a Java class
@@ -191,7 +193,9 @@
}
} else if (someRes instanceof NodeList) {
NodeList retVal = (NodeList) someRes;
- __log.debug("Returned node list of size " + retVal.getLength());
+ if (__log.isDebugEnabled()) {
+ __log.debug("Returned node list of size " + retVal.getLength());
+ }
result = new ArrayList(retVal.getLength());
for (int m = 0; m < retVal.getLength(); ++m) {
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -926,7 +926,7 @@
// If we have a transaction, we do this in the current transaction
if(__log.isDebugEnabled()) __log.debug("Creating new process DAO for " + _pid + " (guid=" + _oprocess.guid + ")...");
createProcessDAO(_engine._contexts.dao.getConnection(), _pid, _pconf.getVersion(), _oprocess);
- if(__log.isInfoEnabled()) __log.info("Created new process DAO for " + _pid + " (guid=" + _oprocess.guid + ").");
+ if(__log.isDebugEnabled()) __log.debug("Created new process DAO for " + _pid + " (guid=" + _oprocess.guid + ").");
} else {
try {
_engine._contexts.scheduler.execTransaction(new Callable<Object>() {
@@ -952,7 +952,7 @@
private void bounceProcessDAOInDB(final BpelDAOConnection conn, final QName pid, final long version, final OProcess oprocess) {
if(__log.isDebugEnabled()) __log.debug("Creating new process DAO for " + pid + " (guid=" + oprocess.guid + ")...");
createProcessDAO(conn, pid, version, oprocess);
- if(__log.isInfoEnabled()) __log.info("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ").");
+ if(__log.isDebugEnabled()) __log.debug("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ").");
}
public int getInstanceInUseCount() {
@@ -983,7 +983,7 @@
for (String correlator : oprocess.getCorrelators()) {
newDao.addCorrelator(correlator);
}
- if(__log.isInfoEnabled()) __log.info("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ")");
+ if(__log.isDebugEnabled()) __log.debug("Created new process DAO for " + pid + " (guid=" + oprocess.guid + ")");
}
} catch (BpelEngineException ex) {
throw ex;
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -701,6 +701,14 @@
_dao.finishCompletion();
failOutstandingMessageExchanges();
+
+ _bpelProcess._engine._contexts.scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
+ public void afterCompletion(boolean success) {
+ }
+ public void beforeCompletion() {
+ _dao.delete(_bpelProcess.getCleanupCategories(false), false);
+ }
+ });
}
public void registerTimer(TimerResponseChannel timerChannel, Date timeToFire) {
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DocumentInfoGenerator.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -40,7 +40,7 @@
__extToTypeMap.put(".xsd", "http://www.w3.org/2001/XMLSchema");
__extToTypeMap.put(".svg", "http://www.w3.org/2000/svg");
- __extToTypeMap.put(".cbp", "http://www.fivesight.com/schemas/2005/12/19/CompiledBPEL");
+ __extToTypeMap.put(".cbp", "http://ode.apache.org/schemas/2005/12/19/CompiledBPEL");
// Assume BPEL is 2.0 for now...
__extToTypeMap.put(".bpel", "http://schemas.xmlsoap.org/ws/2004/03/business-process/");
}
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementMBean.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -114,7 +114,9 @@
public Object invoke(String actionName, Object[] params, String[] signature)
throws MBeanException, ReflectionException {
- try {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
Method m = _pm.getClass().getMethod(actionName, findTypes(_pm.getClass().getClassLoader(), signature));
if (m == null) {
throw new ReflectionException(new NoSuchMethodException(actionName));
@@ -122,7 +124,9 @@
return m.invoke(_pm, params);
} catch (Exception e) {
throw new ReflectionException(e);
- }
+ } finally {
+ Thread.currentThread().setContextClassLoader(cl);
+ }
}
private Class[] findTypes(ClassLoader loader, String[] signature) throws ReflectionException {
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -90,7 +90,7 @@
public void cancelProcessCronJobs(QName pid, boolean undeployed) {
assert pid != null;
- if( __log.isInfoEnabled() ) __log.info("Cancelling PROCESS CRON jobs for: " + pid);
+ if( __log.isDebugEnabled() ) __log.debug("Cancelling PROCESS CRON jobs for: " + pid);
Collection<TerminationListener> listenersToTerminate = new ArrayList<TerminationListener>();
synchronized( _terminationListenersByPid ) {
@@ -122,7 +122,7 @@
Collection<TerminationListener> newListeners = new ArrayList<TerminationListener>();
synchronized( pid ) {
- if( __log.isInfoEnabled() ) __log.info("Scheduling PROCESS CRON jobs for: " + pid);
+ if( __log.isDebugEnabled() ) __log.debug("Scheduling PROCESS CRON jobs for: " + pid);
// start new cron jobs
for( final CronJob job : pconf.getCronJobs() ) {
Added: branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java (rev 0)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/URIResolverTest.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,81 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.ode.bpel.elang;
+
+import static org.junit.Assert.assertArrayEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+import static org.junit.matchers.JUnitMatchers.containsString;
+
+import java.net.URI;
+
+import javax.xml.transform.Source;
+
+import org.apache.ode.bpel.elang.xpath10.o.OXPath10Expression;
+import org.apache.ode.utils.DOMUtils;
+import org.junit.Ignore;
+import org.junit.Test;
+import org.w3c.dom.Document;
+
+public class URIResolverTest {
+
+ @Test
+ public void testResolveExistingFile() throws Exception {
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xpath20/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+ Source source = resolver.resolve("variables.xml", null);
+ Document doc = DOMUtils.sourceToDOM(source);
+
+ assertThat(DOMUtils.domToString(doc), containsString("<variables>"));
+ }
+
+ @Test
+ public void testResolveNonExistingFile() throws Exception {
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xpath20/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+
+ assertNull(resolver.resolve("variablesa.xml", null));
+ }
+
+ @Test
+ public void testEncoding() throws Exception {
+ Document original = DOMUtils.parse(getClass().getResourceAsStream("/xslt/test.xml"));
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xslt/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+
+ Document doc = DOMUtils.sourceToDOM(resolver.resolve("test.xml", null));
+ assertArrayEquals(original.getDocumentElement().getTextContent().trim().getBytes(), doc.getDocumentElement().getTextContent().trim().getBytes());
+ }
+
+ @Test
+ @Ignore("automated tests should not rely on remote connections.")
+ public void testResolveURL() throws Exception {
+ OXPath10Expression expr = new OXPath10Expression(null, null, null, null);
+ URI baseResourceURI = getClass().getResource("/xpath20/").toURI();
+ XslRuntimeUriResolver resolver = new XslRuntimeUriResolver(expr, baseResourceURI);
+ Source source = resolver.resolve("https://svn.apache.org/repos/asf/ode/trunk/bpel-schemas/src/main/xsd/pmap...", null);
+ Document doc = DOMUtils.sourceToDOM(source);
+
+ assertThat(DOMUtils.domToString(doc), containsString("activity-info"));
+ }
+
+}
Modified: branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/XsdTypesTest.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -20,7 +20,11 @@
package org.apache.ode.bpel.elang.xpath20.runtime;
import javax.xml.namespace.QName;
+import javax.xml.xpath.XPathFactory;
+import net.sf.saxon.Configuration;
+import net.sf.saxon.xpath.XPathFactoryImpl;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.utils.DOMUtils;
@@ -31,15 +35,19 @@
private static Log __log = LogFactory.getLog(XsdTypesTest.class);
public void testDateTime() throws Exception {
- Object o = JaxpVariableResolver.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper>2010-01-25T15:38:54.82Z</temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
+ XPathFactoryImpl xpf = new XPathFactoryImpl();
+ JaxpVariableResolver jvr = new JaxpVariableResolver(null, null, xpf.getConfiguration());
+ Object o = jvr.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper>2010-01-25T15:38:54.82Z</temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
__log.debug(o);
assertTrue(o.toString().contains("2010-01-25T15:38:54.82Z"));
}
public void testEmptyDateTime() throws Exception {
- Object o = JaxpVariableResolver.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper></temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
+ XPathFactoryImpl xpf = new XPathFactoryImpl();
+ JaxpVariableResolver jvr = new JaxpVariableResolver(null, null, xpf.getConfiguration());
+ Object o = jvr.getSimpleContent(DOMUtils.stringToDOM("<temporary-simple-type-wrapper></temporary-simple-type-wrapper>"), QName.valueOf("{http://www.w3.org/2001/XMLSchema}dateTime"));
__log.debug(o);
assertTrue(o.toString().equals(""));
}
-
+
}
Added: branches/ODE/ODE-1.x/bpel-runtime/src/test/resources/xslt/test.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-runtime/src/test/resources/xslt/test.xml (rev 0)
+++ branches/ODE/ODE-1.x/bpel-runtime/src/test/resources/xslt/test.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<document xmlns="http://example.org/testDocument">
+Prova lettere accentate: à è ì ò ù
+</document>
Modified: branches/ODE/ODE-1.x/bpel-schemas/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-schemas/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-schemas/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-schemas</artifactId>
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-scripts/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-scripts/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-scripts/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-scripts</artifactId>
<name>ODE :: BPEL Test Script Files</name>
@@ -28,6 +28,6 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
</project>
Modified: branches/ODE/ODE-1.x/bpel-store/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-store/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-store/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-store</artifactId>
<name>ODE :: Process Store</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
@@ -176,18 +176,18 @@
</goals>
<configuration>
<tasks>
- <property name="maven.runtime.classpath" refid="maven.test.classpath"/>
+ <property name="maven.runtime.classpath" refid="maven.test.classpath" />
<path id="classpath">
- <pathelement path="${maven.runtime.classpath}"/>
+ <pathelement path="${maven.runtime.classpath}" />
</path>
- <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="classpath"/>
+ <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="classpath" />
<openjpac>
<fileset dir="${basedir}/src/main">
<include name="**/*.java" />
</fileset>
<classpath>
- <pathelement location="${basedir}/target/classes"/>
- <pathelement path="${maven.runtime.classpath}"/>
+ <pathelement location="${basedir}/target/classes" />
+ <pathelement path="${maven.runtime.classpath}" />
</classpath>
</openjpac>
</tasks>
@@ -208,10 +208,9 @@
<configuration>
<tasks>
- <hibernatedoclet excludedTags="@version,@author,@todo" verbose="true"
- destdir="${project.build.outputDirectory}" force="true">
- <hibernate version="3.0"/>
- <fileset dir="${project.build.sourceDirectory}" includes="org/apache/ode/store/hib/*.java"/>
+ <hibernatedoclet excludedTags="@version,@author,@todo" verbose="true" destdir="${project.build.outputDirectory}" force="true">
+ <hibernate version="3.0" />
+ <fileset dir="${project.build.sourceDirectory}" includes="org/apache/ode/store/hib/*.java" />
</hibernatedoclet>
</tasks>
</configuration>
Modified: branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -55,17 +55,8 @@
import org.apache.ode.utils.InternPool.InternableBlock;
import org.apache.ode.utils.fs.FileUtils;
import org.apache.xmlbeans.XmlOptions;
-import org.springframework.beans.BeansException;
-import org.springframework.beans.factory.BeanFactory;
-import org.springframework.beans.factory.NoSuchBeanDefinitionException;
-import org.springframework.beans.factory.config.AutowireCapableBeanFactory;
import org.springframework.context.ApplicationContext;
-import org.springframework.context.ApplicationEvent;
-import org.springframework.context.MessageSourceResolvable;
-import org.springframework.context.NoSuchMessageException;
import org.springframework.context.support.ClassPathXmlApplicationContext;
-import org.springframework.context.support.FileSystemXmlApplicationContext;
-import org.springframework.core.io.Resource;
import org.w3c.dom.Node;
/**
@@ -166,7 +157,7 @@
for (File bpel : bpels) {
String b = bpel.getAbsolutePath();
File cbp = new File(b.substring(0,b.lastIndexOf(".bpel")) + ".cbp");
- if (!cbp.exists()) {
+ if (!cbp.exists() || cbp.lastModified() < bpel.lastModified()) {
__log.debug("compiling " + bpel);
compile(bpel);
} else {
Modified: branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -144,6 +144,10 @@
shutdownInternalDB(_inMemDs);
_inMemDs = null;
}
+ if (_executor != null) {
+ _executor.shutdownNow();
+ _executor = null;
+ }
}
@Override
@@ -870,8 +874,11 @@
}
public void refreshSchedules(String packageName) {
- for( QName pid : listProcesses(packageName) ) {
- fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.SCHEDULE_SETTINGS_CHANGED, pid, packageName));
+ List<QName> pids = listProcesses(packageName);
+ if (pids != null) {
+ for( QName pid : pids ) {
+ fireEvent(new ProcessStoreEvent(ProcessStoreEvent.Type.SCHEDULE_SETTINGS_CHANGED, pid, packageName));
+ }
}
}
}
Modified: branches/ODE/ODE-1.x/bpel-test/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-test/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-bpel-test</artifactId>
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/bpel-test/src/test/java/org/apache/ode/test/BasicActivities20Test.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -53,6 +53,10 @@
go("/bpel/2.0/TestIf");
}
+ @Test public void testIfBoolean() throws Throwable {
+ go("/bpel/2.0/TestIfBoolean");
+ }
+
/**
* Tests the wait "for" syntax.
* @throws Throwable
Added: branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel (rev 0)
+++ branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpel 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,88 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<process name="TestIf"
+ targetNamespace="http://ode/bpel/unit-test"
+ xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="http://ode/bpel/unit-test"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:test="http://ode/bpel/unit-test.wsdl">
+
+ <import location="TestIf.wsdl"
+ namespace="http://ode/bpel/unit-test.wsdl"
+ importType="http://schemas.xmlsoap.org/wsdl/" />
+
+ <partnerLinks>
+ <partnerLink name="helloPartnerLink"
+ partnerLinkType="test:HelloPartnerLinkType"
+ myRole="me" />
+ </partnerLinks>
+
+ <variables>
+ <variable name="myVar" messageType="test:HelloMessage"/>
+ <variable name="tmpBool" type="xsd:boolean"/>
+ </variables>
+
+ <sequence>
+ <receive
+ name="start"
+ partnerLink="helloPartnerLink"
+ portType="test:HelloPortType"
+ operation="hello"
+ variable="myVar"
+ createInstance="yes"/>
+
+ <assign name="assign1">
+ <copy>
+ <from>false()</from>
+ <to variable="tmpBool"/>
+ </copy>
+ </assign>
+ <if>
+ <!-- <condition>boolean($tmpBool)</condition> --> <!-- TRUE -->
+ <!-- <condition>$tmpBool</condition> --> <!-- TRUE -->
+ <!-- <condition>string($tmpBool)='true'</condition> --> <!-- FALSE -->
+ <!-- <condition>true()</condition> --><!-- TRUE -->
+ <condition>$tmpBool</condition>
+ <assign name="assignTrue">
+ <copy>
+ <from>
+ <literal>TRUE</literal>
+ </from>
+ <to variable="myVar" part="TestPart"/>
+ </copy>
+ </assign>
+ <else>
+ <assign name="assignFalse">
+ <copy>
+ <from>
+ <literal>FALSE</literal>
+ </from>
+ <to variable="myVar" part="TestPart"/>
+ </copy>
+ </assign>
+ </else>
+ </if>
+ <reply name="end"
+ partnerLink="helloPartnerLink"
+ portType="test:HelloPortType"
+ operation="hello"
+ variable="myVar"/>
+ </sequence>
+</process>
Added: branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpelex
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpelex (rev 0)
+++ branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.bpelex 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="ASCII"?>
+<extensionmodel:ExtensionMap xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:extensionmodel="http:///extensionmodel.ecore" xmlns:org.eclipse.bpel.ui.uiextensionmodel="http:///org/eclipse/bpel/ui/uiextensionmodel.ecore" namespace="http://org.eclipse.bpel.ui/">
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@variables/(a)children.0"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@variables/(a)children.1"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:VariableExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/(a)activities.0"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/(a)activities.1"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/@activities.1/(a)copy.0"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/(a)activities.2"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/(a)activities.3"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#/"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ProcessExtension" modificationStamp="1290610006330"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/@activities.2/@else/(a)activity"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/@activities.2/@else/@activity/(a)copy.0"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/@activities.2/(a)activity"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:ActivityExtension"/>
+ </extensions>
+ <extensions>
+ <extendedObject href="TestIf.bpel#//@activity/@activities.2/@activity/(a)copy.0"/>
+ <extensionObject xsi:type="org.eclipse.bpel.ui.uiextensionmodel:CopyExtension"/>
+ </extensions>
+</extensionmodel:ExtensionMap>
Added: branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.wsdl
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.wsdl (rev 0)
+++ branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/TestIf.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<wsdl:definitions
+ targetNamespace="http://ode/bpel/unit-test.wsdl"
+ xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:tns="http://ode/bpel/unit-test.wsdl"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype">
+
+ <wsdl:message name="HelloMessage">
+ <wsdl:part name="TestPart" type="xsd:string"/>
+ </wsdl:message>
+
+ <wsdl:portType name="HelloPortType">
+ <wsdl:operation name="hello">
+ <wsdl:input message="tns:HelloMessage" name="TestIn"/>
+ <wsdl:output message="tns:HelloMessage" name="TestOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+
+ <wsdl:binding name="HelloSoapBinding" type="tns:HelloPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="hello">
+ <soap:operation soapAction="" style="rpc"/>
+ <wsdl:input>
+ <soap:body
+ namespace="http://ode/bpel/unit-test.wsdl"
+ use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body
+ namespace="http://ode/bpel/unit-test.wsdl"
+ use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="HelloService">
+ <wsdl:port name="HelloPort" binding="tns:HelloSoapBinding">
+ <soap:address location="http://localhost:8080/ode/processes/helloWorld"/>
+ </wsdl:port>
+ </wsdl:service>
+
+ <plnk:partnerLinkType name="HelloPartnerLinkType">
+ <plnk:role name="me" portType="tns:HelloPortType"/>
+ <plnk:role name="you" portType="tns:HelloPortType"/>
+ </plnk:partnerLinkType>
+</wsdl:definitions>
+
Added: branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml (rev 0)
+++ branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/deploy.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,30 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
+ xmlns:pns="http://ode/bpel/unit-test"
+ xmlns:wns="http://ode/bpel/unit-test.wsdl">
+
+
+ <process name="pns:TestIf">
+ <active>true</active>
+ <provide partnerLink="helloPartnerLink">
+ <service name="wns:HelloService" port="HelloPort"/>
+ </provide>
+ </process>
+</deploy>
Added: branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties
===================================================================
--- branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties (rev 0)
+++ branches/ODE/ODE-1.x/bpel-test/src/test/resources/bpel/2.0/TestIfBoolean/test.properties 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,22 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+namespace=http://ode/bpel/unit-test.wsdl
+service=HelloService
+operation=hello
+request1=<message><TestPart>2.0</TestPart></message>
+response1=.*FALSE.*
Modified: branches/ODE/ODE-1.x/dao-hibernate/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/dao-hibernate/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dao-hibernate/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-dao-hibernate</artifactId>
<name>ODE :: Hibernate DAO Implementation</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
@@ -82,10 +82,9 @@
</goals>
<configuration>
<tasks>
- <hibernatedoclet excludedTags="@version,@author,@todo" verbose="true"
- destdir="${project.build.outputDirectory}" force="true">
- <hibernate version="3.0"/>
- <fileset dir="${project.build.sourceDirectory}" includes="org/apache/ode/daohib/bpel/hobj/*.java"/>
+ <hibernatedoclet excludedTags="@version,@author,@todo" verbose="true" destdir="${project.build.outputDirectory}" force="true">
+ <hibernate version="3.0" />
+ <fileset dir="${project.build.sourceDirectory}" includes="org/apache/ode/daohib/bpel/hobj/*.java" />
</hibernatedoclet>
</tasks>
</configuration>
Modified: branches/ODE/ODE-1.x/dao-hibernate-db/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/dao-hibernate-db/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dao-hibernate-db/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-dao-hibernate-db</artifactId>
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
@@ -73,8 +73,8 @@
<phase>generate-sources</phase>
<configuration>
<tasks>
- <property name="maven.runtime.classpath" refid="maven.compile.classpath"/>
- <ant antfile="build.xml" target="create-schema" inheritRefs="true"/>
+ <property name="maven.runtime.classpath" refid="maven.compile.classpath" />
+ <ant antfile="build.xml" target="create-schema" inheritRefs="true" />
</tasks>
</configuration>
<goals>
@@ -118,7 +118,7 @@
</goals>
<configuration>
<tasks>
- <property name="ode.version" value="${project.version}"/>
+ <property name="ode.version" value="${project.version}" />
<ant antfile="build.xml" target="zip-derby-db" />
</tasks>
</configuration>
Modified: branches/ODE/ODE-1.x/dao-jpa/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/dao-jpa/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dao-jpa/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -17,7 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-dao-jpa</artifactId>
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
@@ -98,18 +98,18 @@
</goals>
<configuration>
<tasks>
- <property name="maven.runtime.classpath" refid="maven.compile.classpath"/>
+ <property name="maven.runtime.classpath" refid="maven.compile.classpath" />
<path id="classpath">
- <pathelement path="${maven.runtime.classpath}"/>
+ <pathelement path="${maven.runtime.classpath}" />
</path>
- <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="classpath"/>
+ <taskdef name="openjpac" classname="org.apache.openjpa.ant.PCEnhancerTask" classpathref="classpath" />
<openjpac>
<fileset dir="${basedir}/src/main">
<include name="**/*.java" />
</fileset>
<classpath>
- <pathelement location="${basedir}/target/classes"/>
- <pathelement path="${maven.runtime.classpath}"/>
+ <pathelement location="${basedir}/target/classes" />
+ <pathelement path="${maven.runtime.classpath}" />
</classpath>
</openjpac>
</tasks>
Modified: branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java
===================================================================
--- branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessInstanceDAOImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -63,22 +63,28 @@
@Entity
@Table(name="ODE_PROCESS_INSTANCE")
@NamedQueries({
- @NamedQuery(name=ProcessInstanceDAOImpl.DELETE_INSTANCES_BY_PROCESS, query="delete from ProcessInstanceDAOImpl as i where i._process = :process"),
- @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_INSTANCE_IDS_BY_PROCESS, query="select i._instanceId from ProcessInstanceDAOImpl as i where i._process = :process"),
- @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCE_IDS_BY_PROCESS, query="select count(i._instanceId) from ProcessInstanceDAOImpl as i where i._process = :process"),
- @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_FAULT_IDS_BY_PROCESS, query="select i._faultId from ProcessInstanceDAOImpl as i where i._process = :process and i._faultId is not null"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.DELETE_INSTANCES_BY_PROCESS, query="delete from ProcessInstanceDAOImpl as i where i._process = :process"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_INSTANCE_IDS_BY_PROCESS, query="select i._instanceId from ProcessInstanceDAOImpl as i where i._process = :process"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCE_IDS_BY_PROCESS, query="select count(i._instanceId) from ProcessInstanceDAOImpl as i where i._process = :process"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.SELECT_FAULT_IDS_BY_PROCESS, query="select i._faultId from ProcessInstanceDAOImpl as i where i._process = :process and i._faultId is not null"),
@NamedQuery(name=ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID,
- query="select count(i._instanceId), max(i._lastRecovery) from ProcessInstanceDAOImpl as i where i._process._processId = :processId and i._state in(:states) and exists(select r from ActivityRecoveryDAOImpl r where i = r._instance)")
+ query="select count(i._instanceId), max(i._lastRecovery) from ProcessInstanceDAOImpl as i where i._process._processId = :processId and i._state in(:states) and exists(select r from ActivityRecoveryDAOImpl r where i = r._instance)"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS,
+ query="select i._process._processId, count(i._instanceId), max(i._lastRecovery) from ProcessInstanceDAOImpl as i where i._process._processId in (:processIds) and i._state = 20 and exists(select r from ActivityRecoveryDAOImpl r where i = r._instance) group by i._process._processId"),
+ @NamedQuery(name=ProcessInstanceDAOImpl.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES,
+ query="select i._process._processId, count(i._instanceId) from ProcessInstanceDAOImpl as i where i._process._processId in (:processIds) and i._state in(:states) group by i._process._processId")
})
public class ProcessInstanceDAOImpl extends OpenJPADAO implements ProcessInstanceDAO {
private static final Log __log = LogFactory.getLog(ProcessInstanceDAOImpl.class);
public final static String DELETE_INSTANCES_BY_PROCESS = "DELETE_INSTANCES_BY_PROCESS";
- public final static String SELECT_INSTANCE_IDS_BY_PROCESS = "SELECT_INSTANCE_IDS_BY_PROCESS";
- public final static String COUNT_INSTANCE_IDS_BY_PROCESS = "COUNT_INSTANCE_IDS_BY_PROCESS";
+ public final static String SELECT_INSTANCE_IDS_BY_PROCESS = "SELECT_INSTANCE_IDS_BY_PROCESS";
+ public final static String COUNT_INSTANCE_IDS_BY_PROCESS = "COUNT_INSTANCE_IDS_BY_PROCESS";
- public final static String SELECT_FAULT_IDS_BY_PROCESS = "SELECT_FAULT_IDS_BY_PROCESS";
+ public final static String SELECT_FAULT_IDS_BY_PROCESS = "SELECT_FAULT_IDS_BY_PROCESS";
public final static String COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID = "COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_ID";
+ public final static String COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS = "COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS";
+ public static final String COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES = "COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES";
@Id @Column(name="ID")
@GeneratedValue(strategy=GenerationType.AUTO)
Modified: branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java
===================================================================
--- branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ProcessManagementDAOImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -20,22 +20,22 @@
package org.apache.ode.dao.jpa;
import java.util.Collection;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
-import javax.xml.namespace.QName;
import javax.persistence.EntityManager;
import javax.persistence.Query;
+import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.common.InstanceFilter;
+import org.apache.ode.bpel.common.InstanceFilter.StatusKeys;
import org.apache.ode.bpel.dao.BpelDAOConnection;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import org.apache.ode.bpel.dao.ProcessManagementDAO;
-import org.apache.ode.bpel.dao.ProcessManagementDAO.FailedSummaryValue;
-import org.apache.ode.bpel.dao.ProcessManagementDAO.InstanceSummaryKey;
public class ProcessManagementDAOImpl implements ProcessManagementDAO {
private static final Log __log = LogFactory.getLog(ProcessManagementDAOImpl.class);
@@ -85,10 +85,35 @@
}
public Map<InstanceSummaryKey, Long> countInstancesSummary(Set<String> pids) {
- return new HashMap<InstanceSummaryKey, Long>();
+ Map<InstanceSummaryKey, Long> result = new HashMap<InstanceSummaryKey, Long>();
+ if (!pids.isEmpty()) {
+ for (StatusKeys status : InstanceFilter.StatusKeys.values()) {
+ Query query = em.createNamedQuery(ProcessInstanceDAOImpl.COUNT_INSTANCES_BY_PROCESSES_IDS_AND_STATES);
+ query.setParameter("states", new InstanceFilter("status=" + status.toString()).convertFilterState());
+ query.setParameter("processIds", pids);
+ for (Object o : query.getResultList()) {
+ Object[] row = (Object[]) o;
+ InstanceSummaryKey key = new InstanceSummaryKey(row[0].toString(), status.toString());
+ result.put(key, (Long) row[1]);
+ }
+ }
+ }
+
+ return result;
}
public Map<String, FailedSummaryValue> findFailedCountAndLastFailedDateForProcessIds(Set<String> pids) {
- return new HashMap<String, FailedSummaryValue>();
+ Map<String, FailedSummaryValue> result = new HashMap<String, FailedSummaryValue>();
+ if (!pids.isEmpty()) {
+ Query query = em.createNamedQuery(ProcessInstanceDAOImpl.COUNT_FAILED_INSTANCES_BY_STATUS_AND_PROCESS_IDS);
+ query.setParameter("processIds", pids);
+ for (Object o : query.getResultList()) {
+ System.out.println(o);
+ Object[] row = (Object[]) o;
+ result.put(row[0].toString(), new FailedSummaryValue((Long) row[1], (Date) row[2]));
+ }
+ }
+ return result;
+
}
}
Modified: branches/ODE/ODE-1.x/dao-jpa-ojpa-derby/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/dao-jpa-ojpa-derby/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dao-jpa-ojpa-derby/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -17,7 +17,7 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-dao-jpa-ojpa-derby</artifactId>
@@ -25,7 +25,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
@@ -161,7 +161,7 @@
</goals>
<configuration>
<tasks>
- <property name="maven.runtime.classpath" refid="maven.compile.classpath"/>
+ <property name="maven.runtime.classpath" refid="maven.compile.classpath" />
<ant antfile="build.xml" target="create-schema" />
</tasks>
</configuration>
@@ -204,7 +204,7 @@
</goals>
<configuration>
<tasks>
- <property name="ode.version" value="${project.version}"/>
+ <property name="ode.version" value="${project.version}" />
<ant antfile="build.xml" target="zip-derby-db" />
</tasks>
</configuration>
Modified: branches/ODE/ODE-1.x/dependencies.rb
===================================================================
--- branches/ODE/ODE-1.x/dependencies.rb 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/dependencies.rb 2011-01-16 11:52:46 UTC (rev 1234)
@@ -16,7 +16,7 @@
ANNONGEN = "annogen:annogen:jar:0.1.0"
ANT = "ant:ant:jar:1.6.5"
AXIOM = [ group("axiom-api", "axiom-impl", "axiom-dom",
- :under=>"org.apache.ws.commons.axiom", :version=>"1.2.5") ]
+ :under=>"org.apache.ws.commons.axiom", :version=>"1.2.7") ]
AXIS2_ALL = group("axis2-adb", "axis2-codegen", "axis2-kernel",
"axis2-java2wsdl", "axis2-jibx", "axis2-saaj", "axis2-xmlbeans",
:under=>"org.apache.axis2", :version=>"1.3")
@@ -35,12 +35,12 @@
"bouncycastle:bcprov-jdk15:jar:140"]
)
AXIS2_WAR = "org.apache.axis2:axis2-webapp:war:1.3"
-BACKPORT = "backport-util-concurrent:backport-util-concurrent:jar:3.0"
+BACKPORT = "backport-util-concurrent:backport-util-concurrent:jar:3.1"
COMMONS = struct(
:codec =>"commons-codec:commons-codec:jar:1.3",
:collections =>"commons-collections:commons-collections:jar:3.2.1",
:dbcp =>"commons-dbcp:commons-dbcp:jar:1.2.2",
- :fileupload =>"commons-fileupload:commons-fileupload:jar:1.1.1",
+ :fileupload =>"commons-fileupload:commons-fileupload:jar:1.2",
:httpclient =>"commons-httpclient:commons-httpclient:jar:3.1",
:lang =>"commons-lang:commons-lang:jar:2.4",
:logging =>"commons-logging:commons-logging:jar:1.1",
@@ -65,7 +65,7 @@
#:activation =>"geronimo-spec:geronimo-spec-activation:jar:1.0.2-rc4",
:connector =>"org.apache.geronimo.specs:geronimo-j2ee-connector_1.5_spec:jar:1.0",
:ejb =>"org.apache.geronimo.specs:geronimo-ejb_2.1_spec:jar:1.1",
- :javamail =>"geronimo-spec:geronimo-spec-javamail:jar:1.3.1-rc5",
+ :javamail =>"org.apache.geronimo.specs:geronimo-javamail_1.4_spec:jar:1.2",
:jms =>"geronimo-spec:geronimo-spec-jms:jar:1.1-rc4",
:persistence =>"javax.persistence:persistence-api:jar:1.0",
:servlet =>"org.apache.geronimo.specs:geronimo-servlet_2.4_spec:jar:1.0",
@@ -76,12 +76,13 @@
JAXEN = "jaxen:jaxen:jar:1.1.1"
JBI = group("org.apache.servicemix.specs.jbi-api-1.0", :under=>"org.apache.servicemix.specs", :version=>"1.1.0")
JENCKS = "org.jencks:jencks:jar:all:1.3"
-JIBX = "jibx:jibx-run:jar:1.1-beta3"
+JIBX = "org.jibx:jibx-run:jar:1.1.5"
KARAF = [
"org.apache.felix:org.osgi.core:jar:1.4.0",
- "org.apache.felix.karaf.shell:org.apache.felix.karaf.shell.console:jar:1.0.0",
+ "org.apache.felix:org.osgi.compendium:jar:1.4.0",
+ "org.apache.karaf.shell:org.apache.karaf.shell.console:jar:2.1.3",
group("org.apache.felix.gogo.commands","org.apache.felix.gogo.runtime",
- :under=>"org.apache.felix.gogo", :version=>"0.2.0")
+ :under=>"org.apache.felix.gogo", :version=>"0.4.0")
]
LOG4J = "log4j:log4j:jar:1.2.13"
OPENJPA = ["org.apache.openjpa:openjpa:jar:1.2.1",
@@ -117,14 +118,15 @@
]
SLF4J = group(%w{ slf4j-api slf4j-log4j12 jcl104-over-slf4j }, :under=>"org.slf4j", :version=>"1.4.3")
SPRING = ["org.springframework:spring:jar:2.5.6"]
+SPRING_OSGI = ["org.springframework.osgi:spring-osgi-core:jar:1.2.0"]
TRANQL = [ "tranql:tranql-connector:jar:1.1", COMMONS.primitives ]
-WOODSTOX = "woodstox:wstx-asl:jar:3.2.1"
-WSDL4J = "wsdl4j:wsdl4j:jar:1.6.1"
+WOODSTOX = "woodstox:wstx-asl:jar:3.2.4"
+WSDL4J = "wsdl4j:wsdl4j:jar:1.6.2"
XALAN = "xalan:xalan:jar:2.7.1"
XERCES = "xerces:xercesImpl:jar:2.9.0"
WS_COMMONS = struct(
:axiom =>AXIOM,
- :neethi =>"org.apache.neethi:neethi:jar:2.0.2",
+ :neethi =>"org.apache.neethi:neethi:jar:2.0.4",
:xml_schema =>"org.apache.ws.commons.schema:XmlSchema:jar:1.3.2"
)
XBEAN = [
Added: branches/ODE/ODE-1.x/distro/license/bubbling-LICENSE
===================================================================
--- branches/ODE/ODE-1.x/distro/license/bubbling-LICENSE (rev 0)
+++ branches/ODE/ODE-1.x/distro/license/bubbling-LICENSE 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,41 @@
+Software License Agreement (BSD License)
+
+* Javascript Bubbling Library
+* http://www.bubbling-library.com
+
+Copyright (c) 2009, Caridy Patino.
+All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with or without modification, are
+permitted provided that the following conditions are met:
+
+* Redistributions of source code must retain the above
+ copyright notice, this list of conditions and the
+ following disclaimer.
+
+* Redistributions in binary form must reproduce the above
+ copyright notice, this list of conditions and the
+ following disclaimer in the documentation and/or other
+ materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
+WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
+ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
+TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+To get started using Bubbling Library. Simply include the two source files into the head of your document:
+
+<!-- YUI Core -->
+<script src="http://yui.yahooapis.com/2.7.0/build/utilities/utilities.js" type="text/javascript"></script>
+<!-- Bubbling Library Core -->
+<script src="http://js.bubbling-library.com/2.1/build/bubbling/bubbling.js" type="text/javascript"></script>
+
+The documentation can be found here:
+http://www.bubbling-library.com/eng/api/docs/
+
+Best,
+Caridy Patino
\ No newline at end of file
Added: branches/ODE/ODE-1.x/distro/license/yui-LICENSE
===================================================================
--- branches/ODE/ODE-1.x/distro/license/yui-LICENSE (rev 0)
+++ branches/ODE/ODE-1.x/distro/license/yui-LICENSE 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,58 @@
+Software License Agreement (BSD License)
+
+Copyright (c) 2010, Yahoo! Inc. All rights reserved.
+
+Redistribution and use of this software in source and binary forms, with
+or without modification, are permitted provided that the following
+conditions are met:
+
+* Redistributions of source code must retain the above copyright notice,
+this list of conditions and the following disclaimer. * Redistributions
+in binary form must reproduce the above copyright notice, this list of
+conditions and the following disclaimer in the documentation and/or
+other materials provided with the distribution. * Neither the name of
+Yahoo! Inc. nor the names of its contributors may be used to endorse or
+promote products derived from this software without specific prior
+written permission of Yahoo! Inc.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
+IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
+OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
+LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Sources of
+Intellectual Property Included in the YUI Library
+
+YUI is issued by Yahoo! under the BSD license above. Below is a list of
+certain publicly available software that is the source of intellectual
+property in YUI, along with the licensing terms that pertain to
+thosesources of IP. This list is for informational purposes only and is
+not intended to represent an exhaustive list of third party
+contributions to the YUI.
+
+* Douglas Crockford's JSON parsing and stringifying methods: In the JSON
+Utility, Douglas Crockford's JSON parsing and stringifying methods are
+adapted from work published at JSON.org. The adapted work is in the
+public domain.
+
+* Robert Penner's animation-easing algorithms: In the Animation Utility,
+YUI makes use of Robert Penner's algorithms for easing.
+
+* Geoff Stearns's SWFObject: In the Charts Control and the Uploader
+versions through 2.7.0, YUI makes use of Geoff Stearns's SWFObject v1.5
+for Flash Player detection and embedding. More information on SWFObject
+can be found here (http://blog.deconcept.com/swfobject/). SWFObject is
+(c) 2007 Geoff Stearns and is released under the MIT License
+(http://www.opensource.org/licenses/mit-license.php).
+
+* Diego Perini's IEContentLoaded technique: The Event Utility employs a
+technique developed by Diego Perini and licensed under GPL. YUI's use of
+this technique is included under our BSD license with the author's
+permission.
+
+
Modified: branches/ODE/ODE-1.x/distro/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/distro/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-distro</artifactId>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<properties>
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/osgi.bnd 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,3 @@
+Import-Package: org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi
+Include-Resource: src/main/resources
+Export-Package:
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.apache.ode.examples</groupId>
+ <artifactId>helloworld-bundle</artifactId>
+ <name>ODE :: Examples :: Hello World OSGi</name>
+ <version>1.3.5</version>
+ <packaging>bundle</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>1.4.3</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.groupId}-${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <_include>-osgi.bnd</_include>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+ <profiles>
+ <profile>
+ <id>send</id>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>eviware</groupId>
+ <artifactId>maven-soapui-plugin</artifactId>
+ <version>3.6</version>
+ <configuration>
+ <projectFile>${basedir}/src/test/resources/helloworld-soapui-project.xml</projectFile>
+ <printReport>true</printReport>
+ </configuration>
+ <executions>
+ <execution>
+ <id>soap-integration-test</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>eviwarePluginRepository</id>
+ <url>http://www.eviware.com/repository/maven2/</url>
+ </pluginRepository>
+ </pluginRepositories>
+ </profile>
+ </profiles>
+
+</project>
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.bpel 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,79 @@
+<?xml version="1.0"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<process name="HelloWorld2"
+ targetNamespace="urn:/HeaderTest.bpel"
+ xmlns="http://docs.oasis-open.org/wsbpel/2.0/process/executable"
+ xmlns:tns="urn:/HeaderTest.bpel"
+ xmlns:hello="urn:/HelloWorld2.wsdl"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+ <import location="HelloWorld2.wsdl"
+ namespace="urn:/HelloWorld2.wsdl"
+ importType="http://schemas.xmlsoap.org/wsdl/" />
+
+ <partnerLinks>
+ <partnerLink name="helloPartnerLink"
+ partnerLinkType="hello:HelloPartnerLinkType"
+ myRole="Provider" />
+ </partnerLinks>
+
+ <variables>
+ <variable name="request" messageType="hello:HelloRequest"/>
+ <variable name="response" messageType="hello:HelloResponse"/>
+ <variable name="text" type="xsd:string"/>
+ </variables>
+
+ <sequence>
+ <receive
+ name="start"
+ partnerLink="helloPartnerLink"
+ portType="hello:HelloPortType"
+ operation="Hello"
+ variable="request"
+ createInstance="yes"/>
+
+ <assign name="assign1">
+ <copy>
+ <from>$request.body/hello:text</from>
+ <to variable="text"/>
+ </copy>
+ <copy>
+ <from>
+ <literal>
+ <hello:HelloResponse>
+ <hello:text/>
+ </hello:HelloResponse>
+ </literal>
+ </from>
+ <to>$response.body</to>
+ </copy>
+ <copy>
+ <from>concat($text,' World')</from>
+ <to>$response.body/hello:text</to>
+ </copy>
+ </assign>
+
+ <reply name="end"
+ partnerLink="helloPartnerLink"
+ portType="hello:HelloPortType"
+ operation="Hello"
+ variable="response"/>
+ </sequence>
+</process>
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/HelloWorld2.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,85 @@
+<?xml version="1.0"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<definitions name="Hello"
+ targetNamespace="urn:/HelloWorld2.wsdl"
+ xmlns:tns="urn:/HelloWorld2.wsdl"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <schema targetNamespace="urn:/HelloWorld2.wsdl"
+ xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="HelloRequest">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ <element name="HelloResponse">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+
+ <message name="HelloRequest">
+ <part name="body" element="tns:HelloRequest"/>
+ </message>
+
+ <message name="HelloResponse">
+ <part name="body" element="tns:HelloResponse"/>
+ </message>
+
+ <portType name="HelloPortType">
+ <operation name="Hello">
+ <input message="tns:HelloRequest"/>
+ <output message="tns:HelloResponse"/>
+ </operation>
+ </portType>
+
+ <plnk:partnerLinkType name="HelloPartnerLinkType">
+ <plnk:role name="Provider" portType="tns:HelloPortType"/>
+ </plnk:partnerLinkType>
+
+ <binding name="HelloSoapBinding" type="tns:HelloPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="Hello">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+
+ <service name="HelloService">
+ <port name="HelloPort" binding="tns:HelloSoapBinding">
+ <soap:address location="http://unused.url/here"/>
+ </port>
+ </service>
+
+</definitions>
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/META-INF/spring/beans.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="
+ http://servicemix.apache.org/cxfbc/1.0
+ http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ ">
+
+ <bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
+
+ <cxfbc:consumer
+ xmlns:helloworld="urn:/HelloWorld2.wsdl"
+ wsdl="classpath:HelloWorld2.wsdl"
+ locationURI="http://localhost:8193/HelloService"
+ targetService="helloworld:HelloService"
+ targetEndpoint="HelloPort"
+ />
+
+</beans>
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/main/resources/deploy.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,30 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+<deploy xmlns="http://www.apache.org/ode/schemas/dd/2007/03"
+ xmlns:pns="urn:/HeaderTest.bpel"
+ xmlns:sns="urn:/HelloWorld2.wsdl" >
+
+
+ <process name="pns:HelloWorld2">
+ <active>true</active>
+ <provide partnerLink="helloPartnerLink">
+ <service name="sns:HelloService" port="HelloPort"/>
+ </provide>
+ </process>
+</deploy>
Added: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml (rev 0)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/helloworld2-osgi/src/test/resources/helloworld-soapui-project.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<con:soapui-project name="HelloService" resourceRoot="" soapui-version="3.5.1" xmlns:con="http://eviware.com/soapui/config"><con:settings/><con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="HelloSoapBinding" type="wsdl" bindingName="{urn:/HelloWorld2.wsdl}HelloSoapBinding" soapVersion="1_1" anonymous="optional" definition="http://localhost:8193/HelloService?wsdl" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:settings/><con:definitionCache type="TEXT" rootPart="http://localhost:8193/HelloService?wsdl"><con:part><con:url>http://localhost:8193/HelloService?wsdl</con:url><con:content><![CDATA[<definitions name="Hello" targetNamespace="urn:/HelloWorld2.wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:smix="http://servicemix.org/wsdl/jbi/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:/HelloWorld2.wsdl">
+ <types>
+ <schema targetNamespace="urn:/HelloWorld2.wsdl" xmlns="http://www.w3.org/2001/XMLSchema">
+ <element name="HelloRequest">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ <element name="HelloResponse">
+ <complexType>
+ <all>
+ <element name="text" type="string"/>
+ </all>
+ </complexType>
+ </element>
+ </schema>
+ </types>
+ <message name="HelloResponse">
+ <part element="tns:HelloResponse" name="body"></part>
+ </message>
+ <message name="HelloRequest">
+ <part element="tns:HelloRequest" name="body"></part>
+ </message>
+ <portType name="HelloPortType">
+ <operation name="Hello">
+ <input message="tns:HelloRequest"></input>
+ <output message="tns:HelloResponse"></output>
+ </operation>
+ </portType>
+ <binding name="HelloSoapBinding" type="tns:HelloPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="Hello">
+ <soap:operation soapAction=""/>
+ <input>
+ <soap:body use="literal"/>
+ </input>
+ <output>
+ <soap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="HelloService">
+ <port binding="tns:HelloSoapBinding" name="HelloPort">
+ <soap:address location="http://localhost:8193/HelloService"/>
+ <smix:endpoint defaultMep="in-out" role="consumer"/>
+ </port>
+ </service>
+</definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://localhost:8193/HelloService</con:endpoint></con:endpoints><con:operation isOneWay="false" action="" name="Hello" bindingOperationName="Hello" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional"><con:settings/><con:call name="Request 1"><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8193/HelloService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="urn:/HelloWorld2.wsdl">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <hel:HelloRequest>
+ <hel:text>Hello</hel:text>
+ </hel:HelloRequest>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="urn:/HelloWorld2.wsdl/HelloPortType/HelloRequest"/><con:wsrmConfig version="1.2"/></con:call></con:operation></con:interface><con:testSuite name="TestSend"><con:settings/><con:runType>SEQUENTIAL</con:runType><con:testCase failOnError="true" failTestCaseOnErrors="true" keepSession="false" maxResults="0" name="Send" searchProperties="true"><con:settings/><con:testStep type="request" name="Hello - Request 1"><con:settings/><con:config xsi:type="con:RequestStep" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><con:interface>HelloSoapBinding</con:interface><con:operation>Hello</con:operation><con:request name="Hello - Request 1" outgoingWss="" incomingWss="" timeout="" wssPasswordType=""><con:settings><con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting></!
con:settings><con:encoding>UTF-8</con:encoding><con:endpoint>http://localhost:8193/HelloService</con:endpoint><con:request><![CDATA[<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:hel="urn:/HelloWorld2.wsdl">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <hel:HelloRequest>
+ <hel:text>Hello</hel:text>
+ </hel:HelloRequest>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:assertion type="SOAP Response"/><con:jmsConfig JMSDeliveryMode="PERSISTENT"/><con:jmsPropertyConfig/><con:wsaConfig mustUnderstand="NONE" version="200508" action="urn:/HelloWorld2.wsdl/HelloPortType/HelloRequest"/><con:wsrmConfig version="1.2"/></con:request></con:config></con:testStep><con:properties/></con:testCase><con:properties/></con:testSuite><con:properties/><con:wssContainer/></con:soapui-project>
\ No newline at end of file
Modified: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/osgi.bnd 2011-01-16 11:52:46 UTC (rev 1234)
@@ -1,4 +1,3 @@
-Bundle-Activator: org.apache.ode.jbi.osgi.ServiceUnitActivator
+Import-Package: org.apache.servicemix.cxfbc,org.apache.servicemix.common.osgi
Export-Package: org.apache.ode.ping
-Import-Package: org.apache.ode.jbi.osgi,org.apache.servicemix.http,org.apache.servicemix.common.osgi
Include-Resource: src/main/resources
Modified: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -17,13 +17,13 @@
~ specific language governing permissions and limitations
~ under the License.
-->
-<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode.examples</groupId>
<artifactId>ping-pong-bundle</artifactId>
<name>ODE :: Examples :: Ping Pong OSGi</name>
- <version>1.3.4</version>
+ <version>1.3.5</version>
<packaging>bundle</packaging>
<build>
Modified: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/META-INF/spring/xbean.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,27 +18,22 @@
~ under the License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:http="http://servicemix.apache.org/http/1.0"
- xmlns:ping="urn:/Ping.wsdl"
- xmlns:pong="urn:/Pong.wsdl"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans.xsd
- http://servicemix.apache.org/http/1.0
- http://servicemix.apache.org/http/1.0/servicemix-http.xsd">
- <http:endpoint
- service="ping:PingService"
- endpoint="http"
- targetService="ping:PingService"
- targetEndpoint="PingPort"
- defaultOperation="Ping"
- role="consumer"
- locationURI="http://localhost:8192/PingHttp/"
- defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
- wsdlResource="classpath:Ping.wsdl"
- soapVersion="1.1"
- soap="true" />
-
+ http://servicemix.apache.org/cxfbc/1.0
+ http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ ">
+
<bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
+ <cxfbc:consumer
+ xmlns:ping="urn:/Ping.wsdl"
+ xmlns:pong="urn:/Pong.wsdl"
+ wsdl="classpath:Ping.wsdl"
+ locationURI="http://localhost:8193/PingService"
+ targetService="ping:PingService"
+ targetEndpoint="PingPort" />
+
</beans>
Modified: branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl
===================================================================
--- branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/distro/src/examples-jbi/maven2/ping-pong-osgi/src/main/resources/Ping.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
@@ -49,12 +49,24 @@
<plnk:role name="Provider" portType="tns:PingPortType"/>
</plnk:partnerLinkType>
- <!--
+ <binding name="PingSoapBinding" type="tns:PingPortType">
+ <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
+ <operation name="Ping">
+ <soap:operation soapAction="" />
+ <input>
+ <soap:body use="literal" />
+ </input>
+ <output>
+ <soap:body use="literal" />
+ </output>
+ </operation>
+ </binding>
- This is an abstract interface/portType definition. Note the lack of
- binding and service: these are defined by the HTTP binding component.
- See ping-http/Ping.wsdl for details.
+ <service name="PingService">
+ <port name="PingPort" binding="tns:PingSoapBinding">
+ <!-- this address will be overridden by CXF -->
+ <soap:address location="http://unused.url/here" />
+ </port>
+ </service>
- -->
-
</definitions>
Modified: branches/ODE/ODE-1.x/jacob/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jacob/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jacob/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-jacob</artifactId>
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/jacob-ap/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jacob-ap/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jacob-ap/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-jacob-ap</artifactId>
<packaging>jar</packaging>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/jbi/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<properties>
@@ -429,9 +429,7 @@
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<!-- FIXME: temporary skip it -->
- <!--
<skipTests>true</skipTests>
- -->
<systemProperties>
<property>
<name>java.naming.factory.initial</name>
Modified: branches/ODE/ODE-1.x/jbi-bundle/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-bundle/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<!--
@@ -33,7 +32,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<build>
@@ -126,5 +125,20 @@
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.core</artifactId>
+ <version>4.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.osgi</groupId>
+ <artifactId>org.osgi.compendium</artifactId>
+ <version>4.2.0</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.osgi</groupId>
+ <artifactId>spring-osgi-core</artifactId>
+ <version>1.2.0</version>
+ </dependency>
</dependencies>
</project>
Modified: branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/ServiceUnitActivator.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -19,101 +19,27 @@
package org.apache.ode.jbi.osgi;
-import java.io.File;
-import java.io.FileWriter;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Enumeration;
+import java.util.logging.Logger;
-import javax.jbi.component.Component;
-import javax.jbi.component.ServiceUnitManager;
-
-import org.apache.commons.io.IOUtils;
-import org.osgi.framework.Bundle;
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
-import org.osgi.framework.ServiceReference;
+
/**
- * @author mproch
+ * This class is now deprecated in favor of using OdeExtender service, which watches
+ * deployment of bundles and manages start/stop/install/uninstall/update from OSGi
+ * to ODE.
*
+ * @deprecated
+ * @see OdeExtenderImpl
*/
public class ServiceUnitActivator implements BundleActivator {
+ private static final Logger LOG = Logger.getLogger(ServiceUnitActivator.class.getName());
- File rootDir;
- String generatedName;
-
public void start(BundleContext context) throws Exception {
- generatedName = context.getBundle().getSymbolicName();
- rootDir = context.getDataFile("bpelData");
- rootDir.mkdirs();
- Enumeration<?> en = context.getBundle().findEntries("/", "*", false);
- while (en.hasMoreElements()) {
- copyOne(rootDir, (URL) en.nextElement());
- }
- ServiceReference[] refs = context.getAllServiceReferences(
- "javax.jbi.component.Component", "(&(NAME=OdeBpelEngine))");
- if (refs == null || refs.length != 1) {
- throw new RuntimeException("no appropriate service :(");
- }
- ServiceUnitManager suM = ((Component) context.getService(refs[0]))
- .getServiceUnitManager();
- ClassLoader l = Thread.currentThread().getContextClassLoader();
- try {
- ClassLoader suL = suM.getClass().getClassLoader();
- Thread.currentThread().setContextClassLoader(new BundleClassLoader(suL, context.getBundle()));
- suM.deploy(generatedName, rootDir.getAbsolutePath());
- suM.init(generatedName, rootDir.getAbsolutePath());
- suM.start(generatedName);
- } finally {
- Thread.currentThread().setContextClassLoader(l);
- }
-
+ LOG.warning("Use of " + this.getClass().getName() + " has been deprecated. BPEL bundle deployment is now handled by the ODE extender service. Remove Bundle-Activator from OSGi manifest for bundle: " + context.getBundle().getSymbolicName());
}
- private void copyOne(File dest, URL url) throws Exception {
- File d = new File(dest, url.getPath());
- InputStream str = url.openStream();
- if (str != null) {
- FileWriter wr = new FileWriter(d);
- try {
- IOUtils.copy(str, wr);
- } finally {
- wr.flush();
- wr.close();
- }
- }
- }
-
public void stop(BundleContext context) throws Exception {
- ServiceReference[] refs = context.getAllServiceReferences(
- "javax.jbi.component.Component", "(&(NAME=OdeBpelEngine))");
- if (refs == null || refs.length != 1) {
- throw new RuntimeException("no appropriate service :(");
- }
- ServiceUnitManager suM = ((Component) context.getService(refs[0]))
- .getServiceUnitManager();
- suM.shutDown(generatedName);
- suM.undeploy(generatedName, rootDir.getAbsolutePath());
-
}
-
- public class BundleClassLoader extends ClassLoader {
- private final Bundle delegate;
-
- public BundleClassLoader(ClassLoader parent, Bundle delegate) {
- super(parent);
- this.delegate = delegate;
- }
-
- @Override
- public Class<?> loadClass(String name) throws ClassNotFoundException {
- try {
- return getParent().loadClass(name);
- } catch (Exception e) {
- return delegate.loadClass(name);
- }
- }
- }
-
}
Added: branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeDeployedBundle.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,303 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.FilenameFilter;
+import java.io.InputStream;
+import java.lang.reflect.Field;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.List;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.jbi.component.Component;
+import javax.jbi.component.ComponentLifeCycle;
+import javax.jbi.component.ServiceUnitManager;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.xml.namespace.QName;
+
+import org.apache.commons.io.IOUtils;
+import org.apache.ode.bpel.iapi.ProcessStore;
+import org.apache.ode.jbi.OdeContext;
+import org.osgi.framework.Bundle;
+
+public class OdeDeployedBundle {
+ private static final Logger LOG = Logger.getLogger(OdeDeployedBundle.class.getName());
+ private boolean updated;
+ private Bundle bundle;
+ private OdeExtenderImpl odeRegistrationService;
+ private File rootDir;
+ private String duName;
+ private String name;
+
+ OdeDeployedBundle(Bundle bundle, OdeExtenderImpl odeRegistrationService) {
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Initialized ODE service unit deployer for bundle: " + bundle.getSymbolicName());
+ this.bundle = bundle;
+ this.odeRegistrationService = odeRegistrationService;
+ }
+
+ String getName() {
+ if (this.name == null)
+ this.name = this.bundle.getSymbolicName();
+ return this.name;
+ }
+
+ private String getDUName() {
+ if (this.duName == null)
+ this.duName = getName() + "-" + bundle.getVersion().getMicro();
+ return this.duName;
+ }
+
+ private File getRootDir() {
+ if (this.rootDir == null && this.bundle.getBundleContext() != null)
+ this.rootDir = this.bundle.getBundleContext().getDataFile("bpelData/" + getDUName());
+ return this.rootDir;
+ }
+
+ void doStart() throws Exception {
+ // If we are already started, don't bother starting again.
+ LOG.info("Starting ODE service unit: " + getName());
+
+ // Wait until ODE is available before starting.
+ waitAvailable();
+
+ // Do we need to undeploy first?
+ boolean needUpdate = updated;
+ boolean forceDeploy = needUpdate;
+ this.updated = false;
+
+ // Do deploy.
+ this.deploy(this.bundle, this.odeRegistrationService.getOdeComponent().getServiceUnitManager(), forceDeploy, needUpdate);
+ }
+
+ void doStop() throws Exception {
+ LOG.info("Stopping ODE service unit: " + getName());
+ this.shutdown(this.bundle, this.odeRegistrationService.getOdeComponent().getServiceUnitManager());
+ }
+
+ void doInstall() throws Exception {
+ LOG.info("Installing ODE service unit: " + getName());
+ }
+
+ void doUninstall() throws Exception {
+ LOG.info("Uninstalling ODE service unit: " + getName());
+ this.undeploy(this.bundle, this.odeRegistrationService.getOdeComponent().getServiceUnitManager());
+ }
+
+ void doUpdate() throws Exception {
+ LOG.info("Updating ODE service unit: " + getName());
+
+ // We simply mark the update state of this bundle so that on next start, we do a redeploy
+ updated = true;
+ }
+
+ private void deploy(Bundle bundle, ServiceUnitManager suM, boolean forceDeploy, boolean undeploy) throws Exception {
+ // Do deployment.
+ File rootDir = getRootDir();
+ String duName = getDUName();
+ boolean needDeploy = rootDir.mkdirs() || forceDeploy;
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Exploding content to " + rootDir + " for " + duName);
+ Enumeration<?> en = bundle.findEntries("/", "*", false);
+ while (en.hasMoreElements())
+ needDeploy |= copyOne(rootDir, (URL) en.nextElement());
+
+ // Now start it.
+ ClassLoader l = Thread.currentThread().getContextClassLoader();
+ try {
+ ClassLoader suL = suM.getClass().getClassLoader();
+ Thread.currentThread().setContextClassLoader(new BundleClassLoader(suL, bundle));
+ try {
+ // Try first an init/start, which will fail if the process isn't
+ // here.
+ if (needDeploy) {
+ // If deployed, undeploy first.
+ if (undeploy && isDeployed(duName)) {
+ // Do the undeploy to service unit manager.
+ LOG.info("Performing undeploy " + duName + " from dir " + rootDir);
+ suM.undeploy(duName, rootDir.getAbsolutePath());
+
+ // Now, remove any .cbp files.
+ File[] cbpFiles = rootDir.listFiles(new FilenameFilter() {
+ public boolean accept(File dir, String name) {
+ return name.endsWith(".cbp");
+ }
+ });
+ for (File cbpFile : cbpFiles) {
+ LOG.info("Removing compiled bpel process: " + cbpFile);
+ cbpFile.delete();
+ }
+ }
+
+ LOG.info("Deploying " + duName + " to dir " + rootDir);
+ suM.deploy(duName, rootDir.getAbsolutePath());
+ }
+ suM.init(duName, rootDir.getAbsolutePath());
+ suM.start(duName);
+ } catch (javax.jbi.management.DeploymentException e) {
+ LOG.log(Level.WARNING, "Deploy failed; could not deploy/start this bundle: " + this.getName(), e);
+ throw e;
+ }
+ } finally {
+ Thread.currentThread().setContextClassLoader(l);
+ }
+ }
+
+ private boolean isDeployed(String processName) {
+ boolean Result = true;
+ try {
+ // Get the "ProcessStore" interface by grabbing the internal field
+ // of OdeContext and querying for the processes. Could also use PMAPI here,
+ // but in any case we just need to know if the process exists in a deployed state.
+ //
+ // TODO: add a OdeContext.getStore() method to clean this up.
+ OdeContext inst = OdeContext.getInstance();
+ Field _store = inst.getClass().getDeclaredField("_store");
+ _store.setAccessible(true);
+ ProcessStore ps = (ProcessStore) _store.get(inst);
+ List<QName> processes = ps.listProcesses(processName);
+ Result = processes != null && !processes.isEmpty();
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Could not determine deployment state for process: " + processName, e);
+ }
+ return Result;
+ }
+
+ private boolean copyOne(File dest, URL url) throws Exception {
+ File d = new File(dest, url.getPath());
+ boolean needDeploy = !d.exists();
+ long length = d.exists() ? d.length() : 0L;
+ InputStream str = url.openStream();
+ if (str != null) {
+ FileWriter wr = new FileWriter(d);
+ try {
+ IOUtils.copy(str, wr);
+ } finally {
+ wr.flush();
+ wr.close();
+ }
+
+ // If file is zero-length (which is the case handling a directory),
+ // just remove it.
+ if (d.exists() && d.length() == 0) {
+ d.delete();
+ needDeploy = false;
+ } else
+ needDeploy |= length != d.length();
+ }
+ return needDeploy;
+ }
+
+ private void shutdown(Bundle bundle, ServiceUnitManager suM) throws Exception {
+ String duName = getDUName();
+ if (suM != null) {
+ suM.stop(duName);
+ suM.shutDown(duName);
+ } else {
+ LOG.warning("Could not shutdown this process (" + duName + ") because ode component was never located");
+ }
+ }
+
+ private void undeploy(Bundle bundle, ServiceUnitManager suM) throws Exception {
+ String duName = getDUName();
+ if (suM != null) {
+ if (isDeployed(duName)) {
+ // Use ODE's classloader to avoid class loading from the bundle
+ // being undeployed.
+ ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(suM.getClass().getClassLoader());
+ File rootDir = getRootDir();
+ LOG.info("Performing undeploy " + duName + " from dir " + rootDir);
+ suM.undeploy(duName, rootDir.getAbsolutePath());
+ } finally {
+ Thread.currentThread().setContextClassLoader(classLoader);
+ }
+ }
+ } else {
+ LOG.warning("Could not shutdown this process (" + duName + ") because ode component was never located");
+ }
+ }
+
+ public class BundleClassLoader extends ClassLoader {
+ private final Bundle delegate;
+
+ public BundleClassLoader(ClassLoader parent, Bundle delegate) {
+ super(parent);
+ this.delegate = delegate;
+ }
+
+ @Override
+ public Class<?> loadClass(String name) throws ClassNotFoundException {
+ try {
+ return getParent().loadClass(name);
+ } catch (Exception e) {
+ return delegate.loadClass(name);
+ }
+ }
+ }
+
+ private void waitAvailable() throws InterruptedException {
+ /**
+ * We need to wait until the service unit manager is available before
+ * proceeding. Also, since the ode component itself does an asynchronous
+ * start with respect to this bundle, we need to wait until it is done
+ * initializing. This would be much cleaner if we could simply
+ * call "isStarted" on OdeLifeCycle, which maintains a started state.
+ *
+ * If we do not wait until the ode component is started, deployments
+ * will fail sporadically because of asynchronous start race conditions.
+ */
+ boolean showedWait = false;
+ while (this.odeRegistrationService.getOdeComponent().getServiceUnitManager() == null || !isStarted(this.odeRegistrationService.getOdeComponent())) {
+
+ // Do a wait.
+ if (!showedWait) {
+ LOG.info("Waiting for ODE to arrive (" + getName() + ")...");
+ showedWait = true;
+ }
+ Thread.sleep(500L);
+ }
+ }
+
+ private boolean isStarted(Component odeComponent) {
+
+ boolean Result = true;
+ try {
+ // Get the ODE component started state by grabbing the internal field
+ // of OdeLifeCycle. We cannot rely on the started state of the ODE
+ // component bundle.
+ //
+ // TODO: add OdeLifeCycle.isStarted() and do a cast of odeComponent.getLifeCycle() accordingly.
+ ComponentLifeCycle inst = odeComponent.getLifeCycle();
+ Field _started = inst.getClass().getDeclaredField("_started");
+ _started.setAccessible(true);
+ Result = Boolean.TRUE.equals(_started.get(inst));
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Could not determine started state for ode component", e);
+ }
+ return Result;
+ }
+}
Added: branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtender.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import org.osgi.framework.Bundle;
+
+public interface OdeExtender {
+ public Bundle[] getBundles();
+}
Added: branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderImpl.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,287 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import java.net.URL;
+import java.util.Dictionary;
+import java.util.Enumeration;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+import javax.jbi.component.Component;
+
+import org.apache.ode.jbi.osgi.ServiceUnitActivator;
+import org.osgi.framework.Bundle;
+import org.osgi.framework.BundleContext;
+import org.osgi.framework.BundleEvent;
+import org.osgi.framework.Constants;
+import org.osgi.util.tracker.BundleTracker;
+import org.osgi.util.tracker.BundleTrackerCustomizer;
+import org.springframework.beans.factory.DisposableBean;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.osgi.context.BundleContextAware;
+
+public class OdeExtenderImpl implements OdeExtender, InitializingBean, DisposableBean, BundleContextAware {
+ private static final Logger LOG = Logger.getLogger(OdeExtenderImpl.class.getName());
+ private static final String SU_ACTIVATOR_DEPRECATED = ServiceUnitActivator.class.getName();
+ private BundleContext bundleContext;
+ private BundleTracker tracker;
+ private Component odeComponent;
+ private Executor executor;
+
+ public OdeExtenderImpl() {
+ }
+
+ public void setBundleContext(BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ public void afterPropertiesSet() throws Exception {
+ // Create our executor.
+ executor = Executors.newSingleThreadExecutor(new OdeExtenderThreadFactory("ODE Extender"));
+
+ // Start tracking bundles. We are looking for /deploy.xml as a signature
+ // to deploy the ODE BPEL bundle, if the bundle has at least one .bpel
+ // file.
+ int stateMask = Bundle.STARTING | Bundle.ACTIVE | Bundle.STOPPING | Bundle.INSTALLED | Bundle.UNINSTALLED;
+ this.tracker = new BundleTracker(this.bundleContext, stateMask, new ODEBundleTrackerCustomizer());
+ this.tracker.open();
+ }
+
+ public void destroy() throws Exception {
+ // Close the tracker.
+ BundleTracker tracker = this.tracker;
+ this.tracker = null;
+ if (tracker != null)
+ tracker.close();
+
+ // Drop our thread pool.
+ this.executor = null;
+ }
+
+ public Bundle[] getBundles() {
+ return this.tracker.getBundles();
+ }
+
+ public void setOdeComponent(Component odeComponent) {
+ this.odeComponent = odeComponent;
+ }
+
+ public Component getOdeComponent() {
+ return odeComponent;
+ }
+
+ private boolean isBPELBundle(Bundle bundle) {
+ boolean result = false;
+
+ // First see if there is a deploy.xml.
+ URL entry = bundle.getEntry("deploy.xml");
+ if (entry != null) {
+ // Next, check if there's at least one BPEL file.
+ @SuppressWarnings("rawtypes")
+ Enumeration bpelFiles = bundle.findEntries("/", "*.bpel", false);
+ if (bpelFiles != null && bpelFiles.hasMoreElements()) {
+ // Make sure there's a symbolic name.
+ if (bundle.getSymbolicName() != null) {
+ // Make sure there's no bundle activator.
+ // NOTE: if the "ServiceUnitActivator" is found, we hijack those bundles as well and manage them.
+ Dictionary<?, ?> headers = bundle.getHeaders();
+ Object activator = null;
+ if (headers == null || (activator = headers.get(Constants.BUNDLE_ACTIVATOR)) == null || SU_ACTIVATOR_DEPRECATED.equals(activator)) {
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Recognized ODE deployment bundle: " + bundle.getSymbolicName());
+ result = true;
+ } else
+ LOG.warning("Ignoring ODE bundle " + bundle.getSymbolicName() + " which has custom activator: " + activator);
+ } else
+ LOG.warning("Ignoring ODE bundle " + bundle.getBundleId() + " which has no OSGi symbolic name");
+ }
+ }
+
+ return result;
+ }
+
+ private class ODEBundleTrackerCustomizer implements BundleTrackerCustomizer {
+ private Map<Long, OdeDeployedBundle> bundles = new ConcurrentHashMap<Long, OdeDeployedBundle>();
+
+ public void removedBundle(Bundle bundle, BundleEvent event, Object object) {
+ }
+
+ public void modifiedBundle(Bundle bundle, BundleEvent event, Object object) {
+ if (event != null) {
+ if (LOG.isLoggable(Level.FINE))
+ LOG.fine("Received " + getEventType(event.getType()) + " event for bundle: " + bundle.getSymbolicName());
+ switch (event.getType()) {
+ case BundleEvent.STARTED:
+ executor.execute(new Start((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.STOPPING:
+ executor.execute(new Stop((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.INSTALLED:
+ executor.execute(new Install((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.UNINSTALLED:
+ executor.execute(new Uninstall((OdeDeployedBundle) object));
+ break;
+ case BundleEvent.UPDATED:
+ executor.execute(new Update((OdeDeployedBundle) object));
+ break;
+ }
+
+ // Do this outside the try/catch above. Last chance to drop a
+ // bundle.
+ if (event.getType() == BundleEvent.UNINSTALLED)
+ bundles.remove(bundle.getBundleId());
+ }
+ }
+
+ private String getEventType(int type) {
+ switch (type) {
+ case BundleEvent.INSTALLED:
+ return "installed";
+ case BundleEvent.LAZY_ACTIVATION:
+ return "lazy activation";
+ case BundleEvent.RESOLVED:
+ return "resolved";
+ case BundleEvent.STARTED:
+ return "started";
+ case BundleEvent.STARTING:
+ return "starting";
+ case BundleEvent.STOPPED:
+ return "stopped";
+ case BundleEvent.STOPPING:
+ return "stopping";
+ case BundleEvent.UNINSTALLED:
+ return "uninstalled";
+ case BundleEvent.UNRESOLVED:
+ return "unresolved";
+ case BundleEvent.UPDATED:
+ return "updated";
+ }
+ return "(unknown: " + type + ")";
+ }
+
+ public Object addingBundle(Bundle bundle, BundleEvent event) {
+ Object result = null;
+
+ // Is this a BPEL bundle?
+ if (isBPELBundle(bundle)) {
+ // Found BPEL signature; setup deployer.
+ OdeDeployedBundle deployer = bundles.get(bundle.getBundleId());
+ if (deployer == null)
+ bundles.put(bundle.getBundleId(), deployer = new OdeDeployedBundle(bundle, OdeExtenderImpl.this));
+ result = deployer;
+
+ // Is this an initial bundle?
+ if (event == null) {
+ // If the bundle is active, then we didn't start it. So
+ // start it now.
+ if (bundle.getState() == Bundle.ACTIVE)
+ executor.execute(new Start(deployer));
+ } else
+ modifiedBundle(bundle, event, deployer);
+ }
+
+ return result;
+ }
+ }
+
+ private static abstract class OperationClosure implements Runnable {
+ protected OdeDeployedBundle target;
+
+ OperationClosure(OdeDeployedBundle target) {
+ this.target = target;
+ }
+
+ public final void run() {
+ String name = Thread.currentThread().getName();
+ try {
+ Thread.currentThread().setName(name + ":" + getClass().getSimpleName() + ":" + target.getName());
+ perform();
+ } catch (Exception e) {
+ LOG.log(Level.WARNING, "Could not perform '" + getClass().getSimpleName() + "' operation on bundle: " + target.getName(), e);
+ } finally {
+ Thread.currentThread().setName(name);
+ }
+ }
+
+ protected abstract void perform() throws Exception;
+ }
+
+ private static class Start extends OperationClosure {
+ Start(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doStart();
+ }
+ }
+
+ private static class Stop extends OperationClosure {
+ Stop(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doStop();
+ }
+ }
+
+ private static class Install extends OperationClosure {
+ Install(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doInstall();
+ }
+ }
+
+ private static class Uninstall extends OperationClosure {
+ Uninstall(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doUninstall();
+ }
+ }
+
+ private static class Update extends OperationClosure {
+ Update(OdeDeployedBundle target) {
+ super(target);
+ }
+
+ @Override
+ protected void perform() throws Exception {
+ target.doUpdate();
+ }
+ }
+}
Added: branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-bundle/src/main/java/org/apache/ode/jbi/osgi/deployer/OdeExtenderThreadFactory.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.jbi.osgi.deployer;
+
+import java.util.concurrent.Executors;
+import java.util.concurrent.ThreadFactory;
+
+public class OdeExtenderThreadFactory implements ThreadFactory {
+ private final ThreadFactory factory = Executors.defaultThreadFactory();
+ private final String name;
+
+ public OdeExtenderThreadFactory(String name) {
+ this.name = name;
+ }
+
+ public Thread newThread(Runnable r) {
+ final Thread t = factory.newThread(r);
+ t.setName(name);
+ t.setDaemon(true);
+ return t;
+ }
+}
Modified: branches/ODE/ODE-1.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -63,5 +63,18 @@
<prop key="ode-jbi.jca.port">0</prop>
<prop key="javax.persistence.provider">org.apache.openjpa.persistence.PersistenceProviderImpl</prop>
</osgix:cm-properties>
-
+
+ <!-- ODE Extender Service -->
+ <bean id="ode-extender-service" class="org.apache.ode.jbi.osgi.deployer.OdeExtenderImpl">
+ <property name="odeComponent">
+ <ref bean="ode-jbi-component" />
+ </property>
+ </bean>
+
+ <osgi:service ref="ode-extender-service">
+ <osgi:interfaces>
+ <value>org.apache.ode.jbi.osgi.deployer.OdeExtender</value>
+ </osgi:interfaces>
+ </osgi:service>
+
</beans>
Modified: branches/ODE/ODE-1.x/jbi-karaf/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-karaf/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<artifactId>ode-jbi-karaf</artifactId>
Modified: branches/ODE/ODE-1.x/jbi-karaf/src/main/resources/features.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf/src/main/resources/features.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-karaf/src/main/resources/features.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -23,54 +23,66 @@
<bundle>mvn:commons-beanutils/commons-beanutils/1.8.2</bundle>
<bundle>mvn:commons-io/commons-io/1.4</bundle>
<bundle>wrap:mvn:jaxen/jaxen/1.1.1</bundle>
- <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/9.1.0.8_1-SNAPSHOT</bundle>
+ <bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.saxon/9.1.0.8_1</bundle>
+ <bundle>mvn:org.apache.geronimo.components/geronimo-connector/2.1.3</bundle>
</feature>
<feature name="ode-core" version="${ode.version}">
<bundle>mvn:org.apache.ode/ode-jbi-bundle/${ode.version}</bundle>
</feature>
- <feature name="ode-hib-deps" version="${project.version}">
+ <feature name="ode-hib-deps" version="${ode.version}">
<bundle>wrap:mvn:dom4j/dom4j/1.6.1</bundle>
<bundle>wrap:mvn:org.hibernate/hibernate/3.2.5.ga</bundle>
</feature>
- <feature name="ode-jpa-deps" version="${project.version}">
+ <feature name="ode-jpa-deps" version="${ode.version}">
<bundle>mvn:org.apache.servicemix.specs/org.apache.servicemix.specs.java-persistence-api-1.1.1/1.4.0</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.serp/1.13.1_2</bundle>
<bundle>mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.openjpa/1.2.1_2</bundle>
</feature>
- <feature name="ode-derby-deps" version="${project.version}">
+ <feature name="ode-derby-deps" version="${ode.version}">
<bundle>wrap:mvn:org.tranql/tranql-connector/1.4</bundle>
<bundle>mvn:org.apache.derby/derby/${derby.version}</bundle>
</feature>
- <feature name="ode-sqlserver-deps" version="${project.version}">
+ <feature name="ode-sqlserver-deps" version="${ode.version}">
<bundle>wrap:mvn:com.microsoft.sqlserver/sqljdbc/1.2</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector/1.4</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector-sqlserver2005-common/1.1</bundle>
</feature>
- <feature name="ode-oracle-deps" version="${project.version}">
+ <feature name="ode-oracle-deps" version="${ode.version}">
<bundle>wrap:mvn:oracle/ojdbc5/11.1.0.6.0</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector/1.4</bundle>
<bundle>wrap:mvn:org.tranql/tranql-connector-oracle-common/1.4</bundle>
</feature>
- <feature name="ode" version="${project.version}">
- <feature version="${project.version}">ode-derby-deps</feature>
- <feature version="${project.version}">ode-jpa-deps</feature>
- <feature version="${project.version}">ode-core-deps</feature>
- <feature version="${project.version}">ode-core</feature>
+ <feature name="ode" version="${ode.version}">
+ <feature version="${ode.version}">ode-derby-deps</feature>
+ <feature version="${ode.version}">ode-jpa-deps</feature>
+ <feature version="${ode.version}">ode-core-deps</feature>
+ <feature version="${ode.version}">ode-core</feature>
</feature>
- <feature name="ode-hib-oracle" version="${project.version}">
- <feature version="${project.version}">ode-oracle-deps</feature>
- <feature version="${project.version}">ode-hib-deps</feature>
- <feature version="${project.version}">ode-core-deps</feature>
- <feature version="${project.version}">ode-core</feature>
+ <feature name="ode-hib-oracle" version="${ode.version}">
+ <feature version="${ode.version}">ode-oracle-deps</feature>
+ <feature version="${ode.version}">ode-hib-deps</feature>
+ <feature version="${ode.version}">ode-core-deps</feature>
+ <feature version="${ode.version}">ode-core</feature>
</feature>
- <feature name="ode-hib-sqlserver" version="${project.version}">
- <feature version="${project.version}">ode-sqlserver-deps</feature>
- <feature version="${project.version}">ode-hib-deps</feature>
- <feature version="${project.version}">ode-core-deps</feature>
- <feature version="${project.version}">ode-core</feature>
+ <feature name="ode-hib-sqlserver" version="${ode.version}">
+ <feature version="${ode.version}">ode-sqlserver-deps</feature>
+ <feature version="${ode.version}">ode-hib-deps</feature>
+ <feature version="${ode.version}">ode-core-deps</feature>
+ <feature version="${ode.version}">ode-core</feature>
</feature>
- <feature name="examples-ode-ping-pong" version="${project.version}">
- <feature version="${project.version}">ode</feature>
- <bundle>mvn:org.apache.ode.examples/ping-pong-bundle/${project.version}</bundle>
+ <feature name="ode-commands" version="${ode.version}">
+ <bundle>mvn:org.apache.ode/ode-jbi-karaf-commands/${ode.version}</bundle>
</feature>
+ <feature name="ode-pmapi-httpbinding" version="${ode.version}">
+ <bundle>mvn:org.apache.ode/ode-jbi-karaf-pmapi-httpbinding/${ode.version}</bundle>
+ </feature>
+ <feature name="examples-ode-ping-pong" version="${ode.version}">
+ <feature version="${ode.version}">ode</feature>
+ <bundle>mvn:org.apache.ode.examples/ping-pong-bundle/${ode.version}</bundle>
+ </feature>
+ <feature name="examples-ode-helloworld" version="${ode.version}">
+ <feature version="${ode.version}">ode</feature>
+ <bundle>mvn:org.apache.ode.examples/helloworld-bundle/${ode.version}</bundle>
+ </feature>
+
</features>
Modified: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeCommandsBase.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -28,7 +28,7 @@
import javax.management.*;
-import org.apache.felix.karaf.shell.console.OsgiCommandSupport;
+import org.apache.karaf.shell.console.OsgiCommandSupport;
import org.apache.ode.bpel.pmapi.*;
import org.apache.ode.jbi.OdeContext;
@@ -36,9 +36,13 @@
protected static String COMPONENT_NAME = "org.apache.servicemix:Type=Component,Name=OdeBpelEngine,SubType=Management";
+ protected static final String LIST_INSTANCES = "listInstances";
+ protected static final String LIST_ALL_INSTANCES = "listAllInstances";
protected static final String LIST_ALL_PROCESSES = "listAllProcesses";
- protected static final String LIST_ALL_INSTANCES = "listAllInstances";
+ protected static final String RECOVER_ACTIVITY= "recoverActivity";
protected static final String TERMINATE = "terminate";
+ protected static final String SUSPEND = "suspend";
+ protected static final String RESUME = "resume";
protected MBeanServer getMBeanServer() {
OdeContext ode = OdeContext.getInstance();
@@ -59,7 +63,7 @@
*/
@SuppressWarnings("unchecked")
protected <T> T invoke(final String operationName, final Object[] params,
- final String[] signature, Class<?> T, long timeoutInSeconds)
+ final String[] signature, long timeoutInSeconds)
throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
Callable<T> callable = new Callable<T>() {
@@ -77,28 +81,67 @@
return future.get(timeoutInSeconds, TimeUnit.SECONDS);
}
- protected List<TProcessInfo> getProcesses(long timeoutInSeconds)
- throws Exception {
- ProcessInfoListDocument result = invoke(LIST_ALL_PROCESSES, null, null,
- ProcessInfoListDocument.class, timeoutInSeconds);
- if (result != null) {
- return result.getProcessInfoList().getProcessInfoList();
+ protected List<TInstanceInfo> getActiveInstances(long timeoutInSeconds)
+ throws Exception {
+ return getFilteredInstances(timeoutInSeconds, "status=active");
+ }
+
+ protected List<TInstanceInfo> getSuspendedInstances(long timeoutInSeconds)
+ throws Exception {
+ return getFilteredInstances(timeoutInSeconds, "status=suspended");
+ }
+
+ protected List<TInstanceInfo> getFilteredInstances(long timeoutInSeconds, String filter)
+ throws Exception {
+ InstanceInfoListDocument instances = invoke(LIST_INSTANCES,
+ new Object[] {filter, "pid", 10},
+ new String[] {String.class.getName(), String.class.getName(), int.class.getName()},
+ timeoutInSeconds);
+ if (instances != null) {
+ return instances.getInstanceInfoList().getInstanceInfoList();
}
return null;
}
-
- protected List<TInstanceInfo> getActiveInstances(long timeoutInSeconds)
+
+ protected List<TInstanceInfo> getAllInstances(long timeoutInSeconds)
throws Exception {
InstanceInfoListDocument instances = invoke(LIST_ALL_INSTANCES, null,
- null, InstanceInfoListDocument.class, timeoutInSeconds);
+ null, timeoutInSeconds);
if (instances != null) {
return instances.getInstanceInfoList().getInstanceInfoList();
}
return null;
}
+
+ protected List<TProcessInfo> getProcesses(long timeoutInSeconds)
+ throws Exception {
+ ProcessInfoListDocument result = invoke(LIST_ALL_PROCESSES, null, null, timeoutInSeconds);
+ if (result != null) {
+ return result.getProcessInfoList().getProcessInfoList();
+ }
+ return null;
+ }
+ protected InstanceInfoDocument recoverActivity(Long instanceId, Long activityId, String action, long timeoutInSeconds) throws Exception {
+ InstanceInfoDocument result = invoke(RECOVER_ACTIVITY, new Object[] {instanceId, activityId, action},
+ new String[] {Long.class.getName(), Long.class.getName(), String.class.getName()},
+ timeoutInSeconds);
+ return result;
+ }
+
protected void terminate(Long iid, long timeoutInSeconds) throws Exception {
invoke(TERMINATE, new Long[] { iid }, new String[] { Long.class
- .getName() }, InstanceInfoDocument.class, timeoutInSeconds);
+ .getName() }, timeoutInSeconds);
}
+
+ protected void suspend(Long iid, long timeoutInSeconds) throws Exception {
+ invoke(SUSPEND, new Long[] { iid }, new String[] { Long.class
+ .getName() }, timeoutInSeconds);
+ }
+
+ protected void resume(Long iid, long timeoutInSeconds) throws Exception {
+ invoke(RESUME, new Long[] { iid }, new String[] { Long.class
+ .getName() }, timeoutInSeconds);
+ }
+
}
Modified: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeListCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -19,17 +19,14 @@
package org.apache.ode.karaf.commands;
-import java.util.List;
-import java.util.Set;
-import java.util.TreeSet;
+import java.util.*;
import java.util.concurrent.TimeoutException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.felix.gogo.commands.Command;
-import org.apache.ode.bpel.pmapi.TInstanceInfo;
-import org.apache.ode.bpel.pmapi.TInstanceStatus;
-import org.apache.ode.bpel.pmapi.TProcessInfo;
+import org.apache.felix.gogo.commands.*;
+import org.apache.ode.bpel.pmapi.*;
+import org.apache.ode.bpel.pmapi.TScopeInfo.Activities;
/**
* Lists the deployed process as well as the active instances
@@ -41,6 +38,9 @@
private static final Log __log = LogFactory.getLog(OdeListCommand.class);
+ @Option(name = "-a", aliases = "--all", description = "Show all (even completed) instances")
+ private boolean showAll;
+
private long timeoutInSeconds = 30;
@Override
@@ -50,11 +50,20 @@
System.out.println("------------------");
List<TProcessInfo> processes = getProcesses(timeoutInSeconds);
if (processes != null) {
+ System.out.println("[ ] [Version] [PID ]");
Set<String> sorted = new TreeSet<String>(
String.CASE_INSENSITIVE_ORDER);
for (TProcessInfo info : processes) {
- sorted.add(info.getDefinitionInfo().getProcessName()
- .getLocalPart());
+ StringBuilder line = new StringBuilder();
+ line.append("[");
+ line.append(info.getStatus().toString().charAt(0));
+ line.append("] [");
+ line.append(getNameString(Long.toString(info.getVersion()), 7, false));
+ line.append("] [");
+ line.append(getNameString(info.getPid().toString(), 63, true));
+ line.append("]");
+
+ sorted.add(line.toString());
}
for (String s : sorted) {
System.out.println(s);
@@ -64,20 +73,33 @@
System.out.println("Active instances");
System.out.println("----------------");
- List<TInstanceInfo> instances = getActiveInstances(timeoutInSeconds);
+ List<TInstanceInfo> instances = showAll ? getAllInstances(timeoutInSeconds) : getActiveInstances(timeoutInSeconds);
if (instances != null) {
- System.out.println("[Instance Id] [Process Name ]");
+ System.out.println("[ ] [IID ] [Process Name ] [Failed Activities ]");
for (TInstanceInfo info : instances) {
- if (info.getStatus() == TInstanceStatus.ACTIVE) {
- StringBuilder line = new StringBuilder();
- line.append("[");
- line.append(getNameString(info.getIid(), 11));
- line.append("] [");
- line.append(getNameString(info.getProcessName()
- .getLocalPart(), 20));
- line.append("]");
- System.out.println(line.toString());
+ StringBuilder line = new StringBuilder();
+ line.append("[");
+ line.append(info.getStatus().toString().charAt(0));
+ line.append("] [");
+ line.append(getNameString(info.getIid(), 5, false));
+ line.append("] [");
+ line.append(getNameString(info.getPid(), 31, true));
+ line.append("] [");
+ StringBuilder failedString = new StringBuilder();
+ List<TActivityInfo> failedActivities = getFailedActivities(info);
+ if (!failedActivities.isEmpty()) {
+ boolean first = true;
+ for (TActivityInfo failed : failedActivities) {
+ if (!first) {
+ failedString.append(", ");
+ }
+ failedString.append(failed.getAiid());
+ first = false;
+ }
}
+ line.append(getNameString(failedString.toString(), 31, false));
+ line.append("]");
+ System.out.println(line.toString());
}
}
} catch (TimeoutException e) {
@@ -86,9 +108,64 @@
return null;
}
+
+ private List<TActivityInfo> getFailedActivities(TInstanceInfo instance) {
+ List<TActivityInfo> failedActivites = new ArrayList<TActivityInfo>();
+ try {
+ TScopeInfo scopeInfo = getScopeInfo(instance.getRootScope());
+ if (scopeInfo != null) {
+ collectFailedActivities(scopeInfo, failedActivites);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ return failedActivites;
+ }
+
+ private TScopeInfo getScopeInfo(TScopeRef scopeRef) {
+ if (scopeRef != null) {
+ try {
+ ScopeInfoDocument scopeInfoDoc = invoke("getScopeInfoWithActivity", new Object[] {scopeRef.getSiid(), true},
+ new String[] {String.class.getName(), boolean.class.getName()}, 30);
+ if (scopeInfoDoc != null) {
+ return scopeInfoDoc.getScopeInfo();
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ return null;
+ }
+ private void collectFailedActivities(TScopeInfo scopeInfo, List<TActivityInfo> bin) {
+ Activities acts = scopeInfo.getActivities();
+ if (acts != null) {
+ for (TActivityInfo actInfo : acts.getActivityInfoList()) {
+ if (actInfo.getStatus() == TActivityStatus.FAILURE) {
+ bin.add(actInfo);
+ }
+ }
+ }
+ TScopeInfo.Children children = scopeInfo.getChildren();
+ if (children != null) {
+ for (TScopeRef child : children.getChildRefList()) {
+ TScopeInfo childScopeInfo = getScopeInfo(child);
+ if (childScopeInfo != null) {
+ collectFailedActivities(childScopeInfo, bin);
+ }
+ }
+ }
+
+ }
- private String getNameString(String name, int colLength) {
+ private String getNameString(String name, int colLength, boolean stripBefore) {
String ret = name;
+ if (name.length() > colLength) {
+ if (stripBefore) {
+ ret = "..." + name.substring(name.length() - (colLength - 3));
+ } else {
+ ret = name.substring(0, colLength - 3) + "...";
+ }
+ }
for (int i = 0; i < colLength - name.length(); i++) {
ret = ret + " ";
}
Added: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeRecoverActivityCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.karaf.commands;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.felix.gogo.commands.*;
+
+@Command(scope = "ode", name = "recoverActivity", description = "Recover a failed BPEL activity in ODE")
+public class OdeRecoverActivityCommand extends OdeCommandsBase {
+ private static final Log __log = LogFactory.getLog(OdeRecoverActivityCommand.class);
+
+ private static final String RETRY = "retry";
+ private static final String FAULT = "fault";
+ private static final String CANCEL = "cancel";
+
+ @Argument(name="iid", description="Instance ID", index=0, required=true)
+ private Long instanceId;
+
+ @Argument(name="aid", description="Activity IDs to attempt recovery", index=1, required=true, multiValued=true)
+ private Long[] activityIds;
+
+ @Option(name="-r", aliases="--retry", description="Retry the activity (default=retry)")
+ private boolean retry = false;
+
+ @Option(name="-f", aliases="--fault", description="Fault the activity (default=retry)")
+ private boolean fault = false;
+
+ @Option(name="-c", aliases="--cancel", description="Cancel the activity (default=retry)")
+ private boolean cancel = false;
+
+ @Override
+ protected Object doExecute() throws Exception {
+ /*
+ * Unfortunatly there isn't a way to make options mutually exclusive, so we give precedence in this order
+ * retry > fault > cancel
+ */
+ String action = null;
+
+ if (retry) {
+ action = RETRY;
+ } else if (fault) {
+ action = FAULT;
+ } else if (cancel) {
+ action = CANCEL;
+ } else {
+ // Also make retry the default action
+ action = RETRY;
+ }
+
+ for (Long aiid : activityIds) {
+ try {
+ recoverActivity(instanceId, aiid, action, 30);
+ } catch (Exception e) {
+ __log.error("An error occuring trying to recover activity", e);
+ }
+ }
+
+ return null;
+ }
+
+}
Added: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeResumeCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.karaf.commands;
+
+import java.util.List;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.felix.gogo.commands.*;
+import org.apache.ode.bpel.pmapi.TInstanceInfo;
+
+@Command(scope = "ode", name = "resume", description = "Resume suspended ODE process instances")
+public class OdeResumeCommand extends OdeCommandsBase {
+
+ private static final Log __log = LogFactory.getLog(OdeResumeCommand.class);
+
+ @Argument(name = "iids", description = "Instance IDs to resume", multiValued = true)
+ private static Long[] iids;
+
+ @Option(name = "-a", aliases = "--all", description = "Resume all suspended instances")
+ private boolean resumeAll;
+
+ private long timeoutInSeconds = 30;
+
+ @Override
+ protected Object doExecute() throws Exception {
+ try {
+ if (resumeAll) {
+ List<TInstanceInfo> instances = getSuspendedInstances(timeoutInSeconds);
+ if (instances != null) {
+ for (TInstanceInfo instance : instances) {
+ resume(Long.parseLong(instance.getIid()),
+ timeoutInSeconds);
+ }
+ }
+ } else {
+ if (iids == null) {
+ System.out.println("No instance ids to resume");
+ } else {
+ for (Long iid : iids) {
+ resume(iid, timeoutInSeconds);
+ }
+ }
+ }
+ } catch (TimeoutException e) {
+ __log.error("Timed out after " + timeoutInSeconds + " seconds", e);
+ }
+
+ return null;
+ }
+
+}
Added: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeSuspendCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.ode.karaf.commands;
+
+import java.util.List;
+import java.util.concurrent.TimeoutException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.felix.gogo.commands.*;
+import org.apache.ode.bpel.pmapi.TInstanceInfo;
+
+@Command(scope = "ode", name = "suspend", description = "Suspend active ODE process instances")
+public class OdeSuspendCommand extends OdeCommandsBase {
+
+ private static final Log __log = LogFactory.getLog(OdeSuspendCommand.class);
+
+ @Argument(name = "iids", description = "Instance IDs to suspend", multiValued = true)
+ private static Long[] iids;
+
+ @Option(name = "-a", aliases = "--all", description = "Suspend all active instances")
+ private boolean suspendAll;
+
+ private long timeoutInSeconds = 30;
+
+ @Override
+ protected Object doExecute() throws Exception {
+ try {
+ if (suspendAll) {
+ List<TInstanceInfo> instances = getActiveInstances(timeoutInSeconds);
+ if (instances != null) {
+ for (TInstanceInfo instance : instances) {
+ suspend(Long.parseLong(instance.getIid()),
+ timeoutInSeconds);
+ }
+ }
+ } else {
+ if (iids == null) {
+ System.out.println("No instance ids to suspend");
+ } else {
+ for (Long iid : iids) {
+ suspend(iid, timeoutInSeconds);
+ }
+ }
+ }
+ } catch (TimeoutException e) {
+ __log.error("Timed out after " + timeoutInSeconds + " seconds", e);
+ }
+
+ return null;
+ }
+
+}
Modified: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/java/org/apache/ode/karaf/commands/OdeTerminateCommand.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -27,12 +27,12 @@
import org.apache.felix.gogo.commands.*;
import org.apache.ode.bpel.pmapi.TInstanceInfo;
-@Command(scope = "ode", name = "terminate", description = "Terminate an active ode process instances")
+@Command(scope = "ode", name = "terminate", description = "Terminate active ODE process instances")
public class OdeTerminateCommand extends OdeCommandsBase {
- private static final Log __log = LogFactory.getLog(OdeListCommand.class);
+ private static final Log __log = LogFactory.getLog(OdeTerminateCommand.class);
- @Argument(name = "iids", description = "Instance ID's to terminate", multiValued = true)
+ @Argument(name = "iids", description = "Instance IDs to terminate", multiValued = true)
private static Long[] iids;
@Option(name = "-a", aliases = "--all", description = "Terminate all active instances")
Modified: branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jbi-karaf-commands/src/main/resources/OSGI-INF/blueprint/ode-commands.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -16,7 +16,7 @@
limitations under the License.
-->
<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
- xmlns:shell="http://felix.apache.org/karaf/xmlns/shell/v1.0.0">
+ xmlns:shell="http://karaf.apache.org/xmlns/shell/v1.0.0">
<shell:command-bundle>
<shell:command name="ode/list">
@@ -25,6 +25,15 @@
<shell:command name="ode/terminate">
<shell:action class="org.apache.ode.karaf.commands.OdeTerminateCommand" />
</shell:command>
+ <shell:command name="ode/suspend">
+ <shell:action class="org.apache.ode.karaf.commands.OdeSuspendCommand" />
+ </shell:command>
+ <shell:command name="ode/resume">
+ <shell:action class="org.apache.ode.karaf.commands.OdeResumeCommand" />
+ </shell:command>
+ <shell:command name="ode/recoverActivity">
+ <shell:action class="org.apache.ode.karaf.commands.OdeRecoverActivityCommand" />
+ </shell:command>
</shell:command-bundle>
</blueprint>
\ No newline at end of file
Added: branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/pom.xml (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.apache.ode</groupId>
+ <artifactId>ode</artifactId>
+ <version>1.3.5</version>
+ </parent>
+ <artifactId>ode-jbi-karaf-pmapi-httpbinding</artifactId>
+ <packaging>bundle</packaging>
+ <name>ODE :: PMAPI HTTP Binding</name>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <version>1.4.3</version>
+ <extensions>true</extensions>
+ <configuration>
+ <instructions>
+ <Bundle-SymbolicName>${project.groupId}-${project.artifactId}</Bundle-SymbolicName>
+ <Bundle-Version>${project.version}</Bundle-Version>
+ <Import-Package>
+ org.apache.servicemix.cxfbc,
+ org.apache.servicemix.common.osgi
+ </Import-Package>
+ <Export-Package>
+ wsdl.ode.pmapi
+ </Export-Package>
+ </instructions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
\ No newline at end of file
Added: branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/META-INF/spring/beans.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+ xmlns:cxfbc="http://servicemix.apache.org/cxfbc/1.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:osgi="http://www.springframework.org/schema/osgi"
+ xsi:schemaLocation="
+ http://servicemix.apache.org/cxfbc/1.0
+ http://servicemix.apache.org/cxfbc/1.0/servicemix-cxf-bc.xsd
+ http://www.springframework.org/schema/osgi
+ http://www.springframework.org/schema/osgi/spring-osgi.xsd
+ http://www.springframework.org/schema/beans
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
+ http://www.springframework.org/schema/util
+ http://www.springframework.org/schema/util/spring-util-3.0.xsd
+ ">
+
+ <bean class="org.apache.servicemix.common.osgi.EndpointExporter" />
+
+ <cxfbc:consumer
+ xmlns:pmapi="http://www.apache.org/ode/pmapi"
+ wsdl="classpath:wsdl/ode/pmapi/pmapi.wsdl"
+ locationURI="http://localhost:8193/ode/pmapi/ProcessManagementService"
+ targetService="pmapi:ProcessManagementService"
+ useJBIWrapper="false"
+ useSOAPEnvelope="false"
+ />
+
+ <cxfbc:consumer
+ xmlns:pmapi="http://www.apache.org/ode/pmapi"
+ wsdl="classpath:wsdl/ode/pmapi/pmapi.wsdl"
+ locationURI="http://localhost:8193/ode/pmapi/InstanceManagementService"
+ targetService="pmapi:InstanceManagementService"
+ useJBIWrapper="false"
+ useSOAPEnvelope="false"
+ />
+
+</beans>
Added: branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.wsdl 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,762 @@
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<definitions
+ name="ProcessAndInstanceManagement"
+ targetNamespace="http://www.apache.org/ode/pmapi"
+ xmlns:tns="http://www.apache.org/ode/pmapi"
+ xmlns:typ="http://www.apache.org/ode/pmapi/types/2006/08/02/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://schemas.xmlsoap.org/wsdl/">
+
+ <types>
+ <xsd:schema>
+ <xsd:import namespace="http://www.apache.org/ode/pmapi/types/2006/08/02/" schemaLocation="pmapi.xsd"/>
+ </xsd:schema>
+ <xsd:schema targetNamespace="http://www.apache.org/ode/pmapi">
+ <xsd:complexType name="aidsType">
+ <xsd:all>
+ <xsd:element name="aid" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:complexType name="listType">
+ <xsd:all>
+ <xsd:element name="element" type="xsd:string"/>
+ </xsd:all>
+ </xsd:complexType>
+ <xsd:element name="ManagementFault" type="xsd:string"/>
+ </xsd:schema>
+ </types>
+
+ <message name="listProcessesInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="orderKeys" type="xsd:string"/>
+ </message>
+ <message name="listProcessesOutput">
+ <part name="process-info-list" type="typ:tProcessInfoList"/>
+ </message>
+ <message name="listProcessesCustomInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="orderKeys" type="xsd:string"/>
+ <part name="customizer" type="xsd:string"/>
+ </message>
+ <message name="listProcessesCustomOutput">
+ <part name="process-info-list" type="typ:tProcessInfoList"/>
+ </message>
+ <message name="listAllProcessesInput"/>
+ <message name="listAllProcessesOutput">
+ <part name="process-info-list" type="typ:tProcessInfoList"/>
+ </message>
+ <message name="getProcessInfoInput">
+ <part name="pid" type="xsd:QName"/>
+ </message>
+ <message name="getProcessInfoOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="getProcessInfoCustomInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="customizer" type="xsd:string"/>
+ </message>
+ <message name="getProcessInfoCustomOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="getExtensibilityElementsInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="aids" type="tns:aidsType"/>
+ </message>
+ <message name="getExtensibilityElementsOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="setProcessPropertyNodeInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="propertyName" type="xsd:QName"/>
+ <part name="propertyValue" type="xsd:anyType"/>
+ </message>
+ <message name="setProcessPropertyNodeOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="setProcessPropertyInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="propertyName" type="xsd:QName"/>
+ <part name="propertyValue" type="xsd:string"/>
+ </message>
+ <message name="setProcessPropertyOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="activateInput">
+ <part name="pid" type="xsd:QName"/>
+ </message>
+ <message name="activateOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+ <message name="setRetiredInput">
+ <part name="pid" type="xsd:QName"/>
+ <part name="retired" type="xsd:boolean"/>
+ </message>
+ <message name="setRetiredOutput">
+ <part name="process-info" type="typ:tProcessInfo"/>
+ </message>
+
+ <message name="listInstancesInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="order" type="xsd:string"/>
+ <part name="limit" type="xsd:int"/>
+ </message>
+ <message name="listInstancesOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="listInstancesSummaryInput">
+ <part name="filter" type="xsd:string"/>
+ <part name="order" type="xsd:string"/>
+ <part name="limit" type="xsd:int"/>
+ </message>
+ <message name="listInstancesSummaryOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="queryInstancesInput">
+ <part name="payload" type="xsd:string"/>
+ </message>
+ <message name="queryInstancesOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="listAllInstancesInput"/>
+ <message name="listAllInstancesOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="listAllInstancesWithLimitInput">
+ <part name="payload" type="xsd:int"/>
+ </message>
+ <message name="listAllInstancesWithLimitOutput">
+ <part name="instance-info-list" type="typ:tInstanceInfoList"/>
+ </message>
+ <message name="getInstanceInfoInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="getInstanceInfoOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="getScopeInfoInput">
+ <part name="siid" type="xsd:long"/>
+ </message>
+ <message name="getScopeInfoOutput">
+ <part name="scope-info" type="typ:tScopeInfo"/>
+ </message>
+ <message name="getScopeInfoWithActivityInput">
+ <part name="sid" type="xsd:long"/>
+ <part name="activityInfo" type="xsd:boolean"/>
+ </message>
+ <message name="getScopeInfoWithActivityOutput">
+ <part name="scope-info" type="typ:tScopeInfo"/>
+ </message>
+ <message name="getVariableInfoInput">
+ <part name="sid" type="xsd:string"/>
+ <part name="varName" type="xsd:string"/>
+ </message>
+ <message name="getVariableInfoOutput">
+ <part name="scope-info" type="typ:tVariableInfo"/>
+ </message>
+ <message name="listEventsInput">
+ <part name="instanceFilter" type="xsd:string"/>
+ <part name="eventFilter" type="xsd:string"/>
+ <part name="maxCount" type="xsd:int"/>
+ </message>
+ <message name="listEventsOutput">
+ <part name="bpel-event-list" type="typ:tEventInfoList"/>
+ </message>
+ <message name="getEventTimelineInput">
+ <part name="instanceFilter" type="xsd:string"/>
+ <part name="eventFilter" type="xsd:string"/>
+ </message>
+ <message name="getEventTimelineOutput">
+ <part name="dates" type="tns:listType"/>
+ </message>
+ <message name="suspendInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="suspendOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="resumeInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="resumeOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="terminateInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="terminateOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="faultInput">
+ <part name="iid" type="xsd:long"/>
+ </message>
+ <message name="faultOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="deleteInput">
+ <part name="filter" type="xsd:string"/>
+ </message>
+ <message name="deleteOutput">
+ <part name="list" type="tns:listType"/>
+ </message>
+ <message name="recoverActivityInput">
+ <part name="iid" type="xsd:long"/>
+ <part name="aid" type="xsd:long"/>
+ <part name="action" type="xsd:string"/>
+ </message>
+ <message name="recoverActivityOutput">
+ <part name="instance-info" type="typ:tInstanceInfo"/>
+ </message>
+ <message name="replayInput">
+ <part name="replay" type="typ:Replay"/>
+ </message>
+ <message name="replayOutput">
+ <part name="replayResponse" type="typ:ReplayResponse"/>
+ </message>
+ <message name="getCommunicationInput">
+ <part name="getCommunication" type="typ:GetCommunication"/>
+ </message>
+ <message name="getCommunicationOutput">
+ <part name="getCommunicationResponse" type="typ:GetCommunicationResponse"/>
+ </message>
+ <message name="managementFault">
+ <part name="managementFault" element="tns:ManagementFault"/>
+ </message>
+
+ <portType name="ProcessManagementPortType">
+ <operation name="listProcesses">
+ <input message="tns:listProcessesInput"/>
+ <output message="tns:listProcessesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listAllProcesses">
+ <input message="tns:listAllProcessesInput"/>
+ <output message="tns:listAllProcessesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listProcessesCustom">
+ <input message="tns:listProcessesCustomInput"/>
+ <output message="tns:listProcessesCustomOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getProcessInfo">
+ <input message="tns:getProcessInfoInput"/>
+ <output message="tns:getProcessInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getProcessInfoCustom">
+ <input message="tns:getProcessInfoCustomInput"/>
+ <output message="tns:getProcessInfoCustomOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="setProcessProperty">
+ <input message="tns:setProcessPropertyInput"/>
+ <output message="tns:setProcessPropertyOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="setProcessPropertyNode">
+ <input message="tns:setProcessPropertyNodeInput"/>
+ <output message="tns:setProcessPropertyNodeOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getExtensibilityElements">
+ <input message="tns:getExtensibilityElementsInput"/>
+ <output message="tns:getExtensibilityElementsOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="activate">
+ <input message="tns:activateInput"/>
+ <output message="tns:activateOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="setRetired">
+ <input message="tns:setRetiredInput"/>
+ <output message="tns:setRetiredOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ </portType>
+
+ <portType name="InstanceManagementPortType">
+ <operation name="listInstances">
+ <input message="tns:listInstancesInput"/>
+ <output message="tns:listInstancesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listInstancesSummary">
+ <input message="tns:listInstancesSummaryInput"/>
+ <output message="tns:listInstancesSummaryOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="queryInstances">
+ <input message="tns:queryInstancesInput"/>
+ <output message="tns:queryInstancesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listAllInstances">
+ <input message="tns:listAllInstancesInput"/>
+ <output message="tns:listAllInstancesOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listAllInstancesWithLimit">
+ <input message="tns:listAllInstancesWithLimitInput"/>
+ <output message="tns:listAllInstancesWithLimitOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getInstanceInfo">
+ <input message="tns:getInstanceInfoInput"/>
+ <output message="tns:getInstanceInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getScopeInfo">
+ <input message="tns:getScopeInfoInput"/>
+ <output message="tns:getScopeInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getScopeInfoWithActivity">
+ <input message="tns:getScopeInfoWithActivityInput"/>
+ <output message="tns:getScopeInfoWithActivityOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getVariableInfo">
+ <input message="tns:getVariableInfoInput"/>
+ <output message="tns:getVariableInfoOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="listEvents">
+ <input message="tns:listEventsInput"/>
+ <output message="tns:listEventsOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getEventTimeline">
+ <input message="tns:getEventTimelineInput"/>
+ <output message="tns:getEventTimelineOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="suspend">
+ <input message="tns:suspendInput"/>
+ <output message="tns:suspendOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="resume">
+ <input message="tns:resumeInput"/>
+ <output message="tns:resumeOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="terminate">
+ <input message="tns:terminateInput"/>
+ <output message="tns:terminateOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="fault">
+ <input message="tns:faultInput"/>
+ <output message="tns:faultOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="delete">
+ <input message="tns:deleteInput"/>
+ <output message="tns:deleteOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="recoverActivity">
+ <input message="tns:recoverActivityInput"/>
+ <output message="tns:recoverActivityOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="replay">
+ <input message="tns:replayInput"/>
+ <output message="tns:replayOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ <operation name="getCommunication">
+ <input message="tns:getCommunicationInput"/>
+ <output message="tns:getCommunicationOutput"/>
+ <fault name="ManagementFault" message="tns:managementFault"/>
+ </operation>
+ </portType>
+
+ <binding name="ProcessManagementBinding" type="tns:ProcessManagementPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="listProcesses">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listAllProcesses">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listProcessesCustom">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getProcessInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getProcessInfoCustom">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getExtensibilityElements">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="setProcessProperty">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="setProcessPropertyNode">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="activate">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="setRetired">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+
+ <binding name="InstanceManagementBinding" type="tns:InstanceManagementPortType">
+ <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="listInstances">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listInstancesSummary">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="queryInstances">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listAllInstances">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listAllInstancesWithLimit">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getInstanceInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getScopeInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getScopeInfoWithActivity">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getVariableInfo">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="listEvents">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getEventTimeline">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="suspend">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="resume">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="terminate">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="fault">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="delete">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="recoverActivity">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="replay">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ <operation name="getCommunication">
+ <soap:operation soapAction="" style="rpc"/>
+ <input>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </input>
+ <output>
+ <soap:body namespace="http://www.apache.org/ode/pmapi" use="literal"/>
+ </output>
+ <fault name="ManagementFault">
+ <soap:fault name="ManagementFault" use="literal"/>
+ </fault>
+ </operation>
+ </binding>
+
+ <service name="ProcessManagementService">
+ <port name="ProcessManagementPort" binding="tns:ProcessManagementBinding">
+ <soap:address location="http://localhost:8080/ode/processes/ProcessManagement"/>
+ </port>
+ </service>
+ <service name="InstanceManagementService">
+ <port name="InstanceManagementPort" binding="tns:InstanceManagementBinding">
+ <soap:address location="http://localhost:8080/ode/processes/InstanceManagement"/>
+ </port>
+ </service>
+
+</definitions>
Added: branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd
===================================================================
--- branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd (rev 0)
+++ branches/ODE/ODE-1.x/jbi-karaf-pmapi-httpbinding/src/main/resources/wsdl/ode/pmapi/pmapi.xsd 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,843 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:pmapi="http://www.apache.org/ode/pmapi/types/2006/08/02/"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.apache.org/ode/pmapi/types/2006/08/02/"
+ elementFormDefault="qualified">
+ <element name="process-info" type="pmapi:tProcessInfo" id="process-info"/>
+ <element name="activity-info" type="pmapi:tActivityInfo" id="activity-info"/>
+ <element name="process-info-list" type="pmapi:tProcessInfoList"/>
+ <element name="instance-info" type="pmapi:tInstanceInfo" id="instance-info"/>
+ <element name="instance-info-list" type="pmapi:tInstanceInfoList"/>
+ <element name="scope-info" type="pmapi:tScopeInfo"/>
+ <element name="variable-info" type="pmapi:tVariableInfo"/>
+ <element name="activity-ext-info-list" type="pmapi:tActivitytExtInfoList"/>
+ <element name="activity-ext-info" type="pmapi:tActivityExtInfo"/>
+ <element name="event-info" type="pmapi:tEventInfo"/>
+ <element name="event-info-list" type="pmapi:tEventInfoList"/>
+
+ <simpleType name="ExchangeType">
+ <restriction base="string">
+ <enumeration value="M"/>
+ <enumeration value="P"/>
+ </restriction>
+ </simpleType>
+
+ <xs:complexType name="ReplayType">
+ <xs:choice>
+ <xs:element name="mock" type="anySimpleType"></xs:element>
+ <xs:element name="mockQuery" type="string"></xs:element>
+ <xs:element name="live" type="anySimpleType"></xs:element>
+ </xs:choice>
+ </xs:complexType>
+
+ <xs:element name="mockQueryRequest">
+ <xs:complexType>
+ <xs:sequence>
+ <element name="createTime" type="dateTime"/>
+ <element name="service" type="QName"/>
+ <element name="operation" type="string"/>
+ <element name="in" type="anyType"/>
+ <xs:element name="pattern">
+ <xs:simpleType>
+ <restriction base="string">
+ <enumeration value="IN_ONLY"/>
+ <enumeration value="IN_OUT"/>
+ </restriction>
+ </xs:simpleType>
+ </xs:element>
+ </xs:sequence>
+ </xs:complexType>
+ </xs:element>
+
+ <xs:element name="mockQueryResponse" type="pmapi:ResponseType"/>
+
+ <xs:complexType name="ResponseType">
+ <choice>
+ <element name="out" type="anyType" />
+ <element name="fault" type="pmapi:FaultType" />
+ <element name="failure" type="pmapi:FailureType" />
+ </choice>
+ </xs:complexType>
+
+ <complexType name="GetCommunication">
+ <xs:sequence>
+ <xs:element name="iid" type="long" maxOccurs="unbounded"></xs:element>
+ </xs:sequence>
+ </complexType>
+
+ <xs:complexType name="GetCommunicationResponse">
+ <xs:sequence>
+ <element name="restoreInstance" minOccurs="0" maxOccurs="unbounded" type="pmapi:CommunicationType"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <element name="getCommunicationResponse" type="pmapi:GetCommunicationResponse"/>
+
+ <complexType name="FaultType">
+ <sequence>
+ <element name="type" type="QName" />
+ <element name="explanation" type="string" />
+ <element name="message" type="anyType" />
+ </sequence>
+ </complexType>
+
+ <complexType name="FailureType">
+ <sequence>
+ <element name="explanation" type="string" />
+ </sequence>
+ </complexType>
+
+ <complexType name="CommunicationType">
+ <sequence>
+ <element name="processType" type="QName" />
+ <element name="rollbackOnFault" type="boolean" minOccurs="0" default="true"/>
+
+ <element name="serviceConfig" maxOccurs="unbounded">
+ <complexType>
+ <sequence>
+ <element name="service" type="QName" />
+ <xs:element name="replayType" type="pmapi:ReplayType"/>
+ </sequence>
+ </complexType>
+ </element>
+
+ <element name="exchange" maxOccurs="unbounded">
+ <complexType>
+ <sequence>
+ <element name="type" type="pmapi:ExchangeType" />
+ <element name="createTime" type="dateTime" />
+ <element name="service" type="QName" />
+ <element name="operation" type="string" />
+ <element name="in" type="anyType" />
+ <choice> <!-- ResponseType -->
+ <element name="out" type="anyType"/>
+ <element name="fault" type="pmapi:FaultType"/>
+ <element name="failure" type="pmapi:FailureType"/>
+ </choice>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+
+ <complexType name="Replay">
+ <sequence>
+ <element name="upgradeInstance" minOccurs="0" maxOccurs="unbounded" type="long"/>
+ <element name="replaceInstance" minOccurs="0" maxOccurs="unbounded" type="long"/>
+ <element name="restoreInstance" minOccurs="0" maxOccurs="unbounded" type="pmapi:CommunicationType"/>
+ </sequence>
+ </complexType>
+
+ <complexType name="ReplayResponse">
+ <sequence>
+ <element name="restoredIID" type="long" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+ <element name="replayResponse" type="pmapi:ReplayResponse"/>
+
+ <complexType name="tProcessInfo">
+ <annotation>
+ <documentation>Information about a BPEL process.</documentation>
+ </annotation>
+ <sequence>
+ <element name="pid" type="xs:string">
+ <annotation>
+ <documentation>The unique name/id of the process.</documentation>
+ </annotation>
+ </element>
+ <element name="status" type="pmapi:tProcessStatus">
+ <annotation>
+ <documentation>Process status.</documentation>
+ </annotation>
+ </element>
+ <element name="version" type="xs:long">
+ <annotation>
+ <documentation>Process version.</documentation>
+ </annotation>
+ </element>
+ <element name="definition-info" type="pmapi:tDefinitionInfo">
+ <annotation>
+ <documentation>Information about the process
+ definition.</documentation>
+ </annotation>
+ </element>
+ <element name="deployment-info" type="pmapi:tDeploymentInfo">
+ <annotation>
+ <documentation>Information about the process
+ deployment.</documentation>
+ </annotation>
+ </element>
+ <element name="instance-summary" type="pmapi:tInstanceSummary" minOccurs="0">
+ <annotation>
+ <documentation>Summary of the instances belonging to this
+ process.</documentation>
+ </annotation>
+ </element>
+ <element name="properties" type="pmapi:tProcessProperties">
+ <annotation>
+ <documentation>Process properties.</documentation>
+ </annotation>
+ </element>
+ <element name="endpoints" type="pmapi:tEndpointReferences">
+ <annotation>
+ <documentation>Endpoint references.</documentation>
+ </annotation>
+ </element>
+ <element name="documents">
+ <annotation>
+ <documentation>Process documents</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="document" type="pmapi:tDocumentInfo" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##other" processContents="lax"/>
+ </complexType>
+ <simpleType name="tProcessStatus">
+ <annotation>
+ <documentation>Enumeration of process status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ACTIVE">
+ <annotation>
+ <documentation>Process is accepting new
+ requests.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="RETIRED">
+ <annotation>
+ <documentation>Process is NOT accepting new
+ requests.</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <simpleType name="tActivityStatus">
+ <annotation>
+ <documentation>Enumeration of scope status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ENABLED">
+ <annotation>
+ <documentation>Activity is enabled, but not necessarily ready to execute.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="STARTED">
+ <annotation>
+ <documentation>Activity has started execution.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPLETED">
+ <annotation>
+ <documentation>Activity has finished execution.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAILURE">
+ <annotation>
+ <documentation>Activity is in failure state, recovery required.</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <simpleType name="tScopeStatus">
+ <annotation>
+ <documentation>Enumeration of scope status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ACTIVE">
+ <annotation>
+ <documentation>Scope is active.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPLETED">
+ <annotation>
+ <documentation>Scope has completed.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAULTED">
+ <annotation>
+ <documentation>Scope has faulted.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAULTHANDLING">
+ <annotation>
+ <documentation>Scope is executing its fault
+ handler.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPENSATING">
+ <annotation>
+ <documentation>Scope is executing its compensation
+ handler.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPENSATED">
+ <annotation>
+ <documentation>Scope has been compensated.</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <complexType name="tDefinitionInfo">
+ <annotation>
+ <documentation>Information about the process definition.</documentation>
+ </annotation>
+ <sequence>
+ <element name="process-name" type="xs:QName">
+ <annotation>
+ <documentation>The qualified name of the BPEL
+ process.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tDocumentInfo">
+ <annotation>
+ <documentation>Information about a document.</documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="xs:string">
+ <annotation>
+ <documentation>Name of the document.</documentation>
+ </annotation>
+ </element>
+ <element name="type" type="xs:anyURI">
+ <annotation>
+ <documentation>Type of document (e.g.
+ WSDL/BPEL/etc...).</documentation>
+ </annotation>
+ </element>
+ <element name="source" type="xs:anyURI">
+ <annotation>
+ <documentation>URL where the document can be
+ retrieved.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tDeploymentInfo">
+ <annotation>
+ <documentation>Information about a BPEL process
+ deployment.</documentation>
+ </annotation>
+ <sequence>
+ <element name="package" type="xs:string">
+ <annotation>
+ <documentation>Deployment package the process was deployed into.</documentation>
+ </annotation>
+ </element>
+ <element name="document" type="xs:string">
+ <annotation>
+ <documentation>File name of BPEL document.</documentation>
+ </annotation>
+ </element>
+ <element name="deploy-date" type="xs:dateTime">
+ <annotation>
+ <documentation>Date the process was deployed.</documentation>
+ </annotation>
+ </element>
+ <element name="deployer" type="xs:string">
+ <annotation>
+ <documentation>The user that deployed this
+ process.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tProcessProperties">
+ <sequence>
+ <element name="property" minOccurs="0" maxOccurs="unbounded">
+ <annotation>
+ <documentation>Process property (name-value pair).</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="xs:QName">
+ <annotation>
+ <documentation>Name of the property.</documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tEndpointReferences">
+ <sequence>
+ <element name="endpoint-ref" minOccurs="0" maxOccurs="unbounded">
+ <annotation>
+ <documentation>Endpoint references associated with the process partner links roles.</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="partner-link" type="xs:string">
+ <annotation>
+ <documentation>Name of the partner link this endpoint reference is associated with.</documentation>
+ </annotation>
+ </attribute>
+ <attribute name="partner-role" type="xs:string">
+ <annotation>
+ <documentation>Name of the partner role this endpoint reference is associated with.</documentation>
+ </annotation>
+ </attribute>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <simpleType name="tInstanceStatus">
+ <annotation>
+ <documentation>Enumeration of instant status.</documentation>
+ </annotation>
+ <restriction base="xs:string">
+ <enumeration value="ACTIVE">
+ <annotation>
+ <documentation>Instance is active.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="COMPLETED">
+ <annotation>
+ <documentation>Instance has completed.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="TERMINATED">
+ <annotation>
+ <documentation>Instance was terminated.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="FAILED">
+ <annotation>
+ <documentation>Instance failed (with a fault).</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="SUSPENDED">
+ <annotation>
+ <documentation>Instance has been suspended.</documentation>
+ </annotation>
+ </enumeration>
+ <enumeration value="ERROR">
+ <annotation>
+ <documentation>Instance is.....</documentation>
+ </annotation>
+ </enumeration>
+ </restriction>
+ </simpleType>
+ <complexType name="tInstanceSummary">
+ <annotation>
+ <documentation>A summary of the number of instances in each state.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="instances" minOccurs="0" maxOccurs="unbounded">
+ <complexType>
+ <attribute name="state" type="pmapi:tInstanceStatus" use="required"/>
+ <attribute name="count" type="xs:int" use="required"/>
+ </complexType>
+ </element>
+ <element name="failures" type="pmapi:tFailuresInfo" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ <complexType name="tScopeInfo">
+ <sequence>
+ <element name="siid" type="xs:string">
+ <annotation>
+ <documentation>Scope instance identifier.</documentation>
+ </annotation>
+ </element>
+ <element name="name" type="xs:string">
+ <annotation>
+ <documentation>Scope name.</documentation>
+ </annotation>
+ </element>
+ <element name="status" type="pmapi:tScopeStatus">
+ <annotation>
+ <documentation>Scope instance identifier.</documentation>
+ </annotation>
+ </element>
+ <element name="parent-scope-ref" type="pmapi:tScopeRef" minOccurs="0">
+ <annotation>
+ <documentation>Parent scope reference.</documentation>
+ </annotation>
+ </element>
+ <element name="children" minOccurs="0">
+ <complexType>
+ <sequence>
+ <element name="child-ref" type="pmapi:tScopeRef" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="activities" minOccurs="0">
+ <complexType>
+ <sequence>
+ <element ref="pmapi:activity-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="variables" minOccurs="0">
+ <complexType>
+ <sequence>
+ <element name="variable-ref" type="pmapi:tVariableRef" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="correlation-sets" minOccurs="0">
+ <annotation>
+ <documentation>Lists all correlation correlation sets associated with
+ this scope with their valued correlation properties.</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="correlation-set" maxOccurs="unbounded">
+ <complexType>
+ <sequence>
+ <element name="correlation-property" type="pmapi:tCorrelationProperty" maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="xs:string" use="required"/>
+ <attribute name="csetid" type="xs:string" use="required"/>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="endpoints" type="pmapi:tEndpointReferences">
+ <annotation>
+ <documentation>Endpoint references.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tActivityInfo">
+ <annotation>
+ <documentation>Information about an activity.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="xs:string" minOccurs="0"/>
+ <element name="type" type="xs:string"/>
+ <element name="aiid" type="xs:string"/>
+ <element name="status" type="pmapi:tActivityStatus"/>
+ <element name="scope" type="pmapi:tScopeRef" minOccurs="0">
+ <annotation>
+ <documentation>ID for scope in which this activity is executing.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-enabled" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation>The date/time when the activity was enabled.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-started" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation>The date/time when the activity was
+ started.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-completed" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation>The date/time when the activity was
+ completed.</documentation>
+ </annotation>
+ </element>
+ <element name="failure" type="pmapi:tFailureInfo" minOccurs="0">
+ <annotation>
+ <documentation>Indicates activity is in the failure state and requires recovery.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tFailureInfo">
+ <annotation>
+ <documentation>Indicates activity is in the failure state and requires recovery.</documentation>
+ </annotation>
+ <sequence>
+ <element name="dt-failure" type="xs:dateTime">
+ <annotation>
+ <documentation>The date/time when failure occurred.</documentation>
+ </annotation>
+ </element>
+ <element name="retries" type="xs:int">
+ <annotation>
+ <documentation>Number of retries.</documentation>
+ </annotation>
+ </element>
+ <element name="reason" type="xs:string">
+ <annotation>
+ <documentation>Reason for failure.</documentation>
+ </annotation>
+ </element>
+ <element name="actions" type="xs:string">
+ <annotation>
+ <documentation>Allowed recovery actions (space separated list of action names).</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tVariableInfo">
+ <annotation>
+ <documentation>Information about a variable (basically the value)
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="self" type="pmapi:tVariableRef"/>
+ <element name="value" minOccurs="0">
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tInstanceInfo">
+ <sequence>
+ <element name="iid" type="xs:string">
+ <annotation>
+ <documentation>The unique instance identifier. </documentation>
+ </annotation>
+ </element>
+ <element name="pid" type="xs:string">
+ <annotation>
+ <documentation>Process id of the process to which this instance
+ belongs.</documentation>
+ </annotation>
+ </element>
+ <element name="process-name" type="QName"/>
+ <element name="root-scope" type="pmapi:tScopeRef" minOccurs="0">
+ <annotation>
+ <documentation>Root scope id (might not exist). </documentation>
+ </annotation>
+ </element>
+ <element name="status" type="pmapi:tInstanceStatus">
+ <annotation>
+ <documentation>Status of ths instance.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-started" type="xs:dateTime">
+ <annotation>
+ <documentation>The date/time when the instance was
+ started.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-last-active" type="xs:dateTime">
+ <annotation>
+ <documentation>The date/time when the last activity
+ occured.</documentation>
+ </annotation>
+ </element>
+ <element name="dt-error-since" type="xs:dateTime" minOccurs="0">
+ <annotation>
+ <documentation> If present, indicates the date/time since which the
+ instance has been in an error state. </documentation>
+ </annotation>
+ </element>
+ <element name="correlation-properties" minOccurs="0">
+ <annotation>
+ <documentation>Lists all correlation properties with their values that
+ are associated with this process instance.</documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="correlation-property" type="pmapi:tCorrelationProperty" maxOccurs="unbounded">
+ <annotation>
+ <documentation>Instance correlation property.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="event-info" minOccurs="0">
+ <annotation>
+ <documentation> Information about the events for this instance. If
+ absent, indicates events are not available. </documentation>
+ </annotation>
+ <complexType>
+ <sequence>
+ <element name="count" type="xs:int">
+ <annotation>
+ <documentation> Indicates the datetime of the first event
+ </documentation>
+ </annotation>
+ </element>
+ <element name="first-dtime" type="xs:dateTime">
+ <annotation>
+ <documentation> Indicates the datetime of the first event
+ </documentation>
+ </annotation>
+ </element>
+ <element name="last-dtime" type="xs:dateTime">
+ <annotation>
+ <documentation> Indicates the datetime of the last event.
+ </documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="fault-info" type="pmapi:tFaultInfo" minOccurs="0">
+ <annotation>
+ <documentation> If present, indicates the fault with which this
+ instance failed. </documentation>
+ </annotation>
+ </element>
+ <element name="failures" type="pmapi:tFailuresInfo" minOccurs="0"/>
+ </sequence>
+ </complexType>
+ <complexType name="tScopeRef">
+ <annotation>
+ <documentation> Reference to a scope. </documentation>
+ </annotation>
+ <attribute name="siid" type="xs:string" use="required"/>
+ <attribute name="name" type="xs:string" use="optional"/>
+ <attribute name="modelId" type="xs:string" use="required"/>
+ <attribute name="status" type="pmapi:tScopeStatus" use="required"/>
+ </complexType>
+ <complexType name="tVariableRef">
+ <annotation>
+ <documentation>Reference to a variable.</documentation>
+ </annotation>
+ <attribute name="iid" type="xs:string" use="required"/>
+ <attribute name="siid" type="xs:string" use="required"/>
+ <attribute name="name" type="xs:string" use="required"/>
+ </complexType>
+ <complexType name="tFaultInfo">
+ <annotation>
+ <documentation> Type used for reporting faults. </documentation>
+ </annotation>
+ <sequence>
+ <element name="name" type="xs:QName"/>
+ <element name="explanation" type="xs:string"/>
+ <element name="line-number" type="xs:int"/>
+ <element name="aiid" type="xs:int"/>
+ <element name="data" minOccurs="0">
+ <complexType>
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ </element>
+ </sequence>
+ </complexType>
+ <complexType name="tFailuresInfo">
+ <annotation>
+ <documentation>Indicates one or more activities are in the failure
+ state and require recovery.</documentation>
+ </annotation>
+ <sequence>
+ <element name="dt-failure" type="xs:dateTime">
+ <annotation>
+ <documentation>Date/time of last failure.</documentation>
+ </annotation>
+ </element>
+ <element name="count" type="xs:int">
+ <annotation>
+ <documentation>Number of activities in failure state.</documentation>
+ </annotation>
+ </element>
+ </sequence>
+ </complexType>
+ <!-- Yew that's ugly, but there aren't so many ways to map an heritage -->
+ <complexType name="tEventInfo">
+ <sequence>
+ <element name="name" type="xs:string"/>
+ <element name="type" type="xs:string"/>
+ <element name="line-number" type="xs:int"/>
+ <element name="timestamp" type="xs:dateTime"/>
+ <element name="process-id" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="process-type" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="instance-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="scope-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="parent-scope-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="scope-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="scope-definition-id" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-type" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-definition-id" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-failure-reason" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="activity-recovery-action" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="variable-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="new-value" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="port-type" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="operation" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="correlation-set" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="mex-id" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="correlation-key" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="expression" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="fault" type="xs:QName" minOccurs="0" maxOccurs="1"/>
+ <element name="fault-line-number" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="explanation" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="result" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="root-scope-id" type="xs:long" minOccurs="0" maxOccurs="1"/>
+ <element name="root-scope-declaration-id" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="partner-link-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
+ <element name="old-state" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="new-state" type="xs:int" minOccurs="0" maxOccurs="1"/>
+ <element name="success" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
+ </sequence>
+ </complexType>
+ <complexType name="tInstanceInfoList">
+ <sequence>
+ <element ref="pmapi:instance-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tProcessInfoList">
+ <sequence>
+ <element ref="pmapi:process-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tEventInfoList">
+ <sequence>
+ <element ref="pmapi:event-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tCorrelationProperty" mixed="true">
+ <simpleContent>
+ <extension base="xs:string">
+ <attribute name="csetid" type="xs:string" use="required"/>
+ <attribute name="propertyName" type="xs:QName" use="required"/>
+ </extension>
+ </simpleContent>
+ </complexType>
+
+ <complexType name="tActivityExtInfo">
+ <annotation>
+ <documentation>Information about an activity.
+ </documentation>
+ </annotation>
+ <sequence>
+ <element name="aiid" type="xs:string"/>
+ <any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+ <complexType name="tActivitytExtInfoList">
+ <sequence>
+ <element ref="pmapi:activity-ext-info" minOccurs="0" maxOccurs="unbounded"/>
+ </sequence>
+ </complexType>
+
+</schema>
Modified: branches/ODE/ODE-1.x/jca-ra/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jca-ra/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jca-ra/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-jca-ra</artifactId>
<name>ODE :: JCA Resource Archive</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/jca-server/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/jca-server/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/jca-server/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-jca-server</artifactId>
<name>ODE :: JCA Server</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -1,12 +1,12 @@
<?xml version="1.0"?>
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
<name>ODE</name>
<packaging>pom</packaging>
<modelVersion>4.0.0</modelVersion>
- <version>1.3.4</version>
+ <version>1.3.5</version>
<url>http://ode.apache.org</url>
<issueManagement>
<system>jira</system>
@@ -21,9 +21,9 @@
</licenses>
<scm>
- <connection>scm:svn:http://svn.apache.org/repos/asf/ode/</connection>
- <developerConnection>scm:svn:https://svn.apache.org/repos/asf/ode/</developerConnection>
- <url>http://svn.apache.org/repos/asf/ode/</url>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/ode/tags/ode-1.3.5</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/ode/tags/ode-1.3.5</developerConnection>
+ <url>http://svn.apache.org/repos/asf/ode/tags/ode-1.3.5</url>
</scm>
<organization>
@@ -36,7 +36,7 @@
</prerequisites>
<properties>
- <ode.version>1.3.4</ode.version>
+ <ode.version>1.3.5</ode.version>
<activation.version>1.1</activation.version>
<annogen.version>0.1.0</annogen.version>
<antlr.version>2.7.7</antlr.version>
@@ -135,6 +135,8 @@
<module>jbi-bundle</module>
<module>jbi-karaf</module>
<module>distro/src/examples-jbi/maven2/ping-pong-osgi</module>
+ <module>distro/src/examples-jbi/maven2/helloworld2-osgi</module>
+ <module>jbi-karaf-pmapi-httpbinding</module>
<module>axis2-war</module>
<module>distro</module>
</modules>
@@ -264,6 +266,18 @@
<enabled>false</enabled>
</snapshots>
</repository>
+
+ <repository>
+ <id>intalio</id>
+ <name>intalio repo</name>
+ <url>http://www.intalio.org/public/maven2</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <snapshots>
+ <enabled>false</enabled>
+ </snapshots>
+ </repository>
</repositories>
<!--
Modified: branches/ODE/ODE-1.x/repositories.rb
===================================================================
--- branches/ODE/ODE-1.x/repositories.rb 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/repositories.rb 2011-01-16 11:52:46 UTC (rev 1234)
@@ -20,4 +20,3 @@
repositories.remote << "http://download.java.net/maven/2"
repositories.remote << "http://svn.apache.org/repos/asf/servicemix/m2-repo"
repositories.remote << "http://www.aqute.biz/repo"
-repositories.release_to[:url] ||= "sftp://guest@localhost/home/guest"
Modified: branches/ODE/ODE-1.x/scheduler-simple/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/scheduler-simple/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/scheduler-simple/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-scheduler-simple</artifactId>
@@ -26,7 +26,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/tasks/bnd.rake
===================================================================
--- branches/ODE/ODE-1.x/tasks/bnd.rake 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/tasks/bnd.rake 2011-01-16 11:52:46 UTC (rev 1234)
@@ -1,85 +1,147 @@
-#
-# Licensed to the Apache Software Foundation (ASF) under one or more
-# contributor license agreements. See the NOTICE file distributed with
-# this work for additional information regarding copyright ownership.
-# The ASF licenses this file to You under the Apache License, Version 2.0
-# (the "License"); you may not use this file except in compliance with
-# the License. You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-# This task creates an OSGi bundle package using the bnd tool.
-#
-# The classpath and path to a bnd configuration file are required.
-# Additional properties can be specified using the bnd.properties
-# hash. Refer to the bnd documentation (http://www.aqute.biz/Code/Bnd)
-# for details on the supported properties.
-#
-# The easiest way to use this task is through the Project#package method.
-# For example:
-# package(:bundle).tap do |bnd|
-# bnd.bnd_file = 'conf/foo.bnd'
-# bnd.classpath = artifacts(...)
-# bnd.properties['foo'] = 'bar'
-# end
-class BndTask < Rake::FileTask
-
- BND = "biz.aQute:bnd:jar:0.0.379"
-
- # Classpath string for building the bundle
- attr_accessor :classpath
-
- # Sourcepath
- attr_accessor :sourcepath
-
- # Path to bnd file
- attr_accessor :bnd_file
-
- # Hash of properties passed to bnd
- attr_accessor :properties
-
- def initialize(*args)
- super
- @properties = {}
-
- # Make sure bnd tool is available
- Buildr.artifact(BND).invoke
-
- enhance do
- Buildr.ant('bnd') do |project|
-
- # pass properties to bnd as ant properties
- properties.each do |key, value|
- project.property(:name=>key, :value=>value)
- end
-
- project.taskdef :name=>'bnd', :classname=>'aQute.bnd.ant.BndTask', :classpath=>Buildr.artifact(BND)
- project.bnd(:classpath=>classpath, :sourcepath=>(sourcepath == nil) ? "" : File.expand_path(sourcepath),
- :files=>File.expand_path(bnd_file), :output=>name,
- :eclipse=>false, :failok=>false, :exceptions=>true)
- end
- end
- end
-
-
-end
-
-
-class Project
-
- def package_as_bundle(file_name) #:nodoc
- BndTask.define_task(file_name)
- end
-
- def package_as_bundle_spec(spec) #:nodoc
- spec.merge({ :type=>:jar, :classifier=>'bundle' })
- end
-
-end
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with this
+# work for additional information regarding copyright ownership. The ASF
+# licenses this file to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+# License for the specific language governing permissions and limitations under
+# the License.
+
+module Buildr
+ module Bnd
+ class << self
+ # The specs for requirements
+ def dependencies
+ ["biz.aQute:bnd:jar:0.0.384"]
+ end
+
+ # Repositories containing the requirements
+ def remote_repository
+ "http://www.aQute.biz/repo"
+ end
+
+ def bnd_main(*args)
+ cp = Buildr.artifacts(self.dependencies).each(&:invoke).map(&:to_s)
+ Java::Commands.java 'aQute.bnd.main.bnd', *(args + [{ :classpath => cp }])
+ end
+ end
+
+ class BundleTask < Rake::FileTask
+ attr_reader :project
+ attr_accessor :classpath
+
+ def [](key)
+ @params[key]
+ end
+
+ def []=(key, value)
+ @params[key] = value
+ end
+
+ def classpath_element(dependencies)
+ artifacts = Buildr.artifacts([dependencies])
+ self.prerequisites << artifacts
+ artifacts.each do |dependency|
+ self.classpath << dependency.to_s
+ end
+ end
+
+ def to_params
+ params = self.project.manifest.merge((a)params).reject { |k, v| v.nil? }
+ params["-classpath"] ||= self.classpath.collect(&:to_s).join(", ")
+ params['Bundle-SymbolicName'] ||= [self.project.group, self.project.name.gsub(':', '-')].join('.')
+ params['Bundle-Name'] ||= self.project.comment || self.project.name
+ params['Bundle-Description'] ||= self.project.comment
+ params['Bundle-Version'] ||= self.project.version
+ if params["Include-Resource"].nil? && !project.resources.target.nil?
+ params["Include-Resource"] = "#{project.resources.target}/"
+ end
+ params['-removeheaders'] ||= "Include-Resource,Bnd-LastModified,Created-By,Implementation-Title,Tool"
+
+ params
+ end
+
+ def project=(project)
+ @project = project
+ end
+
+ def classpath=(classpath)
+ @classpath = []
+ Buildr.artifacts([classpath.flatten.compact]).each do |dependency|
+ self.prerequisites << dependency
+ @classpath << dependency.to_s
+ end
+ @classpath
+ end
+
+ def classpath
+ @classpath ||= ([project.compile.target] + project.compile.dependencies).flatten.compact
+ end
+
+ protected
+
+ def initialize(*args) #:nodoc:
+ super
+ @params = {}
+ enhance do
+ filename = self.name
+ # Generate BND file with same name as target jar but different extension
+ bnd_filename = filename.sub /(\.jar)?$/, '.bnd'
+
+ params = self.to_params
+ params["-output"] = filename
+ File.open(bnd_filename, 'w') do |f|
+ f.print params.collect { |k, v| "#{k}=#{v}" }.join("\n")
+ end
+
+ Buildr::Bnd.bnd_main( "build", "-noeclipse", bnd_filename )
+ begin
+ Buildr::Bnd.bnd_main( "print", "-verify", filename )
+ rescue => e
+ rm filename
+ raise e
+ end
+ end
+ end
+ end
+
+ module ProjectExtension
+ include Extension
+
+ first_time do
+ desc "Does `bnd print` on the packaged bundle and stdouts the output for inspection"
+ Project.local_task("bnd:print")
+ end
+
+ def package_as_bundle(filename)
+ project.task('bnd:print' => [filename]) do |task|
+ Buildr::Bnd.bnd_main("print", filename)
+ end
+
+ dirname = File.dirname(filename)
+ directory(dirname)
+
+ # Add Buildr.application.buildfile so it will rebuild if we change settings
+ task = BundleTask.define_task(filename => [Buildr.application.buildfile, dirname])
+ task.project = self
+ # the last task is the task considered the packaging task
+ task
+ end
+
+ # Change the bundle package to .jar extension
+ def package_as_bundle_spec(spec)
+ spec.merge(:type => :jar)
+ end
+ end
+ end
+end
+
+class Buildr::Project
+ include Buildr::Bnd::ProjectExtension
+end
\ No newline at end of file
Added: branches/ODE/ODE-1.x/tasks/gpg.rake
===================================================================
--- branches/ODE/ODE-1.x/tasks/gpg.rake (rev 0)
+++ branches/ODE/ODE-1.x/tasks/gpg.rake 2011-01-16 11:52:46 UTC (rev 1234)
@@ -0,0 +1,59 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+module Buildr
+ module GPG
+ extend self
+
+ def sign_task(pkg)
+ file(pkg.to_s + '.asc') do
+ puts "GPG signing #{pkg.to_spec}"
+ cmd = 'gpg',
+ '--local-user', ENV['GPG_USER'],
+ '--armor',
+ '--output', pkg.to_s + '.asc'
+ cmd += ['--passphrase', ENV['GPG_PASS']] if ENV['GPG_PASS']
+ cmd += ['--detach-sig', pkg]
+ #cmd << { :verbose => true }
+ #sh *cmd
+ system *cmd
+ end
+ end
+
+ def sign_and_upload(pkg)
+ task(:upload).enhance do
+ artifact = Buildr.artifact(pkg.to_spec_hash.merge(:type => "#{pkg.type}.asc"))
+ artifact.from sign_task(pkg)
+ artifact.invoke
+ artifact.upload
+ end
+ end
+
+ def gpg_sign_before_upload
+ self.enhance do
+ [self, self.projects].flatten.each { |prj|
+ prj.packages.each { |pkg| sign_and_upload(pkg) }
+ prj.packages.map {|pkg| pkg.pom }.uniq.each { |pom| sign_and_upload(pom) }
+ }
+ end
+ end
+ end
+end
+
+class Buildr::Project
+ include Buildr::GPG
+end
Modified: branches/ODE/ODE-1.x/tasks/ws-security.rake
===================================================================
--- branches/ODE/ODE-1.x/tasks/ws-security.rake 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/tasks/ws-security.rake 2011-01-16 11:52:46 UTC (rev 1234)
@@ -1,5 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
-
module WSSecurity
class << self
@@ -22,7 +37,7 @@
def prepare_secure_services_tests(test_dir, file_pattern, modules)
task(test_dir.to_sym) do
# copy the required modules
- mkdir "#{test_dir}/modules" unless File.directory? "#{test_dir}/modules"
+ mkdir_p "#{test_dir}/modules" unless File.directory? "#{test_dir}/modules"
Buildr.artifacts(modules).each(&:invoke)
cp modules.map {|a| Buildr.repositories.locate(a)} , "#{test_dir}/modules"
# generate one process per test
Modified: branches/ODE/ODE-1.x/tools/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/tools/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/tools/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.ode</groupId>
<artifactId>ode-tools</artifactId>
@@ -27,7 +27,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/utils/pom.xml
===================================================================
--- branches/ODE/ODE-1.x/utils/pom.xml 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/utils/pom.xml 2011-01-16 11:52:46 UTC (rev 1234)
@@ -18,7 +18,7 @@
~ under the License.
-->
-<project>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<groupId>org.apache.ode</groupId>
<artifactId>ode-utils</artifactId>
<name>ODE :: Utilities</name>
@@ -28,7 +28,7 @@
<parent>
<groupId>org.apache.ode</groupId>
<artifactId>ode</artifactId>
- <version>1.3.4</version>
+ <version>1.3.5</version>
</parent>
<dependencies>
Modified: branches/ODE/ODE-1.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java
===================================================================
--- branches/ODE/ODE-1.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java 2011-01-15 13:11:36 UTC (rev 1233)
+++ branches/ODE/ODE-1.x/utils/src/main/java/org/apache/ode/utils/xsd/XSUtils.java 2011-01-16 11:52:46 UTC (rev 1234)
@@ -30,14 +30,14 @@
import org.apache.xerces.xs.XSModel;
import org.w3c.dom.ls.LSInput;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
+import java.io.ByteArrayInputStream;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+
/**
* Various utility methods related to XML Schema processing.
*/
@@ -64,7 +64,7 @@
DOMInputImpl input = new DOMInputImpl();
input.setSystemId(systemURI.toString());
- input.setStringData(new String(schemaData));
+ input.setByteStream(new ByteArrayInputStream(schemaData));
Map<URI, byte[]> ret = captureSchema(input, resolver);
ret.put(systemURI, schemaData);
13 years, 11 months
riftsaw SVN: r1233 - branches/RiftSaw-2.2.x/qa.
by riftsaw-commits@lists.jboss.org
Author: jeff.yuchang
Date: 2011-01-15 08:11:36 -0500 (Sat, 15 Jan 2011)
New Revision: 1233
Modified:
branches/RiftSaw-2.2.x/qa/build.xml
branches/RiftSaw-2.2.x/qa/hudson-riftsaw-local.sh
Log:
* update the build script, only to get the db2 or oracle driver if it needs it.
Modified: branches/RiftSaw-2.2.x/qa/build.xml
===================================================================
--- branches/RiftSaw-2.2.x/qa/build.xml 2011-01-13 11:32:56 UTC (rev 1232)
+++ branches/RiftSaw-2.2.x/qa/build.xml 2011-01-15 13:11:36 UTC (rev 1233)
@@ -8,7 +8,7 @@
<fail message="property riftsaw.parent.dir must be specified" unless="riftsaw.parent.dir" />
<!-- CONFIGURABLE PROPERTIES -->
- <property name="database" value="hsqldb" />
+ <property name="database" value="hsql" />
<property name="riftsaw.version" value="2.2.0-SNAPSHOT" />
<property name="riftsaw.home" value="${riftsaw.parent.dir}/riftsaw-${riftsaw.version}" /> <!-- riftsaw.home should not be configured. change riftsaw.parent.dir instead -->
@@ -64,11 +64,21 @@
</condition>
<condition property="is.oracle.driver.available">
- <available file="${oracle.driver.path}" />
+ <or>
+ <available file="${oracle.driver.path}" />
+ <not>
+ <equals arg1="oracle" arg2="${database}" />
+ </not>
+ </or>
</condition>
<condition property="is.db2.driver.available">
- <available file="${db2.driver.path}" />
+ <or>
+ <available file="${db2.driver.path}" />
+ <not>
+ <equals arg1="db2" arg2="${database}" />
+ </not>
+ </or>
</condition>
<condition property="is.replace.qa.jdbc">
Modified: branches/RiftSaw-2.2.x/qa/hudson-riftsaw-local.sh
===================================================================
--- branches/RiftSaw-2.2.x/qa/hudson-riftsaw-local.sh 2011-01-13 11:32:56 UTC (rev 1232)
+++ branches/RiftSaw-2.2.x/qa/hudson-riftsaw-local.sh 2011-01-15 13:11:36 UTC (rev 1233)
@@ -4,7 +4,7 @@
MAVEN_OPTS="-Xms512M -Xmx1024M"
-RIFTSAW_PARENT_DIR="/Users/jeffyu/deploy/riftsaw"
+RIFTSAW_PARENT_DIR="/home/jeff/deploy/riftsaw"
DOWNLOAD_DIR="$RIFTSAW_PARENT_DIR/downloads"
JBOSS_VERSION="5.1.0.GA"
@@ -14,7 +14,7 @@
REPLACE_QA_JDBC="true"
JBOSS_ESB_VERSION="4.9"
JBOSS_ESB_HOME="$RIFTSAW_PARENT_DIR/riftsaw-$RIFTSAW_VERSION/jbossesb-$JBOSS_ESB_VERSION"
-DATABASE="postgres"
+DATABASE="hsql"
STARTUP_TIME="3"
@@ -36,7 +36,7 @@
ant $ANT_PROPERTIES install.jbossesb
# clean up the database
-ant $ANT_PROPERTIES drop.riftsaw.schema
+#ant $ANT_PROPERTIES drop.riftsaw.schema
# build the RiftSaw and run integration tests
@@ -45,4 +45,4 @@
# clean up the database
cd ../qa
-ant $ANT_PROPERTIES drop.riftsaw.schema
+#ant $ANT_PROPERTIES drop.riftsaw.schema
13 years, 11 months
Build failed in Hudson: RiftSaw-jbossws-cxf #121
by jboss-qa-internal@redhat.com
See <http://hudson.qa.jboss.com/hudson/job/RiftSaw-jbossws-cxf/121/changes>
Changes:
[jeff.yuchang] * added 'download.dir' value into the bash script parameters.
------------------------------------------
[...truncated 3122 lines...]
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getDeployer(RiftSawTestHelper.java:82)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.deploy(RiftSawTestHelper.java:48)
at org.jboss.soa.bpel.tests.RiftSawTestSetup.setUp(RiftSawTestSetup.java:104)
at junit.extensions.TestSetup$1.protect(TestSetup.java:22)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.extensions.TestSetup.run(TestSetup.java:27)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: javax.naming.NameNotFoundException: invoker not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
at org.jnp.server.NamingServer.lookup(NamingServer.java:399)
at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getServer(RiftSawTestHelper.java:71)
... 17 more
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.025 sec <<< FAILURE!
Running org.jboss.soa.bpel.tests.testcases.RiftSaw70TestCase
java.lang.RuntimeException: Cannot obtain MBeanServerConnection using jndi props: {java.naming.provider.url=localhost:1099, java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces:org.jnp.interfaces, hostKey=localhost/127.0.0.1:1099}
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getServer(RiftSawTestHelper.java:75)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getDeployer(RiftSawTestHelper.java:82)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.deploy(RiftSawTestHelper.java:48)
at org.jboss.soa.bpel.tests.RiftSawTestSetup.setUp(RiftSawTestSetup.java:104)
at junit.extensions.TestSetup$1.protect(TestSetup.java:22)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.extensions.TestSetup.run(TestSetup.java:27)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: javax.naming.NameNotFoundException: invoker not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
at org.jnp.server.NamingServer.lookup(NamingServer.java:399)
at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getServer(RiftSawTestHelper.java:71)
... 17 more
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.032 sec <<< FAILURE!
Running org.jboss.soa.bpel.tests.samples.QuickstartBPELSecureInvokeTestCase
java.lang.RuntimeException: Cannot obtain MBeanServerConnection using jndi props: {java.naming.provider.url=localhost:1099, java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces:org.jnp.interfaces, hostKey=localhost/127.0.0.1:1099}
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getServer(RiftSawTestHelper.java:75)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getDeployer(RiftSawTestHelper.java:82)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.deploy(RiftSawTestHelper.java:48)
at org.jboss.soa.bpel.tests.RiftSawTestSetup.setUp(RiftSawTestSetup.java:104)
at junit.extensions.TestSetup$1.protect(TestSetup.java:22)
at junit.framework.TestResult.runProtected(TestResult.java:128)
at junit.extensions.TestSetup.run(TestSetup.java:27)
at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
at org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
Caused by: javax.naming.NameNotFoundException: invoker not bound
at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
at org.jnp.server.NamingServer.lookup(NamingServer.java:399)
at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
at sun.rmi.transport.Transport$1.run(Transport.java:159)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
at javax.naming.InitialContext.lookup(InitialContext.java:392)
at org.jboss.soa.bpel.tests.RiftSawTestHelper.getServer(RiftSawTestHelper.java:71)
... 17 more
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.03 sec <<< FAILURE!
Results :
Tests in error:
junit.framework.TestSuite(a)4737371(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)207f5580(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)20992bae(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)276a38b5(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)1fa12495(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)580eac5a(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)194835fb(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)33589e56(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)6d372656(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)474b5f4a(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)53343ed0(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)1629ce8c(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)1fcef4f7(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)6833f0de(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)635aed57(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)7971f189(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)51b4a74b(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)42b02928(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)79ee2c2c(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)2c09505f(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)e4865ce(org.jboss.soa.bpel.tests.RiftSawTestSetup)
testSendHello(org.jboss.soa.bpel.tests.management.RiftSaw238TestCase)
junit.framework.TestSuite(a)3e018c74(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)776be68f(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)560c3014(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)7ba85d38(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)6655bb93(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)39ed1b0b(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)5b7b0998(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)6ce53220(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)3288df60(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)45490eb5(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)7eb1cc87(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)214a7a12(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)649a8a68(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)48ea48be(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)2eda2cef(org.jboss.soa.bpel.tests.RiftSawTestSetup)
junit.framework.TestSuite(a)620a3d3b(org.jboss.soa.bpel.tests.RiftSawTestSetup)
Tests run: 38, Failures: 0, Errors: 38, Skipped: 0
[ERROR] There are test failures.
Please refer to <http://hudson.qa.jboss.com/hudson/job/RiftSaw-jbossws-cxf/ws/riftsaw/inte...> for the individual test results.
[INFO] [antrun:run {execution: undeploy-riftsaw}]
[INFO] Executing tasks
stop-server:
[echo] Stopping the server
[echo] Server is at <http://hudson.qa.jboss.com/hudson/job/RiftSaw-jbossws-cxf/ws/riftsaw-2.3....>
[java] Exception in thread "main" javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: invoker not bound]
[java] at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1352)
[java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:817)
[java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
[java] at javax.naming.InitialContext.lookup(InitialContext.java:392)
[java] at org.jboss.Shutdown.main(Shutdown.java:219)
[java] Caused by: javax.naming.NameNotFoundException: invoker not bound
[java] at org.jnp.server.NamingServer.getBinding(NamingServer.java:771)
[java] at org.jnp.server.NamingServer.getBinding(NamingServer.java:779)
[java] at org.jnp.server.NamingServer.getObject(NamingServer.java:785)
[java] at org.jnp.server.NamingServer.lookup(NamingServer.java:396)
[java] at org.jnp.server.NamingServer.lookup(NamingServer.java:399)
[java] at sun.reflect.GeneratedMethodAccessor242.invoke(Unknown Source)
[java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[java] at java.lang.reflect.Method.invoke(Method.java:597)
[java] at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)
[java] at sun.rmi.transport.Transport$1.run(Transport.java:159)
[java] at java.security.AccessController.doPrivileged(Native Method)
[java] at sun.rmi.transport.Transport.serviceCall(Transport.java:155)
[java] at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)
[java] at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[java] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[java] at java.lang.Thread.run(Thread.java:619)
[java] at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)
[java] at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)
[java] at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)
[java] at org.jnp.server.NamingServer_Stub.lookup(Unknown Source)
[java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:726)
[java] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:686)
[java] at javax.naming.InitialContext.lookup(InitialContext.java:392)
[java] at org.jnp.interfaces.NamingContext.resolveLink(NamingContext.java:1346)
[java] ... 4 more
[java] Java Result: 1
[echo] Shutdown rc = 1
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] An Ant BuildException has occured: The following error occurred while executing this line:
<http://hudson.qa.jboss.com/hudson/job/RiftSaw-jbossws-cxf/ws/riftsaw/inte...>:162: Unable to shut down JBoss (maybe it hasn't fully started yet?).
[INFO] ------------------------------------------------------------------------
[INFO] For more information, run Maven with the -e switch
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 7 minutes 55 seconds
[INFO] Finished at: Fri Dec 10 10:50:01 EST 2010
[INFO] Final Memory: 114M/660M
[INFO] ------------------------------------------------------------------------
Archiving artifacts
Recording test results
13 years, 11 months
riftsaw SVN: r1232 - trunk/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode and 1 other directory.
by riftsaw-commits@lists.jboss.org
Author: objectiser
Date: 2011-01-13 06:32:56 -0500 (Thu, 13 Jan 2011)
New Revision: 1232
Modified:
branches/RiftSaw-2.2.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java
trunk/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java
Log:
Change log level for 'map access not implemented' message, as being generated for each interaction.
Modified: branches/RiftSaw-2.2.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java
===================================================================
--- branches/RiftSaw-2.2.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java 2011-01-10 17:54:37 UTC (rev 1231)
+++ branches/RiftSaw-2.2.x/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java 2011-01-13 11:32:56 UTC (rev 1232)
@@ -62,7 +62,7 @@
{
result = new HashMap();
// todo map access to xml tree
- log.warn("Map access not implemented");
+ log.debug("Map access not implemented");
}
return result;
}
Modified: trunk/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java
===================================================================
--- trunk/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java 2011-01-10 17:54:37 UTC (rev 1231)
+++ trunk/runtime/engine/src/main/java/org/jboss/soa/bpel/runtime/engine/ode/EndpointReferenceContextImpl.java 2011-01-13 11:32:56 UTC (rev 1232)
@@ -62,7 +62,7 @@
{
result = new HashMap();
// todo map access to xml tree
- log.warn("Map access not implemented");
+ log.debug("Map access not implemented");
}
return result;
}
13 years, 11 months
riftsaw SVN: r1231 - dsp/tags.
by riftsaw-commits@lists.jboss.org
Author: objectiser
Date: 2011-01-10 12:54:37 -0500 (Mon, 10 Jan 2011)
New Revision: 1231
Added:
dsp/tags/DSP-1.0.0.CR1/
Log:
Tag for version 1.0.0.CR1.
Copied: dsp/tags/DSP-1.0.0.CR1 (from rev 1230, dsp/trunk)
13 years, 11 months
riftsaw SVN: r1230 - dsp/branches.
by riftsaw-commits@lists.jboss.org
Author: objectiser
Date: 2011-01-10 12:52:37 -0500 (Mon, 10 Jan 2011)
New Revision: 1230
Added:
dsp/branches/DSP-1.0.x/
Log:
Branch for version 1.0.0.CR1.
Copied: dsp/branches/DSP-1.0.x (from rev 1229, dsp/trunk)
13 years, 11 months
riftsaw SVN: r1229 - in dsp/trunk: api and 4 other directories.
by riftsaw-commits@lists.jboss.org
Author: objectiser
Date: 2011-01-10 11:37:59 -0500 (Mon, 10 Jan 2011)
New Revision: 1229
Modified:
dsp/trunk/api/pom.xml
dsp/trunk/distribution/pom.xml
dsp/trunk/distribution/src/main/release/ReleaseNotes.txt
dsp/trunk/jboss/pom.xml
dsp/trunk/pom.xml
dsp/trunk/tomcat/pom.xml
Log:
Set version to 1.0.0.CR1.
Modified: dsp/trunk/api/pom.xml
===================================================================
--- dsp/trunk/api/pom.xml 2011-01-10 15:43:33 UTC (rev 1228)
+++ dsp/trunk/api/pom.xml 2011-01-10 16:37:59 UTC (rev 1229)
@@ -5,13 +5,13 @@
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp-api</artifactId>
<packaging>jar</packaging>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
<name>SOA::DSP::API</name>
<parent>
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
</parent>
<dependencies>
Modified: dsp/trunk/distribution/pom.xml
===================================================================
--- dsp/trunk/distribution/pom.xml 2011-01-10 15:43:33 UTC (rev 1228)
+++ dsp/trunk/distribution/pom.xml 2011-01-10 16:37:59 UTC (rev 1229)
@@ -4,13 +4,13 @@
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>distribution</artifactId>
<packaging>pom</packaging>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
<name>SOA::DSP::Distribution</name>
<parent>
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
</parent>
<properties>
@@ -33,11 +33,6 @@
<artifactId>dsp-tomcat</artifactId>
<version>${dsp.version}</version>
</dependency>
- <dependency>
- <groupId>org.jboss.soa.dsp.samples</groupId>
- <artifactId>dsp-example-provider</artifactId>
- <version>${dsp.version}</version>
- </dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
Modified: dsp/trunk/distribution/src/main/release/ReleaseNotes.txt
===================================================================
--- dsp/trunk/distribution/src/main/release/ReleaseNotes.txt 2011-01-10 15:43:33 UTC (rev 1228)
+++ dsp/trunk/distribution/src/main/release/ReleaseNotes.txt 2011-01-10 16:37:59 UTC (rev 1229)
@@ -0,0 +1,9 @@
+Dynamic Service Provider 1.0.0.CR1
+==================================
+
+This is the first candidate release for version 1.0.0 of the Dynamic Service Provider project.
+
+This is a sub-project of the RiftSaw BPEL runtime community project, used to dynamically create
+web service endpoints based on a supplied WSDL definition, that are implemented using a nominated
+service provider implementation.
+
Modified: dsp/trunk/jboss/pom.xml
===================================================================
--- dsp/trunk/jboss/pom.xml 2011-01-10 15:43:33 UTC (rev 1228)
+++ dsp/trunk/jboss/pom.xml 2011-01-10 16:37:59 UTC (rev 1229)
@@ -5,13 +5,13 @@
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp-jboss</artifactId>
<packaging>jar</packaging>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
<name>SOA::DSP::JBoss</name>
<parent>
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
</parent>
<dependencies>
Modified: dsp/trunk/pom.xml
===================================================================
--- dsp/trunk/pom.xml 2011-01-10 15:43:33 UTC (rev 1228)
+++ dsp/trunk/pom.xml 2011-01-10 16:37:59 UTC (rev 1229)
@@ -5,11 +5,11 @@
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp</artifactId>
<packaging>pom</packaging>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
<name>SOA::DSP</name>
<properties>
- <dsp.version>1.0.0-SNAPSHOT</dsp.version>
+ <dsp.version>1.0.0.CR1</dsp.version>
<junit.version>4.8.1</junit.version>
<jboss.version>5.1.0.GA</jboss.version>
<jaxws.version>2.1</jaxws.version>
Modified: dsp/trunk/tomcat/pom.xml
===================================================================
--- dsp/trunk/tomcat/pom.xml 2011-01-10 15:43:33 UTC (rev 1228)
+++ dsp/trunk/tomcat/pom.xml 2011-01-10 16:37:59 UTC (rev 1229)
@@ -5,13 +5,13 @@
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp-tomcat</artifactId>
<packaging>jar</packaging>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
<name>SOA::DSP::Tomcat</name>
<parent>
<groupId>org.jboss.soa.dsp</groupId>
<artifactId>dsp</artifactId>
- <version>1.0.0-SNAPSHOT</version>
+ <version>1.0.0.CR1</version>
</parent>
<dependencies>
13 years, 11 months