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:/...;
//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://w...;
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:b...
+ <operation name="test1">
+ <soap:operation
soapAction="http://example.org/test1/test1"></soap:operat...
+ <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-sc...;,
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&q...
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:setting...
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"><co...
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"><co...
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/&q...
+ 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/</...
- <
url>http://svn.apache.org/repos/asf/ode/</url>
+
<
connection>scm:svn:http://svn.apache.org/repos/asf/ode/tags/ode-1.3.5&...
+
<
developerConnection>scm:svn:https://svn.apache.org/repos/asf/ode/tags/...
+ <
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);