Author: jeff.yuchang
Date: 2010-05-28 00:59:49 -0400 (Fri, 28 May 2010)
New Revision: 677
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/TimeService-soapui-project.xml
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/SelectorsTest.java
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.bpel
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.wsdl
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.bpel
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.wsdl
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.svg
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.wsdl
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/deploy.xml
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/testRequest.soap
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/SpringPropertiesJbiTest.java
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.bpel
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.wsdl
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelationArtifacts.wsdl
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/beans.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/deploy.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/smx.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/test.properties
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/log4j.properties
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/simplesched-hsql.sql
branches/ODE/ODE-1.x-fixes/schema-updates/
branches/ODE/ODE-1.x-fixes/schema-updates/update01.sql
branches/ODE/ODE-1.x-fixes/schema-updates/update02.sql
Modified:
branches/ODE/ODE-1.x-fixes/KEYS
branches/ODE/ODE-1.x-fixes/Rakefile
branches/ODE/ODE-1.x-fixes/axis2-war/pom.xml
branches/ODE/ODE-1.x-fixes/axis2-war/src/main/assembly/bin.xml
branches/ODE/ODE-1.x-fixes/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/ProcessCronCleanupTest.java
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/HelloWorld2.wsdl
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/deploy.xml
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.bpel
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.wsdl
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.wsdl
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.xsd
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/test-log4j.properties
branches/ODE/ODE-1.x-fixes/axis2/pom.xml
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKeySet.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/ScopeCompletionEvent.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/VariableModificationEvent.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ClusterAware.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Endpoint.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/InvokeActivity.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/Scope.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/OdeXPathFunctionLibrary.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/SaxonContext.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10BpelFunctions.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImplTest.java
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/resources/log4j.properties
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/DeferredProcessInstanceCleanable.java
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/FilteredInstanceDeletable.java
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ScopeStateEnum.java
branches/ODE/ODE-1.x-fixes/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
branches/ODE/ODE-1.x-fixes/bpel-obj/src/main/java/org/apache/ode/bpel/o/OMessageVarType.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessStatusConverter.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImplTest.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/resources/recovery/failure-to-fault2.bpel
branches/ODE/ODE-1.x-fixes/bpel-schemas/src/main/xsd/pmapi.xsd
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference.bpel
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference1.wsdl
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference2.wsdl
branches/ODE/ODE-1.x-fixes/bpel-store/pom.xml
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java
branches/ODE/ODE-1.x-fixes/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestWait1/Wait1-2.0.bpel
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestXQueryExpression/HelloXQueryWorld.xsl
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/build.xml
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-derby.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-firebird.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-hsql.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-mysql.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-oracle.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-postgres.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql
branches/ODE/ODE-1.x-fixes/dao-hibernate/pom.xml
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/build.xml
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql
branches/ODE/ODE-1.x-fixes/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java
branches/ODE/ODE-1.x-fixes/dependencies.rb
branches/ODE/ODE-1.x-fixes/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml
branches/ODE/ODE-1.x-fixes/jbi/pom.xml
branches/ODE/ODE-1.x-fixes/jbi/src/main/assembly/bin.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/RetireJbiTest.java
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/initiateRequest.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayRequest.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayXQueryRequest.xml
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/log4j.properties
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/test.wsdl
branches/ODE/ODE-1.x-fixes/pom.xml
branches/ODE/ODE-1.x-fixes/repositories.rb
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/Job.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/JdbcDelegateTest.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java
branches/ODE/ODE-1.x-fixes/tools/src/main/java/org/apache/ode/tools/sendsoap/cline/HttpSoapSender.java
branches/ODE/ODE-1.x-fixes/utils/pom.xml
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/CronExpression.java
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/RelativeDateParser.java
Log:
* upgrade to ode 1.3.4 branch.
Modified: branches/ODE/ODE-1.x-fixes/KEYS
===================================================================
--- branches/ODE/ODE-1.x-fixes/KEYS 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/KEYS 2010-05-28 04:59:49 UTC (rev 677)
@@ -153,3 +153,63 @@
AKCCyI4u+Rwi1Lk7rd9V1bUsQyyEFw==
=u9zQ
-----END PGP PUBLIC KEY BLOCK-----
+pub 4096R/3C966102 2010-05-26
+uid Tammo van Lessen (CODE SIGNING KEY) <vanto(a)apache.org>
+sig 3 3C966102 2010-05-26 Tammo van Lessen (CODE SIGNING KEY)
<vanto(a)apache.org>
+sig 3 E42E0E4D 2010-05-26 Tammo van Lessen <tvanlessen(a)taval.de>
+sub 4096R/8400A608 2010-05-26
+sig 3C966102 2010-05-26 Tammo van Lessen (CODE SIGNING KEY)
<vanto(a)apache.org>
+
+-----BEGIN PGP PUBLIC KEY BLOCK-----
+Version: GnuPG v1.4.10 (MingW32)
+
+mQINBEv9r8oBEAC/OjGwUYyKgpQotSgt5DbEsEAk3agbH5bn2nVe7SwXuB1MHwcb
+kcSSRZcez9hM2NybrMpnYqJI4Q/pRzxSUSwGLFeSMwiUr2DpuN61tjDiA2UxM4x5
+CRPaGFt6PqeB1QJf+g1GPPfwPU/Eqn1Y4lLfvoTTjT6Hl+j0rGkNsY+3wDI7v870
+G7MX4bI+9doQRHbuxMa6AtEHv4vvFGnsPthJlydJoAuCA9kchSqKNXJxI+alczHK
+UgFXEyIBWflO6NW6LlsfA2KFqTcu1+MgwUAC3q8f9JeFUwQ5muh2sQrtBOlqrTSB
+wvx2VoSMFPkfIKFiLdx7eaKzE19BhNCn4W2IF/PpMCF3VCsf7dPOtJGB3z7DZbxc
+H+7G6RE3DOEofw3VefYDttl4JAlhElIEkC9UVOfedioQOTs8jvmiwSxS612CmO0H
+Bo+yxwjn0n0EGUFToKcTQu8lUO9evHGDwfsFm+ehj88F0s8ZhklY5JXEQcDTmya9
+JuoNcYEM/BGzgd3RvmA/XBwpBEr2qeDTJmWBtg1z0/L06LW3WqNXNNsLwk3AYpBu
+QPdJJ7WLm3mcgDYQPLQ7esGuUbbuoyTivtw7vRplmwW/Pz6jMOOVrnfHgLACYh29
+cFMOjCYWzpdAozCy8uMa3qR/elGtPCv2j1JYHTDvaBbF5/C/pttaiA8xEwARAQAB
+tDZUYW1tbyB2YW4gTGVzc2VuIChDT0RFIFNJR05JTkcgS0VZKSA8dmFudG9AYXBh
+Y2hlLm9yZz6JAjcEEwECACECGyMCHgECF4AFAkv+TPAFCwkIBwMFFQoJCAsFFgID
+AQAACgkQ2B8u2jyWYQIZtg/+PR+/NuROoArnsW9vE8nMcfRNS/gO3VIBD1BC1Jjf
+OyeHU7stmlrtGI2aIJ+WpTx3umlcaXHfzw2ijbsnvbAX6pkPqPdSidioumztg8QG
+tWCYeufEna/XIJQgiqsp2OPVr4vREEze5ZEsi7siv1r7yPlgBMV7Vujfb2RUQ2JW
+1ttnlPMdDjbbHKIim2/J7jOauP/a+6LB+HvvtEkXWj2BooOZMeUGe/4E0FxU9yaY
+SIJyw9xtxedqj2/ESwIp8P6ClownO3xcGtRhwd0OOgnExrerF1ch5MDn9eBx1QB1
+pZQUhBmj00avYz7iUA7qnXfNF0Hu/KxcashxWUhLyvb6/iAsLUOiLPOJj8Yp3z1J
+1SrFLa9AxjCIaJetYtBIj5suh0kxtN4W+6a76+xfcDuBJCvjzOZTM21J00uJQ7Me
+JvzWfy3kQcQMmIEsBC3duE052NcF5+R/OBktgbULRS+pSLqXFxCh1ENBcnZPlclI
+yDoce76WJdZvxOKvsO2/hnET6hO53IZjDluJiBrtoakaPvSDVoWZLZNa7eBfxK1B
+QzOANrXNPMvcboNsXZk5hPLwAJ3sB+qG6kVE0O6SmUG/88y4lmuHWUQGMvYehoV5
+R4eIqg2IHL41S2r/jjC9Gp6U2/67YynB6UkqaocP83Ci8Fw9zwbd16MkWbT/n7Fg
+rryIRgQTEQIABgUCS/2wjAAKCRDzgigi5C4OTSzrAJ9cGfs5+vrjtCkGOQh35MkC
+q7JGDACdEN8fA9Z4cl9xwDxmcdKztap42ea5Ag0ES/2vygEQAOCkQU40N45EzNH3
+SQ0Ze6WnNw0K4q11AMrKrkpQzGMEacxAg6V6CaL7rvCWcl9qZ/brKgMSBGU4sck2
+pzXF6rC45MOlzm8rz1THaq+P9KU4/7GiMM+1ntu4NPX9LKBANNDDtPhIdig11qJl
+N+U+nLULlv+wd1At93NssLdltOLyHRFujBbw2ZRLcJct8zkdmpmZbko1ZMKuT7VA
++59c049iZoVp8dZQaule98l6LGQjVd2qMC28SA4Cqwjp4mR+0bXb5gxFNlL3zQol
+qYoVRzoFH6vZvvksJa8REIghRb0JasHirFscI0/eiV4DvAlaM6KKI8HTTqd76CTo
+jNsYTYWap6h330jODwiXEGZJERuAJdY48PZOCeJavow8RxhzNIfRLCBUgpLNxn4f
+HQy92B7ym65GVo37GA45lXa8y1ov3g9eHhSsv+kLaKH+Hl22lvWMnFpPcxfkxBgD
+X61d8FV7ZRlpRErcGFCd+wUbfq41VEZpKRZ6fRWTQ0ooTXTQOaJv4t7amyqwED8o
+0puxZNZ5ATjTuaI6oMPVAMfhSdohqAOGiabSo4NCHfISWgg+8HmtrsD6vZlmZw2C
+W8TC0kgU6N8D7RlLyLCZg+Vbnl4qMCuTwn7iyO8dSUHWba+IecDJTh9NmBfln2fT
+y71W0tA0kuvory4G8TM8V+tFHxGLABEBAAGJAh8EGAECAAkFAkv9r8oCGwwACgkQ
+2B8u2jyWYQIJqRAAsnaiZAlI7MMoKP1MjMk7qWlkb0dFLO26/pdsaiLm+tmYt/Nm
+r+1+ROOpgZpedRVM9+ZIclwrKag7vZ6c13O5v4XssvO0rE9mnQdhW9Ts3EKO7/BN
+0gSFKPrA8JlRBRvTExCFZHLcNNmS7fyaZsiuPFPamggKThKEn6CJnUYABDopiKul
+rb089vPVzQMpYtwazaqjKh/33mSQ98BUwtb8t2gUEwCUTxmxNvgMf4GwqQp3ooVY
+Hp57v2x2lmpvooaWsm9UGO87N6ubmiJBP309Yp7XgdElXsUWeZGwPozqtKUg+jYn
+PIhshjQD+GVrWmoQ0HXzTSEPkFbmWnu2oJGTlu+AjnNKwXQQ5OB80gDDjcdQmEOI
+wPPfKkcvvg4IlGN/hTFE7OVvy3FQhD6Cy0E05wKyFX9ESpoG9uAeJ6u52LJbXcS2
+6mb9YZY8boGLWj6QabG/LDQVMlYOjM2zzYN015uOKmULvKVt3t8/016qberdMl/e
+C+kf3ivwBekplcprHBQbVK0t4JizVRFWkiPFElKh04HgP8jf3HVl/tgohf1vSVTV
+amb+vHQUM5Gzd5586gXBNs8qFBS4VvTdmCfniaDvo9ZfXJGjuLuBNhRQbP+1rNfU
+Us7l63zTphxRaa8+oRYRX+QMCBMc5v0GeHIVhvz6DwGlv3okFIRbJvx+goc=
+=DCAF
+-----END PGP PUBLIC KEY BLOCK-----
Modified: branches/ODE/ODE-1.x-fixes/Rakefile
===================================================================
--- branches/ODE/ODE-1.x-fixes/Rakefile 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/Rakefile 2010-05-28 04:59:49 UTC (rev 677)
@@ -26,7 +26,7 @@
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-SNAPSHOT"
+VERSION_NUMBER = "1.3.4"
BUNDLE_VERSIONS = {
"ode.version" => VERSION_NUMBER,
@@ -76,7 +76,7 @@
COMMONS.lang, COMMONS.logging, COMMONS.pool, DERBY, DERBY_TOOLS, JAXEN,
JAVAX.activation, JAVAX.ejb, JAVAX.javamail,
JAVAX.connector, JAVAX.jms, JAVAX.persistence, JAVAX.transaction, JAVAX.stream,
JIBX,
GERONIMO.connector, GERONIMO.kernel, GERONIMO.transaction, LOG4J, OPENJPA, SAXON,
TRANQL,
- WOODSTOX, WSDL4J, WS_COMMONS, XALAN, XERCES, XMLBEANS,
+ WOODSTOX, WSDL4J, WS_COMMONS, XALAN, XERCES, XMLBEANS, SPRING,
AXIS2_MODULES.libs
package(:war).with(:libs=>libs).path("WEB-INF").tap do |web_inf|
@@ -103,8 +103,8 @@
end
end
- 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
+ test.using :testng, :properties=>{ "log4j.debug" => true,
"log4j.configuration"=>"test-log4j.properties",
"test.ports" => ENV['TEST_PORTS'] },
:java_args=>['-Xmx1024M', '-XX:MaxPermSize=1024m']
+ 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|
cp_r _("src/main/webapp"), test.compile.target.to_s
@@ -198,8 +198,10 @@
compile.from apt
compile.with projects("bpel-api", "bpel-compiler",
"bpel-dao", "bpel-epr", "bpel-obj",
"bpel-schemas",
"bpel-store", "jacob", "jacob-ap", "utils",
"agents"),
- COMMONS.logging, COMMONS.collections, COMMONS.httpclient, JAXEN, JAVAX.persistence,
JAVAX.stream, SAXON, WSDL4J, XMLBEANS
+ COMMONS.logging, COMMONS.collections, COMMONS.httpclient, JAXEN, JAVAX.persistence,
JAVAX.stream, SAXON, WSDL4J, XMLBEANS,
+ SPRING
+
test.with projects("scheduler-simple", "dao-jpa",
"dao-hibernate", "bpel-epr"),
BACKPORT, COMMONS.pool, COMMONS.lang, DERBY, JAVAX.connector, JAVAX.transaction,
GERONIMO.transaction, GERONIMO.kernel, GERONIMO.connector, TRANQL, HSQLDB,
JAVAX.ejb,
@@ -234,7 +236,7 @@
define "bpel-store" do
compile.with projects("bpel-api", "bpel-compiler",
"bpel-dao", "bpel-obj", "bpel-schemas",
"bpel-epr",
"dao-hibernate", "dao-jpa", "utils"),
- COMMONS.logging, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, HIBERNATE,
HSQLDB, XMLBEANS, XERCES, WSDL4J, OPENJPA
+ COMMONS.logging, JAVAX.persistence, JAVAX.stream, JAVAX.transaction, HIBERNATE,
HSQLDB, XMLBEANS, XERCES, WSDL4J, OPENJPA, SPRING
compile { open_jpa_enhance }
resources hibernate_doclet(:package=>"org.apache.ode.store.hib",
:excludedtags=>"@version,@author,@todo")
@@ -246,14 +248,14 @@
desc "ODE BPEL Tests"
define "bpel-test" do
compile.with projects("bpel-api", "bpel-compiler",
"bpel-dao", "bpel-runtime",
- "bpel-store", "utils", "bpel-epr",
"dao-jpa", "agents"),
+ "bpel-store", "utils", "bpel-epr",
"dao-hibernate", "agents"),
DERBY, JUnit.dependencies, JAVAX.persistence, OPENJPA, WSDL4J, COMMONS.httpclient,
COMMONS.codec
test.with projects("bpel-obj", "jacob",
"bpel-schemas",
"bpel-scripts", "scheduler-simple"),
COMMONS.collections, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector,
- JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, LOG4J, SAXON, XERCES, XMLBEANS,
XALAN, GERONIMO.transaction
+ JAVAX.stream, JAVAX.transaction, JAXEN, HSQLDB, LOG4J, SAXON, XERCES, XMLBEANS,
XALAN, GERONIMO.transaction, SPRING, HIBERNATE, SLF4J, DOM4J
package :jar
end
Modified: branches/ODE/ODE-1.x-fixes/axis2/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/axis2/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/axis2/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -30,7 +30,6 @@
</parent>
<properties>
- <rampart.version>1.4</rampart.version>
<servlet.version>2.4</servlet.version>
</properties>
Modified: branches/ODE/ODE-1.x-fixes/axis2-war/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/axis2-war/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/axis2-war/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -32,9 +32,7 @@
</parent>
<properties>
- <rampart.version>1.4</rampart.version>
<mex.version>1.41</mex.version>
- <axis2.version>1.4.1</axis2.version>
<jibx.version>1.1.5</jibx.version>
<tranql.version>1.1</tranql.version>
<opensaml.version>1.1</opensaml.version>
@@ -94,9 +92,8 @@
<artifactId>riftsaw-axis2</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-corba</artifactId>
- <version>${axis2.version}</version>
+ <groupId>org.jboss.soa.bpel</groupId>
+ <artifactId>riftsaw-bpel-ql</artifactId>
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
@@ -176,6 +173,11 @@
<version>${geronimo-spec-jms.version}</version>
</dependency>
<dependency>
+ <groupId>org.apache.geronimo.specs</groupId>
+ <artifactId>geronimo-ejb_2.1_spec</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
<groupId>org.apache.geronimo.modules</groupId>
<artifactId>geronimo-kernel</artifactId>
</dependency>
@@ -183,6 +185,7 @@
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</dependency>
+ <!--
<dependency>
<groupId>org.apache.rampart</groupId>
<artifactId>rampart</artifactId>
@@ -207,6 +210,7 @@
<type>mar</type>
<version>${mex.version}</version>
</dependency>
+ -->
<dependency>
<groupId>org.apache.axis2</groupId>
<artifactId>mex</artifactId>
Modified: branches/ODE/ODE-1.x-fixes/axis2-war/src/main/assembly/bin.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/axis2-war/src/main/assembly/bin.xml 2010-05-27 16:08:03 UTC
(rev 676)
+++ branches/ODE/ODE-1.x-fixes/axis2-war/src/main/assembly/bin.xml 2010-05-28 04:59:49 UTC
(rev 677)
@@ -86,7 +86,7 @@
<include>org.apache.axis2:axis2-adb</include>
<include>org.apache.axis2:axis2-adb-codegen</include>
<include>org.apache.axis2:axis2-codegen</include>
- <include>org.apache.axis2:axis2-corba</include>
+ <include>org.jboss.soa.bpel:riftsaw-bpel-ql</include>
<include>org.apache.axis2:axis2-fastinfoset</include>
<include>org.apache.axis2:axis2-java2wsdl</include>
<include>org.apache.axis2:axis2-jaxbri</include>
@@ -111,6 +111,7 @@
<include>commons-lang:commons-lang</include>
<include>commons-pool:commons-pool</include>
<include>commons-io:commons-io</include>
+ <include>commons-beanutils:commons-beanutils</include>
<include>commons-httpclient:commons-httpclient</include>
<include>commons-logging:commons-logging</include>
<include>commons-fileupload:commons-fileupload</include>
@@ -167,6 +168,7 @@
<include>xml-apis:xml-apis</include>
<include>javax.mail:mail</include>
<include>axion:axion</include>
+ <include>org.springframework:spring</include>
</includes>
</dependencySet>
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/main/webapp/WEB-INF/classes/log4j.properties 2010-05-28
04:59:49 UTC (rev 677)
@@ -22,13 +22,13 @@
log4j.category.org.mortbay=ERROR
log4j.category.org.hibernate.type=WARN
log4j.category.org.objectweb=ERROR
-log4j.category.org.apache.ode.axis2=DEBUG
+log4j.category.org.apache.ode.axis2=INFO
log4j.category.org.apache.ode.axis2.hooks.SessionInHandler=INFO
-log4j.category.org.apache.ode.bpel.engine=DEBUG
+log4j.category.org.apache.ode.bpel.engine=INFO
log4j.category.org.apache.ode.bpel.engine.cron=INFO
-log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=DEBUG
+log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=INFO
log4j.category.org.apache.ode.bpel.epr=INFO
-log4j.category.org.apache.ode.sql=DEBUG
+log4j.category.org.apache.ode.sql=INFO
# Console appender
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
Added: branches/ODE/ODE-1.x-fixes/axis2-war/src/test/TimeService-soapui-project.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/axis2-war/src/test/TimeService-soapui-project.xml
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/TimeService-soapui-project.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<con:soapui-project name="TimeService" resourceRoot=""
soapui-version="3.5-beta1"
xmlns:con="http://eviware.com/soapui/config"><con:setting...
xsi:type="con:WsdlInterface" wsaVersion="NONE"
name="TimeServiceSoap" type="wsdl"
bindingName="{http://ws.intalio.com/TimeService/}TimeServiceSoap"
soapVersion="1_1" anonymous="optional"
definition="file:/home/joker/mind/intalio/pxe/axis2-war/src/test/resources/TestCleanSuccess_All/TimeService.wsdl"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><co...
type="TEXT"
rootPart="file:/home/joker/mind/intalio/pxe/axis2-war/src/test/resources/TestCleanSuccess_All/TimeService.wsdl"><con:part><con:url>file:/home/joker/mind/intalio/pxe/axis2-war/src/test/resources/TestCleanSuccess_All/TimeService.wsdl</con:url><con:content><![CDATA[<!--~
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://ws.intalio.com/TimeService/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://ws.intalio.com/TimeService/"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+ <wsdl:documentation>A sample Time service</wsdl:documentation>
+ <wsdl:types>
+ <s:schema elementFormDefault="qualified"
targetNamespace="http://ws.intalio.com/TimeService/">
+ <s:element name="getUTCTime" type="s:string"/>
+ <s:element name="getUTCTimeResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1"
name="getUTCTimeResult" type="s:string"/>
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="getCityTime">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1"
name="city" type="s:string"/>
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ <s:element name="getCityTimeResponse">
+ <s:complexType>
+ <s:sequence>
+ <s:element minOccurs="0" maxOccurs="1"
name="getCityTimeResult" type="s:string"/>
+ </s:sequence>
+ </s:complexType>
+ </s:element>
+ </s:schema>
+ </wsdl:types>
+ <wsdl:message name="getUTCTimeSoapIn">
+ <wsdl:part name="parameters" element="tns:getUTCTime"/>
+ </wsdl:message>
+ <wsdl:message name="getUTCTimeSoapOut">
+ <wsdl:part name="parameters"
element="tns:getUTCTimeResponse"/>
+ </wsdl:message>
+ <wsdl:message name="getCityTimeSoapIn">
+ <wsdl:part name="parameters" element="tns:getCityTime"/>
+ </wsdl:message>
+ <wsdl:message name="getCityTimeSoapOut">
+ <wsdl:part name="parameters"
element="tns:getCityTimeResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="TimeServiceSoap">
+ <wsdl:operation name="getUTCTime">
+ <wsdl:input message="tns:getUTCTimeSoapIn"/>
+ <wsdl:output message="tns:getUTCTimeSoapOut"/>
+ </wsdl:operation>
+ <wsdl:operation name="getCityTime">
+ <wsdl:input message="tns:getCityTimeSoapIn"/>
+ <wsdl:output message="tns:getCityTimeSoapOut"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="TimeServiceSoap"
type="tns:TimeServiceSoap">
+ <soap:binding
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="getUTCTime">
+ <soap:operation
soapAction="http://ws.intalio.com/TimeService/getUTCTime"
style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="getCityTime">
+ <soap:operation
soapAction="http://ws.intalio.com/TimeService/getCityTime"
style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="TimeService">
+ <wsdl:documentation>A sample Time service</wsdl:documentation>
+ <wsdl:port name="TimeServiceSoap"
binding="tns:TimeServiceSoap">
+ <soap:address
location="http://ws.intalio.com/TimeService/"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache><con:endpoints><con:endpoint>http://ws.intalio.com/TimeService/</con:endpoint><con:endpoint>http://joker-laptop:8088/TimeService/</con:endpoint></con:endpoints><con:operation
isOneWay="false"
action="http://ws.intalio.com/TimeService/getCityTime"
name="getCityTime" bindingOperationName="getCityTime"
type="Request-Response" inputName=""
receivesAttachments="false" sendsAttachments="false"
anonymous="optional"><con:settings/><con:call name="Request
1"><con:settings/><con:encoding>UTF-8</con:encodin...
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tim="http://ws.intalio.com/TimeService/">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <tim:getCityTime>
+ <!--Optional:-->
+ <tim:city>?</tim:city>
+ </tim:getCityTime>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:wsaConfig
mustUnderstand="NONE" version="200508"
action="http://ws.intalio.com/TimeService/getCityTime"/><...
isOneWay="false"
action="http://ws.intalio.com/TimeService/getUTCTime"
name="getUTCTime" bindingOperationName="getUTCTime"
type="Request-Response" inputName=""
receivesAttachments="false" sendsAttachments="false"
anonymous="optional"><con:settings/><con:call name="Request
1"><con:settings/><con:encoding>UTF-8</con:encodin...
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tim="http://ws.intalio.com/TimeService/">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <tim:getUTCTime>?</tim:getUTCTime>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:request><con:wsaConfig
mustUnderstand="NONE" version="200508"
action="http://ws.intalio.com/TimeService/getUTCTime"/></...
port="8088" path="/TimeService/" host="joker-laptop"
name="TimeServiceSoap MockService" bindToHostOnly="false"
docroot=""><con:settings><con:setting
id="com.eviware.soapui.impl.wsdl.mock.WsdlMockService@require-soap-action">false</con:setting></con:settings><con:mockOperation
name="getCityTime" interface="TimeServiceSoap"
operation="getCityTime"><con:settings/><con:dispatchStyle>SEQUENCE</con:dispatchStyle><con:defaultResponse>Response
1</con:defaultResponse><con:response name="Response 1"
encoding="UTF-8"><con:settings/><con:responseContent><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tim="http://ws.intalio.com/TimeService/">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <tim:getCityTimeResponse>
+ <!--Optional:-->
+ <tim:getCityTimeResult>?</tim:getCityTimeResult>
+ </tim:getCityTimeResponse>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:responseContent><con:wsaConfig
mustUnderstand="NONE" version="200508"
action="http://ws.intalio.com/TimeService/getCityTime"/><...
name="getUTCTime" interface="TimeServiceSoap"
operation="getUTCTime"><con:settings/><con:dispatchStyle>SEQUENCE</con:dispatchStyle><con:defaultResponse>Response
1</con:defaultResponse><con:response name="Response 1"
encoding="UTF-8"><con:settings/><con:responseContent><![CDATA[<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:tim="http://ws.intalio.com/TimeService/">
+ <soapenv:Header/>
+ <soapenv:Body>
+ <tim:getUTCTimeResponse>
+ <!--Optional:-->
+ <tim:getUTCTimeResult>?</tim:getUTCTimeResult>
+ </tim:getUTCTimeResponse>
+ </soapenv:Body>
+</soapenv:Envelope>]]></con:responseContent><con:wsaConfig
mustUnderstand="NONE" version="200508"
action="http://ws.intalio.com/TimeService/getUTCTime"/></...
\ No newline at end of file
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/SelectorsTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/SelectorsTest.java
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/SelectorsTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,50 @@
+/*
+ * 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.axis2;
+
+import org.testng.annotations.Test;
+import static org.testng.AssertJUnit.assertTrue;
+
+/**
+ * Tests that timeouts set in the *.endpoint files are applied.
+ * The test is designed so a fault must be received.
+ *
+ * Actually, the process invokes a 3-sec long operation (see the process request).
+ * The specified timeouts are lesser than 3-sec, so if properly applied, a fault should
be trown.
+ * If not applied, the default 120-sec timeouts will be used. 5sec < 120sec, so the
request will succeed.
+ *
+ */
+public class SelectorsTest extends Axis2TestBase implements ODEConfigDirAware {
+ @Test(dataProvider="configs")
+ public void testNoP2P() throws Exception {
+ String bundleName = "TestSelectors";
+ if (server.isDeployed(bundleName)) server.undeployProcess(bundleName);
+ server.deployProcess(bundleName);
+ String response =
server.sendRequestFile("http://localhost:8888/ode/processes/Project-Reproduce-Isolation-Problem/ReproduceIsolationProblem/Pool2/Pool",
+ bundleName, "testRequest.soap");
+ System.out.println(response);
+ assertTrue(response.contains("_21Response"));
+ if (server.isDeployed(bundleName)) server.undeployProcess(bundleName);
+ }
+
+ public String getODEConfigDir() {
+ return HIB_DERBY_CONF_DIR;
+ }
+}
\ No newline at end of file
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/ProcessCronCleanupTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/ProcessCronCleanupTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/ProcessCronCleanupTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.axis2.instancecleanup;
import org.apache.ode.bpel.dao.ProcessDAO;
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/java/org/apache/ode/axis2/instancecleanup/SystemCronCleanupTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.axis2.instancecleanup;
import org.apache.commons.logging.LogFactory;
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.bpel
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,102 @@
+<?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.
+ -->
+<bpel:process
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ode="http://www.apache.org/ode/type/extension"
xmlns:Pool3="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:this="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:Pool="http://example.com/ReproduceIsolationProblem/Pool"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:bpmn="http://www.intalio.com/bpms"
xmlns:atomic="http://ode.apache.org/atomicScope"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
bpmn:label="Pool2" name="Pool2"
bpmn:id="_bR-rAFOnEd-qUNL1xc5jrA" t!
argetNamespace="http://example.com/ReproduceIsolationProblem/Pool2&q...
+ <bpel:import
namespace="http://example.com/ReproduceIsolationProblem"
location="ReproduceIsolationProblem.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
+ <bpel:import
namespace="http://example.com/ReproduceIsolationProblem/Pool2"
location="ReproduceIsolationProblem-Pool2.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
+ <bpel:import
namespace="http://example.com/ReproduceIsolationProblem/Pool3"
location="ReproduceIsolationProblem-Pool3.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
+ <bpel:partnerLinks>
+ <bpel:partnerLink name="pool2AndPoolPlkVar"
partnerLinkType="diag:Pool2AndPool" myRole="Pool2_for_Pool"/>
+ <bpel:partnerLink name="pool3AndPool2PlkVar"
partnerLinkType="diag:Pool3AndPool2" initializePartnerRole="yes"
partnerRole="Pool3_for_Pool2"/>
+ </bpel:partnerLinks>
+ <bpel:variables>
+ <bpel:variable name="this_21RequestMsg"
messageType="this:_21Request"/>
+ <bpel:variable name="pool3_31RequestMsg"
messageType="Pool3:_31Request"/>
+ <bpel:variable name="pool3_32RequestMsg"
messageType="Pool3:_32Request"/>
+ <bpel:variable name="pool3_33RequestMsg"
messageType="Pool3:_33Request"/>
+ <bpel:variable name="pool3_32ResponseMsg"
messageType="Pool3:_32Response"/>
+ <bpel:variable name="pool3_33ResponseMsg"
messageType="Pool3:_33Response"/>
+ <bpel:variable name="this_21ResponseMsg"
messageType="this:_21Response"/>
+ </bpel:variables>
+ <bpel:sequence>
+ <bpel:receive partnerLink="pool2AndPoolPlkVar"
portType="this:ForPool" operation="_21"
variable="this_21RequestMsg" createInstance="yes"
bpmn:label="21" name="_21"
bpmn:id="_bzzlsFOnEd-qUNL1xc5jrA"></bpel:receive>
+ <bpel:assign name="init-variables-Pool2"
bpmn:id="_bzzlsFOnEd-qUNL1xc5jrA">
+ <bpel:copy bpmn:label="$pool3_31RequestMsg">
+ <bpel:from>
+ <bpel:literal>
+<Pool3:_31Request></Pool3:_31Request></bpel:literal>
+ </bpel:from>
+ <bpel:to>$pool3_31RequestMsg.body</bpel:to>
+ </bpel:copy>
+ <bpel:copy bpmn:label="$pool3_32RequestMsg">
+ <bpel:from>
+ <bpel:literal>
+<Pool3:_32Request></Pool3:_32Request></bpel:literal>
+ </bpel:from>
+ <bpel:to>$pool3_32RequestMsg.body</bpel:to>
+ </bpel:copy>
+ <bpel:copy bpmn:label="$pool3_33RequestMsg">
+ <bpel:from>
+ <bpel:literal>
+<Pool3:_33Request></Pool3:_33Request></bpel:literal>
+ </bpel:from>
+ <bpel:to>$pool3_33RequestMsg.body</bpel:to>
+ </bpel:copy>
+ <bpel:copy bpmn:label="$this_21ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_21Response></this:_21Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_21ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:assign bpmn:label="22" name="_22"
bpmn:id="_lf1mIFOnEd-qUNL1xc5jrA">
+ <bpel:copy>
+ <bpel:from>$ode:pid</bpel:from>
+ <bpel:to>$pool3_31RequestMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:invoke partnerLink="pool3AndPool2PlkVar"
portType="Pool3:ForPool2" operation="_31"
inputVariable="pool3_31RequestMsg" bpmn:label="22"
name="_22-1"
bpmn:id="_lf1mIFOnEd-qUNL1xc5jrA"></bpel:invoke>
+ <bpel:flow bpmn:label="Parallel_Gateway"
name="Parallel_Gateway" bpmn:id="_iyPXcFOnEd-qUNL1xc5jrA">
+ <bpel:sequence>
+ <bpel:assign bpmn:label="23" name="_23"
bpmn:id="_vhobMFOnEd-qUNL1xc5jrA">
+ <bpel:copy>
+ <bpel:from>$ode:pid</bpel:from>
+ <bpel:to>$pool3_32RequestMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:invoke partnerLink="pool3AndPool2PlkVar"
portType="Pool3:ForPool2" operation="_32"
inputVariable="pool3_32RequestMsg"
outputVariable="pool3_32ResponseMsg" bpmn:label="23"
name="_23-1"
bpmn:id="_vhobMFOnEd-qUNL1xc5jrA"></bpel:invoke>
+ </bpel:sequence>
+ <bpel:sequence>
+ <bpel:wait bpmn:label="wait 10 sec" name="wait_10_sec"
bpmn:id="_wlu8gFOnEd-qUNL1xc5jrA">
+ <bpel:for>"PT1S"</bpel:for>
+ </bpel:wait>
+ <bpel:assign bpmn:label="34" name="_34"
bpmn:id="_xAHLYFOnEd-qUNL1xc5jrA">
+ <bpel:copy>
+ <bpel:from>$ode:pid</bpel:from>
+ <bpel:to>$pool3_33RequestMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:invoke partnerLink="pool3AndPool2PlkVar"
portType="Pool3:ForPool2" operation="_33"
inputVariable="pool3_33RequestMsg"
outputVariable="pool3_33ResponseMsg" bpmn:label="34"
name="_34-1"
bpmn:id="_xAHLYFOnEd-qUNL1xc5jrA"></bpel:invoke>
+ </bpel:sequence>
+ </bpel:flow>
+ <bpel:invoke partnerLink="pool3AndPool2PlkVar"
portType="Pool3:ForPool2" operation="_33"
inputVariable="pool3_33RequestMsg"
outputVariable="pool3_33ResponseMsg" bpmn:label="34"
name="_34-1"
bpmn:id="_xAHLYFOnEd-qUNL1xc5jrA"></bpel:invoke>
+ <bpel:reply partnerLink="pool2AndPoolPlkVar"
portType="this:ForPool" operation="_21"
variable="this_21ResponseMsg" bpmn:label="Task" name="Task"
bpmn:id="_7W620FRaEd-y87rmjcz7YQ"></bpel:reply>
+ </bpel:sequence>
+</bpel:process>
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.wsdl
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool2.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,56 @@
+<?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
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:this="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:Pool3="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:Pool="http://example.com/ReproduceIsolationProblem/Pool"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
targetNamespace="http://example.com/ReproduceIsolationProblem/Pool2&...
+ <wsdl:types>
+ <xs:schema elementFormDefault="qualified"
targetNamespace="http://example.com/ReproduceIsolationProblem/Pool2&...
+ <xs:element name="_21Request" type="xs:string"/>
+ <xs:element name="_21Response" type="xs:string"/>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="_21Request">
+ <wsdl:part name="body" element="this:_21Request"/>
+ </wsdl:message>
+ <wsdl:message name="_21Response">
+ <wsdl:part name="body" element="this:_21Response"/>
+ </wsdl:message>
+ <wsdl:portType name="ForPool">
+ <wsdl:operation name="_21">
+ <wsdl:input message="this:_21Request" name="_21"/>
+ <wsdl:output message="this:_21Response"
name="_21Response"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CanonicBindingForPool"
type="this:ForPool">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="_21">
+ <soap:operation style="document"
soapAction="http://example.com/ReproduceIsolationProblem/Pool2/ForPo...
+ <wsdl:input name="_21">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="_21Response">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CanonicServiceForPool">
+ <wsdl:port name="canonicPort"
binding="this:CanonicBindingForPool">
+ <soap:address
location="http://localhost:8080/ode/processes/Project-Reproduce-Isolation-Problem/ReproduceIsolationProblem/Pool2/Pool"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.bpel
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,127 @@
+<?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.
+ -->
+<bpel:process
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ode="http://www.apache.org/ode/type/extension"
xmlns:this="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:Pool2="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:bpmn="http://www.intalio.com/bpms"
xmlns:atomic="http://ode.apache.org/atomicScope"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
bpmn:label="Pool3" name="Pool3"
bpmn:id="_jihk4FOnEd-qUNL1xc5jrA"
targetNamespace="http://example.com/ReproduceIsolationProblem/Po!
ol3">
+ <bpel:import
namespace="http://example.com/ReproduceIsolationProblem"
location="ReproduceIsolationProblem.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
+ <bpel:import
namespace="http://example.com/ReproduceIsolationProblem/Pool3"
location="ReproduceIsolationProblem-Pool3.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
+ <bpel:partnerLinks>
+ <bpel:partnerLink name="pool3AndPool2PlkVar"
partnerLinkType="diag:Pool3AndPool2" myRole="Pool3_for_Pool2"/>
+ </bpel:partnerLinks>
+ <bpel:correlationSets>
+ <bpel:correlationSet name="newCorrelationSet"
properties="this:prop"/>
+ </bpel:correlationSets>
+ <bpel:variables>
+ <bpel:variable name="this_31RequestMsg"
messageType="this:_31Request"/>
+ </bpel:variables>
+ <bpel:sequence>
+ <bpel:receive partnerLink="pool3AndPool2PlkVar"
portType="this:ForPool2" operation="_31"
variable="this_31RequestMsg" createInstance="yes"
bpmn:label="31" name="_31"
bpmn:id="_k1rO0FOnEd-qUNL1xc5jrA">
+ <bpel:correlations>
+ <bpel:correlation set="newCorrelationSet"
initiate="join"/>
+ </bpel:correlations>
+ </bpel:receive>
+ <bpel:scope bpmn:label="outer-SubProcess"
name="outer-SubProcess" bpmn:id="_-IzjIFOrEd-qUNL1xc5jrA">
+ <bpel:forEach bpmn:label="SubProcess" name="SubProcess"
bpmn:id="_-IzjIFOrEd-qUNL1xc5jrA" parallel="no"
counterName="emptyCounter">
+ <bpel:startCounterValue>0</bpel:startCounterValue>
+ <bpel:finalCounterValue>2</bpel:finalCounterValue>
+ <completionCondition>
+ <bpel:branches>2</bpel:branches>
+ </completionCondition>
+ <bpel:scope bpmn:label="SubProcess" name="SubProcess-1"
bpmn:id="_-IzjIFOrEd-qUNL1xc5jrA">
+ <bpel:variables>
+ <bpel:variable name="this_33RequestMsg"
messageType="this:_33Request"/>
+ <bpel:variable name="this_32ResponseMsg"
messageType="this:_32Response"/>
+ <bpel:variable name="this_32RequestMsg"
messageType="this:_32Request"/>
+ <bpel:variable name="this_33ResponseMsg"
messageType="this:_33Response"/>
+ </bpel:variables>
+ <bpel:sequence>
+ <bpel:assign name="init-variables-SubProcess"
bpmn:id="_-IzjIFOrEd-qUNL1xc5jrA">
+ <bpel:copy bpmn:label="$this_32ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_32Response></this:_32Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_32ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ <bpel:copy bpmn:label="$this_33ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_33Response></this:_33Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_33ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:pick bpmn:label="Exclusive_Event-Based_Gateway"
name="Exclusive_Event-Based_Gateway"
bpmn:id="_rFdx4FOnEd-qUNL1xc5jrA">
+ <bpel:onMessage partnerLink="pool3AndPool2PlkVar"
portType="this:ForPool2" operation="_32"
variable="this_32RequestMsg" bpmn:label="32" name="_32"
bpmn:id="_tDPGIFOnEd-qUNL1xc5jrA">
+ <bpel:correlations>
+ <bpel:correlation set="newCorrelationSet"
initiate="join"/>
+ </bpel:correlations>
+ <bpel:sequence>
+ <bpel:assign name="init-variables-SubProcess"
bpmn:id="_-IzjIFOrEd-qUNL1xc5jrA">
+ <bpel:copy bpmn:label="$this_32ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_32Response></this:_32Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_32ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ <bpel:copy bpmn:label="$this_33ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_33Response></this:_33Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_33ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:wait bpmn:label="wait 30 seconds"
name="wait_30_seconds" bpmn:id="_0iKV0FOnEd-qUNL1xc5jrA">
+ <bpel:for>"PT3S"</bpel:for>
+ </bpel:wait>
+ <bpel:reply partnerLink="pool3AndPool2PlkVar"
portType="this:ForPool2" operation="_32"
variable="this_32ResponseMsg" bpmn:label="34" name="_34"
bpmn:id="_2OMZ0FOnEd-qUNL1xc5jrA"></bpel:reply>
+ </bpel:sequence>
+ </bpel:onMessage>
+ <bpel:onMessage partnerLink="pool3AndPool2PlkVar"
portType="this:ForPool2" operation="_33"
variable="this_33RequestMsg" bpmn:label="33" name="_33"
bpmn:id="_uhaUUFOnEd-qUNL1xc5jrA">
+ <bpel:correlations>
+ <bpel:correlation set="newCorrelationSet"
initiate="join"/>
+ </bpel:correlations>
+ <bpel:sequence>
+ <bpel:assign name="init-variables-SubProcess"
bpmn:id="_-IzjIFOrEd-qUNL1xc5jrA">
+ <bpel:copy bpmn:label="$this_32ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_32Response></this:_32Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_32ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ <bpel:copy bpmn:label="$this_33ResponseMsg">
+ <bpel:from>
+ <bpel:literal>
+<this:_33Response></this:_33Response></bpel:literal>
+ </bpel:from>
+ <bpel:to>$this_33ResponseMsg.body</bpel:to>
+ </bpel:copy>
+ </bpel:assign>
+ <bpel:reply partnerLink="pool3AndPool2PlkVar"
portType="this:ForPool2" operation="_33"
variable="this_33ResponseMsg" bpmn:label="33 reply"
name="_33_reply"
bpmn:id="_xW4AYFO5Ed-_Q-SZnn1pGA"></bpel:reply>
+ </bpel:sequence>
+ </bpel:onMessage>
+ </bpel:pick>
+ </bpel:sequence>
+ </bpel:scope>
+ </bpel:forEach>
+ </bpel:scope>
+ </bpel:sequence>
+</bpel:process>
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.wsdl
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem-Pool3.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,100 @@
+<?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
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:this="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:Pool2="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
targetNamespace="http://example.com/ReproduceIsolationProblem/Pool3&...
+ <wsdl:types>
+ <xs:schema elementFormDefault="qualified"
targetNamespace="http://example.com/ReproduceIsolationProblem/Pool3&...
+ <xs:element name="_31Request" type="xs:string"/>
+ <xs:element name="_32Request" type="xs:string"/>
+ <xs:element name="_32Response" type="xs:string"/>
+ <xs:element name="_33Request" type="xs:string"/>
+ <xs:element name="_33Response" type="xs:string"/>
+ </xs:schema>
+ </wsdl:types>
+ <wsdl:message name="_31Request">
+ <wsdl:part name="body" element="this:_31Request"/>
+ </wsdl:message>
+ <wsdl:message name="_32Request">
+ <wsdl:part name="body" element="this:_32Request"/>
+ </wsdl:message>
+ <wsdl:message name="_32Response">
+ <wsdl:part name="body" element="this:_32Response"/>
+ </wsdl:message>
+ <wsdl:message name="_33Request">
+ <wsdl:part name="body" element="this:_33Request"/>
+ </wsdl:message>
+ <wsdl:message name="_33Response">
+ <wsdl:part name="body" element="this:_33Response"/>
+ </wsdl:message>
+ <wsdl:portType name="ForPool2">
+ <wsdl:operation name="_31">
+ <wsdl:input message="this:_31Request" name="_31"/>
+ </wsdl:operation>
+ <wsdl:operation name="_32">
+ <wsdl:input message="this:_32Request" name="_32"/>
+ <wsdl:output message="this:_32Response"
name="_32Response"/>
+ </wsdl:operation>
+ <wsdl:operation name="_33">
+ <wsdl:input message="this:_33Request" name="_33"/>
+ <wsdl:output message="this:_33Response"
name="_33Response"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="CanonicBindingForPool2"
type="this:ForPool2">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="_31">
+ <soap:operation style="document"
soapAction="http://example.com/ReproduceIsolationProblem/Pool3/ForPo...
+ <wsdl:input name="_31">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ </wsdl:operation>
+ <wsdl:operation name="_32">
+ <soap:operation style="document"
soapAction="http://example.com/ReproduceIsolationProblem/Pool3/ForPo...
+ <wsdl:input name="_32">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="_32Response">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ <wsdl:operation name="_33">
+ <soap:operation style="document"
soapAction="http://example.com/ReproduceIsolationProblem/Pool3/ForPo...
+ <wsdl:input name="_33">
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output name="_33Response">
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="CanonicServiceForPool2">
+ <wsdl:port name="canonicPort"
binding="this:CanonicBindingForPool2">
+ <soap:address
location="http://localhost:8080/ode/processes/Project-Reproduce-Isolation-Problem/ReproduceIsolationProblem/Pool3/Pool2"/>
+ </wsdl:port>
+ </wsdl:service>
+ <vprop:property name="prop" type="xs:string"/>
+ <vprop:propertyAlias propertyName="this:prop"
messageType="this:_31Request" part="body">
+ <vprop:query>text()</vprop:query>
+ </vprop:propertyAlias>
+ <vprop:propertyAlias propertyName="this:prop"
messageType="this:_33Request" part="body">
+ <vprop:query>text()</vprop:query>
+ </vprop:propertyAlias>
+ <vprop:propertyAlias propertyName="this:prop"
messageType="this:_32Request" part="body">
+ <vprop:query>text()</vprop:query>
+ </vprop:propertyAlias>
+</wsdl:definitions>
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.svg
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.svg
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.svg 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,739 @@
+<?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.
+ -->
+<svg
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" stroke-dasharray="none"
shape-rendering="auto" font-family="'Dialog'"
width="1549" text-rendering="auto" fill-opacity="1"
contentScriptType="text/ecmascript" color-interpolation="auto"
color-rendering="auto" preserveAspectRatio="xMidYMid meet"
font-size="12" viewBox="0 0 1549 814" fill="black"
stroke="black" image-rendering="auto" stroke-miterlimit="10"
zoomAndPan="magnify" version="1.0" stroke-linecap="square"
stroke-linejoin="miter" contentStyleType="text/css"
font-style="normal" height="814" stroke-width="1"
stroke-dashoffset="0" font-weight="normal"
stroke-opacity="1"
xmlns:bpmn="http://www.intalio.com/bpms">
+<!--Generated by the Batik Graphics2D SVG Generator-->
+<defs id="genericDefs"/>
+<g>
+<defs id="defs1">
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath1">
+<path d="M38 38 L1540 38 L1540 240 L38 240 L38 38 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath2">
+<path d="M44 123 L66 123 L66 154 L44 154 L44 123 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath3">
+<path d="M125 114 L238 114 L238 177 L125 177 L125 114 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath4">
+<path d="M166 135 L193 135 L193 151 L166 151 L166 135 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath5">
+<path d="M64 39 L1539 39 L1539 239 L64 239 L64 39 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath6">
+<path d="M38 272 L1540 272 L1540 543 L38 543 L38 272 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath7">
+<path d="M44 388 L66 388 L66 426 L44 426 L44 388 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath8">
+<path d="M108 319 L221 319 L221 382 L108 382 L108 319 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath9">
+<path d="M154 340 L170 340 L170 356 L154 356 L154 340 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath10">
+<path d="M411 319 L467 319 L467 375 L411 375 L411 319 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath11">
+<path d="M411 319 L463 319 L463 371 L411 371 L411 319 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath12">
+<path d="M259 319 L372 319 L372 382 L259 382 L259 319 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath13">
+<path d="M305 340 L321 340 L321 356 L305 356 L305 340 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath14">
+<path d="M651 302 L764 302 L764 365 L651 365 L651 302 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath15">
+<path d="M697 323 L713 323 L713 339 L697 339 L697 323 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath16">
+<path d="M459 425 L495 425 L495 461 L459 461 L459 425 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath17">
+<path d="M459 425 L491 425 L491 457 L459 457 L459 425 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath18">
+<path d="M446 463 L509 463 L509 479 L446 479 L446 463 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath19">
+<path d="M576 411 L689 411 L689 474 L576 474 L576 411 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath20">
+<path d="M622 432 L638 432 L638 448 L622 448 L622 432 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath21">
+<path d="M902 315 L1015 315 L1015 378 L902 378 L902 315 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath22">
+<path d="M943 336 L970 336 L970 352 L943 352 L943 336 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath23">
+<path d="M64 273 L1539 273 L1539 542 L64 542 L64 273 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath24">
+<path d="M38 557 L1540 557 L1540 805 L38 805 L38 557 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath25">
+<path d="M44 662 L66 662 L66 700 L44 700 L44 662 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath26">
+<path d="M245 610 L358 610 L358 673 L245 673 L245 610 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath27">
+<path d="M291 631 L307 631 L307 647 L291 647 L291 631 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath28">
+<path d="M437 575 L1010 575 L1010 799 L437 799 L437 575 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath29">
+<path d="M586 580 L699 580 L699 643 L586 643 L586 580 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath30">
+<path d="M632 601 L648 601 L648 617 L632 617 L632 601 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath31">
+<path d="M888 580 L1001 580 L1001 643 L888 643 L888 580 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath32">
+<path d="M934 601 L950 601 L950 617 L934 617 L934 601 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath33">
+<path d="M442 643 L498 643 L498 699 L442 699 L442 643 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath34">
+<path d="M442 643 L494 643 L494 695 L442 695 L442 643 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath35">
+<path d="M795 594 L831 594 L831 630 L795 630 L795 594 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath36">
+<path d="M795 594 L827 594 L827 626 L795 626 L795 594 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath37">
+<path d="M768 632 L858 632 L858 648 L768 648 L768 632 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath38">
+<path d="M705 692 L818 692 L818 755 L705 755 L705 692 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath39">
+<path d="M751 713 L767 713 L767 729 L751 729 L751 713 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath40">
+<path d="M859 692 L972 692 L972 755 L859 755 L859 692 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath41">
+<path d="M890 713 L936 713 L936 729 L890 729 L890 713 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath42">
+<path d="M64 558 L1539 558 L1539 804 L64 804 L64 558 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath43">
+<path d="M-1 -1 L1550 -1 L1550 815 L-1 815 L-1 -1 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath44">
+<path d="M895 331 L905 331 L905 340 L895 340 L895 331 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath45">
+<path d="M644 327 L654 327 L654 336 L644 336 L644 327 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath46">
+<path d="M404 341 L414 341 L414 350 L404 350 L404 341 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath47">
+<path d="M252 344 L262 344 L262 353 L252 353 L252 344 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath48">
+<path d="M569 436 L579 436 L579 445 L569 445 L569 436 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath49">
+<path d="M895 350 L905 350 L905 359 L895 359 L895 350 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath50">
+<path d="M452 437 L462 437 L462 446 L452 446 L452 437 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath51">
+<path d="M579 605 L589 605 L589 614 L579 614 L579 605 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath52">
+<path d="M788 605 L798 605 L798 614 L788 614 L788 605 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath53">
+<path d="M430 676 L440 676 L440 685 L430 685 L430 676 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath54">
+<path d="M698 717 L708 717 L708 726 L698 726 L698 717 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath55">
+<path d="M852 717 L862 717 L862 726 L852 726 L852 717 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath56">
+<path d="M881 605 L891 605 L891 614 L881 614 L881 605 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath57">
+<path d="M156 167 L166 167 L166 177 L156 177 L156 167 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath58">
+<path d="M156 313 L167 313 L167 322 L156 322 L156 313 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath59">
+<path d="M308 372 L318 372 L318 382 L308 382 L308 372 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath60">
+<path d="M294 604 L305 604 L305 613 L294 613 L294 604 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath61">
+<path d="M682 355 L692 355 L692 365 L682 365 L682 355 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath62">
+<path d="M635 574 L646 574 L646 583 L635 583 L635 574 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath63">
+<path d="M607 464 L617 464 L617 474 L607 474 L607 464 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath64">
+<path d="M754 686 L765 686 L765 695 L754 695 L754 686 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath65">
+<path d="M937 576 L947 576 L947 586 L937 586 L937 576 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath66">
+<path d="M717 359 L728 359 L728 368 L717 368 L717 359 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath67">
+<path d="M908 688 L918 688 L918 698 L908 698 L908 688 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath68">
+<path d="M642 468 L653 468 L653 477 L642 477 L642 468 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath69">
+<path d="M951 311 L961 311 L961 321 L951 321 L951 311 Z"/>
+</clipPath>
+<clipPath clipPathUnits="userSpaceOnUse" id="clipPath70">
+<path d="M191 171 L202 171 L202 180 L191 180 L191 171 Z"/>
+</clipPath>
+</defs>
+<g font-size="16" fill="rgb(139,139,153)"
font-family="'Arial'" stroke-linejoin="round"
stroke="rgb(139,139,153)" stroke-miterlimit="0">
+<rect x="39" y="39" clip-path="url(#clipPath1)"
width="26" height="200" stroke="none"
bpmn:process-id="_ao2OcFOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool"/>
+<rect x="65" y="39" clip-path="url(#clipPath1)"
fill="rgb(232,232,255)" width="1474" height="200"
stroke="none"/>
+<rect x="39" y="39" clip-path="url(#clipPath1)"
fill="none" width="1500" height="200"
stroke="black" bpmn:process-id="_ao2OcFOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool"/>
+<image stroke="black" width="14" xlink:show="embed"
xlink:type="simple" fill="black" clip-path="url(#clipPath2)"
preserveAspectRatio="none" height="25" x="45"
y="124"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAZCAYAAAABmx/yAAABmklEQVR42mPs7p75
nwEKnv9hwAskWRBsFmSJuX0b8GqsKQvArrEs9CMDsQBFI5tiPJgGuf3Oj/8MV1//
YWBiZGDQEGZhUOVkxK0RBo4//cGwe95KBvX/N4A8RoZl/1UYnBMjGGzluPBrPLBm
OUOe908GQZ0kMP/D1X0M0zesYLDNS4KrYcLqga83GQSNUoBuVwVjAcNkhv9fb6Mo
waqRE+jJK58YGX4D2SB85RMTA8fff4T9GGijzLBw4iIGVl1HMP/X5f0M8bZKhDUq
2EUxlIovY3h1ZQaYLxaizMClEUNY439GboanCikMV7m/QaODi0GVkZGBcTQ6yIwO
UAKXJTU6PgFds+HmN4YXTz8xyCvGMPgGMzNwgeOAFRy6ODWu3HGF4e+xuQxO4r8Z
TuznYFjnmskQ46BMOD/eOraCoSXbl4FdwoRB/eFRhvbFKxgYHKqxakQN1Z+vGdgl
gQHCyMfAK+/K8PvTY5wlAJbogPqFkQUaVEQUHSBw8uM/nHxzfibsGqVB6bSzAyff
vK0Ku8a86ig0+61xOhUA6Higf32xHwgAAAAASUVORK5CYII="
xlink:actuate="onLoad"/>
+<rect x="129" y="118" clip-path="url(#clipPath3)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="126" y="115" clip-path="url(#clipPath3)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"/>
+<rect x="126" y="115" clip-path="url(#clipPath3)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"/>
+<text x="167" y="151" clip-path="url(#clipPath4)"
fill="black" stroke="none"
xml:space="preserve">Task</text>
+<line clip-path="url(#clipPath5)" fill="none" x1="65"
x2="65" y1="40" y2="237"
stroke="rgb(169,169,169)"/>
+<rect x="39" y="39" clip-path="url(#clipPath1)"
fill="none" width="1500" height="200"
stroke="rgb(169,169,169)" bpmn:process-id="_ao2OcFOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool"/>
+<rect x="39" y="273" clip-path="url(#clipPath6)"
fill="rgb(232,232,255)" width="1500" height="269"
stroke="none" bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool2"/>
+<rect x="39" y="273" clip-path="url(#clipPath6)"
fill="none" width="1500" height="269"
stroke="black" bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool2"/>
+<image stroke="black" width="14" xlink:show="embed"
xlink:type="simple" fill="black" clip-path="url(#clipPath7)"
preserveAspectRatio="none" height="32" x="45"
y="389"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAgCAYAAAAi7kmXAAACfElEQVR42u2UbUhT
YRTH//e6xcrSOTSSGYWURRBJbWorBjp7h2AtIlhYS9fLtK3g4getMEFWw/qiZvPD
iKVFRPZB2m5RYtgiMCsYFFEj+hBuvQ1Gsjnn1t11W1vubtbnDhy45zz39zzPeXkO
4XZHIohJmNGXfuBbEKhcAhSQSMjdr2Goin47kpaAa2NeHJadgFG6A4ozNN75E3ui
UapI/jUVNFMNeHjuCx7RCrRManDweC/c07HFwAg3SPocEO+7DX5pM/b3PsfJiBEa
ow1TmCspYD5j3vcQYA/hr0BDzz2U2o/AcOdDZtBUvxlnt9dh6PGn2cU8CS73mxDs
UMwBcyiqrS1uiCXbUCcZRdnyQvCEq1gfT7QBe/YuRe3UMxTXUgmQl7zLm5AIKDcz
X0w2g3EvARSqIWhXppyYAqqrW5FJXjk60oOOKxOYr6SAiyotiQ5y+CKgXQGQTPoU
KwWQ5xPcYFysTh86DxlQExlmY2wMb8Vpaze0G4WZwW7qFOjzP1Gy6wZrf37QBWVL
E7R0f/o6JuT7MEpUt5i7y1kVKwcQ+THK3QCJDmKCtLsJBKItyqjdQ2Lx9Ez2GC9q
ZdDsrIdgdxNr+209sGirsoNS5lU8LdPhvV3F2qs7ZRDW9GUHw6QITulN0CJvrBwF
kDMf5P9y/GM5onOt/G/L4QkBrSNe!
vHV6sKnCjHYTH0I2mIWzD5oL1F+yIWRRw7Am
AGtXHpqpQfTptmR/j08seriGLiB37QFUv7Cg4pge0I2nBVOzOulC7jomIeQyFEkp
+N2vOScAyekiFsRmwTxGR1QGJmY4bXVxTnpwPaPXZVWctvrjWHqQHr/6x/lHOa/6
C8vB6emtha8jAAAAAElFTkSuQmCC"
xlink:actuate="onLoad"/>
+<rect x="112" y="323" clip-path="url(#clipPath8)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="109" y="320" clip-path="url(#clipPath8)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_bzzlsFOnEd-qUNL1xc5jrA"
bpmn:activity-label="21"/>
+<rect x="109" y="320" clip-path="url(#clipPath8)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_bzzlsFOnEd-qUNL1xc5jrA"
bpmn:activity-label="21"/>
+<text x="155" y="356" clip-path="url(#clipPath9)"
fill="black" stroke="none"
xml:space="preserve">21</text>
+<polygon fill="black" clip-path="url(#clipPath10)"
opacity="0.2745" points=" 440 322 465 347 440 372 415 347"
stroke="none"/>
+<polygon fill="white" stroke-width="2"
clip-path="url(#clipPath11)" points=" 437 321 461 345 437 369 413 345"
stroke="none"/>
+<polygon fill="none" stroke-width="2"
clip-path="url(#clipPath11)" points=" 437 321 461 345 437 369 413 345"
stroke="rgb(64,64,64)"/>
+<line clip-path="url(#clipPath11)" fill="none" x1="437"
x2="437" y1="336" y2="354" stroke="rgb(64,64,64)"
stroke-width="8"/>
+<line clip-path="url(#clipPath11)" fill="none" x1="428"
x2="446" y1="345" y2="345" stroke="rgb(64,64,64)"
stroke-width="8"/>
+<rect x="263" y="323" clip-path="url(#clipPath12)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="260" y="320" clip-path="url(#clipPath12)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_lf1mIFOnEd-qUNL1xc5jrA"
bpmn:activity-label="22"/>
+<rect x="260" y="320" clip-path="url(#clipPath12)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_lf1mIFOnEd-qUNL1xc5jrA"
bpmn:activity-label="22"/>
+<text x="306" y="356" clip-path="url(#clipPath13)"
fill="black" stroke="none"
xml:space="preserve">22</text>
+<rect x="655" y="306" clip-path="url(#clipPath14)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="652" y="303" clip-path="url(#clipPath14)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_vhobMFOnEd-qUNL1xc5jrA"
bpmn:activity-label="23"/>
+<rect x="652" y="303" clip-path="url(#clipPath14)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_vhobMFOnEd-qUNL1xc5jrA"
bpmn:activity-label="23"/>
+<text x="698" y="339" clip-path="url(#clipPath15)"
fill="black" stroke="none"
xml:space="preserve">23</text>
+<circle clip-path="url(#clipPath16)" fill="black"
r="14.5" cx="476.5" opacity="0.2745" cy="442.5"
stroke="none"/>
+<circle clip-path="url(#clipPath17)" fill="white"
r="14.5" cx="474.5" cy="440.5" stroke="none"/>
+<circle clip-path="url(#clipPath17)" fill="none"
r="11.5" cx="474.5" cy="440.5"
stroke="black"/>
+<circle clip-path="url(#clipPath17)" fill="none"
r="14.5" cx="474.5" cy="440.5"
stroke="black"/>
+<circle clip-path="url(#clipPath17)" fill="none" r="7.5"
cx="474.5" cy="440.5" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="480"
x2="481" y1="441" y2="441" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="479"
x2="480" y1="443" y2="444" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="477"
x2="478" y1="445" y2="446" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="475"
x2="475" y1="446" y2="447" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="472"
x2="471" y1="445" y2="446" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="470"
x2="469" y1="443" y2="444" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="469"
x2="468" y1="441" y2="441" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="470"
x2="469" y1="438" y2="437" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="472"
x2="471" y1="436" y2="435" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="475"
x2="475" y1="435" y2="434" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="477"
x2="478" y1="436" y2="435" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="479"
x2="480" y1="438" y2="437" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="475"
x2="476" y1="441" y2="435" stroke="black"/>
+<line clip-path="url(#clipPath17)" fill="none" x1="475"
x2="479" y1="441" y2="440" stroke="black"/>
+<text x="447" y="479" clip-path="url(#clipPath18)"
fill="black" stroke="none" xml:space="preserve">wait 10
sec</text>
+<rect x="580" y="415" clip-path="url(#clipPath19)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="577" y="412" clip-path="url(#clipPath19)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_xAHLYFOnEd-qUNL1xc5jrA"
bpmn:activity-label="34"/>
+<rect x="577" y="412" clip-path="url(#clipPath19)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_xAHLYFOnEd-qUNL1xc5jrA"
bpmn:activity-label="34"/>
+<text x="623" y="448" clip-path="url(#clipPath20)"
fill="black" stroke="none"
xml:space="preserve">34</text>
+<rect x="906" y="319" clip-path="url(#clipPath21)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="903" y="316" clip-path="url(#clipPath21)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_7W620FRaEd-y87rmjcz7YQ"
bpmn:activity-label=""/>
+<rect x="903" y="316" clip-path="url(#clipPath21)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:activity-id="_7W620FRaEd-y87rmjcz7YQ"
bpmn:activity-label=""/>
+<text x="944" y="352" clip-path="url(#clipPath22)"
fill="black" stroke="none"
xml:space="preserve">Task</text>
+<line clip-path="url(#clipPath23)" fill="none" x1="65"
x2="65" y1="274" y2="540"
stroke="rgb(169,169,169)"/>
+<rect x="39" y="273" clip-path="url(#clipPath6)"
fill="none" width="1500" height="269"
stroke="rgb(169,169,169)" bpmn:process-id="_bR-rAFOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool2"/>
+<rect x="39" y="558" clip-path="url(#clipPath24)"
fill="rgb(232,232,255)" width="1500" height="246"
stroke="none" bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool3"/>
+<rect x="39" y="558" clip-path="url(#clipPath24)"
fill="none" width="1500" height="246"
stroke="black" bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool3"/>
+<image stroke="black" width="14" xlink:show="embed"
xlink:type="simple" fill="black"
clip-path="url(#clipPath25)" preserveAspectRatio="none"
height="32" x="45" y="663"
xlink:href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAgCAYAAAAi7kmXAAACj0lEQVR42u2UX0hT
cRTHv/fabHOhaxEVSgWiiRCsP5u2aqBDSKsHMRKZUWZLWrrJGJFZWQOhQvNhK1Fo
iKXRi4UNnRCm1HqoxGpQkIweKtywlKyluavrt5vK7rjXWc8dONzfOfw+9/c733Pv
oXy+UAgR9p14HHEJ8ecBYHgsCNU6EbaRBBWxb0Uk9MjHwHThMcRyKU6VKdBQYkbG
Nzea1mhh7ahHcbqUH7xUfR6OtHsYGw/ixIEMuOtESD1Yh5EHLSgxm1HsbFncS0eC
P993Isv6GvubniFz5SBSS7sA2SGkHe3G7KfuyK1cMIFh0PeFXCd+I+7bjpCiJAiS
vNMvQiJHiSiwsXwnzuYdw6/ADJJyb7E558BH1OSVorFCzQE5NWZVtcG9qwZiaVjX
PxrmJb+B1k5O3NssDL5l5ICCCDATkdyUT7wAYChkxguAupxaLGXD7np+0H19FMs1
DpiQ5WCfc+GXTIbg8k6DJvJpN4uhSaKEwQVr90yiodSE3FA/K9LpuT2obrdDv122
NGi3VMF18QdS8m+z8ec+GwrPVULvusPfx0X72o+Uorvk7hrWkws7EBp/IvwBLFgS
KbLXR2GarMPe66exKjgbu8YrejXK9pVDXFDJxlM9N+DQZ8cGlRXNeJpuwEhvERun
Naghy22NDc7RcniUnXDJJ+bbsRo!
asqD/t+Mf2xGeEIq/bYefAWoHJvDO48cOVQus
10SQscVIwJ2qUaDxag8Yhw6mLdNotyXijKULrYbdsf/HQYcR3oeXIc04jJyXDqhO
GgHDEC/IVTXghTSTCEKvx1qlBVO+V4ITgBZMUfHzs2AZoyNsHaOzgrFuQxw/uJV4
mzpbMNZ9eMEPuoZuRp1/XPCqvwGOVO9fqXXaLgAAAABJRU5ErkJggg=="
xlink:actuate="onLoad"/>
+<rect x="249" y="614" clip-path="url(#clipPath26)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="246" y="611" clip-path="url(#clipPath26)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_k1rO0FOnEd-qUNL1xc5jrA"
bpmn:activity-label="31"/>
+<rect x="246" y="611" clip-path="url(#clipPath26)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_k1rO0FOnEd-qUNL1xc5jrA"
bpmn:activity-label="31"/>
+<text x="292" y="647" clip-path="url(#clipPath27)"
fill="black" stroke="none"
xml:space="preserve">31</text>
+<rect x="441" y="579" clip-path="url(#clipPath28)"
fill="black" width="567" rx="3.5" opacity="0.2745"
ry="3.5" height="208" stroke="none"/>
+<rect x="438" y="576" clip-path="url(#clipPath28)"
fill="white" width="567" rx="4" ry="4"
height="208" stroke="none"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_-IzjIFOrEd-qUNL1xc5jrA"
bpmn:activity-label=""/>
+<rect x="438" y="576" clip-path="url(#clipPath28)"
fill="none" width="566" rx="4" ry="4"
height="207" stroke="black"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_-IzjIFOrEd-qUNL1xc5jrA"
bpmn:activity-label=""/>
+<rect x="590" y="584" clip-path="url(#clipPath29)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="587" y="581" clip-path="url(#clipPath29)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_xdm_xlOnEd-qUNL1xc5jrA"
bpmn:activity-label=""/>
+<rect x="587" y="581" clip-path="url(#clipPath29)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_xdm_xlOnEd-qUNL1xc5jrA"
bpmn:activity-label=""/>
+<text x="633" y="617" clip-path="url(#clipPath30)"
fill="black" stroke="none"
xml:space="preserve">32</text>
+<rect x="892" y="584" clip-path="url(#clipPath31)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="889" y="581" clip-path="url(#clipPath31)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_2OMZ0FOnEd-qUNL1xc5jrA"
bpmn:activity-label="34"/>
+<rect x="889" y="581" clip-path="url(#clipPath31)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_2OMZ0FOnEd-qUNL1xc5jrA"
bpmn:activity-label="34"/>
+<text x="935" y="617" clip-path="url(#clipPath32)"
fill="black" stroke="none"
xml:space="preserve">34</text>
+<polygon fill="black" clip-path="url(#clipPath33)"
opacity="0.2745" points=" 471 646 496 671 471 696 446 671"
stroke="none"/>
+<polygon fill="white" stroke-width="2"
clip-path="url(#clipPath34)" points=" 468 645 492 669 468 693 444 669"
stroke="none"/>
+<polygon fill="none" stroke-width="2"
clip-path="url(#clipPath34)" points=" 468 645 492 669 468 693 444 669"
stroke="rgb(64,64,64)"/>
+<circle clip-path="url(#clipPath34)" fill="none"
r="14.5" cx="467.5" cy="668.5"
stroke="black"/>
+<circle clip-path="url(#clipPath34)" fill="none"
r="12.5" cx="467.5" cy="668.5"
stroke="black"/>
+<polygon fill="none" clip-path="url(#clipPath34)" points="
459 665 467 661 476 665 474 675 461 675" stroke="black"/>
+<circle clip-path="url(#clipPath35)" fill="black"
r="14.5" cx="812.5" opacity="0.2745" cy="611.5"
stroke="none"/>
+<circle clip-path="url(#clipPath36)" fill="white"
r="14.5" cx="810.5" cy="609.5" stroke="none"/>
+<circle clip-path="url(#clipPath36)" fill="none"
r="11.5" cx="810.5" cy="609.5"
stroke="black"/>
+<circle clip-path="url(#clipPath36)" fill="none"
r="14.5" cx="810.5" cy="609.5"
stroke="black"/>
+<circle clip-path="url(#clipPath36)" fill="none" r="7.5"
cx="810.5" cy="609.5" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="816"
x2="817" y1="610" y2="610" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="815"
x2="816" y1="612" y2="613" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="813"
x2="814" y1="614" y2="615" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="811"
x2="811" y1="615" y2="616" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="808"
x2="807" y1="614" y2="615" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="806"
x2="805" y1="612" y2="613" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="805"
x2="804" y1="610" y2="610" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="806"
x2="805" y1="607" y2="606" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="808"
x2="807" y1="605" y2="604" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="811"
x2="811" y1="604" y2="603" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="813"
x2="814" y1="605" y2="604" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="815"
x2="816" y1="607" y2="606" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="811"
x2="812" y1="610" y2="604" stroke="black"/>
+<line clip-path="url(#clipPath36)" fill="none" x1="811"
x2="815" y1="610" y2="609" stroke="black"/>
+<text x="769" y="648" clip-path="url(#clipPath37)"
fill="black" stroke="none" xml:space="preserve">wait 30
seconds</text>
+<rect x="709" y="696" clip-path="url(#clipPath38)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="706" y="693" clip-path="url(#clipPath38)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_uhaUUFOnEd-qUNL1xc5jrA"
bpmn:activity-label="33"/>
+<rect x="706" y="693" clip-path="url(#clipPath38)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_uhaUUFOnEd-qUNL1xc5jrA"
bpmn:activity-label="33"/>
+<text x="752" y="729" clip-path="url(#clipPath39)"
fill="black" stroke="none"
xml:space="preserve">33</text>
+<rect x="863" y="696" clip-path="url(#clipPath40)"
fill="black" width="107" rx="3.5" opacity="0.2745"
ry="3.5" height="57" stroke="none"/>
+<rect x="860" y="693" clip-path="url(#clipPath40)"
fill="white" width="107" rx="4.5" ry="4.5"
height="57" stroke="none"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_xW4AYFO5Ed-_Q-SZnn1pGA" bpmn:activity-label="33
reply"/>
+<rect x="860" y="693" clip-path="url(#clipPath40)"
fill="none" width="106" rx="4" ry="4"
height="56" stroke="black"
bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:activity-id="_xW4AYFO5Ed-_Q-SZnn1pGA" bpmn:activity-label="33
reply"/>
+<text x="891" y="729" clip-path="url(#clipPath41)"
fill="black" stroke="none" xml:space="preserve">33
reply</text>
+<rect x="723" y="765" clip-path="url(#clipPath28)"
fill="none" width="19" height="19"
stroke="black"/>
+<line clip-path="url(#clipPath28)" fill="none" x1="725"
x2="739" y1="774" y2="774" stroke="black"
stroke-width="2"/>
+<path fill="none" stroke-width="2" d="M715.25 782.6603 A9.5
10 0 1 0 705.75 782.6603" clip-path="url(#clipPath28)"
stroke="black"/>
+<line clip-path="url(#clipPath28)" fill="none" x1="701"
x2="706" y1="782" y2="782" stroke="black"
stroke-width="2"/>
+<line clip-path="url(#clipPath28)" fill="none" x1="706"
x2="706" y1="782" y2="777" stroke="black"
stroke-width="2"/>
+<line clip-path="url(#clipPath42)" fill="none" x1="65"
x2="65" y1="559" y2="802"
stroke="rgb(169,169,169)"/>
+<rect x="39" y="558" clip-path="url(#clipPath24)"
fill="none" width="1500" height="246"
stroke="rgb(169,169,169)" bpmn:process-id="_jihk4FOnEd-qUNL1xc5jrA"
bpmn:process-name="Pool3"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="759"
x2="829" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="829"
x2="829" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="829"
x2="830" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="830"
x2="830" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="830"
x2="830" y1="331" y2="332" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="830"
x2="831" y1="332" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="333" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="333" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="333" y2="334" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="334" y2="334" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="832" y1="334" y2="334" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="832"
x2="833" y1="334" y2="335" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="833"
x2="903" y1="335" y2="335" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath44)"
opacity="0.6667" points=" 896 338 903 335 896 332"
stroke="none"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="896"
x2="903" y1="338" y2="335" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="903"
x2="896" y1="335" y2="332" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="462"
x2="549" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="549"
x2="551" y1="345" y2="344" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="551"
x2="553" y1="344" y2="343" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="553"
x2="554" y1="343" y2="342" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="554"
x2="555" y1="342" y2="340" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="555"
x2="556" y1="340" y2="338" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="556"
x2="556" y1="338" y2="338" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="556"
x2="556" y1="338" y2="335" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="556"
x2="557" y1="335" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="557"
x2="558" y1="333" y2="332" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="558"
x2="560" y1="332" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="560"
x2="563" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="563"
x2="652" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath45)"
opacity="0.6667" points=" 645 334 652 331 645 328"
stroke="none"/>
+<line clip-path="url(#clipPath45)" fill="none" x1="645"
x2="652" y1="334" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath45)" fill="none" x1="652"
x2="645" y1="331" y2="328" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="367"
x2="387" y1="348" y2="348" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="387"
x2="387" y1="348" y2="347" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="387"
x2="388" y1="347" y2="347" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="388" y1="347" y2="347" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="388" y1="347" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="389" y1="346" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="346" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="346" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="346" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="390" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="390"
x2="390" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="390"
x2="412" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath46)"
opacity="0.6667" points=" 405 348 412 345 405 342"
stroke="none"/>
+<line clip-path="url(#clipPath46)" fill="none" x1="405"
x2="412" y1="348" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath46)" fill="none" x1="412"
x2="405" y1="345" y2="342" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="216"
x2="260" y1="348" y2="348" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath47)"
opacity="0.6667" points=" 253 351 260 348 253 345"
stroke="none"/>
+<line clip-path="url(#clipPath47)" fill="none" x1="253"
x2="260" y1="351" y2="348" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath47)" fill="none" x1="260"
x2="253" y1="348" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="490"
x2="577" y1="440" y2="440" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath48)"
opacity="0.6667" points=" 570 443 577 440 570 437"
stroke="none"/>
+<line clip-path="url(#clipPath48)" fill="none" x1="570"
x2="577" y1="443" y2="440" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath48)" fill="none" x1="577"
x2="570" y1="440" y2="437" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="684"
x2="777" y1="440" y2="440" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="777"
x2="781" y1="440" y2="439" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="781"
x2="786" y1="439" y2="436" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="786"
x2="789" y1="436" y2="433" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="789"
x2="792" y1="433" y2="428" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="792"
x2="793" y1="428" y2="424" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="793"
x2="793" y1="424" y2="370" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="793"
x2="793" y1="370" y2="365" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="793"
x2="796" y1="365" y2="360" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="796"
x2="799" y1="360" y2="357" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="799"
x2="804" y1="357" y2="354" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="804"
x2="809" y1="354" y2="354" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="809"
x2="903" y1="354" y2="354" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath49)"
opacity="0.6667" points=" 896 357 903 354 896 351"
stroke="none"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="896"
x2="903" y1="357" y2="354" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="903"
x2="896" y1="354" y2="351" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="437"
x2="437" y1="370" y2="429" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="437"
x2="437" y1="429" y2="433" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="437"
x2="439" y1="433" y2="436" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="439"
x2="441" y1="436" y2="438" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="441"
x2="444" y1="438" y2="440" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="444"
x2="448" y1="440" y2="441" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="448"
x2="460" y1="441" y2="441" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath50)"
opacity="0.6667" points=" 453 444 460 441 453 438"
stroke="none"/>
+<line clip-path="url(#clipPath50)" fill="none" x1="453"
x2="460" y1="444" y2="441" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath50)" fill="none" x1="460"
x2="453" y1="441" y2="438" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="644" y2="625" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="625" y2="620" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="471" y1="620" y2="615" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="471"
x2="474" y1="615" y2="612" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="474"
x2="479" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="479"
x2="484" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="484"
x2="587" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath51)"
opacity="0.6667" points=" 580 612 587 609 580 606"
stroke="none"/>
+<line clip-path="url(#clipPath51)" fill="none" x1="580"
x2="587" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath51)" fill="none" x1="587"
x2="580" y1="609" y2="606" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="694"
x2="796" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath52)"
opacity="0.6667" points=" 789 612 796 609 789 606"
stroke="none"/>
+<line clip-path="url(#clipPath52)" fill="none" x1="789"
x2="796" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath52)" fill="none" x1="796"
x2="789" y1="609" y2="606" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="353"
x2="379" y1="639" y2="639" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="379"
x2="383" y1="639" y2="639" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="383"
x2="388" y1="639" y2="642" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="391" y1="642" y2="645" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="391"
x2="394" y1="645" y2="650" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="394"
x2="395" y1="650" y2="655" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="395"
x2="395" y1="655" y2="664" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="395"
x2="395" y1="664" y2="668" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="395"
x2="398" y1="668" y2="673" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="398"
x2="401" y1="673" y2="676" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="401"
x2="406" y1="676" y2="679" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="406"
x2="411" y1="679" y2="680" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="411"
x2="438" y1="680" y2="680" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath53)"
opacity="0.6667" points=" 431 683 438 680 431 677"
stroke="none"/>
+<line clip-path="url(#clipPath53)" fill="none" x1="431"
x2="438" y1="683" y2="680" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath53)" fill="none" x1="438"
x2="431" y1="680" y2="677" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="694" y2="707" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="707" y2="711" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="470" y1="711" y2="715" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="470"
x2="473" y1="715" y2="718" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="473"
x2="477" y1="718" y2="720" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="477"
x2="481" y1="720" y2="721" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="481"
x2="706" y1="721" y2="721" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath54)"
opacity="0.6667" points=" 699 724 706 721 699 718"
stroke="none"/>
+<line clip-path="url(#clipPath54)" fill="none" x1="699"
x2="706" y1="724" y2="721" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath54)" fill="none" x1="706"
x2="699" y1="721" y2="718" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="813"
x2="860" y1="721" y2="721" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath55)"
opacity="0.6667" points=" 853 724 860 721 853 718"
stroke="none"/>
+<line clip-path="url(#clipPath55)" fill="none" x1="853"
x2="860" y1="724" y2="721" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath55)" fill="none" x1="860"
x2="853" y1="721" y2="718" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="826"
x2="889" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath56)"
opacity="0.6667" points=" 882 612 889 609 882 606"
stroke="none"/>
+<line clip-path="url(#clipPath56)" fill="none" x1="882"
x2="889" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath56)" fill="none" x1="889"
x2="882" y1="609" y2="606" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="161"
x2="161" y1="172" y2="320" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath57)" fill="white"
r="3.5" cx="160.5" cy="171.5" stroke="none"/>
+<circle clip-path="url(#clipPath57)" fill="none" r="3.5"
cx="160.5" opacity="0.5882" cy="171.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath58)" points="
157 314 161 320 165 314 157 314" stroke="none"/>
+<line clip-path="url(#clipPath58)" fill="none" x1="157"
x2="161" y1="314" y2="320" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath58)" fill="none" x1="161"
x2="165" y1="320" y2="314" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath58)" fill="none" x1="165"
x2="157" y1="314" y2="314" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="216"
x2="260" y1="348" y2="348" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath47)"
opacity="0.6667" points=" 253 351 260 348 253 345"
stroke="none"/>
+<line clip-path="url(#clipPath47)" fill="none" x1="253"
x2="260" y1="351" y2="348" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath47)" fill="none" x1="260"
x2="253" y1="348" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="367"
x2="387" y1="348" y2="348" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="387"
x2="387" y1="348" y2="347" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="387"
x2="388" y1="347" y2="347" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="388" y1="347" y2="347" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="388" y1="347" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="389" y1="346" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="346" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="346" y2="346" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="346" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="389" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="389"
x2="390" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="390"
x2="390" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="390"
x2="412" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath46)"
opacity="0.6667" points=" 405 348 412 345 405 342"
stroke="none"/>
+<line clip-path="url(#clipPath46)" fill="none" x1="405"
x2="412" y1="348" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath46)" fill="none" x1="412"
x2="405" y1="345" y2="342" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="313"
x2="313" y1="377" y2="487" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="313"
x2="312" y1="487" y2="489" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="312"
x2="311" y1="489" y2="491" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="311"
x2="310" y1="491" y2="492" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="310"
x2="308" y1="492" y2="493" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="308"
x2="306" y1="493" y2="494" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="306"
x2="306" y1="494" y2="494" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="306"
x2="303" y1="494" y2="494" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="303"
x2="301" y1="494" y2="495" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="301"
x2="300" y1="495" y2="496" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="300"
x2="299" y1="496" y2="498" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="299"
x2="299" y1="498" y2="501" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="299"
x2="299" y1="501" y2="611" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath59)" fill="white"
r="3.5" cx="312.5" cy="376.5" stroke="none"/>
+<circle clip-path="url(#clipPath59)" fill="none" r="3.5"
cx="312.5" opacity="0.5882" cy="376.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath60)" points="
295 605 299 611 303 605 295 605" stroke="none"/>
+<line clip-path="url(#clipPath60)" fill="none" x1="295"
x2="299" y1="605" y2="611" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath60)" fill="none" x1="299"
x2="303" y1="611" y2="605" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath60)" fill="none" x1="303"
x2="295" y1="605" y2="605" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="353"
x2="379" y1="639" y2="639" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="379"
x2="383" y1="639" y2="639" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="383"
x2="388" y1="639" y2="642" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="388"
x2="391" y1="642" y2="645" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="391"
x2="394" y1="645" y2="650" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="394"
x2="395" y1="650" y2="655" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="395"
x2="395" y1="655" y2="664" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="395"
x2="395" y1="664" y2="668" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="395"
x2="398" y1="668" y2="673" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="398"
x2="401" y1="673" y2="676" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="401"
x2="406" y1="676" y2="679" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="406"
x2="411" y1="679" y2="680" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="411"
x2="438" y1="680" y2="680" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath53)"
opacity="0.6667" points=" 431 683 438 680 431 677"
stroke="none"/>
+<line clip-path="url(#clipPath53)" fill="none" x1="431"
x2="438" y1="683" y2="680" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath53)" fill="none" x1="438"
x2="431" y1="680" y2="677" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="644" y2="625" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="625" y2="620" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="471" y1="620" y2="615" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="471"
x2="474" y1="615" y2="612" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="474"
x2="479" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="479"
x2="484" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="484"
x2="587" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath51)"
opacity="0.6667" points=" 580 612 587 609 580 606"
stroke="none"/>
+<line clip-path="url(#clipPath51)" fill="none" x1="580"
x2="587" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath51)" fill="none" x1="587"
x2="580" y1="609" y2="606" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="694" y2="707" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="468" y1="707" y2="711" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="468"
x2="470" y1="711" y2="715" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="470"
x2="473" y1="715" y2="718" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="473"
x2="477" y1="718" y2="720" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="477"
x2="481" y1="720" y2="721" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="481"
x2="706" y1="721" y2="721" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath54)"
opacity="0.6667" points=" 699 724 706 721 699 718"
stroke="none"/>
+<line clip-path="url(#clipPath54)" fill="none" x1="699"
x2="706" y1="724" y2="721" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath54)" fill="none" x1="706"
x2="699" y1="721" y2="718" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="462"
x2="549" y1="345" y2="345" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="549"
x2="551" y1="345" y2="344" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="551"
x2="553" y1="344" y2="343" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="553"
x2="554" y1="343" y2="342" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="554"
x2="555" y1="342" y2="340" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="555"
x2="556" y1="340" y2="338" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="556"
x2="556" y1="338" y2="338" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="556"
x2="556" y1="338" y2="335" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="556"
x2="557" y1="335" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="557"
x2="558" y1="333" y2="332" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="558"
x2="560" y1="332" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="560"
x2="563" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="563"
x2="652" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath45)"
opacity="0.6667" points=" 645 334 652 331 645 328"
stroke="none"/>
+<line clip-path="url(#clipPath45)" fill="none" x1="645"
x2="652" y1="334" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath45)" fill="none" x1="652"
x2="645" y1="331" y2="328" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="437"
x2="437" y1="370" y2="429" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="437"
x2="437" y1="429" y2="433" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="437"
x2="439" y1="433" y2="436" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="439"
x2="441" y1="436" y2="438" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="441"
x2="444" y1="438" y2="440" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="444"
x2="448" y1="440" y2="441" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="448"
x2="460" y1="441" y2="441" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath50)"
opacity="0.6667" points=" 453 444 460 441 453 438"
stroke="none"/>
+<line clip-path="url(#clipPath50)" fill="none" x1="453"
x2="460" y1="444" y2="441" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath50)" fill="none" x1="460"
x2="453" y1="441" y2="438" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="490"
x2="577" y1="440" y2="440" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath48)"
opacity="0.6667" points=" 570 443 577 440 570 437"
stroke="none"/>
+<line clip-path="url(#clipPath48)" fill="none" x1="570"
x2="577" y1="443" y2="440" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath48)" fill="none" x1="577"
x2="570" y1="440" y2="437" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="687"
x2="687" y1="360" y2="454" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="687"
x2="686" y1="454" y2="458" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="686"
x2="683" y1="458" y2="463" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="683"
x2="680" y1="463" y2="466" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="680"
x2="675" y1="466" y2="469" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="675"
x2="671" y1="469" y2="470" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="671"
x2="656" y1="470" y2="470" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="656"
x2="651" y1="470" y2="470" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="651"
x2="646" y1="470" y2="473" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="646"
x2="643" y1="473" y2="476" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="643"
x2="640" y1="476" y2="481" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="640"
x2="640" y1="481" y2="486" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="640"
x2="640" y1="486" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath61)" fill="white"
r="3.5" cx="686.5" cy="359.5" stroke="none"/>
+<circle clip-path="url(#clipPath61)" fill="none" r="3.5"
cx="686.5" opacity="0.5882" cy="359.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath62)" points="
636 575 640 581 644 575 636 575" stroke="none"/>
+<line clip-path="url(#clipPath62)" fill="none" x1="636"
x2="640" y1="575" y2="581" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath62)" fill="none" x1="640"
x2="644" y1="581" y2="575" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath62)" fill="none" x1="644"
x2="636" y1="575" y2="575" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="612"
x2="612" y1="469" y2="565" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="612"
x2="612" y1="565" y2="569" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="612"
x2="615" y1="569" y2="574" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="615"
x2="618" y1="574" y2="577" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="618"
x2="623" y1="577" y2="580" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="623"
x2="628" y1="580" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="628"
x2="743" y1="581" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="743"
x2="747" y1="581" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="747"
x2="752" y1="581" y2="584" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="752"
x2="755" y1="584" y2="587" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="755"
x2="758" y1="587" y2="592" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="758"
x2="759" y1="592" y2="597" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="759"
x2="759" y1="597" y2="693" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath63)" fill="white"
r="3.5" cx="611.5" cy="468.5" stroke="none"/>
+<circle clip-path="url(#clipPath63)" fill="none" r="3.5"
cx="611.5" opacity="0.5882" cy="468.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath64)" points="
755 687 759 693 763 687 755 687" stroke="none"/>
+<line clip-path="url(#clipPath64)" fill="none" x1="755"
x2="759" y1="687" y2="693" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath64)" fill="none" x1="759"
x2="763" y1="693" y2="687" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath64)" fill="none" x1="763"
x2="755" y1="687" y2="687" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="694"
x2="796" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath52)"
opacity="0.6667" points=" 789 612 796 609 789 606"
stroke="none"/>
+<line clip-path="url(#clipPath52)" fill="none" x1="789"
x2="796" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath52)" fill="none" x1="796"
x2="789" y1="609" y2="606" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="826"
x2="889" y1="609" y2="609" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath56)"
opacity="0.6667" points=" 882 612 889 609 882 606"
stroke="none"/>
+<line clip-path="url(#clipPath56)" fill="none" x1="882"
x2="889" y1="612" y2="609" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath56)" fill="none" x1="889"
x2="882" y1="609" y2="606" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="942"
x2="942" y1="581" y2="486" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="942"
x2="941" y1="486" y2="481" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="941"
x2="938" y1="481" y2="476" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="938"
x2="935" y1="476" y2="473" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="935"
x2="930" y1="473" y2="470" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="930"
x2="926" y1="470" y2="470" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="926"
x2="738" y1="470" y2="470" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="738"
x2="733" y1="470" y2="469" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="733"
x2="728" y1="469" y2="466" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="728"
x2="725" y1="466" y2="463" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="725"
x2="722" y1="463" y2="458" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="722"
x2="722" y1="458" y2="454" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="722"
x2="722" y1="454" y2="360" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath65)" fill="white"
r="3.5" cx="941.5" cy="580.5" stroke="none"/>
+<circle clip-path="url(#clipPath65)" fill="none" r="3.5"
cx="941.5" opacity="0.5882" cy="580.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath66)" points="
726 366 722 360 718 366 726 366" stroke="none"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="726"
x2="722" y1="366" y2="360" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="722"
x2="718" y1="360" y2="366" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath66)" fill="none" x1="718"
x2="726" y1="366" y2="366" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="913"
x2="913" y1="693" y2="597" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="913"
x2="912" y1="597" y2="592" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="912"
x2="909" y1="592" y2="587" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="909"
x2="906" y1="587" y2="584" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="906"
x2="901" y1="584" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="901"
x2="897" y1="581" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="897"
x2="663" y1="581" y2="581" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="663"
x2="658" y1="581" y2="580" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="658"
x2="653" y1="580" y2="577" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="653"
x2="650" y1="577" y2="574" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="650"
x2="647" y1="574" y2="569" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="647"
x2="647" y1="569" y2="565" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="647"
x2="647" y1="565" y2="469" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath67)" fill="white"
r="3.5" cx="912.5" cy="692.5" stroke="none"/>
+<circle clip-path="url(#clipPath67)" fill="none" r="3.5"
cx="912.5" opacity="0.5882" cy="692.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath68)" points="
651 475 647 469 643 475 651 475" stroke="none"/>
+<line clip-path="url(#clipPath68)" fill="none" x1="651"
x2="647" y1="475" y2="469" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath68)" fill="none" x1="647"
x2="643" y1="469" y2="475" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath68)" fill="none" x1="643"
x2="651" y1="475" y2="475" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="813"
x2="860" y1="721" y2="721" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath55)"
opacity="0.6667" points=" 853 724 860 721 853 718"
stroke="none"/>
+<line clip-path="url(#clipPath55)" fill="none" x1="853"
x2="860" y1="724" y2="721" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath55)" fill="none" x1="860"
x2="853" y1="721" y2="718" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="759"
x2="829" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="829"
x2="829" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="829"
x2="830" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="830"
x2="830" y1="331" y2="331" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="830"
x2="830" y1="331" y2="332" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="830"
x2="831" y1="332" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="333" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="333" y2="333" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="333" y2="334" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="831" y1="334" y2="334" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="831"
x2="832" y1="334" y2="334" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="832"
x2="833" y1="334" y2="335" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="833"
x2="903" y1="335" y2="335" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath44)"
opacity="0.6667" points=" 896 338 903 335 896 332"
stroke="none"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="896"
x2="903" y1="338" y2="335" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath44)" fill="none" x1="903"
x2="896" y1="335" y2="332" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="956"
x2="956" y1="316" y2="260" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="956"
x2="955" y1="260" y2="255" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="955"
x2="952" y1="255" y2="250" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="952"
x2="949" y1="250" y2="247" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="949"
x2="944" y1="247" y2="244" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="944"
x2="940" y1="244" y2="244" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="940"
x2="212" y1="244" y2="244" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="212"
x2="207" y1="244" y2="243" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="207"
x2="202" y1="243" y2="240" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="202"
x2="199" y1="240" y2="237" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="199"
x2="196" y1="237" y2="232" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="196"
x2="196" y1="232" y2="228" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="196"
x2="196" y1="228" y2="172" stroke-dasharray="7,5"
opacity="0.5882" stroke="black"/>
+<circle clip-path="url(#clipPath69)" fill="white"
r="3.5" cx="955.5" cy="315.5" stroke="none"/>
+<circle clip-path="url(#clipPath69)" fill="none" r="3.5"
cx="955.5" opacity="0.5882" cy="315.5"
stroke="black"/>
+<polygon fill="white" clip-path="url(#clipPath70)" points="
200 178 196 172 192 178 200 178" stroke="none"/>
+<line clip-path="url(#clipPath70)" fill="none" x1="200"
x2="196" y1="178" y2="172" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath70)" fill="none" x1="196"
x2="192" y1="172" y2="178" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath70)" fill="none" x1="192"
x2="200" y1="178" y2="178" opacity="0.5882"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="684"
x2="777" y1="440" y2="440" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="777"
x2="781" y1="440" y2="439" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="781"
x2="786" y1="439" y2="436" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="786"
x2="789" y1="436" y2="433" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="789"
x2="792" y1="433" y2="428" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="792"
x2="793" y1="428" y2="424" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="793"
x2="793" y1="424" y2="370" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="793"
x2="793" y1="370" y2="365" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="793"
x2="796" y1="365" y2="360" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="796"
x2="799" y1="360" y2="357" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="799"
x2="804" y1="357" y2="354" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="804"
x2="809" y1="354" y2="354" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath43)" fill="none" x1="809"
x2="903" y1="354" y2="354" opacity="0.6667"
stroke="black"/>
+<polygon fill="black" clip-path="url(#clipPath49)"
opacity="0.6667" points=" 896 357 903 354 896 351"
stroke="none"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="896"
x2="903" y1="357" y2="354" opacity="0.6667"
stroke="black"/>
+<line clip-path="url(#clipPath49)" fill="none" x1="903"
x2="896" y1="354" y2="351" opacity="0.6667"
stroke="black"/>
+</g>
+</g>
+</svg>
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.wsdl
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/ReproduceIsolationProblem.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,29 @@
+<?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
xmlns:Pool2="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:Pool3="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:Pool="http://example.com/ReproduceIsolationProblem/Pool"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:bpdm="http://www.intalio/designer/business-process-data-modeling"
targetNamespace="http://example.com/ReproduceIsolationProblem">
+ <wsdl:import
namespace="http://example.com/ReproduceIsolationProblem/Pool2"
location="ReproduceIsolationProblem-Pool2.wsdl"/>
+ <wsdl:import
namespace="http://example.com/ReproduceIsolationProblem/Pool3"
location="ReproduceIsolationProblem-Pool3.wsdl"/>
+ <pnlk:partnerLinkType name="Pool2AndPool">
+ <pnlk:role name="Pool2_for_Pool"
portType="Pool2:ForPool"/>
+ </pnlk:partnerLinkType>
+ <pnlk:partnerLinkType name="Pool3AndPool2">
+ <pnlk:role name="Pool3_for_Pool2"
portType="Pool3:ForPool2"/>
+ </pnlk:partnerLinkType>
+</wsdl:definitions>
Added: branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/deploy.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/deploy.xml
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/deploy.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,35 @@
+<?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.
+ -->
+<dd:deploy
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"><...
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:Pool2="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:this="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="this:Pool3" fileName="ReproduceIsolationProblem-Pool3.bpel">
+ <dd:property name="PATH">ReproduceIsolationProblem</dd:property>
+ <dd:property
name="SVG">ReproduceIsolationProblem.svg</dd:property>
+ <dd:provide partnerLink="pool3AndPool2PlkVar">
+ <dd:service name="this:CanonicServiceForPool2"
port="canonicPort"></dd:service>
+ </dd:provide>
+</dd:process><dd:process
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:diag="http://example.com/ReproduceIsolationProblem"
xmlns:Pool3="http://example.com/ReproduceIsolationProblem/Pool3"
xmlns:Pool="http://example.com/ReproduceIsolationProblem/Pool"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:this="http://example.com/ReproduceIsolationProblem/Pool2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="this:Pool2" fileName="ReproduceIsolationProblem-Pool2.bpel">
+ <dd:property name="PATH">ReproduceIsolationProblem</dd:property>
+ <dd:property
name="SVG">ReproduceIsolationProblem.svg</dd:property>
+ <dd:provide partnerLink="pool2AndPoolPlkVar">
+ <dd:service name="this:CanonicServiceForPool"
port="canonicPort"></dd:service>
+ </dd:provide>
+ <dd:invoke partnerLink="pool3AndPool2PlkVar">
+ <dd:service name="Pool3:CanonicServiceForPool2"
port="canonicPort"></dd:service>
+ </dd:invoke>
+</dd:process></dd:deploy>
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/testRequest.soap
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/testRequest.soap
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSelectors/testRequest.soap 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,25 @@
+<!--
+ ~ 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.
+ -->
+<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:pool="http://example.com/ReproduceIsolationProblem/Pool2"...
+ <soapenv:Header/>
+ <soapenv:Body>
+ <pool:_21Request>abc1</pool:_21Request>
+ </soapenv:Body>
+</soapenv:Envelope>
+
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/HelloWorld2.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/HelloWorld2.wsdl 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/HelloWorld2.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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"
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/deploy.xml
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/deploy.xml 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/deploy.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<dd:deploy
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"><...
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"
xmlns:tns="http://ode/bpel/unit-test.wsdl"
xmlns:service="http://example.com/hello/service"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:diag="http://example.com/hello"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:client="http://example.com/hello/client"
xmlns:this="http://example.com/hello/process" name="this:process"
fileName="hello-process.bpel">
<dd:property name="PATH">hello</dd:property>
<dd:property name="SVG">hello.svg</dd:property>
@@ -8,4 +26,4 @@
<dd:invoke partnerLink="serviceAndProcessForHelloPortPlkVar">
<dd:service name="tns:HelloService"
port="HelloPort"></dd:service>
</dd:invoke>
-</dd:process></dd:deploy>
\ No newline at end of file
+</dd:process></dd:deploy>
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.bpel 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<bpel:process
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ode="http://www.apache.org/ode/type/extension"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:this="http://example.com/hello/process"
xmlns:client="http://example.com/hello/client"
xmlns:tns="http://ode/bpel/unit-test.wsdl"
xmlns:diag="http://example.com/hello"
xmlns:service="http://example.com/hello/service"
xmlns:bpmn="http://www.intalio.com/bpms"
xmlns:atomic="http://ode.apache.org/atomicScope"
queryLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
bpmn:label="process" name="process"
bpmn:id="_Ue3NkBenEd6EIOjxNvjNWw" targetNamespace="http://!
example.com/hello/process">
<bpel:import namespace="http://ode/bpel/unit-test.wsdl"
location="HelloWorld2.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
<bpel:import
namespace="http://example.com/hello"
location="hello.wsdl"
importType="http://schemas.xmlsoap.org/wsdl/"/>
@@ -78,4 +96,4 @@
</bpel:assign>
<bpel:reply partnerLink="processAndClientPlkVar"
portType="this:Forclient" operation="EventStartMessage"
variable="thisEventStartMessageResponse"
bpmn:label="Message_End_Event" name="Message_End_Event-1"
bpmn:id="_cYnYEBenEd6EIOjxNvjNWw"></bpel:reply>
</bpel:sequence>
-</bpel:process>
\ No newline at end of file
+</bpel:process>
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.wsdl 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello-process.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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 xmlns:tns="http://ode/bpel/unit-test.wsdl"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:hello="http://ode/bpel/unit-test.wsdl"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:client="http://example.com/hello/client"
xmlns:xml="http://www.w3.org/XML/1998/namespace"
xmlns:service="http://example.com/hello/service"
xmlns:diag="http://example.com/hello"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:this="http://example.com/hello/process"
targetNamespace="http://example.com/hello/process">
<wsdl:types>
<xs:schema targetNamespace="http://ode/bpel/unit-test.wsdl">
@@ -37,4 +55,4 @@
<soap:address
location="http://localhost:8080/ode/processes/hello/hello/process/client"/>
</wsdl:port>
</wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
+</wsdl:definitions>
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.wsdl 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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
xmlns:process="http://example.com/hello/process"
xmlns:tns="http://ode/bpel/unit-test.wsdl"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:diag="http://example.com/hello"
xmlns:client="http://example.com/hello/client"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:bpdm="http://www.intalio/designer/business-process-data-modeling"
targetNamespace="http://example.com/hello">
<wsdl:import namespace="http://ode/bpel/unit-test.wsdl"
location="HelloWorld2.wsdl"/>
<wsdl:import
namespace="http://example.com/hello/process"
location="hello-process.wsdl"/>
@@ -8,4 +26,4 @@
<pnlk:partnerLinkType name="processAndClient">
<pnlk:role name="process_for_client"
portType="process:Forclient"/>
</pnlk:partnerLinkType>
-</wsdl:definitions>
\ No newline at end of file
+</wsdl:definitions>
Modified:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.xsd
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.xsd 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/TestSoapHeader2/hello.xsd 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<xsd:schema targetNamespace="http://ode/bpel/unit-test.wsdl"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
attributeFormDefault="qualified"
elementFormDefault="qualified">
Modified: branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/test-log4j.properties
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/test-log4j.properties 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/resources/test-log4j.properties 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,36 +1,40 @@
+#
+# 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.
#
-# 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.
+# The logging properties used during tests..
#
+#log4j.rootLogger=DEBUG, file
+log4j.rootLogger=INFO, file
-# Set root logger level to WARN and its only appender to CONSOLE
-log4j.rootLogger=WARN, CONSOLE
+log4j.appender.file=org.apache.log4j.FileAppender
+log4j.appender.file.File=target/test/test.log
+log4j.appender.file.layout=org.apache.log4j.PatternLayout
+log4j.appender.file.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x - %m%n
-# log4j properties to work with commandline tools.
-log4j.category.org.mortbay=ERROR
-log4j.category.org.hibernate.type=WARN
-log4j.category.org.objectweb=ERROR
-log4j.category.org.apache.ode.axis2=DEBUG
-log4j.category.org.apache.ode.axis2.hooks.SessionInHandler=INFO
-log4j.category.org.apache.ode.bpel.engine=INFO
-log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=DEBUG
-log4j.category.org.apache.ode.bpel.epr=INFO
+log4j.appender.stdout=org.apache.log4j.ConsoleAppender
+log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
+log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x -
%m%n
-log4j.category.org.apache.ode.bpel.runtime=DEBUG
-
-# Console appender
-log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
-log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%p - %C{1}.%M(%L) | %m%n
+log4j.category.httpclient=INFO
+log4j.category.httpclient.Wire=INFO
+log4j.category.org.apache.ode=INFO
+#log4j.category.hibernate=DEBUG
+#log4j.category.org.hibernate=DEBUG
Added:
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties
===================================================================
---
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/axis2-war/src/test/webapp/WEB-INF/conf/ode-axis2.properties 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,23 @@
+#
+# 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.
+#
+
+ode-axis2.dao.factory=org.apache.ode.axis2.instancecleanup.HibDaoConnectionFactoryImpl
+ode-axis2.db.emb.name=hibdb
+ode-axis2.db.mode=EMBEDDED
+ode-axis2.cluster.localRoute.targets=http://doesntexist:8080/ode/processes/
+ode-axis2.cluster.localRoute.base=http://localhost:8888/ode/processes/
+ode-axis2.event.listeners=org.apache.ode.bpel.common.evt.DebugBpelEventListener
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -131,6 +131,10 @@
* @return <code>true</code> if the given object
*/
public boolean equals(Object o) {
+ if (!(o instanceof CorrelationKey)) {
+ return false;
+ }
+
CorrelationKey okey = (CorrelationKey) o;
if (okey == null || !okey._csetName.equals(_csetName) || okey._keyValues.length
!= _keyValues.length)
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKeySet.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKeySet.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKeySet.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -79,7 +79,7 @@
*/
public CorrelationKeySet add(CorrelationKey ck) {
for( CorrelationKey key : correlationKeys ) {
- if( key.getCorrelationSetName() == ck.getCorrelationSetName() ) {
+ if( key.getCorrelationSetName().equals(ck.getCorrelationSetName()) ) {
correlationKeys.remove(ck);
break;
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/ScopeCompletionEvent.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/ScopeCompletionEvent.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/ScopeCompletionEvent.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -26,32 +26,6 @@
public class ScopeCompletionEvent extends ScopeEvent {
private static final long serialVersionUID = 1L;
- private boolean _success;
- private QName _fault;
-
- public ScopeCompletionEvent(boolean success, QName fault) {
- _success = success;
- _fault = fault;
+ public ScopeCompletionEvent() {
}
-
- /**
- * @param fault The fault to set.
- */
- public void setFault(QName fault) {
- _fault = fault;
- }
-
- /**
- * @return Returns the fault.
- */
- public QName getFault() {
- return _fault;
- }
-
- public boolean isSuccess() {
- return _success;
- }
- public void setSuccess(boolean success) {
- _success = success;
- }
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/VariableModificationEvent.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/VariableModificationEvent.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/evt/VariableModificationEvent.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -24,7 +24,7 @@
public class VariableModificationEvent extends VariableEvent {
private static final long serialVersionUID = 1L;
- private Node newValue;
+ private transient Node newValue;
public VariableModificationEvent() {
super();
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ClusterAware.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ClusterAware.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ClusterAware.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.iapi;
/**
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Endpoint.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Endpoint.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Endpoint.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -47,6 +47,9 @@
*/
@Override
public boolean equals(Object other) {
+ if (!(other instanceof Endpoint)) {
+ return false;
+ }
Endpoint o = (Endpoint) other;
return o.serviceName.equals(serviceName) && o.portName.equals(portName);
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/ProcessConf.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -33,6 +33,7 @@
import org.apache.ode.bpel.evt.BpelEvent;
import org.apache.ode.bpel.o.OFailureHandling;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.utils.CronExpression;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -216,7 +217,7 @@
public class CronJob {
private CronExpression _cronExpression;
- private final List<Map<String,Object>> runnableDetailList = new
ArrayList<Map<String,Object>>();
+ private final List<JobDetails> runnableDetailList = new
ArrayList<JobDetails>();
public void setCronExpression(CronExpression _cronExpression) {
this._cronExpression = _cronExpression;
@@ -226,7 +227,7 @@
return _cronExpression;
}
- public List<Map<String,Object>> getRunnableDetailList() {
+ public List<JobDetails> getRunnableDetailList() {
return runnableDetailList;
}
@@ -242,7 +243,7 @@
}
}
- public class CleanupInfo {
+ public class CleanupInfo implements java.io.Serializable {
private List<String> _filters = new ArrayList<String>();
private final Set<CLEANUP_CATEGORY> _categories =
EnumSet.noneOf(CLEANUP_CATEGORY.class);
Modified:
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-api/src/main/java/org/apache/ode/bpel/iapi/Scheduler.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -26,6 +26,10 @@
import java.util.concurrent.Callable;
import java.util.concurrent.Future;
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.common.CorrelationKeySet;
+
/**
* The BPEL scheduler.
*/
@@ -42,7 +46,7 @@
* @param when when the job should run (<code>null</code> means now)
* @return unique job identifier
*/
- String schedulePersistedJob(Map<String,Object>jobDetail,Date when)
+ String schedulePersistedJob(JobDetails jobDetail,Date when)
throws ContextException ;
@@ -66,13 +70,13 @@
* @param when does the job should be executed?
* @return unique (as far as the scheduler is concerned) job identifier
*/
- String scheduleVolatileJob(boolean transacted, Map<String,Object> jobDetail,
Date when) throws ContextException;
+ String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date when)
throws ContextException;
/**
* Schedule a volatile job for right now
* @see #scheduleVolatileJob(boolean, java.util.Map, java.util.Date)
*/
- String scheduleVolatileJob(boolean transacted, Map<String,Object> jobDetail)
throws ContextException;
+ String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws
ContextException;
/**
* Make a good effort to cancel the job. If its already running no big
@@ -166,6 +170,105 @@
void onScheduledJob(JobInfo jobInfo) throws JobProcessorException;
}
+ public enum JobType {
+ TIMER,
+ RESUME,
+ INVOKE_INTERNAL,
+ INVOKE_RESPONSE,
+ MATCHER,
+ INVOKE_CHECK
+ }
+
+ public static class JobDetails {
+ public Long instanceId;
+ public String mexId;
+ public String processId;
+ public String type;
+ public String channel;
+ public String correlatorId;
+ public String correlationKeySet;
+ public Integer retryCount;
+ public Boolean inMem;
+ public Map<String, Object> detailsExt = new HashMap<String,
Object>();
+
+ public Boolean getInMem() {
+ return inMem == null ? false : inMem;
+ }
+ public void setInMem(Boolean inMem) {
+ this.inMem = inMem;
+ }
+ public String getMexId() {
+ return mexId;
+ }
+ public void setMexId(String mexId) {
+ this.mexId = mexId;
+ }
+ public QName getProcessId() {
+ return processId == null ? null : QName.valueOf(processId);
+ }
+ public void setProcessId(QName processId) {
+ this.processId = "" + processId;
+ }
+ public JobType getType() {
+ return JobType.valueOf(type);
+ }
+ public void setType(JobType type) {
+ this.type = type.toString();
+ }
+ public String getChannel() {
+ return channel;
+ }
+ public void setChannel(String channel) {
+ this.channel = channel;
+ }
+ public String getCorrelatorId() {
+ return correlatorId;
+ }
+ public void setCorrelatorId(String correlatorId) {
+ this.correlatorId = correlatorId;
+ }
+ public CorrelationKeySet getCorrelationKeySet() {
+ return new CorrelationKeySet(correlationKeySet);
+ }
+ public void setCorrelationKeySet(CorrelationKeySet correlationKeySet) {
+ this.correlationKeySet = correlationKeySet == null ? null :
correlationKeySet.toCanonicalString();
+ }
+ public Integer getRetryCount() {
+ return retryCount == null ? 0 : retryCount;
+ }
+ public void setRetryCount(Integer retryCount) {
+ this.retryCount = retryCount;
+ }
+ public Long getInstanceId() {
+ return instanceId;
+ }
+ public void setInstanceId(Long instanceId) {
+ this.instanceId = instanceId;
+ }
+ public Map<String, Object> getDetailsExt() {
+ return detailsExt;
+ }
+ public void setDetailsExt(Map<String, Object> detailsExt) {
+ this.detailsExt = detailsExt;
+ }
+
+ @Override
+ public String toString() {
+ return "JobDetails("
+ + " instanceId: " + instanceId
+ + " mexId: " + mexId
+ + " processId: " + processId
+ + " type: " + type
+ + " channel: " + channel
+ + " correlatorId: " + correlatorId
+ + " correlationKeySet: " + correlationKeySet
+ + " retryCount: " + retryCount
+ + " inMem: " + inMem
+ + " detailsExt: " + detailsExt
+ + ")";
+ }
+ }
+
/**
* Wrapper containing information about a scheduled job.
* @author mszefler
@@ -174,17 +277,16 @@
private static final long serialVersionUID = 1L;
public final String jobName;
public final int retryCount;
- public final Map<String,Object> jobDetail;
+ public final JobDetails jobDetail;
- public JobInfo(String jobName, Map<String,Object>jobDetail, int retryCount)
{
+ public JobInfo(String jobName, JobDetails jobDetail, int retryCount) {
this.jobName = jobName;
this.jobDetail = jobDetail;
this.retryCount = retryCount;
}
public String toString() {
- // Wrap in hashmap in case the underlying object has no toString method.
- return jobName + "["+retryCount +"]: " + new
HashMap<Object, Object>(jobDetail);
+ return jobName + "["+retryCount +"]: " + jobDetail;
}
}
@@ -193,7 +295,7 @@
* processing.
* @author mszefler
*/
- public class JobProcessorException extends Exception {
+ public class JobProcessorException extends RuntimeException {
private static final long serialVersionUID = 1L;
public final boolean retry;
@@ -208,7 +310,7 @@
}
public interface MapSerializableRunnable extends Runnable, Serializable {
- void storeToDetailsMap(Map<String, Object> details);
- void restoreFromDetailsMap(Map<String, Object> details);
+ void storeToDetails(JobDetails details);
+ void restoreFromDetails(JobDetails details);
}
}
\ No newline at end of file
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -302,7 +302,7 @@
}
// A "real" variable couldn't be found, checking if we're
dealing with a
// process custom property
- if (_customProcessProperties != null &&
_customProcessProperties.get(varName) != null) {
+ if (_customProcessProperties != null &&
_customProcessProperties.get(QName.valueOf(varName)) != null) {
}
throw new CompilationException(__cmsgs.errUndeclaredVariable(varName));
@@ -1074,7 +1074,7 @@
oplink.myRoleName = myRole.getName();
QName portType = myRole.getPortType();
if (portType == null)
- throw new
CompilationException(__cmsgs.errMissingMyRolePortType(portType, plink.getMyRole(),
plinkType.getName()));
+ throw new
CompilationException(__cmsgs.errMissingMyRolePortType(myRole.getPortType(),
plink.getMyRole(), plinkType.getName()));
oplink.myRolePortType = resolvePortType(portType);
}
@@ -1089,7 +1089,7 @@
oplink.partnerRoleName = partnerRole.getName();
QName portType = partnerRole.getPortType();
if (portType == null)
- throw new
CompilationException(__cmsgs.errMissingPartnerRolePortType(portType,
plink.getPartnerRole(), plinkType.getName()));
+ throw new
CompilationException(__cmsgs.errMissingPartnerRolePortType(partnerRole.getPortType(),
plink.getPartnerRole(), plinkType.getName()));
oplink.partnerRolePortType = resolvePortType(portType);
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/InvokeActivity.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/InvokeActivity.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/InvokeActivity.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -86,7 +86,7 @@
* @author mszefler
*
*/
- class BastardScope extends Scope {
+ static class BastardScope extends Scope {
public BastardScope(Element el) {
super(el);
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/Scope.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/Scope.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/bom/Scope.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -160,7 +160,7 @@
return Boolean.TRUE;
if ("no".equals(value))
return Boolean.FALSE;
- return null;
+ return Boolean.FALSE;
}
/**
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/JaxpFunctionResolver.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -167,7 +167,7 @@
/**
* Compile time checking for the non standard ode:splitToElements function.
*/
- public class SplitToElements implements XPathFunction {
+ public static class SplitToElements implements XPathFunction {
public Object evaluate(List params) throws XPathFunctionException {
if (params.size() < 3 || params.size() > 4) {
throw new CompilationException(
@@ -205,7 +205,7 @@
}
}
- public class InsertInto implements XPathFunction {
+ public static class InsertInto implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() != 3) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_INSERT_AFTER));
@@ -214,7 +214,7 @@
}
}
- public class InsertAfter implements XPathFunction {
+ public static class InsertAfter implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() < 2 || args.size() > 3) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_INSERT_AFTER));
@@ -223,7 +223,7 @@
}
}
- public class InsertBefore implements XPathFunction {
+ public static class InsertBefore implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() < 2 || args.size() > 3) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_INSERT_BEFORE));
@@ -232,7 +232,7 @@
}
}
- public class InsertAsFirstInto implements XPathFunction {
+ public static class InsertAsFirstInto implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() != 2) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_INSERT_AS_FIRST_INTO));
@@ -241,7 +241,7 @@
}
}
- public class InsertAsLastInto implements XPathFunction {
+ public static class InsertAsLastInto implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() != 2) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_INSERT_AS_LAST_INTO));
@@ -250,7 +250,7 @@
}
}
- public class Delete implements XPathFunction {
+ public static class Delete implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() < 1 || args.size() > 2) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_DELETE));
@@ -259,7 +259,7 @@
}
}
- public class Rename implements XPathFunction {
+ public static class Rename implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() < 2) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_RENAME));
@@ -268,7 +268,7 @@
}
}
- public class ProcessProperty implements XPathFunction {
+ public static class ProcessProperty implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() != 1) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_PROCESS_PROPERTY));
@@ -277,7 +277,7 @@
}
}
- public class DayTimeDuration implements XPathFunction {
+ public static class DayTimeDuration implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() != 1) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_DAY_TIME_DURATION));
@@ -286,7 +286,7 @@
}
}
- public class YearMonthDuration implements XPathFunction {
+ public static class YearMonthDuration implements XPathFunction {
public Object evaluate(List args) throws XPathFunctionException {
if (args.size() != 1) {
throw new
CompilationException(__msgs.errInvalidNumberOfArguments(Constants.NON_STDRD_FUNCTION_YEAR_MONTH_DURATION));
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/OdeXPathFunctionLibrary.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/OdeXPathFunctionLibrary.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/OdeXPathFunctionLibrary.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -37,7 +37,7 @@
public class OdeXPathFunctionLibrary extends net.sf.saxon.xpath.XPathFunctionLibrary {
private static final long serialVersionUID = -8885396864277163797L;
- private JaxpFunctionResolver _funcResolver;
+ private transient JaxpFunctionResolver _funcResolver;
public OdeXPathFunctionLibrary(JaxpFunctionResolver funcResolver) {
_funcResolver = funcResolver;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/SaxonContext.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/SaxonContext.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/SaxonContext.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -35,8 +35,10 @@
*/
public class SaxonContext extends JAXPXPathStaticContext {
- private JaxpVariableResolver _varResolver;
- private JaxpFunctionResolver _funcResolver;
+
+ private static final long serialVersionUID = 2460900369574468960L;
+ private transient JaxpVariableResolver _varResolver;
+ private transient JaxpFunctionResolver _funcResolver;
public SaxonContext(Configuration config, JaxpVariableResolver varResolver,
JaxpFunctionResolver funcResolver) {
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -20,9 +20,12 @@
package org.apache.ode.bpel.elang.xpath20.compiler;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerFactory;
@@ -251,60 +254,19 @@
* @return list of function expressions that may not have been resolved properly
*/
private List<String> extractFunctionExprs(String xpathStr) {
- ArrayList<String> functionExprs = new ArrayList<String>();
+ 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("(");
- StringBuffer functionExpr = new StringBuffer();
- if ((firstFunction > 0 && // the xpath contains a function
- firstFunction < lastFunction)) { // the xpath references multiple variables
- // most likely, the variable reference has not been resolved, so make that happen
- boolean quoted = false, doubleQuoted = false, function = false, arguments = false;
- Name11Checker nameChecker = Name11Checker.getInstance();
- for (int index = firstFunction; index < xpathStr.length(); index++) {
- if (!function) {
- int colonIndex = xpathStr.indexOf(':', index);
- if (colonIndex == -1) {
- break;
- }
- while (colonIndex >= 0 &&
nameChecker.isNCNameChar(xpathStr.charAt(--colonIndex)));
- if (xpathStr.charAt(colonIndex) == '$') {
- index = xpathStr.indexOf(':', index) + 1;
- continue;
- }
- function = true;
- arguments = false;
- functionExpr.setLength(0);
- index = colonIndex;
- continue;
- }
- char ch = xpathStr.charAt(index);
- if (function) {
- functionExpr.append(ch);
- // in the name is qualified, don't check if its a qname when we're at the
":" character
- if (ch == ':') {
- continue;
- } else if (ch == '(') {
- if (nameChecker.isQName(functionExpr.substring(0, functionExpr.length() - 1))) {
- arguments = true;
- } else {
- function = false;
- continue;
- }
- } else if (ch == ')') {
- if (arguments) {
- function = false;
- functionExprs.add(functionExpr.toString());
- functionExpr.setLength(0);
- }
- } else {
- if (!arguments) {
- if (!nameChecker.isQName(functionExpr.substring(0, functionExpr.length()))) {
- function = false;
- }
- }
- }
- }
- }
+ 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;
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10BpelFunctions.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10BpelFunctions.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10BpelFunctions.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -17,165 +17,168 @@
* under the License.
*/
-package org.apache.ode.bpel.elang.xquery10.compiler;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.xml.namespace.QName;
-import javax.xml.xpath.XPathFunction;
-import javax.xml.xpath.XPathFunctionException;
-
-import net.sf.saxon.dom.NodeWrapper;
-import net.sf.saxon.expr.XPathContext;
-import net.sf.saxon.om.Item;
-
-import org.apache.ode.bpel.elang.xpath20.compiler.Constants;
-import org.apache.ode.bpel.elang.xpath20.compiler.JaxpFunctionResolver;
-import org.apache.ode.utils.Namespaces;
-import org.w3c.dom.Node;
-
-
-/**
- * XQuery-Friendly definition of BPEL functions, which
- * delegates calls to the JAXP-based function resolver
- */
-public class XQuery10BpelFunctions {
- public static final String USER_DATA_KEY_FUNCTION_RESOLVER =
"function-resolver";
- private static final QName WSBPEL_GET_VARIABLE_PROPERTY = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
- Constants.EXT_FUNCTION_GETVARIABLEPROPERTY);
- private static final QName WSBPEL_GET_VARIABLE_DATA = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
- Constants.EXT_FUNCTION_GETVARIABLEDATA);
- private static final QName WSBPEL_GET_LINK_STATUS = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
- Constants.EXT_FUNCTION_GETLINKSTATUS);
- private static final QName WSBPEL_DO_XSL_TRANSFORM = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
- Constants.EXT_FUNCTION_DOXSLTRANSFORM);
-
- /**
- * WS-BPEL getVariableProperty function
- *
- * @param context context
- * @param variableName variableName
- * @param propertyName propertyName
- *
- * @return type
- *
- * @throws XPathFunctionException XPathFunctionException
- */
- public static Object getVariableProperty(XPathContext context,
- String variableName, String propertyName) throws XPathFunctionException {
- ArrayList<String> arguments = new ArrayList<String>();
- arguments.add(variableName);
- arguments.add(propertyName);
-
- return evaluate(resolveFunction(context, WSBPEL_GET_VARIABLE_PROPERTY),
- arguments);
- }
-
- /**
- * WS-BPEL getVariableData function
- *
- * @param context context
- * @param variableName variableName
- * @param partName partName
- * @param xpath xpath
- *
- * @return type
- *
- * @throws XPathFunctionException XPathFunctionException
- */
- public static Object getVariableData(XPathContext context,
- String variableName, String partName, String xpath)
- throws XPathFunctionException {
- ArrayList<String> arguments = new ArrayList<String>();
- arguments.add(variableName);
- arguments.add(partName);
- arguments.add(xpath);
-
- return evaluate(resolveFunction(context, WSBPEL_GET_VARIABLE_DATA),
- arguments);
- }
-
- /**
- * WS-BPEL doXslTransform function
- *
- * @param context context
- * @param xslUri xslUri
- * @param sources sources
- *
- * @return type
- *
- * @throws XPathFunctionException XPathFunctionException
- */
- public static Object doXslTransform(XPathContext context, String xslUri,
- Object sources) throws XPathFunctionException {
- ArrayList<Object> arguments = new ArrayList<Object>();
- arguments.add(xslUri);
- arguments.add(sources);
-
- return evaluate(resolveFunction(context, WSBPEL_DO_XSL_TRANSFORM),
- arguments);
- }
-
- /**
- * WS-BPEL getLinkStatus function
- *
- * @param context context
- * @param linkName linkName
- *
- * @return type
- *
- * @throws XPathFunctionException XPathFunctionException
- */
- public static Object getLinkStatus(XPathContext context, String linkName)
- throws XPathFunctionException {
- ArrayList<String> arguments = new ArrayList<String>();
- arguments.add(linkName);
-
- return evaluate(resolveFunction(context, WSBPEL_GET_LINK_STATUS),
- arguments);
- }
-
- /**
- * Locates the JAXP equivalent function
- *
- * @param context context
- * @param name name
- *
- * @return type
- */
- private static XPathFunction resolveFunction(XPathContext context,
- QName name) {
- JaxpFunctionResolver funcResolver = null;
- Item item = context.getCurrentIterator().current();
-
- if (item instanceof NodeWrapper) {
- Node node = (Node) ((NodeWrapper) item).getUnderlyingNode();
-
- if (node != null) {
- funcResolver = (JaxpFunctionResolver)
node.getUserData(USER_DATA_KEY_FUNCTION_RESOLVER);
- }
- }
-
- return funcResolver.resolveFunction(name, 0);
- }
-
- /**
- * Evaluates function against arguments passed by XQuery
- *
- * @param function function
- * @param arguments arguments
- *
- * @return type
- *
- * @throws XPathFunctionException XPathFunctionException
- */
- private static Object evaluate(XPathFunction function, List arguments)
- throws XPathFunctionException {
- if (function == null) {
- throw new XPathFunctionException("Unable to locate function in
library");
- }
-
- return function.evaluate(arguments);
- }
-}
+package org.apache.ode.bpel.elang.xquery10.compiler;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.namespace.QName;
+import javax.xml.xpath.XPathFunction;
+import javax.xml.xpath.XPathFunctionException;
+
+import net.sf.saxon.dom.NodeWrapper;
+import net.sf.saxon.expr.XPathContext;
+import net.sf.saxon.om.Item;
+
+import org.apache.ode.bpel.elang.xpath20.compiler.Constants;
+import org.apache.ode.bpel.elang.xpath20.compiler.JaxpFunctionResolver;
+import org.apache.ode.utils.Namespaces;
+import org.w3c.dom.Node;
+
+
+/**
+ * XQuery-Friendly definition of BPEL functions, which
+ * delegates calls to the JAXP-based function resolver
+ */
+public class XQuery10BpelFunctions {
+ public static final String USER_DATA_KEY_FUNCTION_RESOLVER =
"function-resolver";
+ private static final QName WSBPEL_GET_VARIABLE_PROPERTY = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
+ Constants.EXT_FUNCTION_GETVARIABLEPROPERTY);
+ private static final QName WSBPEL_GET_VARIABLE_DATA = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
+ Constants.EXT_FUNCTION_GETVARIABLEDATA);
+ private static final QName WSBPEL_GET_LINK_STATUS = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
+ Constants.EXT_FUNCTION_GETLINKSTATUS);
+ private static final QName WSBPEL_DO_XSL_TRANSFORM = new
QName(Namespaces.WSBPEL2_0_FINAL_EXEC,
+ Constants.EXT_FUNCTION_DOXSLTRANSFORM);
+
+ /**
+ * WS-BPEL getVariableProperty function
+ *
+ * @param context context
+ * @param variableName variableName
+ * @param propertyName propertyName
+ *
+ * @return type
+ *
+ * @throws XPathFunctionException XPathFunctionException
+ */
+ public static Object getVariableProperty(XPathContext context,
+ String variableName, String propertyName) throws XPathFunctionException {
+ ArrayList<String> arguments = new ArrayList<String>();
+ arguments.add(variableName);
+ arguments.add(propertyName);
+
+ return evaluate(resolveFunction(context, WSBPEL_GET_VARIABLE_PROPERTY),
+ arguments);
+ }
+
+ /**
+ * WS-BPEL getVariableData function
+ *
+ * @param context context
+ * @param variableName variableName
+ * @param partName partName
+ * @param xpath xpath
+ *
+ * @return type
+ *
+ * @throws XPathFunctionException XPathFunctionException
+ */
+ public static Object getVariableData(XPathContext context,
+ String variableName, String partName, String xpath)
+ throws XPathFunctionException {
+ ArrayList<String> arguments = new ArrayList<String>();
+ arguments.add(variableName);
+ arguments.add(partName);
+ arguments.add(xpath);
+
+ return evaluate(resolveFunction(context, WSBPEL_GET_VARIABLE_DATA),
+ arguments);
+ }
+
+ /**
+ * WS-BPEL doXslTransform function
+ *
+ * @param context context
+ * @param xslUri xslUri
+ * @param sources sources
+ *
+ * @return type
+ *
+ * @throws XPathFunctionException XPathFunctionException
+ */
+ public static Object doXslTransform(XPathContext context, String xslUri,
+ Object sources) throws XPathFunctionException {
+ ArrayList<Object> arguments = new ArrayList<Object>();
+ arguments.add(xslUri);
+ arguments.add(sources);
+
+ return evaluate(resolveFunction(context, WSBPEL_DO_XSL_TRANSFORM),
+ arguments);
+ }
+
+ /**
+ * WS-BPEL getLinkStatus function
+ *
+ * @param context context
+ * @param linkName linkName
+ *
+ * @return type
+ *
+ * @throws XPathFunctionException XPathFunctionException
+ */
+ public static Object getLinkStatus(XPathContext context, String linkName)
+ throws XPathFunctionException {
+ ArrayList<String> arguments = new ArrayList<String>();
+ arguments.add(linkName);
+
+ return evaluate(resolveFunction(context, WSBPEL_GET_LINK_STATUS),
+ arguments);
+ }
+
+ /**
+ * Locates the JAXP equivalent function
+ *
+ * @param context context
+ * @param name name
+ *
+ * @return type
+ */
+ private static XPathFunction resolveFunction(XPathContext context,
+ QName name) {
+ Item item = context.getCurrentIterator().current();
+ XPathFunction function = null;
+
+ if (item instanceof NodeWrapper) {
+ Node node = (Node) ((NodeWrapper) item).getUnderlyingNode();
+ JaxpFunctionResolver funcResolver = null;
+ if (node != null) {
+ funcResolver = (JaxpFunctionResolver)
node.getUserData(USER_DATA_KEY_FUNCTION_RESOLVER);
+ }
+ if (funcResolver != null) {
+ function = funcResolver.resolveFunction(name, 0);
+ }
+ }
+
+ return function;
+ }
+
+ /**
+ * Evaluates function against arguments passed by XQuery
+ *
+ * @param function function
+ * @param arguments arguments
+ *
+ * @return type
+ *
+ * @throws XPathFunctionException XPathFunctionException
+ */
+ private static Object evaluate(XPathFunction function, List arguments)
+ throws XPathFunctionException {
+ if (function == null) {
+ throw new XPathFunctionException("Unable to locate function in
library");
+ }
+
+ return function.evaluate(arguments);
+ }
+}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -365,7 +365,7 @@
return typeQName;
}
- private class XQueryDeclarations {
+ private static class XQueryDeclarations {
StringBuffer declarations = new StringBuffer();
public XQueryDeclarations() {}
Added:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xpath20/compiler/XPath20ExpressionCompilerImplTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,86 @@
+/*
+ * 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.xpath20.compiler;
+
+import java.lang.reflect.Method;
+import java.util.List;
+
+import org.junit.*;
+
+
+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();
+ 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());
+ }
+ }
+ }
+
+ @Test
+ public void testTimeStampInFunction() throws Exception {
+ 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\"))" };
+ methods[i].setAccessible(true);
+ Object ret = methods[i].invoke(xp20Exp, params);
+ List<?> values = (List<?>) ret;
+ Assert.assertEquals(1, values.size());
+ }
+ }
+
+ }
+
+ @Test
+ public void testresolvedFunctionsTimeStamp() throws Exception {
+ 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\")" };
+ 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));
+ }
+ }
+ }
+
+
+
+
+}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImplTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImplTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/java/org/apache/ode/bpel/elang/xquery10/compiler/XQuery10ExpressionCompilerImplTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.xquery10.compiler;
import java.util.Arrays;
Modified: branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/resources/log4j.properties
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/resources/log4j.properties 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-compiler/src/test/resources/log4j.properties 2010-05-28
04:59:49 UTC (rev 677)
@@ -32,5 +32,5 @@
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x -
%m%n
-log4j.category.org.apache.ode=INFO
+log4j.category.org.apache.ode=DEBUG
Modified:
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/DeferredProcessInstanceCleanable.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/DeferredProcessInstanceCleanable.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/DeferredProcessInstanceCleanable.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.dao;
import java.io.Serializable;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/FilteredInstanceDeletable.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/FilteredInstanceDeletable.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/FilteredInstanceDeletable.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.dao;
import java.util.Set;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ScopeStateEnum.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ScopeStateEnum.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-dao/src/main/java/org/apache/ode/bpel/dao/ScopeStateEnum.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -18,39 +18,6 @@
*/
package org.apache.ode.bpel.dao;
-public class ScopeStateEnum {
- /** DOCUMENTME */
- public static final ScopeStateEnum ACTIVE = new ScopeStateEnum("ACTIVE");
-
- /** DOCUMENTME */
- public static final ScopeStateEnum FAULTED = new ScopeStateEnum("FAULTED");
-
- /** DOCUMENTME */
- public static final ScopeStateEnum FAULTHANDLER = new
ScopeStateEnum("FAULTHANDLER");
-
- /** DOCUMENTME */
- public static final ScopeStateEnum COMPLETED = new
ScopeStateEnum("COMPLETED");
-
- /** DOCUMENTME */
- public static final ScopeStateEnum COMPENSATING = new
ScopeStateEnum("COMPENSATING");
-
- /** DOCUMENTME */
- public static final ScopeStateEnum COMPENSATED = new
ScopeStateEnum("COMPENSATED");
- private final String myName; // for debug only
-
- public ScopeStateEnum(String name) {
- myName = name;
- }
-
- public boolean equals(Object o) {
- return ((ScopeStateEnum)o).myName.equals(myName);
- }
-
- public int hashCode() {
- return myName.hashCode();
- }
-
- public String toString() {
- return myName;
- }
+public enum ScopeStateEnum {
+ NEW, ACTIVE, FAULT, COMPLETED
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-epr/src/main/java/org/apache/ode/il/MockScheduler.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -69,7 +69,7 @@
}
};
- public String schedulePersistedJob(final Map<String, Object> detail, final Date
date) throws ContextException {
+ public String schedulePersistedJob(final JobDetails detail, final Date date) throws
ContextException {
if (date != null) {
return scheduleVolatileJob(true, detail, date);
} else {
@@ -77,11 +77,11 @@
}
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object>
jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws
ContextException {
return scheduleVolatileJob(transacted, jobDetail, null);
}
- public String scheduleVolatileJob(final boolean transacted, final Map<String,
Object> detail, final Date date) throws ContextException {
+ public String scheduleVolatileJob(final boolean transacted, final JobDetails detail,
final Date date) throws ContextException {
if (date != null) {
registerSynchronizer(new Synchronizer() {
public void afterCompletion(boolean success) {
@@ -113,7 +113,7 @@
}
}
- private void exec(boolean transacted, final Map<String, Object> detail) {
+ private void exec(boolean transacted, final JobDetails detail) {
try {
if (transacted) {
@@ -148,7 +148,7 @@
});
return null;
} else {
- return scheduleVolatileJob(true, new HashMap<String, Object>());
+ return scheduleVolatileJob(true, new JobDetails());
}
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-obj/src/main/java/org/apache/ode/bpel/o/OMessageVarType.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-obj/src/main/java/org/apache/ode/bpel/o/OMessageVarType.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-obj/src/main/java/org/apache/ode/bpel/o/OMessageVarType.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -68,6 +68,14 @@
return el;
}
+ public String toString() {
+ StringBuffer buf = new StringBuffer(super.toString());
+ buf.append('(');
+ buf.append(this.messageType.toString());
+ buf.append(')');
+ return buf.toString();
+ }
+
public static class Part extends OBase {
private static final long serialVersionUID = -2356665271228433779L;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelEngineImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -52,7 +52,9 @@
import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.MyRoleMessageExchange.CorrelationStatus;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.JobInfo;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
import org.apache.ode.bpel.intercept.ProcessCountThrottler;
@@ -378,31 +380,36 @@
if (process == null) return null;
return process.getOProcess();
}
-
- public void onScheduledJob(Scheduler.JobInfo jobInfo) throws
Scheduler.JobProcessorException {
- final WorkEvent we = new WorkEvent(jobInfo.jobDetail);
-
- if( __log.isTraceEnabled() ) __log.trace("[JOB] onScheduledJob " +
jobInfo + "" + we.getIID());
-
+
+ public void acquireInstanceLock(final Long iid) {
// We lock the instance to prevent concurrent transactions and prevent
unnecessary rollbacks,
// Note that we don't want to wait too long here to get our lock, since we
are likely holding
// on to scheduler's locks of various sorts.
try {
- _instanceLockManager.lock(we.getIID(), 1, TimeUnit.MICROSECONDS);
+ _instanceLockManager.lock(iid, 1, TimeUnit.MICROSECONDS);
_contexts.scheduler.registerSynchronizer(new Scheduler.Synchronizer() {
public void afterCompletion(boolean success) {
- _instanceLockManager.unlock(we.getIID());
+ _instanceLockManager.unlock(iid);
}
public void beforeCompletion() { }
});
} catch (InterruptedException e) {
// Retry later.
- __log.debug("Thread interrupted, job will be rescheduled: " +
jobInfo);
+ __log.debug("Thread interrupted, job will be rescheduled");
throw new Scheduler.JobProcessorException(true);
} catch (org.apache.ode.bpel.engine.InstanceLockManager.TimeoutException e) {
- __log.debug("Instance " + we.getIID() + " is busy,
rescheduling job.");
+ __log.debug("Instance " + iid + " is busy, rescheduling
job.");
throw new Scheduler.JobProcessorException(true);
}
+ }
+
+ public void onScheduledJob(Scheduler.JobInfo jobInfo) throws
Scheduler.JobProcessorException {
+ final JobDetails we = jobInfo.jobDetail;
+
+ if( __log.isTraceEnabled() ) __log.trace("[JOB] onScheduledJob " +
jobInfo + "" + we.getInstanceId());
+
+ acquireInstanceLock(we.getInstanceId());
+
// DONT PUT CODE HERE-need this method real tight in a try/catch block, we need
to handle
// all types of failure here, the scheduler is not going to know how to handle
our errors,
// ALSO we have to release the lock obtained above (IMPORTANT), lest the whole
system come
@@ -413,11 +420,11 @@
process = _activeProcesses.get(we.getProcessId());
} else {
ProcessInstanceDAO instance;
- if (we.isInMem()) instance =
_contexts.inMemDao.getConnection().getInstance(we.getIID());
- else instance = _contexts.dao.getConnection().getInstance(we.getIID());
+ if (we.getInMem()) instance =
_contexts.inMemDao.getConnection().getInstance(we.getInstanceId());
+ else instance =
_contexts.dao.getConnection().getInstance(we.getInstanceId());
if (instance == null) {
-
__log.debug(__msgs.msgScheduledJobReferencesUnknownInstance(we.getIID()));
+
__log.debug(__msgs.msgScheduledJobReferencesUnknownInstance(we.getInstanceId()));
// nothing we can do, this instance is not in the database, it will
always fail, not
// exactly an error since can occur in normal course of events.
return;
@@ -435,13 +442,13 @@
ClassLoader cl = Thread.currentThread().getContextClassLoader();
try {
Thread.currentThread().setContextClassLoader(process._classLoader);
- if (we.getType().equals(WorkEvent.Type.INVOKE_CHECK)) {
- if (__log.isDebugEnabled()) __log.debug("handleWorkEvent:
InvokeCheck event for mexid " + we.getMexId());
+ if (we.getType().equals(JobType.INVOKE_CHECK)) {
+ if (__log.isDebugEnabled()) __log.debug("handleJobDetails:
InvokeCheck event for mexid " + we.getMexId());
sendPartnerRoleFailure(we,
MessageExchange.FailureType.COMMUNICATION_ERROR);
return;
- } else if (we.getType().equals(WorkEvent.Type.INVOKE_INTERNAL)) {
- if (__log.isDebugEnabled()) __log.debug("handleWorkEvent:
InvokeInternal event for mexid " + we.getMexId());
+ } else if (we.getType().equals(JobType.INVOKE_INTERNAL)) {
+ if (__log.isDebugEnabled()) __log.debug("handleJobDetails:
InvokeInternal event for mexid " + we.getMexId());
setMessageExchangeProcess(we.getMexId(), process.getProcessDAO());
MyRoleMessageExchangeImpl mex = (MyRoleMessageExchangeImpl)
getMessageExchange(we.getMexId());
@@ -458,33 +465,35 @@
}
}
}
- process.handleWorkEvent(jobInfo.jobDetail);
+ process.handleJobDetails(jobInfo.jobDetail);
debuggingDelay();
} finally {
Thread.currentThread().setContextClassLoader(cl);
}
+ } catch (Scheduler.JobProcessorException e) {
+ throw e;
} catch (BpelEngineException bee) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), bee);
+ __log.error(__msgs.msgScheduledJobFailed(we), bee);
throw new Scheduler.JobProcessorException(bee, checkRetry(we));
} catch (ContextException ce) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), ce);
+ __log.error(__msgs.msgScheduledJobFailed(we), ce);
throw new Scheduler.JobProcessorException(ce, checkRetry(we));
} catch (InvalidProcessException ipe) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), ipe);
+ __log.error(__msgs.msgScheduledJobFailed(we), ipe);
sendMyRoleFault(process, we, ipe.getCauseCode());
} catch (RuntimeException rte) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), rte);
+ __log.error(__msgs.msgScheduledJobFailed(we), rte);
throw new Scheduler.JobProcessorException(rte, checkRetry(we));
} catch (Throwable t) {
- __log.error(__msgs.msgScheduledJobFailed(we.getDetail()), t);
+ __log.error(__msgs.msgScheduledJobFailed(we), t);
throw new Scheduler.JobProcessorException(t, checkRetry(we));
}
}
- private boolean checkRetry(WorkEvent we) {
+ private boolean checkRetry(JobDetails we) {
// Only retry if the job is NOT in memory. Not that this does not guaranty that a
retry will be scheduled.
// Actually events are not retried if not persisted and the scheduler might
choose to discard the event if it has been retried too many times.
- return !we.isInMem();
+ return !we.getInMem();
}
/**
@@ -692,7 +701,7 @@
return false;
}
- public void sendMyRoleFault(BpelProcess process, WorkEvent we, int causeCode) {
+ public void sendMyRoleFault(BpelProcess process, JobDetails we, int causeCode) {
MessageExchange mex = (MessageExchange) getMessageExchange(we.getMexId());
if (!(mex instanceof MyRoleMessageExchange)) {
return;
@@ -725,7 +734,7 @@
&&
activeProcess.getConf().getType().equals(process.getConf().getType())) {
we.setProcessId(activeProcess._pid);
((MyRoleMessageExchangeImpl) mex)._process = activeProcess;
- process.handleWorkEvent(we.getDetail());
+ process.handleJobDetails(we);
return;
}
}
@@ -741,7 +750,7 @@
}
}
- private void sendPartnerRoleFailure(WorkEvent we, FailureType failureType) {
+ private void sendPartnerRoleFailure(JobDetails we, FailureType failureType) {
MessageExchange mex = (MessageExchange) getMessageExchange(we.getMexId());
if (mex instanceof PartnerRoleMessageExchange) {
if (mex.getStatus() == MessageExchange.Status.ASYNC || mex.getStatus() ==
MessageExchange.Status.REQUEST) {
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelProcess.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -55,6 +55,8 @@
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InstanceCountThrottler;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.intercept.MessageExchangeInterceptor;
@@ -286,6 +288,7 @@
return true;
} else if (routing.messageRoute != null) {
// Found a route, hitting it
+
_engine.acquireInstanceLock(routing.messageRoute.getTargetInstance().getInstanceId());
target.invokeInstance(mex, routing);
return true;
}
@@ -406,20 +409,20 @@
}
/**
- * @see
org.apache.ode.bpel.engine.BpelProcess#handleWorkEvent(java.util.Map<java.lang.String,java.lang.Object>)
+ * @see
org.apache.ode.bpel.engine.BpelProcess#handleJobDetails(java.util.Map<java.lang.String,java.lang.Object>)
*/
- public void handleWorkEvent(Map<String, Object> jobData) {
+ public void handleJobDetails(JobDetails jobData) {
try {
_hydrationLatch.latch(1);
markused();
if (__log.isDebugEnabled()) {
-
__log.debug(ObjectPrinter.stringifyMethodEnter("handleWorkEvent", new Object[] {
"jobData", jobData }));
+
__log.debug(ObjectPrinter.stringifyMethodEnter("handleJobDetails", new Object[]
{ "jobData", jobData }));
}
- WorkEvent we = new WorkEvent(jobData);
+ JobDetails we = jobData;
// Process level events
- if (we.getType().equals(WorkEvent.Type.INVOKE_INTERNAL)) {
+ if (we.getType().equals(JobType.INVOKE_INTERNAL)) {
if (__log.isDebugEnabled()) {
__log.debug("InvokeInternal event for mexid " +
we.getMexId());
}
@@ -427,10 +430,10 @@
invokeProcess(mex);
} else {
// Instance level events
- ProcessInstanceDAO procInstance =
getProcessDAO().getInstance(we.getIID());
+ ProcessInstanceDAO procInstance =
getProcessDAO().getInstance(we.getInstanceId());
if (procInstance == null) {
if (__log.isDebugEnabled()) {
- __log.debug("handleWorkEvent: no ProcessInstance found with
iid " + we.getIID() + "; ignoring.");
+ __log.debug("handleJobDetails: no ProcessInstance found with
iid " + we.getInstanceId() + "; ignoring.");
}
return;
}
@@ -439,26 +442,26 @@
switch (we.getType()) {
case TIMER:
if (__log.isDebugEnabled()) {
- __log.debug("handleWorkEvent: TimerWork event for
process instance " + processInstance);
+ __log.debug("handleJobDetails: TimerWork event for
process instance " + processInstance);
}
processInstance.timerEvent(we.getChannel());
break;
case RESUME:
if (__log.isDebugEnabled()) {
- __log.debug("handleWorkEvent: ResumeWork event for iid
" + we.getIID());
+ __log.debug("handleJobDetails: ResumeWork event for iid
" + we.getInstanceId());
}
processInstance.execute();
break;
case INVOKE_RESPONSE:
if (__log.isDebugEnabled()) {
- __log.debug("InvokeResponse event for iid " +
we.getIID());
+ __log.debug("InvokeResponse event for iid " +
we.getInstanceId());
}
processInstance.invocationResponse(we.getMexId(),
we.getChannel());
processInstance.execute();
break;
case MATCHER:
if (__log.isDebugEnabled()) {
- __log.debug("Matcher event for iid " +
we.getIID());
+ __log.debug("Matcher event for iid " +
we.getInstanceId());
}
if( procInstance.getState() == ProcessState.STATE_COMPLETED_OK
|| procInstance.getState() ==
ProcessState.STATE_COMPLETED_WITH_FAULT ) {
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -48,6 +48,7 @@
import org.apache.ode.bpel.dao.ProcessDAO;
import org.apache.ode.bpel.dao.ProcessInstanceDAO;
import org.apache.ode.bpel.dao.ScopeDAO;
+import org.apache.ode.bpel.dao.ScopeStateEnum;
import org.apache.ode.bpel.dao.XmlDataDAO;
import org.apache.ode.bpel.evar.ExternalVariableModuleException;
import org.apache.ode.bpel.evar.ExternalVariableModule.Value;
@@ -57,7 +58,10 @@
import org.apache.ode.bpel.evt.ProcessInstanceStateChangeEvent;
import org.apache.ode.bpel.evt.ProcessMessageExchangeEvent;
import org.apache.ode.bpel.evt.ProcessTerminationEvent;
+import org.apache.ode.bpel.evt.ScopeCompletionEvent;
import org.apache.ode.bpel.evt.ScopeEvent;
+import org.apache.ode.bpel.evt.ScopeFaultEvent;
+import org.apache.ode.bpel.evt.ScopeStartEvent;
import org.apache.ode.bpel.iapi.BpelEngineException;
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.Endpoint;
@@ -72,6 +76,8 @@
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
import org.apache.ode.bpel.memdao.ProcessInstanceDaoImpl;
import org.apache.ode.bpel.o.OFailureHandling;
@@ -698,29 +704,29 @@
}
public void registerTimer(TimerResponseChannel timerChannel, Date timeToFire) {
- WorkEvent we = new WorkEvent();
- we.setIID(_dao.getInstanceId());
+ JobDetails we = new JobDetails();
+ we.setInstanceId(_dao.getInstanceId());
we.setChannel(timerChannel.export());
- we.setType(WorkEvent.Type.TIMER);
+ we.setType(JobType.TIMER);
we.setInMem(_bpelProcess.isInMemory());
if(_bpelProcess.isInMemory()){
- _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true,
we.getDetail(), timeToFire);
+ _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we,
timeToFire);
}else{
- _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(),
timeToFire);
+ _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we,
timeToFire);
}
}
private void scheduleCorrelatorMatcher(String correlatorId, CorrelationKeySet keySet)
{
- WorkEvent we = new WorkEvent();
- we.setIID(_dao.getInstanceId());
- we.setType(WorkEvent.Type.MATCHER);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(_dao.getInstanceId());
+ we.setType(JobType.MATCHER);
we.setCorrelatorId(correlatorId);
we.setCorrelationKeySet(keySet);
we.setInMem(_bpelProcess.isInMemory());
if(_bpelProcess.isInMemory()){
- _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true,
we.getDetail());
+ _bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we);
}else{
- _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(),
null);
+ _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we, null);
}
}
@@ -911,16 +917,16 @@
boolean isTwoWay = mex.getMessageExchangePattern() ==
org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern.REQUEST_RESPONSE;
if (!_bpelProcess.isInMemory() && isTwoWay) {
- WorkEvent event = new WorkEvent();
+ JobDetails event = new JobDetails();
event.setMexId(mex.getMessageExchangeId());
event.setProcessId(_bpelProcess.getPID());
event.setInMem(false);
- event.setType(WorkEvent.Type.INVOKE_CHECK);
+ event.setType(JobType.INVOKE_CHECK);
// use a greater timeout to make sure the check job does not get executed
while the service invocation is still waiting for a response
long timeout = getBpelProcess().getTimeout(partnerLink, p2p);
if (__log.isDebugEnabled()) __log.debug("Creating invocation check event
in "+timeout+"ms for mexid " + mex.getMessageExchangeId());
Date future = new Date(System.currentTimeMillis() + timeout);
- String jobId =
_bpelProcess._engine._contexts.scheduler.schedulePersistedJob(event.getDetail(), future);
+ String jobId =
_bpelProcess._engine._contexts.scheduler.schedulePersistedJob(event, future);
mex.setProperty("invokeCheckJobId", jobId);
}
}
@@ -977,14 +983,14 @@
if (__log.isDebugEnabled())
__log.debug("MaxTime exceeded for instance # " + _iid);
try {
- WorkEvent we = new WorkEvent();
- we.setIID(_iid);
- we.setType(WorkEvent.Type.RESUME);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(_iid);
+ we.setType(JobType.RESUME);
we.setInMem(_bpelProcess.isInMemory());
if (_bpelProcess.isInMemory())
-
_bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail());
+
_bpelProcess._engine._contexts.scheduler.scheduleVolatileJob(true, we);
else
-
_bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), new
Date());
+ _bpelProcess._engine._contexts.scheduler.schedulePersistedJob(we,
new Date());
} catch (ContextException e) {
__log.error("Failed to schedule resume task.", e);
throw new BpelEngineException(e);
@@ -1119,6 +1125,11 @@
sendEvent(evt);
}
+ private void saveScopeState(Long scopeId, ScopeStateEnum scopeState) {
+ ScopeDAO scope = _dao.getScope(scopeId);
+ scope.setState(scopeState);
+ }
+
/**
* @see BpelRuntimeContext#sendEvent(org.apache.ode.bpel.evt.ProcessInstanceEvent)
*/
@@ -1132,7 +1143,17 @@
// filter scopes
List<String> scopeNames = null;
if (event instanceof ScopeEvent) {
- scopeNames = ((ScopeEvent) event).getParentScopesNames();
+ ScopeEvent sevent = (ScopeEvent) event;
+
+ scopeNames = sevent.getParentScopesNames();
+
+ if (sevent instanceof ScopeStartEvent) {
+ saveScopeState(sevent.getScopeId(), ScopeStateEnum.ACTIVE);
+ } else if (sevent instanceof ScopeCompletionEvent) {
+ saveScopeState(sevent.getScopeId(), ScopeStateEnum.COMPLETED);
+ } else if (sevent instanceof ScopeFaultEvent) {
+ saveScopeState(sevent.getScopeId(), ScopeStateEnum.FAULT);
+ }
}
// saving
@@ -1458,31 +1479,29 @@
MessageExchangeDAO mexdao = correlator.dequeueMessage(ckeySet);
if (mexdao != null) {
__log.debug("MatcherEvent handling: found matching message in DB (i.e.
message arrived before <receive>)");
-
- if(
MessageExchangePattern.REQUEST_RESPONSE.toString().equals(mexdao.getPattern())) {
- __log.warn("A message arrived before a receive is ready for a
request/response pattern. This may be processed to success. However, you should consider
revising your process since this may cause performance degradataion");
- }
-
- Set<String> groupIds = new HashSet<String>();
+ if(
MessageExchangePattern.REQUEST_RESPONSE.toString().equals(mexdao.getPattern())) {
+ __log.warn("A message arrived before a receive is ready for a
request/response pattern. This may be processed to success. However, you should consider
revising your process since a TCP port and a container thread will be held for a longer
time and the process will not scale under heavy load.");
+ }
+
for (MessageRouteDAO mroute : mroutes) {
// We have a match, so we can get rid of the routing entries.
- groupIds.add(mroute.getGroupId());
-
- // Found message matching one of our selectors.
- if (BpelProcess.__log.isDebugEnabled()) {
- BpelProcess.__log.debug("SELECT: " + mroute.getGroupId() +
": matched to MESSAGE " + mexdao
- + " on CKEYSET " + ckeySet);
- }
-
- MyRoleMessageExchangeImpl mex = new
MyRoleMessageExchangeImpl(_bpelProcess, _bpelProcess._engine, mexdao);
-
- inputMsgMatch(mroute.getGroupId(), mroute.getIndex(), mex);
- execute();
+ correlator.removeRoutes(mroute.getGroupId(), _dao);
}
- for (String groupId : groupIds) {
- correlator.removeRoutes(groupId, _dao);
+
+ // Selecting first route to proceed, other matching entries are ignored
+ MessageRouteDAO mroute = mroutes.get(0);
+
+ // Found message matching one of our selectors.
+ if (BpelProcess.__log.isDebugEnabled()) {
+ BpelProcess.__log.debug("SELECT: " + mroute.getGroupId() +
": matched to MESSAGE " + mexdao
+ + " on CKEYSET " + ckeySet);
}
+ MyRoleMessageExchangeImpl mex = new MyRoleMessageExchangeImpl(_bpelProcess,
_bpelProcess._engine, mexdao);
+
+ inputMsgMatch(mroute.getGroupId(), mroute.getIndex(), mex);
+ execute();
+
// Do not release yet if the process is suspended, the mex will be used
again
if (_dao.getState() != ProcessState.STATE_SUSPENDED)
mexdao.releasePremieMessages();
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelServerImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -619,7 +619,7 @@
}
if( statusOfPriorTry == JOB_STATUS.COMPLETED ) {
resultsByJobId.remove(jobInfo.jobName);
- jobInfo.jobDetail.put("runnable_status",
JOB_STATUS.COMPLETED);
+ jobInfo.jobDetail.getDetailsExt().put("runnable_status",
JOB_STATUS.COMPLETED);
return;
}
if( statusOfPriorTry == JOB_STATUS.PENDING || statusOfPriorTry ==
JOB_STATUS.FAILED ) {
@@ -633,8 +633,8 @@
_polledRunnableExec.submit(new Runnable() {
public void run() {
try {
- MapSerializableRunnable runnable =
(MapSerializableRunnable)jobInfo.jobDetail.get("runnable");
- runnable.restoreFromDetailsMap(jobInfo.jobDetail);
+ MapSerializableRunnable runnable =
(MapSerializableRunnable)jobInfo.jobDetail.getDetailsExt().get("runnable");
+ runnable.restoreFromDetails(jobInfo.jobDetail);
if( runnable instanceof ContextsAware ) {
((ContextsAware)runnable).setContexts(_contexts);
}
@@ -653,7 +653,7 @@
});
}
- jobInfo.jobDetail.put("runnable_status", JOB_STATUS.IN_PROGRESS);
+ jobInfo.jobDetail.getDetailsExt().put("runnable_status",
JOB_STATUS.IN_PROGRESS);
if( exceptionThrownOnPriorTry != null ) {
throw new Scheduler.JobProcessorException(exceptionThrownOnPriorTry,
true);
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/DebuggerSupport.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -21,6 +21,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.iapi.DebuggerContext;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.bdi.breaks.Breakpoint;
import org.apache.ode.bpel.common.ProcessState;
import org.apache.ode.bpel.dao.BpelDAOConnection;
@@ -173,10 +175,10 @@
__log.debug("step(" + iid + ") adding step
indicator to table.");
_step.add(iid);
- WorkEvent we = new WorkEvent();
- we.setIID(iid);
- we.setType(WorkEvent.Type.RESUME);
-
_process._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(iid);
+ we.setType(JobType.RESUME);
+ _process._engine._contexts.scheduler.schedulePersistedJob(we,
null);
return true;
}
@@ -297,10 +299,10 @@
_process.saveEvent(evt, instance);
onEvent(evt);
- WorkEvent we = new WorkEvent();
- we.setType(WorkEvent.Type.RESUME);
- we.setIID(iid);
-
_process._engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ JobDetails we = new JobDetails();
+ we.setType(JobType.RESUME);
+ we.setInstanceId(iid);
+ _process._engine._contexts.scheduler.schedulePersistedJob(we,
null);
return true;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/Messages.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -18,6 +18,7 @@
*/
package org.apache.ode.bpel.engine;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.utils.msg.MessageBundle;
import javax.xml.namespace.QName;
@@ -186,7 +187,7 @@
return format("Error registering expression language \"" +
expressionLanguageUri + "\" with properties " + properties);
}
- public String msgScheduledJobFailed(Map<String, Object> jobDetail) {
+ public String msgScheduledJobFailed(JobDetails jobDetail) {
return format("Scheduled job failed; jobDetail={0}", jobDetail);
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -41,6 +41,8 @@
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.intercept.AbortMessageExchangeException;
import org.apache.ode.bpel.intercept.FaultMessageExchangeException;
import org.apache.ode.bpel.intercept.InterceptorInvoker;
@@ -137,8 +139,8 @@
return null;
} else {
// Schedule a new job for invocation
- WorkEvent we = new WorkEvent();
- we.setType(WorkEvent.Type.INVOKE_INTERNAL);
+ JobDetails we = new JobDetails();
+ we.setType(JobType.INVOKE_INTERNAL);
we.setInMem(target.isInMemory());
we.setProcessId(target.getPID());
we.setMexId(getDAO().getMessageExchangeId());
@@ -152,11 +154,11 @@
Replayer replayer = Replayer.replayer.get();
if (replayer == null) {
if (target.isInMemory())
- _engine._contexts.scheduler.scheduleVolatileJob(true,
we.getDetail());
+ _engine._contexts.scheduler.scheduleVolatileJob(true, we);
else
- _engine._contexts.scheduler.schedulePersistedJob(we.getDetail(),
null);
+ _engine._contexts.scheduler.schedulePersistedJob(we, null);
} else {
- replayer.scheduler.schedulePersistedJob(we.getDetail(), null);
+ replayer.scheduler.schedulePersistedJob(we, null);
}
return new ResponseFuture(getClientId());
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerLinkMyRoleImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -211,14 +211,15 @@
public void invokeInstance(MyRoleMessageExchangeImpl mex, RoutingInfo routing) {
Operation operation = getMyRoleOperation(mex.getOperationName());
if (__log.isDebugEnabled()) {
- __log.debug("INPUTMSG: " + routing.correlator.getCorrelatorId() +
": ROUTING to instance "
+ __log.debug("INPUTMSG: " + routing.correlator.getCorrelatorId() +
": ROUTING to existing instance "
+ routing.messageRoute.getTargetInstance().getInstanceId());
}
ProcessInstanceDAO instanceDao = routing.messageRoute.getTargetInstance();
+ BpelProcess process2 =
_process._engine._activeProcesses.get(instanceDao.getProcess().getProcessId());
// Reload process instance for DAO.
- BpelRuntimeContextImpl instance = _process.createRuntimeContext(instanceDao,
null, null);
+ BpelRuntimeContextImpl instance = process2.createRuntimeContext(instanceDao,
null, null);
instance.inputMsgMatch(routing.messageRoute.getGroupId(),
routing.messageRoute.getIndex(), mex);
// Kill the route so some new message does not get routed to
@@ -226,16 +227,16 @@
routing.correlator.removeRoutes(routing.messageRoute.getGroupId(), instanceDao);
// send process instance event
- CorrelationMatchEvent evt = new CorrelationMatchEvent(new
QName(_process.getOProcess().targetNamespace,
- _process.getOProcess().getName()),
_process.getProcessDAO().getProcessId(),
+ CorrelationMatchEvent evt = new CorrelationMatchEvent(new
QName(process2.getOProcess().targetNamespace,
+ process2.getOProcess().getName()), process2.getProcessDAO().getProcessId(),
instanceDao.getInstanceId(), routing.matchedKeySet);
evt.setPortType(mex.getPortType().getQName());
evt.setOperation(operation.getName());
evt.setMexId(mex.getMessageExchangeId());
- _process._debugger.onEvent(evt);
+ process2._debugger.onEvent(evt);
// store event
- _process.saveEvent(evt, instanceDao);
+ process2.saveEvent(evt, instanceDao);
mex.setCorrelationStatus(MyRoleMessageExchange.CorrelationStatus.MATCHED);
mex.getDAO().setInstance(routing.messageRoute.getTargetInstance());
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/PartnerRoleMessageExchangeImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -22,13 +22,14 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.dao.MessageExchangeDAO;
-import org.apache.ode.bpel.engine.WorkEvent.Type;
import org.apache.ode.bpel.engine.replayer.Replayer;
import org.apache.ode.bpel.iapi.BpelEngineException;
import org.apache.ode.bpel.iapi.EndpointReference;
import org.apache.ode.bpel.iapi.Message;
import org.apache.ode.bpel.iapi.PartnerRoleChannel;
import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.utils.DOMUtils;
import org.w3c.dom.Element;
@@ -132,20 +133,20 @@
if (LOG.isDebugEnabled()) {
LOG.debug("create work event for mex=" + getMessageExchangeId());
}
- WorkEvent we = new WorkEvent();
- we.setIID(getDAO().getInstance().getInstanceId());
- we.setType(Type.INVOKE_RESPONSE);
+ JobDetails we = new JobDetails();
+ we.setInstanceId(getDAO().getInstance().getInstanceId());
+ we.setType(JobType.INVOKE_RESPONSE);
we.setInMem(_engine._activeProcesses.get(getDAO().getProcess().getProcessId()).isInMemory());
we.setChannel(getDAO().getChannel());
we.setMexId(getDAO().getMessageExchangeId());
Replayer replayer = Replayer.replayer.get();
if (replayer == null) {
- if (we.isInMem())
- _engine._contexts.scheduler.scheduleVolatileJob(true, we.getDetail());
+ if (we.getInMem())
+ _engine._contexts.scheduler.scheduleVolatileJob(true, we);
else
- _engine._contexts.scheduler.schedulePersistedJob(we.getDetail(), null);
+ _engine._contexts.scheduler.schedulePersistedJob(we, null);
} else {
- replayer.scheduler.schedulePersistedJob(we.getDetail(), null);
+ replayer.scheduler.schedulePersistedJob(we, null);
}
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessAndInstanceManagementImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -75,6 +75,7 @@
import org.apache.ode.bpel.evt.ScopeEvent;
import org.apache.ode.bpel.evt.ScopeFaultEvent;
import org.apache.ode.bpel.evt.VariableEvent;
+import org.apache.ode.bpel.evt.VariableModificationEvent;
import org.apache.ode.bpel.evtproc.ActivityStateDocumentBuilder;
import org.apache.ode.bpel.iapi.BpelEngineException;
import org.apache.ode.bpel.iapi.BpelServer;
@@ -133,6 +134,7 @@
import org.apache.ode.bpel.pmapi.TVariableInfo;
import org.apache.ode.bpel.pmapi.TVariableRef;
import org.apache.ode.bpel.pmapi.VariableInfoDocument;
+import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.ISO8601DateParser;
import org.apache.ode.utils.msg.MessageBundle;
import org.apache.ode.utils.stl.CollectionsX;
@@ -1164,8 +1166,7 @@
info.setMexId(((ProcessMessageExchangeEvent) event).getMessageExchangeId());
}
if (event instanceof ScopeCompletionEvent) {
- info.setSuccess(((ScopeCompletionEvent) event).isSuccess());
- info.setFault(((ScopeCompletionEvent) event).getFault());
+ info.setSuccess(true);
}
if (event instanceof ScopeEvent) {
info.setScopeId(((ScopeEvent) event).getScopeId());
@@ -1183,6 +1184,9 @@
if (event instanceof VariableEvent) {
info.setVariableName(((VariableEvent) event).getVarName());
}
+ if(event instanceof VariableModificationEvent) {
+ info.setNewValue(DOMUtils.domToString(((VariableModificationEvent)
event).getNewValue()));
+ }
}
/**
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessCleanUpRunnable.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.engine;
import java.io.Serializable;
@@ -4,11 +22,14 @@
import java.util.Map;
import java.util.concurrent.Callable;
+import javax.xml.namespace.QName;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.bpel.dao.DeferredProcessInstanceCleanable;
import org.apache.ode.bpel.dao.ProcessDAO;
import org.apache.ode.bpel.engine.BpelServerImpl.ContextsAware;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
public class ProcessCleanUpRunnable implements MapSerializableRunnable, ContextsAware {
@@ -28,12 +49,12 @@
_pid = pid;
}
- public void storeToDetailsMap(Map<String, Object> details) {
- details.put("pid", _pid);
+ public void storeToDetails(JobDetails details) {
+ details.getDetailsExt().put("pid", _pid);
}
- public void restoreFromDetailsMap(Map<String, Object> details) {
- _pid = (Serializable)details.get("pid");
+ public void restoreFromDetails(JobDetails details) {
+ _pid = (Serializable) details.getDetailsExt().get("pid");
}
public void setContexts(Contexts contexts) {
@@ -65,4 +86,4 @@
}
if(__log.isInfoEnabled()) __log.info("Deleted runtime data for old process:
" + _pid + ".");
}
-}
\ No newline at end of file
+}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessStatusConverter.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessStatusConverter.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/ProcessStatusConverter.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -61,11 +61,8 @@
}
__scopeStateMap.put(ScopeStateEnum.ACTIVE, TScopeStatus.ACTIVE);
- __scopeStateMap.put(ScopeStateEnum.COMPENSATED,TScopeStatus.COMPENSATED);
- __scopeStateMap.put(ScopeStateEnum.COMPENSATING,TScopeStatus.COMPENSATING);
__scopeStateMap.put(ScopeStateEnum.COMPLETED,TScopeStatus.COMPLETED);
- __scopeStateMap.put(ScopeStateEnum.FAULTED,TScopeStatus.FAULTED);
- __scopeStateMap.put(ScopeStateEnum.FAULTHANDLER,TScopeStatus.FAULTED);
+ __scopeStateMap.put(ScopeStateEnum.FAULT,TScopeStatus.FAULTED);
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/CronScheduler.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.engine.cron;
import java.util.ArrayList;
@@ -20,6 +38,7 @@
import org.apache.ode.bpel.iapi.ClusterAware;
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.ProcessConf.CronJob;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
import org.apache.ode.utils.CronExpression;
@@ -112,11 +131,11 @@
Runnable runnable = new Runnable() {
public void run() {
if( __log.isDebugEnabled() ) __log.debug("Running cron
cleanup with details list size: " + job.getRunnableDetailList().size());
- for( Map<String, Object> details :
job.getRunnableDetailList() ) {
+ for( JobDetails details : job.getRunnableDetailList() ) {
try {
// for each clean up for the scheduled time
RuntimeDataCleanupRunnable cleanup = new
RuntimeDataCleanupRunnable();
- cleanup.restoreFromDetailsMap(details);
+ cleanup.restoreFromDetails(details);
cleanup.setContexts(_contexts);
cleanup.run();
if( __log.isDebugEnabled() ) __log.debug("Finished
running runtime data cleanup from a PROCESS CRON job: " + cleanup);
@@ -168,17 +187,17 @@
// for each different scheduled time
Runnable runnable = new Runnable() {
public void run() {
- for( Map<String, Object> details :
job.getRunnableDetailList() ) {
+ for( JobDetails details : job.getRunnableDetailList() ) {
try {
// for now, we have only runtime data cleanup cron
job defined
// for each clean up for the scheduled time
RuntimeDataCleanupRunnable cleanup = new
RuntimeDataCleanupRunnable();
synchronized( _terminationListenersByPid ) {
if( !_terminationListenersByPid.isEmpty() ) {
- details.put("pidsToExclude",
_terminationListenersByPid.keySet());
+
details.getDetailsExt().put("pidsToExclude",
_terminationListenersByPid.keySet());
}
}
- cleanup.restoreFromDetailsMap(details);
+ cleanup.restoreFromDetails(details);
cleanup.setContexts(_contexts);
cleanup.run();
if( __log.isDebugEnabled() )
__log.debug("Finished running runtime data cleanup from a SYSTEM CRON job:" +
cleanup);
@@ -197,7 +216,7 @@
}
public TerminationListener schedule(final CronExpression cronExpression,
- final Runnable runnable, final Map<String, Object> runnableDetails,
+ final Runnable runnable, final JobDetails runnableDetails,
TerminationListener terminationListener) {
if( _shuttingDown ) {
__log.info("CRON Scheduler is being shut down. This new scheduling
request is ignored.");
@@ -250,12 +269,12 @@
private volatile boolean terminated = false;
private Date nextScheduleTime;
private Runnable runnable;
- private Map<String, Object> runnableDetails;
+ private JobDetails runnableDetails;
private CronExpression cronExpression;
private TerminationListener terminationListener;
public CronScheduledJob(Date nextScheduleTime,
- Runnable runnable, Map<String, Object> runnableDetails,
+ Runnable runnable, JobDetails runnableDetails,
CronExpression cronExpression, TerminationListener terminationListener)
{
this.nextScheduleTime = nextScheduleTime;
this.runnable = runnable;
@@ -277,7 +296,7 @@
nextScheduleTime.getTime() < System.currentTimeMillis() +
TOLERABLE_SCHEDULE_DELAY) {
if( runnableDetails != null &&
runnable instanceof MapSerializableRunnable ) {
-
((MapSerializableRunnable)runnable).restoreFromDetailsMap(runnableDetails);
+
((MapSerializableRunnable)runnable).restoreFromDetails(runnableDetails);
}
if (runnable instanceof ContextsAware) {
((ContextsAware) runnable).setContexts(_contexts);
@@ -306,4 +325,4 @@
return terminationListener;
}
}
-}
\ No newline at end of file
+}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/RuntimeDataCleanupRunnable.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,5 +1,24 @@
+/*
+ * 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.engine.cron;
+import java.io.Serializable;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.Callable;
@@ -15,6 +34,7 @@
import org.apache.ode.bpel.engine.BpelServerImpl.ContextsAware;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
import org.apache.ode.bpel.iapi.ProcessConf.CleanupInfo;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.iapi.Scheduler.MapSerializableRunnable;
public class RuntimeDataCleanupRunnable implements MapSerializableRunnable, ContextsAware
{
@@ -33,14 +53,14 @@
}
@SuppressWarnings("unchecked")
- public void restoreFromDetailsMap(Map<String, Object> details) {
- _cleanupInfo = (CleanupInfo)details.get("cleanupInfo");
- _transactionSize = (Integer)details.get("transactionSize");
- _pid = (QName)details.get("pid");
- _pidsToExclude = (Set<QName>)details.get("pidsToExclude");
+ public void restoreFromDetails(JobDetails details) {
+ _cleanupInfo =
(CleanupInfo)details.getDetailsExt().get("cleanupInfo");
+ _transactionSize =
(Integer)details.getDetailsExt().get("transactionSize");
+ _pid = (QName) details.getDetailsExt().get("pid");
+ _pidsToExclude =
(Set<QName>)details.getDetailsExt().get("pidsToExclude");
}
- public void storeToDetailsMap(Map<String, Object> details) {
+ public void storeToDetails(JobDetails details) {
// we don't serialize
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/cron/SystemSchedulesConfig.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.engine.cron;
import java.io.File;
@@ -15,6 +33,7 @@
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.ProcessConf.CleanupInfo;
import org.apache.ode.bpel.iapi.ProcessConf.CronJob;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.store.ProcessCleanupConfImpl;
import org.apache.ode.utils.CronExpression;
import org.apache.xmlbeans.XmlOptions;
@@ -64,9 +83,10 @@
cleanupInfo.setFilters(aCleanup.getFilterList());
ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(),
aCleanup.getCategoryList());
- Map<String, Object> runnableDetails = new
HashMap<String, Object>();
- runnableDetails.put("cleanupInfo", cleanupInfo);
- runnableDetails.put("transactionSize", 10);
+ JobDetails runnableDetails = new JobDetails();
+
+ runnableDetails.getDetailsExt().put("cleanupInfo",
cleanupInfo);
+ runnableDetails.getDetailsExt().put("transactionSize",
10);
job.getRunnableDetailList().add(runnableDetails);
__log.info("SYSTEM CRON configuration added a runtime data
cleanup: " + runnableDetails);
}
@@ -100,4 +120,4 @@
return sd;
}
-}
\ No newline at end of file
+}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/Replayer.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -40,13 +40,14 @@
import org.apache.ode.bpel.engine.BpelProcess;
import org.apache.ode.bpel.engine.MyRoleMessageExchangeImpl;
import org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl;
-import org.apache.ode.bpel.engine.WorkEvent;
import org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.RoutingInfo;
import org.apache.ode.bpel.evt.CorrelationMatchEvent;
import org.apache.ode.bpel.iapi.BpelEngine;
import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.bpel.pmapi.CommunicationType;
import org.apache.ode.bpel.pmapi.ExchangeType;
import org.apache.ode.bpel.pmapi.FaultType;
@@ -222,10 +223,10 @@
return null;
}
- public void handleWorkEvent(Map<String, Object> jobDetail, final Date when) {
- WorkEvent we = new WorkEvent(jobDetail);
- __log.debug("handleWorkEvent " + jobDetail + " " + when);
- if (we.getType() == WorkEvent.Type.INVOKE_INTERNAL) {
+ public void handleJobDetails(JobDetails jobDetail, final Date when) {
+ JobDetails we = jobDetail;
+ __log.debug("handleJobDetails " + jobDetail + " " + when);
+ if (we.getType() == JobType.INVOKE_INTERNAL) {
final BpelProcess p = engine._activeProcesses.get(we.getProcessId());
final ProcessDAO processDAO = p.getProcessDAO();
final MyRoleMessageExchangeImpl mex = (MyRoleMessageExchangeImpl)
engine.getMessageExchange(we.getMexId());
@@ -270,9 +271,9 @@
return false;
}
});
- } else if (we.getType() == WorkEvent.Type.INVOKE_RESPONSE) {
+ } else if (we.getType() == JobType.INVOKE_RESPONSE) {
__log.debug("reply for live communication");
- ReplayerContext ctx = findReplayedInstance(we.getIID());
+ ReplayerContext ctx = findReplayedInstance(we.getInstanceId());
assert ctx != null;
ctx.runtimeContext.invocationResponse(we.getMexId(), we.getChannel());
ctx.runtimeContext.execute();
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/replayer/ReplayerScheduler.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -129,12 +129,12 @@
return null;
}
- public String schedulePersistedJob(final Map<String, Object> jobDetail, final
Date when1) throws ContextException {
+ public String schedulePersistedJob(final JobDetails jobDetail, final Date when1)
throws ContextException {
final Date when = when1 == null ? currentTaskElement.get().when : when1;
__log.debug("schedulePersistedJob " + jobDetail + " " + when,
new Exception());
scheduleReplayerJob(new Callable<Void>() {
public Void call() throws Exception {
- replayer.handleWorkEvent(jobDetail, when);
+ replayer.handleJobDetails(jobDetail, when);
return null;
}
}, when, null);
@@ -145,13 +145,13 @@
public void setPolledRunnableProcesser(JobProcessor polledRunnableProcessor) {
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object>
jobDetail, Date when) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date
when) throws ContextException {
// TODO Auto-generated method stub
__log.debug("scheduleVolatileJob");
return null;
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object>
jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws
ContextException {
// TODO Auto-generated method stub
__log.debug("scheduleVolatileJob");
return null;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/extvar/jdbc/DbExternalVariable.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -142,7 +142,8 @@
sb.append(c.colname);
}
- sb.append(" from " + table);
+ sb.append(" from ");
+ sb.append(schema + "." + table);
if (_keycolumns.size() > 0) {
sb.append(" where ");
first = true;
@@ -166,7 +167,7 @@
private void createUpdate() {
_updcolumns.clear();
StringBuilder sb = new StringBuilder("update ");
- sb.append(table);
+ sb.append(schema + "." + table);
sb.append(" set ");
boolean first = true;
for (Column c : _columns) {
@@ -213,7 +214,7 @@
private void createInsert() {
_inscolumns.clear();
StringBuilder sb = new StringBuilder("insert into ");
- sb.append(table);
+ sb.append(schema + "." + table);
sb.append(" ( ");
boolean first = true;
for (Column c : _columns) {
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/memdao/ProcessDaoImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -242,7 +242,9 @@
Long id = (Long) oldInstances[i];
Long age = _instancesAge.get(id);
if (age != null && now-age > _conn._mexTtl) {
- __log.warn("Discarding in-memory instance "+id+"
because it exceeded its time-to-live: "+_instances.get(id));
+ if (_instances.get(id) != null) {
+ __log.warn("Discarding in-memory instance "+id+"
because it exceeded its time-to-live: "+_instances.get(id));
+ }
_instances.remove(id);
_instancesAge.remove(id);
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ASSIGN.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -432,7 +432,8 @@
rvalue = ((Document)rvalue).getDocumentElement();
}
- if (headerAssign &&
lvaluePtr.getParentNode().getNodeName().equals("message") &&
rvalue.getNodeType()==Node.ELEMENT_NODE) {
+ Node parentNode = lvaluePtr.getParentNode();
+ if (headerAssign && parentNode != null &&
"message".equals(parentNode.getNodeName()) &&
rvalue.getNodeType()==Node.ELEMENT_NODE ) {
lvalue = copyInto((Element)lvalue, (Element) lvaluePtr, (Element)
rvalue);
} else if (rvalue.getNodeType() == Node.ELEMENT_NODE &&
lvaluePtr.getNodeType() == Node.ELEMENT_NODE) {
lvalue = replaceElement((Element)lvalue, (Element) lvaluePtr,
(Element) rvalue,
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/SCOPE.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -30,6 +30,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.evt.ScopeCompletionEvent;
import org.apache.ode.bpel.evt.ScopeFaultEvent;
import org.apache.ode.bpel.evt.ScopeStartEvent;
import org.apache.ode.bpel.evt.VariableModificationEvent;
@@ -352,6 +353,8 @@
});
}
} else /* completed ok */ {
+ sendEvent(new ScopeCompletionEvent());
+
if (_oscope.compensationHandler != null) {
CompensationHandler compensationHandler = new
CompensationHandler(
_scopeFrame,
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/WAIT.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -57,7 +57,8 @@
} catch (EvaluationException ee) {
String msg = "Unexpected error evaluating wait condition.";
__log.error(msg, ee);
- throw new InvalidProcessException(msg,ee);
+
_self.parent.completed(createFault(_self.o.getOwner().constants.qnSubLanguageExecutionFault,
_self.o), CompensationHandler.emptySet());
+ return;
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImplTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImplTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/MyRoleMessageExchangeImplTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.engine;
import java.util.Map;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/engine/cron/CronSchedulerTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.engine.cron;
import java.util.HashMap;
@@ -17,6 +35,7 @@
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.ProcessConf.CLEANUP_CATEGORY;
import org.apache.ode.bpel.iapi.ProcessConf.CleanupInfo;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.daohib.bpel.BpelDAOConnectionImpl;
import org.apache.ode.utils.CronExpression;
import org.jmock.Mock;
@@ -71,14 +90,14 @@
CronExpression cronExpr = new CronExpression("* * * * * ?");
RuntimeDataCleanupRunnable runnable = new RuntimeDataCleanupRunnable();
- Map<String, Object> details = new HashMap<String, Object>();
- details.put("pid", new QName("test"));
- details.put("transactionSize", 10);
+ JobDetails details = new JobDetails();
+ details.setProcessId(new QName("test"));
+ details.getDetailsExt().put("transactionSize", 10);
CleanupInfo cleanupInfo = new CleanupInfo();
cleanupInfo.getFilters().add("a=b");
cleanupInfo.getCategories().add(CLEANUP_CATEGORY.CORRELATIONS);
- details.put("cleanupInfo", cleanupInfo);
- runnable.restoreFromDetailsMap(details);
+ details.getDetailsExt().put("cleanupInfo", cleanupInfo);
+ runnable.restoreFromDetails(details);
runnable.setContexts(contexts);
NotifyingTerminationListener listener = new NotifyingTerminationListener();
@@ -89,4 +108,4 @@
}
}
}
-}
\ No newline at end of file
+}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/java/org/apache/ode/bpel/runtime/MockBpelServer.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -342,10 +342,10 @@
_scheduler.setJobProcessor(server);
}
- public String schedulePersistedJob(Map<String,Object>jobDetail,Date when)
throws ContextException {
+ public String schedulePersistedJob(JobDetails jobDetail,Date when) throws
ContextException {
String jobId = _scheduler.schedulePersistedJob(jobDetail, when);
// Invocation checks get scheduled much later, we don't want (or need) to
wait for them
- if (!"INVOKE_CHECK".equals(jobDetail.get("type")))
+ if (jobDetail.getType() != JobType.INVOKE_CHECK)
_nextSchedule = when == null ? System.currentTimeMillis() :
when.getTime();
return jobId;
}
@@ -355,11 +355,11 @@
return new GUID().toString();
}
- public String scheduleVolatileJob(boolean transacted, Map<String,Object>
jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail)
throws ContextException {
return scheduleVolatileJob(transacted, jobDetail, null);
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object>
jobDetail, Date when) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date
when) throws ContextException {
String jobId = _scheduler.scheduleVolatileJob(transacted, jobDetail, when);
_nextSchedule = System.currentTimeMillis();
return jobId;
Modified:
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/resources/recovery/failure-to-fault2.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/resources/recovery/failure-to-fault2.bpel 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-runtime/src/test/resources/recovery/failure-to-fault2.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -49,30 +49,19 @@
operation="instantiate"
variable="request"
createInstance="yes"/>
- <flow>
- <links>
- <link name="successfulInvoke"/>
- </links>
<invoke name="invoke"
partnerLink="failingPartnerLink"
portType="tns:FailingPortType"
operation="invoke"
inputVariable="request"
outputVariable="response">
- <sources>
- <source linkName="successfulInvoke"/>
- </sources>
</invoke>
<invoke name="response"
partnerLink="instantiatingPartnerLink"
portType="tns:ResponsePortType"
operation="respond"
inputVariable="response">
- <targets>
- <target linkName="successfulInvoke"/>
- </targets>
</invoke>
- </flow>
</sequence>
</process>
Modified: branches/ODE/ODE-1.x-fixes/bpel-schemas/src/main/xsd/pmapi.xsd
===================================================================
--- branches/ODE/ODE-1.x-fixes/bpel-schemas/src/main/xsd/pmapi.xsd 2010-05-27 16:08:03 UTC
(rev 676)
+++ branches/ODE/ODE-1.x-fixes/bpel-schemas/src/main/xsd/pmapi.xsd 2010-05-28 04:59:49 UTC
(rev 677)
@@ -781,6 +781,7 @@
<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"/>
Modified:
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference.bpel 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<bpel:process
xmlns:bpel="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
xmlns:pnlk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
@@ -26,4 +44,4 @@
operation="EventStartMessage" variable="start"
createInstance="yes" name="start" partnerLink="pnlk"
/>
</bpel:sequence>
-</bpel:process>
\ No newline at end of file
+</bpel:process>
Modified:
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference1.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference1.wsdl 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference1.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
@@ -47,4 +65,4 @@
<soap:address
location="http://example.com/hello"/>
</wsdl:port>
</wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
+</wsdl:definitions>
Modified:
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference2.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference2.wsdl 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-scripts/src/main/resources/2.0/good/circularReference/CircularReference2.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
@@ -44,4 +62,4 @@
<soap:address
location="http://example.com/hello"/>
</wsdl:port>
</wsdl:service>
-</wsdl:definitions>
\ No newline at end of file
+</wsdl:definitions>
Modified: branches/ODE/ODE-1.x-fixes/bpel-store/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/bpel-store/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/bpel-store/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -100,6 +100,11 @@
<groupId>wsdl4j</groupId>
<artifactId>wsdl4j</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.springframework</groupId>
+ <artifactId>spring</artifactId>
+ <version>${spring.version}</version>
+ </dependency>
<dependency>
<groupId>commons-collections</groupId>
Modified:
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/DeploymentUnitDir.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -29,6 +29,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Properties;
import java.util.Set;
import javax.wsdl.Definition;
@@ -54,6 +55,17 @@
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;
/**
@@ -70,6 +82,7 @@
private String _name;
private File _duDirectory;
private File _descriptorFile;
+ private Properties _properties = new Properties();
private HashMap<QName, CBPInfo> _processes = new HashMap<QName,
CBPInfo>();
private HashMap<QName, TDeployment.Process> _processInfo = new
HashMap<QName, TDeployment.Process>();
@@ -118,6 +131,17 @@
if (!_descriptorFile.exists())
throw new IllegalArgumentException("Directory " + dir + " does
not contain a deploy.xml file!");
+
+ try {
+ ApplicationContext ctx = new
ClassPathXmlApplicationContext("beans.xml");
+ _properties = (java.util.Properties) ctx.getBean("properties");
+ if (__log.isDebugEnabled()) {
+ __log.debug("Loaded spring properties from file beans.xml:" +
_properties + " for " + _name);
+ }
+ } catch (Exception e) {
+ __log.info("Can't initialize beans.xml application context " +
e + " for " + _name);
+ }
+
}
@@ -366,7 +390,7 @@
continue;
if (bpelFile.getName().equals(process.getFileName())) {
- Map<QName, Node> props =
ProcessStoreImpl.calcInitialProperties(process);
+ Map<QName, Node> props =
ProcessStoreImpl.calcInitialProperties(_properties, process);
Map<String, Object> result = new HashMap<String, Object>();
result.put(BpelC.PROCESS_CUSTOM_PROPERTIES, props);
return result;
@@ -412,4 +436,7 @@
_version = version;
}
+ public Properties getProperties() {
+ return _properties;
+ }
}
Modified:
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessConfImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -19,14 +19,23 @@
package org.apache.ode.store;
import java.io.File;
+import java.io.FileFilter;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
-import java.io.FileFilter;
import java.net.URI;
import java.text.ParseException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
import javax.wsdl.Definition;
import javax.xml.namespace.QName;
@@ -46,18 +55,18 @@
import org.apache.ode.bpel.evt.BpelEvent;
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.Endpoint;
+import org.apache.ode.bpel.iapi.EndpointReference;
+import org.apache.ode.bpel.iapi.EndpointReferenceContext;
import org.apache.ode.bpel.iapi.ProcessConf;
import org.apache.ode.bpel.iapi.ProcessState;
-import org.apache.ode.bpel.iapi.EndpointReferenceContext;
-import org.apache.ode.bpel.iapi.EndpointReference;
-import org.apache.ode.bpel.iapi.ProcessConf.PartnerRoleConfig;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.bpel.o.OFailureHandling;
import org.apache.ode.store.DeploymentUnitDir.CBPInfo;
+import org.apache.ode.utils.CollectionUtils;
import org.apache.ode.utils.CronExpression;
import org.apache.ode.utils.DOMUtils;
import org.apache.ode.utils.HierarchicalProperties;
import org.apache.ode.utils.WatchDog;
-import org.apache.ode.utils.CollectionUtils;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
@@ -545,10 +554,10 @@
cleanupInfo.setFilters(aCleanup.getFilterList());
ProcessCleanupConfImpl.processACleanup(cleanupInfo.getCategories(),
aCleanup.getCategoryList());
- Map<String, Object> runnableDetails = new HashMap<String,
Object>();
- runnableDetails.put("cleanupInfo", cleanupInfo);
- runnableDetails.put("pid", _pid);
- runnableDetails.put("transactionSize", 10);
+ JobDetails runnableDetails = new JobDetails();
+ runnableDetails.getDetailsExt().put("cleanupInfo",
cleanupInfo);
+ runnableDetails.getDetailsExt().put("pid", _pid);
+ runnableDetails.getDetailsExt().put("transactionSize",
10);
job.getRunnableDetailList().add(runnableDetails);
}
jobs.add(job);
Modified:
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/ProcessStoreImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -239,7 +239,7 @@
}
ProcessConfImpl pconf = new ProcessConfImpl(pid, processDD.getName(),
version, du, processDD, deployDate,
- calcInitialProperties(processDD), calcInitialState(processDD),
eprContext, _configDir, generateProcessEventsAll);
+ calcInitialProperties(du.getProperties(), processDD),
calcInitialState(processDD), eprContext, _configDir, generateProcessEventsAll);
processes.add(pconf);
}
@@ -678,8 +678,18 @@
* @param dd
* @return
*/
- public static Map<QName, Node> calcInitialProperties(TDeployment.Process dd) {
+ public static Map<QName, Node> calcInitialProperties(Properties properties,
TDeployment.Process dd) {
HashMap<QName, Node> ret = new HashMap<QName, Node>();
+
+ for (Object key1 : properties.keySet()) {
+ String key = (String) key1;
+ Document doc = DOMUtils.newDocument();
+ doc.appendChild(doc.createElementNS(null,
"temporary-simple-type-wrapper"));
+
doc.getDocumentElement().appendChild(doc.createTextNode(properties.getProperty(key)));
+
+ ret.put(new QName(key), doc.getDocumentElement());
+ }
+
if (dd.getPropertyList().size() > 0) {
for (TDeployment.Process.Property property : dd.getPropertyList()) {
Element elmtContent = DOMUtils.getElementContent(property.getDomNode());
@@ -745,7 +755,7 @@
continue;
}
- Map<QName, Node> props = calcInitialProperties(pinfo);
+ Map<QName, Node> props = calcInitialProperties(dud.getProperties(),
pinfo);
// TODO: update the props based on the values in the DB.
ProcessConfImpl pconf = new ProcessConfImpl(p.getPID(), p.getType(),
p.getVersion(), dud, pinfo, dudao
Modified:
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-store/src/main/java/org/apache/ode/store/jpa/DbConfStoreConnectionFactory.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -56,6 +56,7 @@
propMap.put("openjpa.FlushBeforeQueries", "false");
propMap.put("openjpa.FetchBatchSize", 1000);
propMap.put("openjpa.jdbc.TransactionIsolation",
"read-committed");
+ propMap.put("javax.persistence.provider",
"org.apache.openjpa.persistence.PersistenceProviderImpl");
if (createDatamodel) propMap.put("openjpa.jdbc.SynchronizeMappings",
"buildSchema(ForeignKeys=false)");
Modified:
branches/ODE/ODE-1.x-fixes/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-test/src/main/java/org/apache/ode/test/BPELTestAbstract.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -50,7 +50,6 @@
import org.apache.ode.bpel.iapi.MessageExchange.Status;
import org.apache.ode.bpel.iapi.MyRoleMessageExchange.CorrelationStatus;
import org.apache.ode.bpel.memdao.BpelDAOConnectionFactoryImpl;
-import org.apache.ode.dao.jpa.BPELDAOConnectionFactoryImpl;
import org.apache.ode.il.MockScheduler;
import org.apache.ode.il.config.OdeConfigProperties;
import org.apache.ode.store.ProcessConfImpl;
@@ -105,7 +104,7 @@
if (Boolean.getBoolean("org.apache.ode.test.persistent")) {
emf =
Persistence.createEntityManagerFactory("ode-unit-test-embedded");
em = emf.createEntityManager();
- _cf = new BPELDAOConnectionFactoryImpl();
+ _cf = new org.apache.ode.daohib.bpel.BpelDAOConnectionFactoryImpl();
_server.setDaoConnectionFactory(_cf);
scheduler = new MockScheduler() {
@Override
@@ -137,7 +136,7 @@
_server.setBindingContext(new BindingContextImpl());
_server.setMessageExchangeContext(mexContext);
scheduler.setJobProcessor(_server);
- store = new ProcessStoreImpl(null, null, "jpa", new
OdeConfigProperties(new Properties(), ""), true);
+ store = new ProcessStoreImpl(null, null, "hibernate", new
OdeConfigProperties(new Properties(), ""), true);
store.registerListener(new ProcessStoreListener() {
public void onProcessStoreEvent(ProcessStoreEvent event) {
// bounce the process
Modified:
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestWait1/Wait1-2.0.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestWait1/Wait1-2.0.bpel 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestWait1/Wait1-2.0.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -53,6 +53,17 @@
<for>'PT5S'</for>
</wait>
+ <scope>
+ <faultHandlers>
+ <catchAll>
+ <empty/>
+ </catchAll>
+ </faultHandlers>
+ <wait>
+ <for
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0">xsd:double('')</for>
+ </wait>
+ </scope>
+
<reply name="endReply"
operation="testOperation"
partnerLink="testPartnerLink"
Modified:
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestXQueryExpression/HelloXQueryWorld.xsl
===================================================================
---
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestXQueryExpression/HelloXQueryWorld.xsl 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/bpel-test/src/test/resources/bpel/2.0/TestXQueryExpression/HelloXQueryWorld.xsl 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+<!--
+ ~ 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.
+ -->
<xsl:stylesheet
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.example.org/ProcessData"
xmlns:tns="http://www.example.org/ProcessData"
@@ -10,4 +28,4 @@
</root>
</xsl:template>
-</xsl:stylesheet>
\ No newline at end of file
+</xsl:stylesheet>
Modified: branches/ODE/ODE-1.x-fixes/dao-hibernate/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/dao-hibernate/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/dao-hibernate/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -99,6 +99,7 @@
<!--doclet does not support not-found="ignore" -->
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
+ <version>1.0</version>
<executions>
<execution>
<phase>process-sources</phase>
@@ -108,7 +109,7 @@
<configuration>
<source>
import java.io.File
- def process_instance_hbm_file = new
File('${project.build.outputDirectory}',
'org/apache/ode/daohib/bpel/hobj/HProcessInstance.hbm.xml')
+ def process_instance_hbm_file = new File(project.build.outputDirectory,
'org/apache/ode/daohib/bpel/hobj/HProcessInstance.hbm.xml')
def contents = process_instance_hbm_file.text
if (!contents.contains('not-found="ignore"')) {
process_instance_hbm_file.text =
contents.replace('class="org.apache.ode.daohib.bpel.hobj.HProcess"',
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/CriteriaBuilder.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -69,7 +69,7 @@
List<String> iids = filter.getIidFilter();
for (int m = 0; m < iids.size(); m++) {
filters.append(" pi.id = :iid").append(m);
- parameters.put("iid" + m, iids.get(m));
+ parameters.put("iid" + m, Long.parseLong(iids.get(m)));
if (m < iids.size() - 1) filters.append(" or");
}
clauses.add(" (" + filters + ")");
@@ -86,7 +86,7 @@
cmp = " = ";
}
for (int m = 0; m < pids.size(); m++) {
- filters.append(" pi.process.id ").append(cmp).append("
:pid").append(m);
+ filters.append(" pi.process.processId
").append(cmp).append(" :pid").append(m);
parameters.put("pid" + m, pids.get(m));
if (m < pids.size() - 1) filters.append(" or");
}
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ProcessInstanceDaoImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -220,7 +220,7 @@
: null);
scope.setName(name);
scope.setScopeModelId(scopeModelId);
- scope.setState(ScopeStateEnum.ACTIVE.toString());
+ scope.setState(ScopeStateEnum.NEW.toString());
scope.setInstance(_instance);
scope.setCreated(new Date());
// _instance.addScope(scope);
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/ScopeDaoImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -121,7 +121,7 @@
* @see org.apache.ode.bpel.dao.ScopeDAO#getState()
*/
public ScopeStateEnum getState() {
- return new ScopeStateEnum(_scope.getState());
+ return ScopeStateEnum.valueOf(_scope.getState());
}
/**
* @see org.apache.ode.bpel.dao.ScopeDAO#getName()
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/XmlDataDaoImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -58,7 +58,7 @@
*/
public boolean isNull() {
entering("XmlDataDaoImpl.isNull");
- return (_data.getData() == null || _data.getData().length == 0);
+ return (_data.getSimpleValue() == null && (_data.getData() == null ||
_data.getData().length == 0));
}
/**
@@ -84,14 +84,26 @@
public void set(Node val) {
entering("XmlDataDaoImpl.set");
_node = val;
- _data.setSimpleType(!(val instanceof Element));
-
- if(_data.isSimpleType()) {
- _data.setData(_node.getNodeValue().getBytes());
+ if (val != null && val.getNamespaceURI() == null &&
"temporary-simple-type-wrapper".equals(val.getLocalName())) {
+ _data.setSimpleType(true);
+ String value = _node.getTextContent();
+ if (value.length() <= 255) {
+ _data.setSimpleValue(value);
+ _data.setData(null);
+ } else {
+ _data.setData(value.getBytes());
+ _data.setSimpleValue(null);
+ }
+ } else if (val instanceof Element) {
+ _data.setSimpleType(false);
+ _data.setData(DOMUtils.domToString(_node).getBytes());
+ _data.setSimpleValue(null);
} else {
- _data.setData(DOMUtils.domToString(_node).getBytes());
+ _data.setSimpleType(true);
+ _data.setSimpleValue(_node.getNodeValue());
+ _data.setData(null);
}
-
+
getSession().saveOrUpdate(_data);
leaving("XmlDataDaoImpl.set");
}
@@ -143,20 +155,28 @@
}
private Node prepare(){
- if(_data.getData() == null || _data.getData().length == 0)
- return null;
- String data = new String(_data.getData());
- if(_data.isSimpleType()){
+ if(_data.isSimpleType()) {
+ String data;
+ if (_data.getSimpleValue() != null) {
+ data = _data.getSimpleValue();
+ } else {
+ if(_data.getData() == null || _data.getData().length == 0)
+ return null;
+ data = new String(_data.getData());
+ }
Document d = DOMUtils.newDocument();
// we create a dummy wrapper element
// prevents some apps from complaining
// when text node is not actual child of document
- Element e = d.createElement("text-node-wrapper");
+ Element e = d.createElement("temporary-simple-type-wrapper");
Text tnode = d.createTextNode(data);
d.appendChild(e);
e.appendChild(tnode);
return tnode;
- }else{
+ } else {
+ if(_data.getData() == null || _data.getData().length == 0)
+ return null;
+ String data = new String(_data.getData());
try{
return DOMUtils.stringToDOM(data);
}catch(Exception e){
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate/src/main/java/org/apache/ode/daohib/bpel/hobj/HXmlData.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -33,6 +33,7 @@
private byte[] _data;
private Collection<HVariableProperty> _properties = new
HashSet<HVariableProperty>();
private String _name;
+ private String _simpleValue;
private HScope _scope;
private HProcessInstance _instance;
@@ -53,7 +54,7 @@
public void setData(byte[] data) {
_data = data;
}
-
+
/**
* @hibernate.property
* column="NAME"
@@ -70,6 +71,21 @@
}
/**
+ * @hibernate.property
+ * column="SIMPLE_VALUE"
+ * type="string"
+ * length="255"
+ * not-null="false"
+ */
+ public String getSimpleValue() {
+ return _simpleValue;
+ }
+
+ public void setSimpleValue(String simpleValue) {
+ _simpleValue = simpleValue;
+ }
+
+ /**
* @hibernate.bag
* lazy="true"
* inverse="true"
Modified: branches/ODE/ODE-1.x-fixes/dao-hibernate-db/build.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/dao-hibernate-db/build.xml 2010-05-27 16:08:03 UTC (rev
676)
+++ branches/ODE/ODE-1.x-fixes/dao-hibernate-db/build.xml 2010-05-28 04:59:49 UTC (rev
677)
@@ -93,6 +93,7 @@
</fileset>
</schemaexport>
<concat destfile="${db.scripts.dir}/(a){db}.sql">
+ <fileset file="${sql.dir}/common.sql"/>
<fileset file="${sql.dir}/simplesched-(a){db}.sql"/>
<fileset file="${db.scripts.dir}/partial.(a){db}.sql"/>
</concat>
Modified: branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-derby.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-derby.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-derby.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -10,7 +10,18 @@
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-firebird.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-firebird.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-firebird.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -10,7 +10,18 @@
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-hsql.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-hsql.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-hsql.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -10,7 +10,18 @@
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt binary(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified: branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-mysql.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-mysql.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-mysql.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -11,7 +11,18 @@
nodeid char(64) NULL,
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096) NULL,
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid),
INDEX IDX_ODE_JOB_TS(ts),
INDEX IDX_ODE_JOB_NODEID(nodeid)
Modified: branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-oracle.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-oracle.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-oracle.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -4,13 +4,26 @@
--
--
+DROP TABLE ode_job;
+
CREATE TABLE ode_job (
- jobid CHAR(64) NOT NULL DEFAULT '',
- ts BIGINT NOT NULL DEFAULT 0,
- nodeid char(64),
- scheduled int NOT NULL DEFAULT 0,
- transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+ jobid VARCHAR(64) NOT NULL,
+ ts number(37) NOT NULL,
+ nodeid varchar(64),
+ scheduled int NOT NULL,
+ transacted int NOT NULL,
+
+ instanceId number(37),
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob,
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-postgres.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-postgres.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-postgres.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -10,7 +10,18 @@
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified:
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-hibernate-db/src/main/sql/simplesched-sqlserver.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -10,7 +10,18 @@
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified:
branches/ODE/ODE-1.x-fixes/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-jpa/src/main/java/org/apache/ode/dao/jpa/ScopeDAOImpl.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -163,7 +163,7 @@
}
public ScopeStateEnum getState() {
- return new ScopeStateEnum(_scopeState);
+ return ScopeStateEnum.valueOf(_scopeState);
}
public XmlDataDAO getVariable(String varName) {
Modified: branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/build.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/build.xml 2010-05-27 16:08:03 UTC (rev
676)
+++ branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/build.xml 2010-05-28 04:59:49 UTC (rev
677)
@@ -74,6 +74,7 @@
</classpath>
</mappingtool>
<concat destfile="${db.scripts.dir}/(a){db}.sql">
+ <fileset file="${scripts.dir}/common.sql"/>
<fileset file="${scripts.dir}/license-header.sql"/>
<fileset file="${scripts.dir}/simplesched-(a){db}.sql"/>
<fileset file="${db.scripts.dir}/partial.(a){db}.sql"/>
Modified:
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-derby.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -10,7 +10,18 @@
nodeid char(64),
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096),
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid));
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
Modified:
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-mysql.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -11,7 +11,18 @@
nodeid char(64) NULL,
scheduled int NOT NULL DEFAULT 0,
transacted int NOT NULL DEFAULT 0,
- details blob(4096) NULL,
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob(4096),
+
PRIMARY KEY(jobid),
INDEX IDX_ODE_JOB_TS(ts),
INDEX IDX_ODE_JOB_NODEID(nodeid)
Modified:
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql
===================================================================
---
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/dao-jpa-ojpa-derby/src/main/scripts/simplesched-oracle.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,5 +1,31 @@
-CREATE TABLE ODE_JOB (jobid varchar2(64 char) DEFAULT '' NOT NULL, ts
number(19,0) DEFAULT 0 NOT NULL, nodeid varchar2(64 char) NULL, scheduled number(12,0)
DEFAULT 0 NOT NULL, transacted number(12,0) DEFAULT 0 NOT NULL, details BLOB, PRIMARY
KEY(jobid));
+-- Apache ODE - SimpleScheduler Database Schema
+--
+-- Apache Derby scripts by Maciej Szefler.
+--
+--
+DROP TABLE ode_job;
+
+CREATE TABLE ode_job (
+ jobid VARCHAR(64) NOT NULL,
+ ts number(37) NOT NULL,
+ nodeid varchar(64),
+ scheduled int NOT NULL,
+ transacted int NOT NULL,
+
+ instanceId number(37),
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt blob,
+
+ PRIMARY KEY(jobid));
+
CREATE INDEX IDX_ODE_JOB_TS ON ode_job(ts);
CREATE INDEX IDX_ODE_JOB_NODEID ON ode_job(nodeid);
Modified: branches/ODE/ODE-1.x-fixes/dependencies.rb
===================================================================
--- branches/ODE/ODE-1.x-fixes/dependencies.rb 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/dependencies.rb 2010-05-28 04:59:49 UTC (rev 677)
@@ -87,7 +87,7 @@
OPENJPA = ["org.apache.openjpa:openjpa:jar:1.2.1",
"net.sourceforge.serp:serp:jar:1.13.1"]
-SAXON = group("saxon", "saxon-xpath",
"saxon-dom", "saxon-xqj", :under=>"net.sf.saxon",
:version=>"9.x")
+SAXON = group("saxon", "saxon-xpath",
"saxon-dom", "saxon-xqj", :under=>"net.sf.saxon",
:version=>"9.1.0.8")
SERVICEMIX = [
group("servicemix-core",
:under=>"org.apache.servicemix",
:version=>"3.3"),
Modified: branches/ODE/ODE-1.x-fixes/jbi/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/jbi/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -227,14 +227,13 @@
<dependency>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-dao-hibernate</artifactId>
- <exclusions>
- <exclusion>
- <groupId>org.hibernate</groupId>
- <artifactId>hibernate</artifactId>
- </exclusion>
- </exclusions>
</dependency>
<dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-core</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
<groupId>org.jboss.soa.bpel</groupId>
<artifactId>riftsaw-bpel-api-jca</artifactId>
</dependency>
@@ -470,7 +469,7 @@
<goal>copy-resources</goal>
</goals>
<configuration>
-
<outputDirectory>${project.build.directory}/test/smx/ode</outputDirectory>
+ <outputDirectory>target/test/smx/ode</outputDirectory>
<resources>
<resource>
<directory>${basedir}/../dao-jpa-ojpa-derby/target/derby</directory>
@@ -481,6 +480,21 @@
</resources>
</configuration>
</execution>
+ <execution>
+ <id>copy-resources2</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>target/test/resources</outputDirectory>
+ <resources>
+ <resource>
+ <directory>src/test/resources</directory>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
</executions>
</plugin>
</plugins>
@@ -488,20 +502,15 @@
<testResources>
<testResource>
<directory>src/test/resources</directory>
- <targetPath>${project.build.directory}/test/resources</targetPath>
</testResource>
<testResource>
- <directory>src/test/resources</directory>
- <targetPath>${project.build.testOutputDirectory}</targetPath>
- </testResource>
- <testResource>
<directory>src/test/jbi</directory>
- <targetPath>${project.build.directory}/test/smx/ode</targetPath>
+ <targetPath>../test/smx/ode</targetPath>
</testResource>
<testResource>
<directory>src/main/jbi</directory>
<includes><include>hibernate.properties</include></includes>
- <targetPath>${project.build.directory}/test/smx/ode</targetPath>
+ <targetPath>../test/smx/ode</targetPath>
</testResource>
</testResources>
</build>
Modified: branches/ODE/ODE-1.x-fixes/jbi/src/main/assembly/bin.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/src/main/assembly/bin.xml 2010-05-27 16:08:03 UTC (rev
676)
+++ branches/ODE/ODE-1.x-fixes/jbi/src/main/assembly/bin.xml 2010-05-28 04:59:49 UTC (rev
677)
@@ -91,6 +91,7 @@
<include>commons-dbcp:commons-dbcp</include>
<include>commons-lang:commons-lang</include>
<include>commons-pool:commons-pool</include>
+ <include>commons-beanutils:commons-beanutils</include>
<include>commons-primitives:commons-primitives</include>
<include>org.apache.derby:derby</include>
<include>org.apache.geronimo.specs:geronimo-ejb_2.1_spec</include>
@@ -113,9 +114,13 @@
<include>tranql:tranql-connector</include>
<include>xalan:xalan</include>
<include>org.apache.xmlbeans:xmlbeans</include>
- <include>com.thoughtworks.xstream:xstream</include>
<include>axion:axion</include>
<include>xerces:xercesImpl</include>
+ <include>org.objectweb.howl:howl</include>
+ <include>com.thoughtworks.xstream:xstream</include>
+ <include>xalan:serializer</include>
+ <include>xml-apis:xml-apis</include>
+ <include>org.apache.geronimo.specs:geronimo-jpa_3.0_spec</include>
</includes>
</dependencySet>
Modified:
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/JbiTestBase.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -107,13 +107,15 @@
protected void enableProcess(String resource, boolean enable) throws Exception {
resource = "target/test/resources/" + resource;
String process = resource.substring(resource.lastIndexOf('/') + 1);
+ String dir = new File(resource).getAbsolutePath();
+ log.debug("enableProcess " + resource + " " + enable + "
path: " + dir);
if (enable) {
- odeComponent.getServiceUnitManager().deploy(process, resource);
- odeComponent.getServiceUnitManager().init(process, resource);
+ odeComponent.getServiceUnitManager().deploy(process, dir);
+ odeComponent.getServiceUnitManager().init(process, dir);
odeComponent.getServiceUnitManager().start(process);
} else {
odeComponent.getServiceUnitManager().stop(process);
- odeComponent.getServiceUnitManager().undeploy(process, resource);
+ odeComponent.getServiceUnitManager().undeploy(process, dir);
}
}
@@ -128,86 +130,89 @@
if (!manualDeploy)
enableProcess(getTestName(), true);
- int i = 0;
- boolean loop;
- do {
- String prefix = i == 0 ? "" : "" + i;
- loop = i == 0;
-
- {
- String deploy = testProperties.getProperty(prefix + "deploy");
- if (deploy != null) {
- loop = true;
- enableProcess(getTestName() + "/" + deploy, true);
+ try {
+ int i = 0;
+ boolean loop;
+ do {
+ String prefix = i == 0 ? "" : "" + i;
+ loop = i == 0;
+
+ {
+ String deploy = testProperties.getProperty(prefix +
"deploy");
+ if (deploy != null) {
+ loop = true;
+ enableProcess(getTestName() + "/" + deploy, true);
+ }
}
- }
- {
- String undeploy = testProperties.getProperty(prefix +
"undeploy");
- if (undeploy != null) {
- loop = true;
- enableProcess(getTestName() + "/" + undeploy, false);
+ {
+ String undeploy = testProperties.getProperty(prefix +
"undeploy");
+ if (undeploy != null) {
+ loop = true;
+ enableProcess(getTestName() + "/" + undeploy, false);
+ }
}
- }
-
- String request = testProperties.getProperty(prefix + "request");
- if (request != null && request.startsWith("@")) {
- request =
inputStreamToString(getClass().getResourceAsStream("/" + getTestName() +
"/" + request.substring(1)));
- }
- String expectedResponse = testProperties.getProperty(prefix +
"response");
- {
- String delay = testProperties.getProperty(prefix + "delay");
- if (delay != null) {
- loop = true;
- long d = Long.parseLong(delay);
- log.debug("Sleeping " + d + " ms");
- Thread.sleep(d);
+
+ String request = testProperties.getProperty(prefix +
"request");
+ if (request != null && request.startsWith("@")) {
+ request =
inputStreamToString(getClass().getResourceAsStream("/" + getTestName() +
"/" + request.substring(1)));
}
- }
- {
- String httpUrl = testProperties.getProperty(prefix + "http.url");
- if (httpUrl != null && request != null) {
- loop = true;
- log.debug(getTestName() + " sending http request to " +
httpUrl + " request: " + request);
- URLConnection connection = new URL(httpUrl).openConnection();
- connection.setDoOutput(true);
- connection.setDoInput(true);
- //Send request
- OutputStream os = connection.getOutputStream();
- PrintWriter wt = new PrintWriter(os);
- wt.print(request);
- wt.flush();
- wt.close();
- // Read the response.
- String result = inputStreamToString(connection.getInputStream());
-
- log.debug(getTestName() + " have result: " + result);
- matchResponse(expectedResponse, result, true);
- }
- }
- {
- if (testProperties.getProperty(prefix + "nmr.service") != null
&& request != null) {
- loop = true;
- InOut io = smxClient.createInOutExchange();
- io.setService(QName.valueOf(testProperties.getProperty(prefix +
"nmr.service")));
- io.setOperation(QName.valueOf(testProperties.getProperty(prefix +
"nmr.operation")));
- io.getInMessage().setContent(new StreamSource(new
ByteArrayInputStream(request.getBytes())));
- smxClient.sendSync(io,20000);
- if (io.getStatus() == ExchangeStatus.ACTIVE) {
- assertNotNull(io.getOutMessage());
- String result = new
SourceTransformer().contentToString(io.getOutMessage());
- matchResponse(expectedResponse, result, true);
- smxClient.done(io);
- } else {
- matchResponse(expectedResponse, "", false);
+ String expectedResponse = testProperties.getProperty(prefix +
"response");
+ {
+ String delay = testProperties.getProperty(prefix +
"delay");
+ if (delay != null) {
+ loop = true;
+ long d = Long.parseLong(delay);
+ log.debug("Sleeping " + d + " ms");
+ Thread.sleep(d);
}
- }
- }
-
- i++;
- } while (loop);
-
- if (!manualDeploy)
- enableProcess(getTestName(), false);
+ }
+ {
+ String httpUrl = testProperties.getProperty(prefix +
"http.url");
+ if (httpUrl != null && request != null) {
+ loop = true;
+ log.debug(getTestName() + " sending http request to " +
httpUrl + " request: " + request);
+ URLConnection connection = new URL(httpUrl).openConnection();
+ connection.setDoOutput(true);
+ connection.setDoInput(true);
+ //Send request
+ OutputStream os = connection.getOutputStream();
+ PrintWriter wt = new PrintWriter(os);
+ wt.print(request);
+ wt.flush();
+ wt.close();
+ // Read the response.
+ String result = inputStreamToString(connection.getInputStream());
+
+ log.debug(getTestName() + " have result: " + result);
+ matchResponse(expectedResponse, result, true);
+ }
+ }
+ {
+ if (testProperties.getProperty(prefix + "nmr.service") != null
&& request != null) {
+ loop = true;
+ InOut io = smxClient.createInOutExchange();
+ io.setService(QName.valueOf(testProperties.getProperty(prefix +
"nmr.service")));
+ io.setOperation(QName.valueOf(testProperties.getProperty(prefix +
"nmr.operation")));
+ io.getInMessage().setContent(new StreamSource(new
ByteArrayInputStream(request.getBytes())));
+ smxClient.sendSync(io,20000);
+ if (io.getStatus() == ExchangeStatus.ACTIVE) {
+ assertNotNull(io.getOutMessage());
+ String result = new
SourceTransformer().contentToString(io.getOutMessage());
+ matchResponse(expectedResponse, result, true);
+ smxClient.done(io);
+ } else {
+ matchResponse(expectedResponse, "", false);
+ }
+ }
+ }
+
+ i++;
+ } while (loop);
+
+ } finally {
+ if (!manualDeploy)
+ enableProcess(getTestName(), false);
+ }
}
protected void matchResponse(String expectedResponse, String result, boolean
succeeded) {
Modified:
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/RetireJbiTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/RetireJbiTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/RetireJbiTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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;
public class RetireJbiTest extends JbiTestBase {
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/SpringPropertiesJbiTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/SpringPropertiesJbiTest.java
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/java/org/apache/ode/jbi/SpringPropertiesJbiTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,23 @@
+/*
+ * 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;
+
+public class SpringPropertiesJbiTest extends JbiTestBase {
+ public void test() throws Exception {
+ go();
+ }
+}
Modified:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/initiateRequest.xml
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/initiateRequest.xml 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/initiateRequest.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<initiate>
<payload>abc7</payload>
<payload2>abc8</payload2>
Modified:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayRequest.xml
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayRequest.xml 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayRequest.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<pmap:replay
xmlns:ns="http://www.apache.org/ode/pmapi/types/2006/08/02/"
xmlns:pmap="http://www.apache.org/ode/pmapi">
<replay>
<!--
Modified:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayXQueryRequest.xml
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayXQueryRequest.xml 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/ReplayerJbiTest/replayXQueryRequest.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,4 +1,22 @@
<?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.
+ -->
<pmap:replay
xmlns:ns="http://www.apache.org/ode/pmapi/types/2006/08/02/"
xmlns:pmap="http://www.apache.org/ode/pmapi">
<replay>
<!--
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.bpel
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.bpel
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.bpel 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,54 @@
+<?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.
+ -->
+<bpws:process
xmlns:bpws="http://docs.oasis-open.org/wsbpel/2.0/process/executable...
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:ns="http://sample.bpel.org/bpel/sampleArtifacts"
xmlns:tns="http://sample.bpel.org/bpel/sample"
exitOnStandardFault="yes" name="OnEventCorrelation"
suppressJoinFailure="yes"
targetNamespace="http://sample.bpel.org/bpel/sample"
expressionLanguage="urn:oasis:names:tc:wsbpel:2.0:sublang:xpath2.0"
+
xmlns:ode="http://www.apache.org/ode/type/extension"
+ >
+ <bpws:import
importType="http://schemas.xmlsoap.org/wsdl/"
location="OnEventCorrelation.wsdl"
namespace="http://sample.bpel.org/bpel/sample"/>
+ <bpws:import
importType="http://schemas.xmlsoap.org/wsdl/"
location="OnEventCorrelationArtifacts.wsdl"
namespace="http://sample.bpel.org/bpel/sampleArtifacts"/>
+ <bpws:partnerLinks>
+ <bpws:partnerLink myRole="OnEventCorrelationProvider"
name="client" partnerLinkType="tns:OnEventCorrelation"/>
+ </bpws:partnerLinks>
+ <bpws:variables>
+ <bpws:variable messageType="tns:OnEventCorrelationMessage"
name="input"/>
+ <bpws:variable messageType="tns:OnEventCorrelationMessage"
name="output"/>
+ <bpws:variable type="xsd:int" name="i"/>
+ </bpws:variables>
+ <bpws:correlationSets>
+ <bpws:correlationSet name="CorrelationSet"
properties="ns:input"/>
+ </bpws:correlationSets>
+ <bpws:sequence name="main">
+ <bpws:scope name="Initialize">
+ <bpws:sequence>
+ <bpws:receive createInstance="yes" operation="initiate"
partnerLink="client" portType="tns:OnEventCorrelation"
variable="input">
+ <bpws:correlations>
+ <bpws:correlation initiate="yes"
set="CorrelationSet"/>
+ </bpws:correlations>
+ </bpws:receive>
+ <bpws:assign>
+ <bpws:copy>
+ <bpws:from>ode:process-property('weirdProp')</bpws:from>
+ <bpws:to>$output.payload</bpws:to>
+ </bpws:copy>
+ </bpws:assign>
+ <bpws:reply operation="initiate" partnerLink="client"
variable="output"/>
+ </bpws:sequence>
+ </bpws:scope>
+ </bpws:sequence>
+</bpws:process>
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.wsdl
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelation.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,66 @@
+<?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.
+ -->
+<definitions
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
xmlns:tns="http://sample.bpel.org/bpel/sample"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
name="OnEventCorrelation"
targetNamespace="http://sample.bpel.org/bpel/sample"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+>
+ <message name="OnEventCorrelationMessage">
+ <part type="xsd:string" name="payload"/>
+ <part type="xsd:string" name="payload2"/>
+ </message>
+ <portType name="OnEventCorrelation">
+ <operation name="initiate">
+ <input message="tns:OnEventCorrelationMessage"/>
+ <output message="tns:OnEventCorrelationMessage"/>
+ </operation>
+ <operation name="complete">
+ <input message="tns:OnEventCorrelationMessage"/>
+ <output message="tns:OnEventCorrelationMessage"/>
+ </operation>
+ </portType>
+ <binding name="OnEventCorrelationBinding"
type="tns:OnEventCorrelation">
+ <wsdlsoap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <operation name="initiate">
+ <wsdlsoap:operation soapAction="initiate"/>
+ <input>
+ <wsdlsoap:body use="literal"/>
+ </input>
+ <output>
+ <wsdlsoap:body use="literal"/>
+ </output>
+ </operation>
+ <operation name="complete">
+ <wsdlsoap:operation soapAction="complete"/>
+ <input>
+ <wsdlsoap:body use="literal"/>
+ </input>
+ <output>
+ <wsdlsoap:body use="literal"/>
+ </output>
+ </operation>
+ </binding>
+ <service name="OnEventCorrelation">
+ <port binding="tns:OnEventCorrelationBinding"
name="OnEventCorrelation">
+ <wsdlsoap:address
location="http://localhost:8835/ode/processes/OnEventCorrelation/"/>
+ </port>
+ </service>
+ <plnk:partnerLinkType name="OnEventCorrelation">
+ <plnk:role name="OnEventCorrelationProvider"
portType="tns:OnEventCorrelation"/>
+ </plnk:partnerLinkType>
+</definitions>
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelationArtifacts.wsdl
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelationArtifacts.wsdl
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/OnEventCorrelationArtifacts.wsdl 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,35 @@
+<?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.
+ -->
+<definitions
+
xmlns:plnk="http://docs.oasis-open.org/wsbpel/2.0/plnktype"
+
xmlns:tns="http://sample.bpel.org/bpel/sampleArtifacts"
+
xmlns:vprop="http://docs.oasis-open.org/wsbpel/2.0/varprop"
+
xmlns:xs="http://www.w3.org/2001/XMLSchema"
+
xmlns:bpel="http://sample.bpel.org/bpel/sample"
+ name="OnEventCorrelationArtifacts"
+
targetNamespace="http://sample.bpel.org/bpel/sampleArtifacts"
+
xmlns="http://schemas.xmlsoap.org/wsdl/"
+ >
+<vprop:property name="input" type="xs:string"/>
+<vprop:propertyAlias messageType="bpel:OnEventCorrelationMessage"
part="payload" propertyName="tns:input">
+<!--vprop:query><![CDATA[bpel:input]]></vprop:query-->
+</vprop:propertyAlias>
+<import location="OnEventCorrelation.wsdl"
namespace="http://sample.bpel.org/bpel/sample"/>
+</definitions>
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/beans.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/beans.xml
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/beans.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,38 @@
+<?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:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xmlns:util="http://www.springframework.org/schema/util"
+xmlns:ctx="http://www.springframework.org/schema/context"
+
+
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
+
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
+
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
+
http://www.springframework.org/schema/util
http://www.springframework.org/schema/util/spring-util-2.5.xsd
+ ">
+
+ <!--
+ <util:properties id="properties"
location="/myProcess.properties"/>
+ -->
+ <util:properties id="properties">
+ <prop key="weirdProp">myWeirdPropValue2</prop>
+ </util:properties>
+
+</beans>
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/deploy.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/deploy.xml
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/deploy.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,31 @@
+<?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.
+ -->
+<dd:deploy
xmlns:dd="http://www.apache.org/ode/schemas/dd/2007/03"
+
xmlns:bpel="http://sample.bpel.org/bpel/sample"
+ >
+
+ <dd:process
+ name="bpel:OnEventCorrelation"
fileName="OnEventCorrelation.bpel">
+ <!--dd:process-events generate="none"/-->
+ <dd:provide partnerLink="client">
+ <dd:service name="bpel:OnEventCorrelation3"
port="OnEventCorrelation" />
+ </dd:provide>
+ </dd:process>
+</dd:deploy>
Added: branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/smx.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/smx.xml
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/smx.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,60 @@
+<?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:sm="http://servicemix.apache.org/config/1.0"
+
xmlns:http="http://servicemix.apache.org/http/1.0"
+
xmlns:eip="http://servicemix.apache.org/eip/1.0"
+
xmlns:util="http://www.springframework.org/schema/util"
+
xmlns:jencks="http://jencks.org/2.0"
+ xmlns:mws="http://ode/bpel/unit-test.wsdl"
+
xmlns:bpel="http://sample.bpel.org/bpel/sample"
+ >
+
+ <util:map id="jndiEntries">
+ <entry key="java:comp/env/jdbc/ode"
value-ref="odeDS"/>
+ </util:map>
+
+ <sm:container
+ id="jbi"
+ embedded="true"
+ rootDir="target/test/smx"
+ transactionManager="#transactionManager"
+ depends-on="jndi"
+ >
+ <sm:activationSpecs>
+ <sm:activationSpec id="ms-eip">
+ <sm:component>
+ <eip:component>
+ <eip:endpoints>
+ <eip:content-based-router service="bpel:OnEventCorrelation2Fwd"
endpoint="OnEventCorrelation2" forwardOperation="true">
+ <eip:rules>
+ <eip:routing-rule>
+ <eip:target>
+ <eip:exchange-target service="bpel:OnEventCorrelation2"/>
+ </eip:target>
+ </eip:routing-rule>
+ </eip:rules>
+ </eip:content-based-router>
+ </eip:endpoints>
+ </eip:component>
+ </sm:component>
+ </sm:activationSpec>
+ </sm:activationSpecs>
+ </sm:container>
+</beans>
Added:
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/test.properties
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/test.properties
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/SpringPropertiesJbiTest/test.properties 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,21 @@
+#
+# 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.
+#
+
+1nmr.service={http://sample.bpel.org/bpel/sample}OnEventCorrelation3
+1nmr.operation=initiate
+1request=<message><payload>9000</payload><payload2>t2</payload2></message>
+1response=.*myWeirdPropValue2.*
Modified: branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/log4j.properties
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/log4j.properties 2010-05-27 16:08:03
UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/log4j.properties 2010-05-28 04:59:49
UTC (rev 677)
@@ -33,20 +33,20 @@
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{MM-dd@HH:mm:ss} %-5p (%13F:%L) %3x -
%m%n
-log4j.category.org.apache.servicemix.jbi.nmr.flow.seda=DEBUG
+log4j.category.org.apache.servicemix.jbi.nmr.flow.seda=INFO
#log4j.category.org.apache.ode.jbi.msgmap=TRACE
#log4j.category.org.apache.ode.jbi.EndpointReferenceContextImpl=DEBUG
#log4j.category.org.apache.ode.bpel=DEBUG
#log4j.category.org.apache.ode.dao.jpa.CorrelatorDAOImpl=TRACE
#log4j.category.org.apache.ode.dao.jpa.MessageDAOImpl=TRACE
-log4j.category.httpclient=DEBUG
-log4j.category.httpclient.Wire=DEBUG
-log4j.category.org.apache.ode.jbi.JbiTestBase=DEBUG
+log4j.category.httpclient=INFO
+log4j.category.httpclient.Wire=INFO
+log4j.category.org.apache.ode.jbi.JbiTestBase=INFO
#log4j.category.org.apache.ode.bpel.runtime.SCOPE=DEBUG
#log4j.category.org.apache.ode.bpel.runtime.EH_EVENT=DEBUG
#log4j.category.org.apache.ode.bpel.runtime.EH_ALARM=DEBUG
#log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=DEBUG
#log4j.category.org.apache.ode.bpel.elang=DEBUG
#log4j.category.org.apache.ode.bpel.compiler=DEBUG
-log4j.category.org.apache.ode.bpel.iapi.BpelEventListener=DEBUG
-log4j.category.org.apache.ode.bpel.engine=DEBUG
+log4j.category.org.apache.ode.bpel.iapi.BpelEventListener=INFO
+log4j.category.org.apache.ode.bpel.engine=INFO
Modified: branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/test.wsdl
===================================================================
--- branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/test.wsdl 2010-05-27 16:08:03 UTC
(rev 676)
+++ branches/ODE/ODE-1.x-fixes/jbi/src/test/resources/test.wsdl 2010-05-28 04:59:49 UTC
(rev 677)
@@ -1,4 +1,22 @@
<?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
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.example.org/test/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="test"
targetNamespace="http://www.example.org/test/">
<wsdl:types>
<xsd:schema
targetNamespace="http://www.example.org/test/">
Modified:
branches/ODE/ODE-1.x-fixes/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml
===================================================================
---
branches/ODE/ODE-1.x-fixes/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/jbi-bundle/src/main/resources/META-INF/spring/ode-jbi.xml 2010-05-28
04:59:49 UTC (rev 677)
@@ -61,6 +61,7 @@
<prop
key="ode-jbi.db.ext.dataSource">java:comp/env/jdbc/ode</prop>
<prop
key="ode-jbi.messageMapper">org.apache.ode.jbi.msgmap.ServiceMixMapper,org.apache.ode.jbi.msgmap.JbiWsdl11WrapperMapper</prop>
<prop key="ode-jbi.jca.port">0</prop>
+ <prop
key="javax.persistence.provider">org.apache.openjpa.persistence.PersistenceProviderImpl</prop>
</osgix:cm-properties>
</beans>
Modified: branches/ODE/ODE-1.x-fixes/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -41,11 +41,12 @@
<annogen.version>0.1.0</annogen.version>
<antlr.version>2.7.7</antlr.version>
<axiom.version>1.2.7</axiom.version>
- <axis2.version>1.4.1</axis2.version>
+ <axis2.version>1.3</axis2.version>
+ <rampart.version>1.3</rampart.version>
<commons.codec.version>1.3</commons.codec.version>
<backport.concurrent.version>3.1</backport.concurrent.version>
<commons.fileupload.version>1.2</commons.fileupload.version>
- <commons.collections.version>3.1</commons.collections.version>
+ <commons.collections.version>3.2.1</commons.collections.version>
<commons.httpclient.version>3.1</commons.httpclient.version>
<commons.io.version>1.4</commons.io.version>
<commons.lang.version>2.4</commons.lang.version>
@@ -185,7 +186,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>xmlbeans-maven-plugin</artifactId>
- <version>2.2.0</version>
+ <version>${xmlbeans.version}</version>
</plugin>
<plugin>
@@ -760,7 +761,7 @@
</dependency>
<dependency>
- <groupId>xstream</groupId>
+ <groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
<version>${xstream.version}</version>
</dependency>
Modified: branches/ODE/ODE-1.x-fixes/repositories.rb
===================================================================
--- branches/ODE/ODE-1.x-fixes/repositories.rb 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/repositories.rb 2010-05-28 04:59:49 UTC (rev 677)
@@ -18,5 +18,6 @@
repositories.remote << "http://repo1.maven.org/maven2"
repositories.remote <<
"http://people.apache.org/repo/m2-snapshot-repository"
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"
\ No newline at end of file
+repositories.release_to[:url] ||= "sftp://guest@localhost/home/guest"
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/DatabaseDelegate.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -38,7 +38,7 @@
boolean insertJob(Job job, String nodeId, boolean loaded) throws DatabaseException ;
/**
- * Update the job in the database (only updates timestamp and details)
+ * Update the job in the database (only updates timestamp and retryCount)
*
* @param job the job
* @throws DatabaseException in case of error
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/JdbcDelegate.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -27,12 +27,20 @@
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
+import java.sql.Types;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.math.BigDecimal;
import javax.sql.DataSource;
+import javax.xml.namespace.QName;
+import org.apache.ode.bpel.iapi.Scheduler;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
+import org.apache.ode.utils.DbIsolation;
+
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ode.utils.DbIsolation;
@@ -52,7 +60,7 @@
private static final String UPDATE_REASSIGN = "update ODE_JOB set nodeid = ?,
scheduled = 0 where nodeid = ?";
- private static final String UPDATE_JOB = "update ODE_JOB set ts = ?, details = ?
where jobid = ?";
+ private static final String UPDATE_JOB = "update ODE_JOB set ts = ?, retryCount
= ? where jobid = ?";
private static final String UPGRADE_JOB_DEFAULT = "update ODE_JOB set nodeid = ?
where nodeid is null "
+ "and mod(ts,?) = ? and ts < ?";
@@ -70,13 +78,61 @@
+ "and -1 <> ? and -1 <> ? and ts < ?";
private static final String SAVE_JOB = "insert into ODE_JOB "
- + " (jobid, nodeid, ts, scheduled, transacted, details) values(?, ?, ?,
?, ?, ?)";
+ + " (jobid, nodeid, ts, scheduled, transacted, "
+ + "instanceId,"
+ + "mexId,"
+ + "processId,"
+ + "type,"
+ + "channel,"
+ + "correlatorId,"
+ + "correlationKeySet,"
+ + "retryCount,"
+ + "inMem,"
+ + "detailsExt"
+ + ") values(?, ?, ?, ?, ?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?,"
+ + "?"
+ + ")";
private static final String GET_NODEIDS = "select distinct nodeid from
ODE_JOB";
- private static final String SCHEDULE_IMMEDIATE = "select jobid, ts, transacted,
scheduled, details from ODE_JOB "
+ private static final String SCHEDULE_IMMEDIATE = "select jobid, ts, transacted,
scheduled, "
+ + "instanceId,"
+ + "mexId,"
+ + "processId,"
+ + "type,"
+ + "channel,"
+ + "correlatorId,"
+ + "correlationKeySet,"
+ + "retryCount,"
+ + "inMem,"
+ + "detailsExt"
+ + " from ODE_JOB "
+ "where nodeid = ? and ts < ? order by ts";
+// public Long instanceId;
+// public String mexId;
+// public String processId;
+// public String type;
+// public String channel;
+// public String correlatorId;
+// public String correlationKeySet;
+// public Integer retryCount;
+// public Boolean inMem;
+// public Map<String, Object> detailsExt = new HashMap<String, Object>();
+
+ private static final String UPDATE_SCHEDULED = "update ODE_JOB set scheduled = 1
where jobid in (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
+
+ private static final int UPDATE_SCHEDULED_SLOTS = 10;
+
private DataSource _ds;
private Dialect _dialect;
@@ -137,21 +193,39 @@
Connection con = null;
PreparedStatement ps = null;
try {
+ int i = 1;
con = getConnection();
ps = con.prepareStatement(SAVE_JOB);
- ps.setString(1, job.jobId);
- ps.setString(2, nodeId);
- ps.setLong(3, job.schedDate);
- ps.setInt(4, asInteger(loaded));
- ps.setInt(5, asInteger(job.transacted));
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- StreamUtils.write(bos, (Serializable) job.detail);
- } catch (Exception ex) {
- __log.error("Error serializing job detail: " + job.detail);
- throw new DatabaseException(ex);
+ ps.setString(i++, job.jobId);
+ ps.setString(i++, nodeId);
+ ps.setLong(i++, job.schedDate);
+ ps.setInt(i++, asInteger(loaded));
+ ps.setInt(i++, asInteger(job.transacted));
+
+ JobDetails details = job.detail;
+ ps.setObject(i++, details.instanceId, Types.BIGINT);
+ ps.setObject(i++, details.mexId, Types.VARCHAR);
+ ps.setObject(i++, details.processId, Types.VARCHAR);
+ ps.setObject(i++, details.type, Types.VARCHAR);
+ ps.setObject(i++, details.channel, Types.VARCHAR);
+ ps.setObject(i++, details.correlatorId, Types.VARCHAR);
+ ps.setObject(i++, details.correlationKeySet, Types.VARCHAR);
+ ps.setObject(i++, details.retryCount, Types.INTEGER);
+ ps.setObject(i++, details.inMem, Types.INTEGER);
+
+ if (details.detailsExt == null || details.detailsExt.size() == 0) {
+ ps.setObject(i++, null, Types.BLOB);
+ } else {
+ ByteArrayOutputStream bos = new ByteArrayOutputStream();
+ try {
+ StreamUtils.write(bos, (Serializable) details.detailsExt);
+ } catch (Exception ex) {
+ __log.error("Error serializing job detail: " +
job.detail);
+ throw new DatabaseException(ex);
+ }
+ ps.setBytes(i++, bos.toByteArray());
}
- ps.setBytes(6, bos.toByteArray());
+
return ps.executeUpdate() == 1;
} catch (SQLException se) {
throw new DatabaseException(se);
@@ -163,7 +237,7 @@
public boolean updateJob(Job job) throws DatabaseException {
if (__log.isDebugEnabled())
- __log.debug("updateJob " + job.jobId + " details=" +
job);
+ __log.debug("updateJob " + job.jobId + " retryCount=" +
job.detail.getRetryCount());
Connection con = null;
PreparedStatement ps = null;
@@ -171,14 +245,7 @@
con = getConnection();
ps = con.prepareStatement(UPDATE_JOB);
ps.setLong(1, job.schedDate);
- ByteArrayOutputStream bos = new ByteArrayOutputStream();
- try {
- StreamUtils.write(bos, (Serializable) job.detail);
- } catch (Exception ex) {
- __log.error("Error serializing job detail: " + job.detail);
- throw new DatabaseException(ex);
- }
- ps.setBytes(2, bos.toByteArray());
+ ps.setInt(2, job.detail.getRetryCount());
ps.setString(3, job.jobId);
return ps.executeUpdate() == 1;
} catch (SQLException se) {
@@ -189,6 +256,21 @@
}
}
+ private Long asLong(Object o) {
+ if (o == null) return null;
+ else if (o instanceof BigDecimal) return ((BigDecimal) o).longValue();
+ else if (o instanceof Long) return (Long) o;
+ else if (o instanceof Integer) return ((Integer) o).longValue();
+ else throw new IllegalStateException("Can't convert to long " +
o.getClass());
+ }
+
+ private Integer asInteger(Object o) {
+ if (o == null) return null;
+ else if (o instanceof BigDecimal) return ((BigDecimal) o).intValue();
+ else if (o instanceof Integer) return (Integer) o;
+ else throw new IllegalStateException("Can't convert to integer " +
o.getClass());
+ }
+
@SuppressWarnings("unchecked")
public List<Job> dequeueImmediate(String nodeId, long maxtime, int maxjobs)
throws DatabaseException {
ArrayList<Job> ret = new ArrayList<Job>(maxjobs);
@@ -200,17 +282,65 @@
ps.setString(1, nodeId);
ps.setLong(2, maxtime);
ps.setMaxRows(maxjobs);
+
ResultSet rs = ps.executeQuery();
while (rs.next()) {
- Map<String, Object> details;
- try {
- ObjectInputStream is = new ObjectInputStream(rs.getBinaryStream(5));
- details = (Map<String, Object>) is.readObject();
- is.close();
- } catch (Exception e) {
- throw new DatabaseException("Error deserializing job
details", e);
+ Scheduler.JobDetails details = new Scheduler.JobDetails();
+ details.instanceId = asLong(rs.getObject("instanceId"));
+ details.mexId = (String) rs.getObject("mexId");
+ details.processId = (String) rs.getObject("processId");
+ details.type = (String) rs.getObject("type");
+ details.channel = (String) rs.getObject("channel");
+ details.correlatorId = (String) rs.getObject("correlatorId");
+ details.correlationKeySet = (String)
rs.getObject("correlationKeySet");
+ details.retryCount = asInteger(rs.getObject("retryCount"));
+ details.inMem = asBoolean(rs.getInt("inMem"));
+ if (rs.getObject("detailsExt") != null) {
+ try {
+ ObjectInputStream is = new
ObjectInputStream(rs.getBinaryStream("detailsExt"));
+ details.detailsExt = (Map<String, Object>)
is.readObject();
+ is.close();
+ } catch (Exception e) {
+ throw new DatabaseException("Error deserializing job
detailsExt", e);
+ }
}
- Job job = new Job(rs.getLong(2), rs.getString(1),
asBoolean(rs.getInt(3)), details);
+
+ {
+ //For compatibility reasons, we check whether there are entries
inside
+ //jobDetailsExt blob, which correspond to extracted entries. If so,
we
+ //use them.
+
+ Map<String, Object> detailsExt = details.getDetailsExt();
+ if (detailsExt.get("type") != null) {
+ details.type = (String) detailsExt.get("type");
+ }
+ if (detailsExt.get("iid") != null) {
+ details.instanceId = (Long) detailsExt.get("iid");
+ }
+ if (detailsExt.get("pid") != null) {
+ details.processId = (String) detailsExt.get("pid");
+ }
+ if (detailsExt.get("inmem") != null) {
+ details.inMem = (Boolean) detailsExt.get("inmem");
+ }
+ if (detailsExt.get("ckey") != null) {
+ details.correlationKeySet = (String)
detailsExt.get("ckey");
+ }
+ if (detailsExt.get("channel") != null) {
+ details.channel = (String) detailsExt.get("channel");
+ }
+ if (detailsExt.get("mexid") != null) {
+ details.mexId = (String) detailsExt.get("mexid");
+ }
+ if (detailsExt.get("correlatorId") != null) {
+ details.correlatorId = (String)
detailsExt.get("correlatorId");
+ }
+ if (detailsExt.get("retryCount") != null) {
+ details.retryCount = Integer.parseInt((String)
detailsExt.get("retryCount"));
+ }
+ }
+
+ Job job = new Job(rs.getLong("ts"),
rs.getString("jobid"), asBoolean(rs.getInt("transacted")), details);
ret.add(job);
}
rs.close();
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/Job.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/Job.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/Job.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -22,6 +22,7 @@
import java.util.Map;
import java.text.SimpleDateFormat;
+import org.apache.ode.bpel.iapi.Scheduler.JobDetails;
import org.apache.ode.utils.GUID;
/**
@@ -34,14 +35,14 @@
String jobId;
boolean transacted;
- Map<String,Object> detail;
+ JobDetails detail;
boolean persisted = true;
- public Job(long when, boolean transacted, Map<String, Object> jobDetail) {
+ public Job(long when, boolean transacted, JobDetails jobDetail) {
this(when, new GUID().toString(),transacted,jobDetail);
}
-
- public Job(long when, String jobId, boolean transacted,Map<String, Object>
jobDetail) {
+
+ public Job(long when, String jobId, boolean transacted, JobDetails jobDetail) {
super(when);
this.jobId = jobId;
this.detail = jobDetail;
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/main/java/org/apache/ode/scheduler/simple/SimpleScheduler.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -33,12 +33,15 @@
import javax.transaction.SystemException;
import javax.transaction.Transaction;
import javax.transaction.TransactionManager;
+import javax.xml.namespace.QName;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.ode.bpel.common.CorrelationKey;
import org.apache.ode.bpel.iapi.ContextException;
import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.log4j.helpers.AbsoluteTimeDateFormat;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
/**
* A reliable and relatively simple scheduler that uses a database to persist information
about
@@ -340,7 +343,7 @@
}
}
- public String schedulePersistedJob(final Map<String, Object> jobDetail, Date
when) throws ContextException {
+ public String schedulePersistedJob(final JobDetails jobDetail, Date when) throws
ContextException {
long ctime = System.currentTimeMillis();
if (when == null)
when = new Date(ctime);
@@ -356,10 +359,10 @@
if (when == null)
when = new Date(ctime);
- Map<String, Object> jobDetails = new HashMap<String, Object>();
- jobDetails.put("runnable", runnable);
- runnable.storeToDetailsMap(jobDetails);
-
+ JobDetails jobDetails = new JobDetails();
+ jobDetails.getDetailsExt().put("runnable", runnable);
+ runnable.storeToDetails(jobDetails);
+
if (__log.isDebugEnabled())
__log.debug("scheduling " + jobDetails + " for " +
when);
@@ -396,11 +399,11 @@
return job.jobId;
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object>
jobDetail) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail) throws
ContextException {
return scheduleVolatileJob(transacted, jobDetail, null);
}
- public String scheduleVolatileJob(boolean transacted, Map<String, Object>
jobDetail, Date when) throws ContextException {
+ public String scheduleVolatileJob(boolean transacted, JobDetails jobDetail, Date
when) throws ContextException {
long ctime = System.currentTimeMillis();
if (when == null)
when = new Date(ctime);
@@ -502,7 +505,7 @@
public Void call() throws Exception {
try {
final Scheduler.JobInfo jobInfo = new Scheduler.JobInfo(job.jobId,
job.detail,
- (Integer) (job.detail.get("retry") != null ?
job.detail.get("retry") : 0));
+ job.detail.getRetryCount());
if (job.transacted) {
final boolean[] needRetry = new boolean[]{true};
try {
@@ -514,7 +517,7 @@
try {
processor.onScheduledJob(jobInfo);
// If the job is a "runnable" job, schedule
the next job occurence
- if (job.detail.get("runnable") != null
&&
!"COMPLETED".equals(String.valueOf(jobInfo.jobDetail.get("runnable_status"))))
{
+ if
(job.detail.getDetailsExt().get("runnable") != null &&
!"COMPLETED".equals(String.valueOf(jobInfo.jobDetail.getDetailsExt().get("runnable_status"))))
{
// the runnable is still in progress, schedule
checker to 10 mins later
if (_pollIntervalForPolledRunnable < 0) {
if (__log.isWarnEnabled())
@@ -547,9 +550,9 @@
execTransaction(new Callable<Void>() {
public Void call() throws Exception {
if (needRetry[0]) {
- int retry = job.detail.get("retry") !=
null ? (((Integer) job.detail.get("retry")) + 1) : 0;
+ int retry = job.detail.getRetryCount() + 1;
if (retry <= 10) {
- job.detail.put("retry", retry);
+ job.detail.setRetryCount(retry);
long delay = (long)(Math.pow(5, retry));
job.schedDate = System.currentTimeMillis() +
delay*1000;
_db.updateJob(job);
@@ -643,7 +646,7 @@
public void runTask(final Task task) {
if (task instanceof Job) {
Job job = (Job)task;
- if( job.detail.get("runnable") != null ) {
+ if( job.detail.getDetailsExt().get("runnable") != null ) {
runPolledRunnable(job);
} else {
runJob(job);
@@ -811,9 +814,17 @@
} finally {
__log.debug("node recovery complete");
}
-
}
+// private long doRetry(Job job) throws DatabaseException {
+// int retry = job.detail.getRetryCount() + 1;
+// job.detail.setRetryCount(retry);
+// long delay = (long)(Math.pow(5, retry - 1));
+// Job jobRetry = new Job(System.currentTimeMillis() + delay*1000, true,
job.detail);
+// _db.insertJob(jobRetry, _nodeId, false);
+// return delay;
+// }
+
private abstract class SchedulerTask extends Task implements Runnable {
SchedulerTask(long schedDate) {
super(schedDate);
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/DelegateSupport.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -19,6 +19,7 @@
package org.apache.ode.scheduler.simple;
+import java.io.InputStream;
import java.sql.Connection;
import javax.sql.DataSource;
@@ -64,9 +65,18 @@
public void setup() throws Exception {
Connection c = _ds.getConnection();
try {
+ StringBuffer sql = new StringBuffer();
+
+ {
+ InputStream in =
getClass().getResourceAsStream("/simplesched-hsql.sql");
+ int v;
+ while ((v = in.read()) != -1) {
+ sql.append((char) v);
+ }
+ }
+
c.createStatement().executeUpdate("CREATE ALIAS MOD FOR
\"org.apache.ode.scheduler.simple.DelegateSupport.mod\";");
- String sql = "CREATE TABLE \"ODE_JOB\" (\"JOBID\"
CHAR(64) NOT NULL, \"TS\" NUMERIC NOT NULL, \"NODEID\" char(64)
NULL, \"SCHEDULED\" int NOT NULL, \"TRANSACTED\" int NOT NULL,
\"DETAILS\" BINARY(4096) NULL, PRIMARY KEY(\"JOBID\"));";
- c.createStatement().executeUpdate(sql);
+ c.createStatement().executeUpdate(sql.toString());
} finally {
c.close();
}
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/GeronimoDelegateSupport.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.scheduler.simple;
import javax.sql.DataSource;
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/JdbcDelegateTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/JdbcDelegateTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/JdbcDelegateTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -22,6 +22,10 @@
import java.util.HashMap;
import java.util.List;
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.iapi.Scheduler;
+import org.apache.ode.bpel.iapi.Scheduler.JobType;
import org.apache.ode.scheduler.simple.DatabaseDelegate;
import org.apache.ode.scheduler.simple.Job;
@@ -52,19 +56,19 @@
assertEquals(0, nids.size());
// try for one nodeid
- _del.insertJob(new Job(0L,true,new HashMap<String, Object>()),
"abc", true);
+ _del.insertJob(new Job(0L,true,new Scheduler.JobDetails()), "abc",
true);
nids = _del.getNodeIds();
assertEquals(1, nids.size());
assertTrue(nids.contains("abc"));
// check that dups are ignored.
- _del.insertJob(new Job(0L,true,new HashMap<String, Object>()),
"abc", true);
+ _del.insertJob(new Job(0L,true,new Scheduler.JobDetails()), "abc",
true);
nids = _del.getNodeIds();
assertEquals(1, nids.size());
assertTrue(nids.contains("abc"));
// add another nodeid,
- _del.insertJob(new Job(0L,true,new HashMap<String, Object>()),
"123", true);
+ _del.insertJob(new Job(0L,true,new Scheduler.JobDetails()), "123",
true);
nids = _del.getNodeIds();
assertEquals(2, nids.size());
assertTrue(nids.contains("abc"));
@@ -72,8 +76,8 @@
}
public void testReassign() throws Exception {
- _del.insertJob(new Job(100L,"j1",true,new HashMap<String,
Object>()), "n1", false);
- _del.insertJob(new Job(200L,"j2",true,new HashMap<String,
Object>()), "n2", false);
+ _del.insertJob(new Job(100L,"j1",true,new Scheduler.JobDetails()),
"n1", false);
+ _del.insertJob(new Job(200L,"j2",true,new Scheduler.JobDetails()),
"n2", false);
assertEquals(1,_del.updateReassign("n1","n2"));
List<Job> jobs = _del.dequeueImmediate("n2", 400L, 1000);
@@ -81,8 +85,8 @@
}
public void testScheduleImmediateTimeFilter() throws Exception {
- _del.insertJob(new Job(100L,"j1",true,new HashMap<String,
Object>()), "n1", false);
- _del.insertJob(new Job(200L,"j2",true,new HashMap<String,
Object>()), "n1", false);
+ _del.insertJob(new Job(100L,"j1",true,new Scheduler.JobDetails()),
"n1", false);
+ _del.insertJob(new Job(200L,"j2",true,new Scheduler.JobDetails()),
"n1", false);
List<Job> jobs = _del.dequeueImmediate("n1", 150L, 1000);
@@ -97,8 +101,8 @@
}
public void testScheduleImmediateMaxRows() throws Exception {
- _del.insertJob(new Job(100L,"j1",true,new HashMap<String,
Object>()), "n1", false);
- _del.insertJob(new Job(200L,"j2",true,new HashMap<String,
Object>()), "n1", false);
+ _del.insertJob(new Job(100L,"j1",true,new Scheduler.JobDetails()),
"n1", false);
+ _del.insertJob(new Job(200L,"j2",true,new Scheduler.JobDetails()),
"n1", false);
List<Job> jobs = _del.dequeueImmediate("n1", 201L, 1);
assertNotNull(jobs);
@@ -107,8 +111,8 @@
}
public void testScheduleImmediateNodeFilter() throws Exception {
- _del.insertJob(new Job(100L,"j1",true,new HashMap<String,
Object>()), "n1", false);
- _del.insertJob(new Job(200L,"j2",true,new HashMap<String,
Object>()), "n2", false);
+ _del.insertJob(new Job(100L,"j1",true,new Scheduler.JobDetails()),
"n1", false);
+ _del.insertJob(new Job(200L,"j2",true,new Scheduler.JobDetails()),
"n2", false);
List<Job> jobs = _del.dequeueImmediate("n2", 300L, 1000);
assertNotNull(jobs);
@@ -117,8 +121,8 @@
}
public void testDeleteJob() throws Exception {
- _del.insertJob(new Job(100L,"j1",true,new HashMap<String,
Object>()), "n1", false);
- _del.insertJob(new Job(200L,"j2",true,new HashMap<String,
Object>()), "n2", false);
+ _del.insertJob(new Job(100L,"j1",true,new Scheduler.JobDetails()),
"n1", false);
+ _del.insertJob(new Job(200L,"j2",true,new Scheduler.JobDetails()),
"n2", false);
// try deleting, wrong jobid -- del should fail
assertFalse(_del.deleteJob("j1x", "n1"));
@@ -135,7 +139,7 @@
public void testUpgrade() throws Exception {
for (int i = 0; i < 200; ++i)
- _del.insertJob(new Job(i ,"j" +i,true,new HashMap<String,
Object>()), null, false);
+ _del.insertJob(new Job(i ,"j" +i,true,new Scheduler.JobDetails()),
null, false);
int n1 = _del.updateAssignToNode("n1", 0, 3, 100);
int n2 = _del.updateAssignToNode("n2", 1, 3, 100);
@@ -149,4 +153,30 @@
assertEquals(n3,_del.dequeueImmediate("n3", 10000L, 1000).size());
}
+ public void testMigration() throws Exception {
+ Scheduler.JobDetails j1 = new Scheduler.JobDetails();
+ j1.getDetailsExt().put("type", "MATCHER");
+ j1.getDetailsExt().put("iid", 1234L);
+ j1.getDetailsExt().put("pid", new QName("http://test1",
"test2").toString());
+ j1.getDetailsExt().put("inmem", true);
+ j1.getDetailsExt().put("ckey", "@2[some~001~002]");
+ j1.getDetailsExt().put("channel", "123");
+ j1.getDetailsExt().put("mexid", "mexid123");
+ j1.getDetailsExt().put("correlatorId", "cid123");
+ j1.getDetailsExt().put("retryCount", "15");
+
+ _del.insertJob(new Job(0 ,"migration",true,j1), null, false);
+ _del.updateAssignToNode("m", 0, 3, 100);
+ Scheduler.JobDetails j2 = _del.dequeueImmediate("m", 10000L,
1000).get(0).detail;
+
+ assertEquals(j2.getType(), JobType.MATCHER);
+ assertEquals(j2.getInstanceId(), (Object) 1234L);
+ assertEquals(j2.getProcessId(), new QName("http://test1",
"test2"));
+ assertEquals(j2.getInMem(), (Object) true);
+ assertEquals(j2.getCorrelationKeySet().toCanonicalString(), (Object)
"@2[some~001~002]");
+ assertEquals(j2.getChannel(), (Object) "123");
+ assertEquals(j2.getMexId(), (Object) "mexid123");
+ assertEquals(j2.getCorrelatorId(), (Object) "cid123");
+ assertEquals(j2.getRetryCount(), (Object) 15);
+ }
}
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/RetriesTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -20,6 +20,8 @@
package org.apache.ode.scheduler.simple;
import org.apache.ode.bpel.iapi.Scheduler;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
import javax.transaction.TransactionManager;
@@ -32,6 +34,8 @@
* @author Matthieu Riou <mriou(a)apache.org>
*/
public class RetriesTest extends TestCase implements Scheduler.JobProcessor {
+ private static final Log __log = LogFactory.getLog(RetriesTest.class);
+
DelegateSupport _ds;
SimpleScheduler _scheduler;
ArrayList<Scheduler.JobInfo> _jobs;
@@ -66,7 +70,7 @@
}
Thread.sleep(10000);
- assertEquals(8, _tried);
+ assertEquals(6, _tried);
}
public void testExecTransaction() throws Exception {
@@ -95,10 +99,10 @@
throw new Scheduler.JobProcessorException(jobInfo.retryCount < 1);
}
- Map<String, Object> newDetail(String x) {
- HashMap<String, Object> det = new HashMap<String, Object>();
- det.put("foo", x);
- return det;
+ Scheduler.JobDetails newDetail(String x) {
+ Scheduler.JobDetails jd = new Scheduler.JobDetails();
+ jd.getDetailsExt().put("foo", x);
+ return jd;
}
private SimpleScheduler newScheduler(String nodeId) {
Modified:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/java/org/apache/ode/scheduler/simple/SimpleSchedulerTest.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -29,6 +29,8 @@
import junit.framework.TestCase;
+import org.apache.geronimo.transaction.manager.GeronimoTransactionManager;
+import org.apache.ode.bpel.iapi.Scheduler;
import org.apache.ode.bpel.iapi.Scheduler.JobInfo;
import org.apache.ode.bpel.iapi.Scheduler.JobProcessor;
import org.apache.ode.bpel.iapi.Scheduler.JobProcessorException;
@@ -238,10 +240,10 @@
}
- Map<String, Object> newDetail(String x) {
- HashMap<String, Object> det = new HashMap<String, Object>();
- det.put("foo", x);
- return det;
+ Scheduler.JobDetails newDetail(String x) {
+ Scheduler.JobDetails jd = new Scheduler.JobDetails();
+ jd.getDetailsExt().put("foo", x);
+ return jd;
}
private SimpleScheduler newScheduler(String nodeId) {
Added: branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/log4j.properties
===================================================================
--- branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/log4j.properties
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/log4j.properties 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+
+# Set root logger level to WARN and its only appender to CONSOLE
+log4j.rootLogger=WARN, CONSOLE
+
+# log4j properties to work with commandline tools.
+log4j.category.org.apache.ode.scheduler.simple.RetriesTest=DEBUG
+log4j.category.org.apache.ode.bpel.engine=INFO
+
+# Console appender
+log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
+log4j.appender.CONSOLE.layout.ConversionPattern=%p - %C{1}.%M(%L) | %m%n
Added:
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/simplesched-hsql.sql
===================================================================
--- branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/simplesched-hsql.sql
(rev 0)
+++
branches/ODE/ODE-1.x-fixes/scheduler-simple/src/test/resources/simplesched-hsql.sql 2010-05-28
04:59:49 UTC (rev 677)
@@ -0,0 +1,20 @@
+CREATE TABLE ode_job (
+ jobid CHAR(64) NOT NULL,
+ ts BIGINT NOT NULL,
+ nodeid char(64),
+ scheduled int NOT NULL,
+ transacted int NOT NULL,
+
+ instanceId BIGINT,
+ mexId varchar(255),
+ processId varchar(255),
+ type varchar(255),
+ channel varchar(255),
+ correlatorId varchar(255),
+ correlationKeySet varchar(255),
+ retryCount int,
+ inMem int,
+ detailsExt binary(4096),
+
+ PRIMARY KEY(jobid));
+
Added: branches/ODE/ODE-1.x-fixes/schema-updates/update01.sql
===================================================================
--- branches/ODE/ODE-1.x-fixes/schema-updates/update01.sql (rev
0)
+++ branches/ODE/ODE-1.x-fixes/schema-updates/update01.sql 2010-05-28 04:59:49 UTC (rev
677)
@@ -0,0 +1,7 @@
+alter table BPEL_XML_DATA add DATA blob;
+
+update BPEL_XML_DATA bxd set DATA=(select BIN_DATA from LARGE_DATA where id =
bxd.ldata_id);
+delete from LARGE_DATA ld where ld.id in (select ldata_id from BPEL_XML_DATA);
+alter table BPEL_XML_DATA drop column ldata_id;
+
+alter table BPEL_XML_DATA add SIMPLE_VALUE varchar2(255);
Added: branches/ODE/ODE-1.x-fixes/schema-updates/update02.sql
===================================================================
--- branches/ODE/ODE-1.x-fixes/schema-updates/update02.sql (rev
0)
+++ branches/ODE/ODE-1.x-fixes/schema-updates/update02.sql 2010-05-28 04:59:49 UTC (rev
677)
@@ -0,0 +1,14 @@
+create table ODE_JOB_BAK as select * from ODE_JOB;
+alter table ODE_JOB add instanceId number(37);
+alter table ODE_JOB add mexId varchar(255);
+alter table ODE_JOB add processId varchar(255);
+alter table ODE_JOB add type varchar(255);
+alter table ODE_JOB add channel varchar(255);
+alter table ODE_JOB add correlatorId varchar(255);
+alter table ODE_JOB add correlationKeySet varchar(255);
+alter table ODE_JOB add retryCount int;
+alter table ODE_JOB add inMem int;
+alter table ODE_JOB add priority int;
+alter table ODE_JOB add detailsExt blob;
+update ODE_JOB oj set detailsExt = (select details from ODE_JOB where jobid = oj.jobid);
+alter table ODE_JOB drop column details;
Modified:
branches/ODE/ODE-1.x-fixes/tools/src/main/java/org/apache/ode/tools/sendsoap/cline/HttpSoapSender.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/tools/src/main/java/org/apache/ode/tools/sendsoap/cline/HttpSoapSender.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/tools/src/main/java/org/apache/ode/tools/sendsoap/cline/HttpSoapSender.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -19,6 +19,8 @@
package org.apache.ode.tools.sendsoap.cline;
import org.apache.commons.httpclient.HttpClient;
+import org.apache.commons.httpclient.HttpConnectionManager;
+import org.apache.commons.httpclient.SimpleHttpConnectionManager;
import org.apache.commons.httpclient.UsernamePasswordCredentials;
import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.PostMethod;
@@ -105,7 +107,10 @@
m.appendReplacement(sb, now + "-" + c++);
}
m.appendTail(sb);
- HttpClient httpClient = new HttpClient();
+ SimpleHttpConnectionManager mgr = new SimpleHttpConnectionManager();
+ mgr.getParams().setConnectionTimeout(60000);
+ mgr.getParams().setSoTimeout(60000);
+ HttpClient httpClient = new HttpClient(mgr);
PostMethod httpPostMethod = new PostMethod(u.toExternalForm());
if (proxyServer != null && proxyServer.length() > 0) {
httpClient.getState().setCredentials(new AuthScope(proxyServer, proxyPort),
Modified: branches/ODE/ODE-1.x-fixes/utils/pom.xml
===================================================================
--- branches/ODE/ODE-1.x-fixes/utils/pom.xml 2010-05-27 16:08:03 UTC (rev 676)
+++ branches/ODE/ODE-1.x-fixes/utils/pom.xml 2010-05-28 04:59:49 UTC (rev 677)
@@ -65,7 +65,7 @@
<artifactId>log4j</artifactId>
</dependency>
<dependency>
- <groupId>xstream</groupId>
+ <groupId>com.thoughtworks.xstream</groupId>
<artifactId>xstream</artifactId>
</dependency>
<dependency>
@@ -90,17 +90,9 @@
</dependency>
<dependency>
<groupId>org.apache.axis2</groupId>
- <artifactId>axis2-jibx</artifactId>
- </dependency>
- <dependency>
- <groupId>org.apache.axis2</groupId>
<artifactId>axis2-saaj</artifactId>
</dependency>
<dependency>
- <groupId>org.apache.axis2</groupId>
- <artifactId>axis2-xmlbeans</artifactId>
- </dependency>
- <dependency>
<groupId>net.sf.saxon</groupId>
<artifactId>saxon</artifactId>
</dependency>
Modified:
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/CronExpression.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/CronExpression.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/CronExpression.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +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.
++ */
+
package org.apache.ode.utils;
import java.io.Serializable;
Modified:
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/RelativeDateParser.java
===================================================================
---
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/RelativeDateParser.java 2010-05-27
16:08:03 UTC (rev 676)
+++
branches/ODE/ODE-1.x-fixes/utils/src/main/java/org/apache/ode/utils/RelativeDateParser.java 2010-05-28
04:59:49 UTC (rev 677)
@@ -1,3 +1,21 @@
+/*
+ * 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.utils;
import java.text.ParseException;