You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ode.apache.org by mr...@apache.org on 2008/08/01 02:29:45 UTC

svn commit: r681565 [1/5] - in /ode/branches/rtver: ./ bpel-api/src/main/java/org/apache/ode/bpel/common/ bpel-api/src/main/java/org/apache/ode/bpel/explang/ bpel-api/src/main/java/org/apache/ode/bpel/pmapi/ bpel-compiler/src/main/java/org/apache/ode/b...

Author: mriou
Date: Thu Jul 31 17:29:41 2008
New Revision: 681565

URL: http://svn.apache.org/viewvc?rev=681565&view=rev
Log:
Dumping a bunch of code just in case my hard drive decides it's time for Seppuku. Eventually it will compile, infinite monkey theorem and stuff.

Added:
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/Constants.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractAsyncExtensionOperation.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractExtensionBundle.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractSyncExtensionOperation.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionOperation.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionOperation.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSet.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSetModel.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/FaultInfo.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/IOContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/InvalidProcessException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/NoSuchOperationException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/OdeRTInstance.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/OdeRTInstanceContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/OdeRuntime.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/PartnerLink.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/PartnerLinkModel.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/ProcessControlContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/ProcessModel.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/PropertyAliasModel.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/RecoveryContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/ScopedObject.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/Selector.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/UninitializedPartnerEPR.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/UninitializedVariableException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/Variable.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/VariableContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/COMPENSATIONHANDLER_.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATIONHANDLER_.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EvaluationContext.java
      - copied, changed from r680846, ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/explang/EvaluationContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExprEvaluationContextImpl.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ExprEvaluationContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExpressionLanguageRuntime.java
      - copied, changed from r680846, ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/explang/ExpressionLanguageRuntime.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/REPLY.java
      - copied, changed from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPLY.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RuntimeInstanceImpl.java
Removed:
    ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/explang/EvaluationContext.java
    ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/explang/ExpressionLanguageRuntime.java
    ode/branches/rtver/bpel-compiler/src/main/java/org/apache/ode/bpel/elang/xpath20/compiler/Constants.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/COMPENSATIONHANDLER_.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/ExprEvaluationContextImpl.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/REPLY.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractAsyncExtensionOperation.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractExtensionBundle.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractSyncExtensionOperation.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionContext.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionOperation.java
Modified:
    ode/branches/rtver/Rakefile
    ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java
    ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/BpelManagementFacade.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelManagementFacadeImpl.java
    ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/ConfigurationException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITY.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ACTIVITYGUARD.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGN.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ASSIGNMessages.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ActivityInfo.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ActivityTemplateFactory.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/BpelJacobRunnable.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/COMPENSATE.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ChildInfo.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/CompensationHandler.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/CorrelationSetInstance.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/DebugInfo.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EH_EVENT.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EMPTY.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EXTENSIONACTIVITY.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/EventContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExpressionLanguageRuntimeRegistry.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ExtensionContextImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FLOW.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/FOREACH.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/INVOKE.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/InstanceGlobals.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/InvalidContextException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/LinkFrame.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/LinkInfo.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/Messages.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OActivity.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OAgent.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OAssign.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OBase.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OCatch.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OCompensate.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OCompensationHandler.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OConstantExpression.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OConstantVarType.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OConstants.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OElementVarType.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OEmpty.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OEventHandler.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OExpression.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OExpressionLanguage.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtVar.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OExtensionActivity.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OFailureHandling.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OFaultHandler.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OFlow.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OForEach.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OInvoke.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OLValueExpression.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OLink.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OMessageVarType.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OPartnerLink.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OPickReceive.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OProcess.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ORDEREDCOMPENSATOR.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ORepeatUntil.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OReply.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ORethrow.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OScope.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OSequence.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OSwitch.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OTerminate.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OTerminationHandler.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OThrow.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OVarType.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OWait.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OWhile.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OXsdTypeVarType.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OXslSheet.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/OutstandingRequestManager.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PICK.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PROCESS.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PartnerLinkInstance.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/PropertyAliasEvaluationContext.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/READWRITELOCK.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/REPEATUNTIL.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/RETHROW.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ReplacementMapImpl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ResumeWork.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPE.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SCOPEACT.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SEQUENCE.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SWITCH.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/ScopeFrame.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/Selector.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/Serializer.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/SystemException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/TERMINATE.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/THROW.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/TimerWork.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/VariableInstance.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/WAIT.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/WHILE.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/ActivityRecovery.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/Compensation.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/EventHandlerControl.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/FaultData.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/InvokeResponse.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/LinkStatus.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/ParentScope.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/PickResponse.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/ReadWriteLock.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/Termination.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/channels/TimerResponse.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/BpelDocumentNavigator.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenContexts.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenNamespaceContextAdapter.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/OXPath10Expression.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/OXPath10ExpressionBPEL20.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/WrappedFaultException.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/XPath10ExpressionRuntime.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/XslRuntimeUriResolver.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpFunctionResolver.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpVariableResolver.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/OXPath20ExpressionBPEL20.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/XPath20ExpressionRuntime.java
    ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/XslRuntimeUriResolver.java

Modified: ode/branches/rtver/Rakefile
URL: http://svn.apache.org/viewvc/ode/branches/rtver/Rakefile?rev=681565&r1=681564&r2=681565&view=diff
==============================================================================
--- ode/branches/rtver/Rakefile (original)
+++ ode/branches/rtver/Rakefile Thu Jul 31 17:29:41 2008
@@ -148,7 +148,7 @@
   desc "ODE Axis2 Based Web Application"
   define "axis2-war" do
     libs = projects("axis2", "bpel-api", "bpel-compiler", "bpel-connector", "bpel-dao",
-      "il-common", "bpel-obj", "bpel-ql", "bpel-runtime", "scheduler-simple",
+      "il-common", "runtime-repo", "bpel-ql", "bpel-runtime", "scheduler-simple",
       "bpel-schemas", "bpel-store", "dao-hibernate", "jacob", "jca-ra", "jca-server",
       "utils", "dao-jpa"),
       AXIS2_ALL, ANNONGEN, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.fileupload, COMMONS.httpclient,
@@ -194,7 +194,7 @@
 
   desc "ODE APIs"
   define "bpel-api" do
-    compile.with projects("utils", "bpel-obj", "bpel-schemas"), WSDL4J, COMMONS.logging
+    compile.with projects("utils", "bpel-schemas"), WSDL4J, COMMONS.logging
     package :jar
   end
 
@@ -206,7 +206,7 @@
 
   desc "ODE BPEL Compiler"
   define "bpel-compiler" do
-    compile.with projects("bpel-api", "bpel-obj", "bpel-schemas", "utils"),
+    compile.with projects("bpel-api", "runtime-repo", "bpel-schemas", "utils"),
       COMMONS.logging, JAVAX.stream, JAXEN, SAXON, WSDL4J, XALAN, XERCES
     test.resources { filter(project("bpel-scripts").path_to("src/main/resources")).into(test.resources.target).run }
     package :jar
@@ -231,9 +231,13 @@
     package :jar
   end
 
-  desc "ODE BPEL Object Model"
-  define "bpel-obj" do
-    compile.with project("utils"), SAXON, WSDL4J
+  desc "ODE Runtime repository"
+  define "runtime-repo" do
+    compile.from apt
+    compile.with projects("bpel-api", "bpel-dao", "jacob", "jacob-ap", "utils"),
+      COMMONS.logging, COMMONS.collections, COMMONS.httpclient, COMMONS.lang, JAXEN, JAVAX.persistence,
+      JAVAX.stream, SAXON, WSDL4J, XMLBEANS, JAVAX.transaction
+
     package :jar
   end
 
@@ -242,14 +246,13 @@
     pkg_name = "org.apache.ode.ql.jcc"
     jjtree = jjtree(_("src/main/jjtree"), :in_package=>pkg_name)
     compile.from javacc(jjtree, :in_package=>pkg_name), jjtree
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-obj", "jacob", "utils")
+    compile.with projects("bpel-api", "bpel-compiler", "runtime-repo", "jacob", "utils")
     package :jar
   end
 
   desc "ODE Runtime Engine"
   define "bpel-runtime" do
-    compile.from apt
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas",
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "runtime-repo", "bpel-schemas",
       "bpel-store", "jacob", "jacob-ap", "utils"),
       BACKPORT, COMMONS.logging, COMMONS.httpclient, COMMONS.collections, COMMONS.lang, JAXEN, JAVAX.persistence, 
       JAVAX.stream, SAXON, WSDL4J, XMLBEANS, JAVAX.transaction
@@ -284,7 +287,7 @@
 
   desc "ODE Process Store"
   define "bpel-store" do
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-obj", "bpel-schemas", "il-common",
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "runtime-repo", "bpel-schemas", "il-common",
       "dao-hibernate", "utils"),
       COMMONS.logging, JAVAX.persistence, JAVAX.stream, HIBERNATE, HSQLDB, XMLBEANS, XERCES, WSDL4J
     compile { open_jpa_enhance }
@@ -298,7 +301,7 @@
   desc "ODE BPEL Tests"
   define "bpel-test" do
     compile.with projects("bpel-api", "bpel-compiler", "bpel-dao", "bpel-runtime",
-      "bpel-store", "utils", "il-common", "dao-jpa", "bpel-obj"),
+      "bpel-store", "utils", "il-common", "dao-jpa", "runtime-repo"),
       DERBY, Java::JUnit::JUNIT_REQUIRES, JAVAX.persistence, OPENJPA, WSDL4J, JAVAX.transaction, 
       COMMONS.lang, COMMONS.httpclient, COMMONS.codec
 
@@ -386,7 +389,7 @@
     end
     derby_db = Derby.create(_("target/derby/jpadb")=>_("target/derby.sql"))
 
-    test.with projects("bpel-api", "bpel-dao", "bpel-obj", "il-common", "dao-jpa", "utils"),
+    test.with projects("bpel-api", "bpel-dao", "runtime-repo", "il-common", "dao-jpa", "utils"),
       BACKPORT, COMMONS.collections, COMMONS.lang, COMMONS.logging, GERONIMO.transaction,
       GERONIMO.kernel, GERONIMO.connector, HSQLDB, JAVAX.connector, JAVAX.ejb, JAVAX.persistence,
       JAVAX.transaction, LOG4J, OPENJPA, XERCES, WSDL4J
@@ -410,7 +413,7 @@
 
   desc "ODE JBI Integration Layer"
   define "jbi" do
-    compile.with projects("bpel-api", "bpel-compiler", "bpel-connector", "bpel-dao", "il-common", "bpel-obj",
+    compile.with projects("bpel-api", "bpel-compiler", "bpel-connector", "bpel-dao", "il-common", "runtime-repo",
       "bpel-runtime", "scheduler-simple", "bpel-schemas", "bpel-store", "utils"),
       AXIOM, COMMONS.logging, COMMONS.pool, JAVAX.transaction, JBI, LOG4J, WSDL4J, XERCES
 
@@ -418,7 +421,7 @@
     package(:jbi).tap do |jbi|
       libs = artifacts(package(:jar),
         projects("bpel-api", "bpel-api-jca", "bpel-compiler", "bpel-connector", "bpel-dao",
-        "il-common", "jca-ra", "jca-server", "bpel-obj", "bpel-ql", "bpel-runtime",
+        "il-common", "jca-ra", "jca-server", "runtime-repo", "bpel-ql", "bpel-runtime",
         "scheduler-simple", "bpel-schemas", "bpel-store", "dao-hibernate", "dao-jpa",
         "jacob", "jacob-ap", "utils"),
         ANT, AXIOM, BACKPORT, COMMONS.codec, COMMONS.collections, COMMONS.dbcp, COMMONS.lang, COMMONS.pool,
@@ -477,8 +480,9 @@
 
   desc "E4X Extension"
   define "e4x", :version=>"1.0-beta" do
-    compile.with "rhino:js:jar:1.6R7", projects("ode:bpel-api", "ode:bpel-obj", "ode:bpel-runtime", "ode:bpel-compiler", "ode:utils")
-    test.with "rhino:js:jar:1.6R7", projects("ode:bpel-api", "ode:bpel-obj", "ode:jacob", "ode:bpel-schemas",
+    compile.with "rhino:js:jar:1.6R7", projects("ode:bpel-api", "ode:runtime-repo", "ode:bpel-runtime", 
+                 "ode:bpel-compiler", "ode:utils")
+    test.with "rhino:js:jar:1.6R7", projects("ode:bpel-api", "ode:runtime-repo", "ode:jacob", "ode:bpel-schemas",
               "ode:bpel-scripts", "ode:scheduler-simple", "ode:bpel-test", "ode:utils", "ode:bpel-compiler",
               "ode:bpel-dao", "ode:bpel-runtime", "ode:bpel-store", "ode:il-common", "ode:dao-jpa"),
               COMMONS.collections, COMMONS.lang, COMMONS.logging, DERBY, JAVAX.connector,
@@ -506,7 +510,7 @@
       # Libraries
       zip.path("lib").include artifacts(COMMONS.logging, COMMONS.codec, COMMONS.httpclient,
         COMMONS.pool, COMMONS.collections, JAXEN, SAXON, LOG4J, WSDL4J, XALAN, XERCES)
-      project("ode").projects("utils", "tools", "bpel-compiler", "bpel-api", "bpel-obj", "bpel-schemas").
+      project("ode").projects("utils", "tools", "bpel-compiler", "bpel-api", "runtime-repo", "bpel-schemas").
         map(&:packages).flatten.each do |pkg|
         zip.include(pkg.to_s, :as=>"#{pkg.id}.#{pkg.type}", :path=>"lib")
       end

Modified: ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java?rev=681565&r1=681564&r2=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java (original)
+++ ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/common/CorrelationKey.java Thu Jul 31 17:29:41 2008
@@ -44,7 +44,8 @@
  * the <code>&lt;propertyAlias;&gt</code> BPEL process document element).
  * </p>
  */
-public class CorrelationKey implements Serializable {
+public class CorrelationKey {
+    // Changed so that it's not serializable
 
     private static final long serialVersionUID = 1L;
 

Modified: ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/BpelManagementFacade.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/BpelManagementFacade.java?rev=681565&r1=681564&r2=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/BpelManagementFacade.java (original)
+++ ode/branches/rtver/bpel-api/src/main/java/org/apache/ode/bpel/pmapi/BpelManagementFacade.java Thu Jul 31 17:29:41 2008
@@ -23,7 +23,6 @@
 import org.apache.ode.bpel.bdi.breaks.VariableModificationBreakpoint;
 import org.apache.ode.bpel.common.CorrelationKey;
 import org.apache.ode.bpel.evt.ProcessInstanceEvent;
-import org.apache.ode.bpel.o.OProcess;
 
 import javax.xml.namespace.QName;
 import java.util.Date;
@@ -128,13 +127,6 @@
   CorrelationKey getCorrelation(Long iid, Long scopeId, String correlationSet) throws ManagementException;
   
   /**
-   * Return the process model.
-   * @return
-   * @param procId
-   */
-  OProcess getProcessDef(String procId) throws ManagementException;
-
-  /**
    * Single step through a process instance.
    * @param iid
    */

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelManagementFacadeImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelManagementFacadeImpl.java?rev=681565&r1=681564&r2=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelManagementFacadeImpl.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelManagementFacadeImpl.java Thu Jul 31 17:29:41 2008
@@ -25,7 +25,6 @@
 import org.apache.ode.bpel.dao.*;
 import org.apache.ode.bpel.iapi.BpelServer;
 import org.apache.ode.bpel.iapi.ProcessStore;
-import org.apache.ode.bpel.o.OProcess;
 import org.apache.ode.bpel.pmapi.*;
 import org.apache.ode.bpel.pmapi.TInstanceInfo.EventInfo;
 import org.apache.ode.bpel.runtime.breaks.ActivityBreakpointImpl;
@@ -180,15 +179,6 @@
         });
     }
 
-    /**
-     * @see BpelManagementFacade#getProcessDef(String)
-     * @param procid
-     */
-    public OProcess getProcessDef(String procid) throws ManagementException {
-
-        return _server.getOProcess(QName.valueOf(procid));
-    }
-
     public void step(final Long iid) throws ManagementException {
         // We need debugger support in order to resume (since we have to force
         // a reduction. If one is not available the getDebugger() method should

Modified: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java?rev=681565&r1=681564&r2=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java (original)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/BpelRuntimeContextImpl.java Thu Jul 31 17:29:41 2008
@@ -938,31 +938,6 @@
     }
 
     /**
-     * We record all values of properties of a 'MessageType' variable for efficient lookup.
-     */
-    private void writeProperties(VariableInstance variable, Node value, XmlDataDAO dao) {
-        if (variable.declaration.type instanceof OMessageVarType) {
-            for (OProcess.OProperty property : variable.declaration.getOwner().properties) {
-                OProcess.OPropertyAlias alias = property.getAlias(variable.declaration.type);
-                if (alias != null) {
-                    try {
-                        String val = _bpelProcess.extractProperty((Element) value, alias, variable.declaration.getDescription());
-                        if (val != null) {
-                            dao.setProperty(property.name.toString(), val);
-                        }
-                    } catch (FaultException e) {
-                        // This will fail as we're basically trying to extract properties on all
-                        // received messages for optimization purposes.
-                        if (__log.isDebugEnabled())
-                            __log.debug("Couldn't extract property '" + property.toString() + "' in property pre-extraction: "
-                                    + e.toString());
-                    }
-                }
-            }
-        }
-    }
-
-    /**
      * Called when the process completes to clean up any outstanding message exchanges.
      * 
      */

Added: ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceContextImpl.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceContextImpl.java?rev=681565&view=auto
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceContextImpl.java (added)
+++ ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/engine/InstanceContextImpl.java Thu Jul 31 17:29:41 2008
@@ -0,0 +1,1014 @@
+/*
+ * 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.ByteArrayOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Date;
+import java.util.List;
+
+import javax.wsdl.Operation;
+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.common.ProcessState;
+import org.apache.ode.bpel.dao.CorrelationSetDAO;
+import org.apache.ode.bpel.dao.CorrelatorDAO;
+import org.apache.ode.bpel.dao.MessageDAO;
+import org.apache.ode.bpel.dao.MessageExchangeDAO;
+import org.apache.ode.bpel.dao.PartnerLinkDAO;
+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.XmlDataDAO;
+import org.apache.ode.bpel.engine.rapi.CorrelationSet;
+import org.apache.ode.bpel.engine.rapi.FaultInfo;
+import org.apache.ode.bpel.engine.rapi.NoSuchOperationException;
+import org.apache.ode.bpel.engine.rapi.OdeRTInstance;
+import org.apache.ode.bpel.engine.rapi.OdeRTInstanceContext;
+import org.apache.ode.bpel.engine.rapi.PartnerLink;
+import org.apache.ode.bpel.engine.rapi.PartnerLinkModel;
+import org.apache.ode.bpel.engine.rapi.Selector;
+import org.apache.ode.bpel.engine.rapi.UninitializedPartnerEPR;
+import org.apache.ode.bpel.engine.rapi.UninitializedVariableException;
+import org.apache.ode.bpel.engine.rapi.Variable;
+import org.apache.ode.bpel.evt.CorrelationSetWriteEvent;
+import org.apache.ode.bpel.evt.ProcessCompletionEvent;
+import org.apache.ode.bpel.evt.ProcessInstanceEvent;
+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.ScopeEvent;
+import org.apache.ode.bpel.iapi.BpelEngineException;
+import org.apache.ode.bpel.iapi.ContextException;
+import org.apache.ode.bpel.iapi.EndpointReference;
+import org.apache.ode.bpel.iapi.InvocationStyle;
+import org.apache.ode.bpel.iapi.MessageExchange;
+import org.apache.ode.bpel.iapi.PartnerRoleChannel;
+import org.apache.ode.bpel.iapi.MessageExchange.AckType;
+import org.apache.ode.bpel.iapi.MessageExchange.FailureType;
+import org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern;
+import org.apache.ode.bpel.iapi.MessageExchange.Status;
+import org.apache.ode.utils.DOMUtils;
+import org.apache.ode.utils.GUID;
+import org.apache.ode.utils.Namespaces;
+import org.apache.ode.utils.ObjectPrinter;
+import org.apache.ode.utils.QNameUtils;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * 
+ * 
+ * @author Maciej Szefler
+ */
+class OdeRTInstanceContextImpl implements OdeRTInstanceContext {
+
+    private static final Log __log = LogFactory.getLog(OdeRTInstanceContextImpl.class);
+
+    /** Data-access object for process instance. */
+    private ProcessInstanceDAO _dao;
+
+    /** Process Instance ID */
+    private final Long _iid;
+
+    private MessageExchangeDAO _instantiatingMessageExchange;
+
+    private BpelInstanceWorker _instanceWorker;
+
+    private OdeProcess _bpelProcess;
+
+    private Contexts _contexts;
+
+    private boolean _forceFlush;
+
+    /** Process instance as represented by runtime. */
+    final OdeRTInstance _rti;
+
+    /** Five second maximum for continous execution. */
+    private long _maxReductionTimeMs = 2000000;
+
+
+    /**
+     * @param iworker
+     * @param instanceDAO
+     */
+    public OdeRTInstanceContextImpl(BpelInstanceWorker instanceWorker, ProcessInstanceDAO instanceDAO, OdeRTInstance rti) {
+        _instanceWorker = instanceWorker;
+        _bpelProcess = instanceWorker._process;
+        _contexts = instanceWorker._contexts;
+        _dao = instanceDAO;
+        _iid = instanceDAO.getInstanceId();
+        _rti = rti;
+        _rti.setContext(this);
+    }
+
+    /*
+    OdeRTInstanceContextImpl(BpelInstanceWorker instanceWorker, ProcessInstanceDAO dao) {
+        this(instanceWorker, dao, new ExecutionQueueImpl(null));
+
+        if (ProcessState.isFinished(dao.getState()))
+            throw new BpelEngineException("Invalid process state (process is finished)!!!");
+
+        // The following allows us to skip deserialization of the soup if our execution state in memory is the same
+        // as that in the database.
+
+        Object cachedState = instanceWorker.getCachedState(dao.getExecutionStateCounter());
+        if (cachedState != null) {
+            if (__log.isDebugEnabled())
+                __log.debug("CACHE HIT: Using cached state #" + dao.getExecutionStateCounter() + " to resume instance "
+                        + dao.getInstanceId());
+            _soup = (ExecutionQueueImpl) cachedState;
+            _soup.setReplacementMap(_bpelProcess.getReplacementMap());
+            _vpu.setContext(_soup);
+        } else {
+            if (__log.isDebugEnabled())
+                __log.debug("CACHE MISS: state #" + dao.getExecutionStateCounter() + " is stale; loading state to resume instance "
+                        + dao.getInstanceId() + " from database ");
+            byte[] daoState = dao.getExecutionState();
+            ByteArrayInputStream iis = new ByteArrayInputStream(daoState);
+            try {
+                _soup.read(iis);
+            } catch (Exception ex) {
+                throw new RuntimeException(ex);
+            }
+        }
+    }
+
+    OdeRTInstanceContextImpl(BpelInstanceWorker instanceWorker, ProcessInstanceDAO dao, ExecutionQueueImpl soup) {
+        _soup = soup;
+        _soup.setReplacementMap(_bpelProcess.getReplacementMap());
+        _vpu.setContext(_soup);
+        if (OdeProcess.__log.isDebugEnabled()) {
+            __log.debug("BpelRuntimeContextImpl created for instance " + _iid + ". INDEXED STATE=" + _soup.getIndex());
+        }
+    }
+    
+    */
+
+    public void executeCreateInstance(MessageExchangeDAO instantiatingMessageExchange) {
+        if (instantiatingMessageExchange == null)
+            throw new NullPointerException();
+        _instantiatingMessageExchange = instantiatingMessageExchange;
+        _rti.onCreateInstance(instantiatingMessageExchange.getMessageExchangeId());
+        execute();
+    }
+
+    public String toString() {
+        return "{OdeRTInstanceContextImpl PID=" + _bpelProcess.getPID() + ", IID=" + _iid + "}";
+    }
+
+    public Long getPid() {
+        return _iid;
+    }
+
+    public long genId() {
+        return _dao.genMonotonic();
+    }
+
+    /**
+     * @see OdeRTInstanceContext#isCorrelationInitialized(org.apache.ode.bpel.jrep.v2.CorrelationSetInstance)
+     */
+    public boolean isCorrelationInitialized(CorrelationSet correlationSet) {
+        ScopeDAO scopeDAO = _dao.getScope(correlationSet.getScopeId());
+        CorrelationSetDAO cs = scopeDAO.getCorrelationSet(correlationSet.getName());
+        return cs.getValue() != null;
+    }
+
+    /**
+     * @see OdeRTInstanceContext#isVariableInitialized(org.apache.ode.bpel.jrep.v2.VariableInstance)
+     */
+    public boolean isVariableInitialized(Variable var) {
+        ScopeDAO scopeDAO = _dao.getScope(var.getScopeId());
+        XmlDataDAO dataDAO = scopeDAO.getVariable(var.getName());
+        return !dataDAO.isNull();
+    }
+
+    public boolean isPartnerRoleEndpointInitialized(PartnerLink pLink) {
+        PartnerLinkDAO spl = fetchPartnerLinkDAO(pLink);
+
+        return spl.getPartnerEPR() != null || _bpelProcess.getInitialPartnerRoleEPR(pLink.getModel()) != null;
+    }
+
+    /**
+     * @see OdeRTInstanceContext#completedFault(org.apache.ode.bpel.jrep.v2.channels.FaultData)
+     */
+    public void completedFault(FaultInfo faultData) {
+        if (OdeProcess.__log.isDebugEnabled()) {
+            OdeProcess.__log.debug("ProcessImpl completed with fault '" + faultData.getFaultName() + "'");
+        }
+
+        _dao.setFault(faultData.getFaultName(), faultData.getExplanation(), faultData.getFaultLineNo(), faultData.getActivityId(),
+                faultData.getFaultMessage());
+
+        // send event
+        ProcessInstanceStateChangeEvent evt = new ProcessInstanceStateChangeEvent();
+        evt.setOldState(_dao.getState());
+        _dao.setState(ProcessState.STATE_COMPLETED_WITH_FAULT);
+        evt.setNewState(ProcessState.STATE_COMPLETED_WITH_FAULT);
+        sendEvent(evt);
+
+        sendEvent(new ProcessCompletionEvent(faultData.getFaultName()));
+        _dao.finishCompletion();
+
+    }
+
+    /**
+     * @see OdeRTInstanceContext#completedOk()
+     */
+    public void completedOk() {
+        if (OdeProcess.__log.isDebugEnabled()) {
+            OdeProcess.__log.debug("ProcessImpl " + _bpelProcess.getPID() + " completed OK.");
+        }
+
+        // send event
+        ProcessInstanceStateChangeEvent evt = new ProcessInstanceStateChangeEvent();
+        evt.setOldState(_dao.getState());
+        _dao.setState(ProcessState.STATE_COMPLETED_OK);
+        evt.setNewState(ProcessState.STATE_COMPLETED_OK);
+        sendEvent(evt);
+
+        sendEvent(new ProcessCompletionEvent(null));
+        _dao.finishCompletion();
+
+    }
+
+    /**
+     * @see OdeRTInstanceContext#createScopeInstance(Long, org.apache.ode.bpel.jrep.v2.OScope)
+     */
+    public Long createScopeInstance(Long parentScopeId, String name, int modelId) {
+        if (OdeProcess.__log.isTraceEnabled()) {
+            OdeProcess.__log.trace(ObjectPrinter.stringifyMethodEnter("createScopeInstance", new Object[] { "parentScopeId",
+                    parentScopeId, "name", name }));
+        }
+
+        ScopeDAO parent = null;
+
+        if (parentScopeId != null) {
+            parent = _dao.getScope(parentScopeId);
+        }
+
+        ScopeDAO scopeDao = _dao.createScope(parent, name, modelId);
+        return scopeDao.getScopeInstanceId();
+    }
+
+    public void initializePartnerLinks(Long parentScopeId, Collection<? extends PartnerLinkModel> partnerLinks) {
+
+        if (OdeProcess.__log.isTraceEnabled()) {
+            OdeProcess.__log.trace(ObjectPrinter.stringifyMethodEnter("initializeEndpointReferences", new Object[] {
+                    "parentScopeId", parentScopeId, "partnerLinks", partnerLinks }));
+        }
+
+        ScopeDAO parent = _dao.getScope(parentScopeId);
+        for (PartnerLinkModel partnerLink : partnerLinks) {
+            PartnerLinkDAO pdao = parent.createPartnerLink(partnerLink.getId(), partnerLink.getName(), partnerLink.getMyRoleName(),
+                    partnerLink.getPartnerRoleName());
+            // If there is a myrole on the link, initialize the session id so it
+            // is always
+            // available for opaque correlations. The myrole session id should
+            // never be changed.
+            if (partnerLink.hasMyRole())
+                pdao.setMySessionId(new GUID().toString());
+        }
+    }
+
+    public void select(String selectId, Date timeout, org.apache.ode.bpel.engine.rapi.Selector[] selectors) {
+        if (OdeProcess.__log.isTraceEnabled())
+            OdeProcess.__log.trace(ObjectPrinter.stringifyMethodEnter("select", new Object[] { "selectId",
+                    selectId, "timeout", timeout, "selectors", selectors }));
+
+
+        ProcessDAO processDao = _dao.getProcess();
+
+        // check if this is first pick
+        if (_dao.getState() == ProcessState.STATE_NEW) {            // send event
+            ProcessInstanceStateChangeEvent evt = new ProcessInstanceStateChangeEvent();
+            evt.setOldState(ProcessState.STATE_NEW);
+            _dao.setState(ProcessState.STATE_READY);
+            evt.setNewState(ProcessState.STATE_READY);
+            sendEvent(evt);
+        }
+
+        List<CorrelatorDAO> correlators = new ArrayList<CorrelatorDAO>(selectors.length);
+        for (org.apache.ode.bpel.engine.rapi.Selector selector : selectors) {
+            String correlatorId = OdeProcess.genCorrelatorId(selector.getPartnerLink().getModel(), selector.getOperation());
+            if (OdeProcess.__log.isDebugEnabled()) {
+                OdeProcess.__log.debug("SELECT: " + selectId + ": USING CORRELATOR " + correlatorId);
+            }
+            correlators.add(processDao.getCorrelator(correlatorId));
+        }
+
+
+        // TODO - ODE-58
+
+        // First check if we match to a new instance.
+        if (_instantiatingMessageExchange != null && _dao.getState() == ProcessState.STATE_READY) {
+            if (OdeProcess.__log.isDebugEnabled()) {
+                OdeProcess.__log.debug("SELECT: " + selectId + ": CHECKING for NEW INSTANCE match");
+            }
+            for (int i = 0; i < correlators.size(); ++i) {
+                CorrelatorDAO ci = correlators.get(i);
+                if (ci.equals(_dao.getInstantiatingCorrelator())) {
+                    injectMyRoleMessageExchange(selectId, i, _instantiatingMessageExchange);
+                    if (OdeProcess.__log.isDebugEnabled()) {
+                        OdeProcess.__log.debug("SELECT: " + selectId + ": FOUND match for NEW instance mexRef="
+                                + _instantiatingMessageExchange);
+                    }
+                    return;
+                }
+            }
+        }
+
+        if (timeout != null) {
+            registerTimer(selectId, timeout);
+            if (OdeProcess.__log.isDebugEnabled()) {
+                OdeProcess.__log.debug("SELECT: " + selectId + "REGISTERED TIMEOUT for " + timeout);
+            }
+        }
+
+        for (int i = 0; i < selectors.length; ++i) {
+            CorrelatorDAO correlator = correlators.get(i);
+            Selector selector = selectors[i];
+
+            correlator.addRoute(selectId, _dao, i, selector.getCorrelationKey());
+            scheduleCorrelatorMatcher(correlator.getCorrelatorId(), selector.getCorrelationKey());
+
+            if (OdeProcess.__log.isDebugEnabled()) {
+                OdeProcess.__log.debug("SELECT: " + selectId + ": ADDED ROUTE " + correlator.getCorrelatorId() + ": "
+                        + selector.getCorrelationKey() + " --> " + _dao.getInstanceId());
+            }
+        }
+
+    }
+
+    /**
+     * @see OdeRTInstanceContext#readCorrelation(org.apache.ode.bpel.jrep.v2.CorrelationSetInstance)
+     */
+    public CorrelationKey readCorrelation(CorrelationSet cset) {
+        ScopeDAO scopeDAO = _dao.getScope(cset.getScopeId());
+        CorrelationSetDAO cs = scopeDAO.getCorrelationSet(cset.getName());
+        return cs.getValue();
+    }
+
+    public Node fetchVariableData(Variable variable, boolean forWriting) {
+        ScopeDAO scopeDAO = _dao.getScope(variable.getScopeId());
+        XmlDataDAO dataDAO = scopeDAO.getVariable(variable.getName());
+
+        if (dataDAO.isNull()) {
+            return null;
+        }
+
+        return dataDAO.get();
+
+    }
+
+    public Element fetchPartnerRoleEndpointReferenceData(PartnerLink pLink) {
+        PartnerLinkDAO pl = fetchPartnerLinkDAO(pLink);
+        Element epr = pl.getPartnerEPR();
+
+        if (epr == null) {
+            EndpointReference e = _bpelProcess.getInitialPartnerRoleEPR(pLink.getModel());
+            if (e != null)
+                epr = e.toXML().getDocumentElement();
+        }
+
+        return epr;
+    }
+
+    public Element fetchMyRoleEndpointReferenceData(PartnerLink pLink) {
+        return _bpelProcess.getInitialMyRoleEPR(pLink.getModel()).toXML().getDocumentElement();
+    }
+
+    private PartnerLinkDAO fetchPartnerLinkDAO(PartnerLink pLink) {
+        ScopeDAO scopeDAO = _dao.getScope(pLink.getScopeId());
+        return scopeDAO.getPartnerLink(pLink.getModel().getId());
+    }
+
+    public Node initializeVariable(Variable variable, Node initData) {
+        ScopeDAO scopeDAO = _dao.getScope(variable.getScopeId());
+        XmlDataDAO dataDAO = scopeDAO.getVariable(variable.getName());
+
+        dataDAO.set(initData);
+        return dataDAO.get();
+    }
+
+    public void writeEndpointReference(PartnerLink partnerLink, Element data) {
+        if (__log.isDebugEnabled()) {
+            __log.debug("Writing endpoint reference " + partnerLink.getName() + " with value "
+                    + DOMUtils.domToString(data));
+        }
+
+        PartnerLinkDAO eprDAO = fetchPartnerLinkDAO(partnerLink);
+        eprDAO.setPartnerEPR(data);
+    }
+
+    public String fetchEndpointSessionId(PartnerLink pLink, boolean isMyEPR) {
+        PartnerLinkDAO dao = fetchPartnerLinkDAO(pLink);
+        return isMyEPR ? dao.getMySessionId() : dao.getPartnerSessionId();
+    }
+
+    public Node convertEndpointReference(Element sourceNode, Node targetNode) {
+        QName nodeQName;
+        if (targetNode.getNodeType() == Node.TEXT_NODE) {
+            nodeQName = new QName(Namespaces.XML_SCHEMA, "string");
+        } else {
+            // We have an element
+            nodeQName = new QName(targetNode.getNamespaceURI(), targetNode.getLocalName());
+        }
+        return _contexts.eprContext.convertEndpoint(nodeQName, sourceNode).toXML();
+    }
+
+    public void commitChanges(Variable variable, Node changes) {
+        ScopeDAO scopeDAO = _dao.getScope(variable.getScopeId());
+        XmlDataDAO dataDAO = scopeDAO.getVariable(variable.getName());
+        dataDAO.set(changes);
+    }
+
+    public void reply(String mexId, final PartnerLink plink, final String opName, Element msg, QName fault) throws NoSuchOperationException {
+        
+        // prepare event
+        ProcessMessageExchangeEvent evt = new ProcessMessageExchangeEvent();
+        evt.setMexId(mexId);
+        evt.setOperation(opName);
+        evt.setPortType(plink.getModel().getMyRolePortType().getQName());
+
+        // Get the "my-role" mex from the DB.
+        MessageExchangeDAO myrolemex = _dao.getConnection().getMessageExchange(mexId);
+
+        Operation operation = plink.getModel().getMyRoleOperation(opName);
+        if (operation == null || operation.getOutput() == null) {
+            throw new NoSuchOperationException();
+        }
+
+        // TODO what if msg==null? i.e. for a reply-with-fault.
+
+        MessageDAO message = myrolemex.createMessage(operation.getOutput().getMessage().getQName());
+        message.setData(msg);
+
+        myrolemex.setResponse(message);
+
+        AckType ackType;
+        if (fault != null) {
+            ackType = AckType.FAULT;
+            myrolemex.setFault(fault);
+            evt.setAspect(ProcessMessageExchangeEvent.PROCESS_FAULT);
+        } else {
+            ackType = AckType.RESPONSE;
+            evt.setAspect(ProcessMessageExchangeEvent.PROCESS_OUTPUT);
+        }
+
+        Status previousStatus = myrolemex.getStatus();
+        myrolemex.setStatus(Status.ACK);
+        myrolemex.setAckType(ackType);
+        _bpelProcess.onMyRoleMexAck(myrolemex, previousStatus);
+        sendEvent(evt);
+    }
+
+    public void writeCorrelation(CorrelationSet cset, QName[] propNames, CorrelationKey correlation) {
+        ScopeDAO scopeDAO = _dao.getScope(cset.getScopeId());
+        CorrelationSetDAO cs = scopeDAO.getCorrelationSet(cset.getName());
+        cs.setValue(propNames, correlation);
+
+        CorrelationSetWriteEvent cswe = new CorrelationSetWriteEvent(cset.getName(), correlation);
+        cswe.setScopeId(cset.getScopeId());
+        sendEvent(cswe);
+
+    }
+
+        /**
+     * @see OdeRTInstanceContext#terminate()
+     */
+    public void terminate() {
+        // send event
+        ProcessInstanceStateChangeEvent evt = new ProcessInstanceStateChangeEvent();
+        evt.setOldState(_dao.getState());
+        _dao.setState(ProcessState.STATE_TERMINATED);
+        evt.setNewState(ProcessState.STATE_TERMINATED);
+        sendEvent(evt);
+        sendEvent(new ProcessTerminationEvent());
+
+        _dao.finishCompletion();
+    }
+
+    public void registerTimer(String timerId, Date timeToFire) {
+        WorkEvent we = new WorkEvent();
+        we.setIID(_dao.getInstanceId());
+        we.setProcessId(_bpelProcess.getPID());
+        we.setChannel(timerId);
+        we.setType(WorkEvent.Type.TIMER);
+        _bpelProcess.scheduleWorkEvent(we, timeToFire);
+    }
+
+    public boolean cancelSelect(String selectId) {
+        _dao.getProcess().removeRoutes(selectId, _dao);
+        return true;
+        
+    }
+    
+    public boolean cancelTimer(String timerId) {
+        // No way to cancel these now.
+        return true;        
+    }
+
+    private void scheduleCorrelatorMatcher(String correlatorId, CorrelationKey key) {
+
+        WorkEvent we = new WorkEvent();
+        we.setIID(_dao.getInstanceId());
+        we.setProcessId(_bpelProcess.getPID());
+        we.setType(WorkEvent.Type.MATCHER);
+        we.setCorrelatorId(correlatorId);
+        we.setCorrelationKey(key);
+        _bpelProcess.scheduleWorkEvent(we, null);
+    }
+
+    public String invoke(String requestId, PartnerLink partnerLink, Operation operation, Element outgoingMessage) throws UninitializedPartnerEPR {
+
+        // TODO: move a lot of this into BpelProcess
+
+        // TODO: think we should move the dao creation into bpelprocess --mbs
+        MessageExchangeDAO mexDao = _dao.getConnection().createMessageExchange(new GUID().toString(),
+                MessageExchangeDAO.DIR_BPEL_INVOKES_PARTNERROLE);
+        mexDao.setStatus(MessageExchange.Status.REQ);
+        mexDao.setOperation(operation.getName());
+        mexDao.setPortType(partnerLink.getModel().getPartnerRolePortType().getQName());
+        mexDao.setPartnerLinkModelId(partnerLink.getModel().getId());
+
+        PartnerRoleChannel partnerRoleChannel = _bpelProcess.getPartnerRoleChannel(partnerLink.getModel());
+        PartnerLinkDAO plinkDAO = fetchPartnerLinkDAO(partnerLink);
+
+        Element partnerEPR = plinkDAO.getPartnerEPR();
+
+        EndpointReference partnerEpr;
+
+        if (partnerEPR == null) {
+            partnerEpr = partnerRoleChannel.getInitialEndpointReference();
+            // In this case, the partner link has not been initialized.
+            if (partnerEpr == null)
+                throw new UninitializedPartnerEPR();
+        } else {
+            partnerEpr = _contexts.eprContext.resolveEndpointReference(partnerEPR);
+        }
+
+        mexDao.setEPR(partnerEpr.toXML().getDocumentElement());
+        mexDao.setPartnerLink(plinkDAO);
+        mexDao.setProcess(_dao.getProcess());
+        mexDao.setInstance(_dao);
+        mexDao.setPattern((operation.getOutput() != null ? MessageExchangePattern.REQUEST_RESPONSE
+                : MessageExchangePattern.REQUEST_ONLY));
+        mexDao.setChannel(requestId);
+
+        MessageDAO message = mexDao.createMessage(operation.getInput().getMessage().getQName());
+        mexDao.setRequest(message);
+        mexDao.setTimeout(30000);
+        message.setData(outgoingMessage);
+        message.setType(operation.getInput().getMessage().getQName());
+
+        // prepare event
+        ProcessMessageExchangeEvent evt = new ProcessMessageExchangeEvent();
+        evt.setOperation(operation.getName());
+        evt.setPortType(partnerLink.getModel().getPartnerRolePortType().getQName());
+        evt.setAspect(ProcessMessageExchangeEvent.PARTNER_INPUT);
+        evt.setMexId(mexDao.getMessageExchangeId());
+        sendEvent(evt);
+
+        if (__log.isDebugEnabled()) {
+            __log.debug("INVOKING PARTNER: partnerLink=" + partnerLink + ", op=" + operation.getName() + " requestId=" + requestId
+                    + ")");
+        }
+
+        _bpelProcess.invokePartner(mexDao);
+
+        // In case a response/fault was available right away, which will happen for BLOCKING/TRANSACTED invocations,
+        // we need to inject a message on the response channel, so that the process continues.
+        switch (mexDao.getStatus()) {
+        case ACK:
+            injectPartnerResponse(mexDao.getMessageExchangeId(), mexDao.getChannel());
+            break;
+        case ASYNC:
+            // we'll have to wait for the response.
+            break;
+        default:
+            throw new AssertionError("Unexpected MEX status: " + mexDao.getStatus());
+        }
+
+        return mexDao.getMessageExchangeId();
+
+    }
+
+    void execute() {
+        if (!_contexts.isTransacted())
+            throw new BpelEngineException("MUST RUN IN TRANSACTION!");
+        
+        long maxTime = System.currentTimeMillis() + _maxReductionTimeMs;
+
+        // Execute the process state reductions
+        boolean canReduce = true;
+        while (ProcessState.canExecute(_dao.getState()) && System.currentTimeMillis() < maxTime && canReduce && !_forceFlush) {
+            canReduce = _rti.execute();
+        }
+
+        _dao.setLastActiveTime(new Date());
+        if (!ProcessState.isFinished(_dao.getState())) {
+            saveState();
+
+            if (ProcessState.canExecute(_dao.getState()) && canReduce) {
+                // Max time exceeded (possibly an infinite loop).
+                if (__log.isDebugEnabled())
+                    __log.debug("MaxTime exceeded for instance # " + _iid);
+
+                try {
+                    WorkEvent we = new WorkEvent();
+                    we.setIID(_iid);
+                    we.setProcessId(_bpelProcess.getPID());
+                    we.setType(WorkEvent.Type.RESUME);
+                    _contexts.scheduler.schedulePersistedJob(we.getDetail(), new Date());
+                } catch (ContextException e) {
+                    __log.error("Failed to schedule resume task.", e);
+                    throw new BpelEngineException(e);
+                }
+            }
+        }
+    }
+
+    private void saveState() {
+        ByteArrayOutputStream bos = new ByteArrayOutputStream();
+        Object cachedState;
+        try {
+            cachedState = _rti.saveState(bos);
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+        int newcount = _dao.getExecutionStateCounter() + 1;
+        _dao.setExecutionStateCounter(newcount);
+        _dao.setExecutionState(bos.toByteArray());
+        _instanceWorker.setCachedState(newcount, cachedState);
+
+        __log.debug("CACHE SAVE: #" + newcount + " for instance " + _dao.getInstanceId());
+    }
+
+    void injectMyRoleMessageExchange(final String selectId, final int idx, MessageExchangeDAO mexdao) {
+        // if we have a message match, this instance should be marked
+        // active if it isn't already
+        if (_dao.getState() == ProcessState.STATE_READY) {
+            if (OdeProcess.__log.isDebugEnabled()) {
+                OdeProcess.__log.debug("INPUTMSGMATCH: Changing process instance state from ready to active");
+            }
+
+            _dao.setState(ProcessState.STATE_ACTIVE);
+
+            // send event
+            ProcessInstanceStateChangeEvent evt = new ProcessInstanceStateChangeEvent();
+            evt.setOldState(ProcessState.STATE_READY);
+            evt.setNewState(ProcessState.STATE_ACTIVE);
+            sendEvent(evt);
+        }
+        
+        _rti.onSelectEvent(selectId, mexdao.getMessageExchangeId(), idx);
+
+    }
+
+    boolean injectTimerEvent(final String timerResponseChannel) {
+        // In case this is a pick event, we remove routes,
+        // and cancel the outstanding requests.
+        _dao.getProcess().removeRoutes(timerResponseChannel, _dao);
+        
+        // Ignore timer events after the process is finished.
+        if (ProcessState.isFinished(_dao.getState())) {
+            return false;
+        }
+        
+        _rti.onTimerEvent(timerResponseChannel);
+        return true;
+    }
+
+    
+    void injectPartnerResponse(final String mexid, final String invokeId) {
+        if (invokeId == null)
+            throw new NullPointerException("Null responseChannelId");
+        if (mexid == null)
+            throw new NullPointerException("Null mexId");
+
+        if (OdeProcess.__log.isDebugEnabled()) {
+            __log.debug("<invoke> response for mexid " + mexid + " and channel " + invokeId);
+        }
+        
+        MessageExchangeDAO mex = _dao.getConnection().getMessageExchange(mexid);
+
+        ProcessMessageExchangeEvent evt = new ProcessMessageExchangeEvent();
+        evt.setPortType(mex.getPortType());
+        evt.setMexId(mexid);
+        evt.setOperation(mex.getOperation());
+
+        MessageExchange.Status status = mex.getStatus();
+
+        OdeRTInstance.InvokeResponseType  irt;
+        switch (mex.getAckType()) {
+        case FAULT:
+            irt = OdeRTInstance.InvokeResponseType.FAULT; 
+            evt.setAspect(ProcessMessageExchangeEvent.PARTNER_FAULT);
+            break;
+        case RESPONSE:
+            irt = OdeRTInstance.InvokeResponseType.REPLY; 
+            evt.setAspect(ProcessMessageExchangeEvent.PARTNER_OUTPUT);
+            break;
+        case FAILURE:
+            irt = OdeRTInstance.InvokeResponseType.FAILURE; 
+            evt.setAspect(ProcessMessageExchangeEvent.PARTNER_FAILURE);
+            break;
+        default:
+            String msg = "Invalid response state for mex " + mexid + ": " + status; 
+            __log.error(msg);
+            return;
+        }
+        sendEvent(evt);
+
+        _rti.onInvokeResponse(invokeId, irt, mexid);
+    }
+
+    /**
+     * @see OdeRTInstanceContext#sendEvent(org.apache.ode.bpel.evt.ProcessInstanceEvent)
+     */
+    public void sendEvent(ProcessInstanceEvent event) {
+        // fill in missing pieces
+        event.setProcessId(_dao.getProcess().getProcessId());
+        event.setProcessName(_dao.getProcess().getType());
+        event.setProcessInstanceId(_dao.getInstanceId());
+        _bpelProcess._debugger.onEvent(event);
+
+        // filter events
+        List<String> scopeNames = null;
+        if (event instanceof ScopeEvent) {
+            scopeNames = ((ScopeEvent) event).getParentScopesNames();
+        }
+
+        if (_bpelProcess._pconf.isEventEnabled(scopeNames, event.getType())) {
+            // notify the listeners
+            _bpelProcess._server.fireEvent(event);
+
+            // saving
+            _bpelProcess.saveEvent(event, _dao);
+        }
+    }
+
+   
+
+    public Element getPartnerResponse(String mexId) {
+        return _getPartnerResponse(mexId).getData();
+    }
+
+    public Element getMyRequest(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        if (dao == null) {
+            // this should not happen....
+            String msg = "Engine requested non-existent message exchange: " + mexId;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+
+        if (dao.getDirection() != MessageExchangeDAO.DIR_PARTNER_INVOKES_MYROLE) {
+            // this should not happen....
+            String msg = "Engine requested my-role request for a partner-role mex: " + mexId;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+
+        MessageDAO request = dao.getRequest();
+        if (request == null) {
+            // this also should not happen
+            String msg = "Engine requested request for message exchange that did not have one: " + mexId;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+
+        return request.getData();
+
+    }
+
+    public QName getPartnerFault(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        if (dao == null) {
+            // this should not happen....
+            String msg = "Engine requested non-existent message exchange: " + mexId;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+        return dao.getFault();
+    }
+
+    public QName getPartnerResponseType(String mexId) {
+        return _getPartnerResponse(mexId).getType();
+    }
+
+    public String getPartnerFaultExplanation(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        return dao != null ? dao.getFaultExplanation() : null;
+    }
+
+    private MessageDAO _getPartnerResponse(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        if (dao == null) {
+            // this should not happen....
+            String msg = "Engine requested non-existent message exchange: " + mexId;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+        if (dao.getDirection() != MessageExchangeDAO.DIR_BPEL_INVOKES_PARTNERROLE) {
+            // this should not happen....
+            String msg = "Engine requested partner response for a my-role mex: " + mexId;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+
+        MessageDAO response;
+        MessageExchange.Status status = dao.getStatus();
+        if (status == Status.ACK) {
+            response = dao.getResponse();
+            if (response == null) {
+                // this also should not happen
+                String msg = "Engine requested response for message exchange that did not have one: " + mexId;
+                __log.fatal(msg);
+                throw new BpelEngineException(msg);
+            }
+        } else {
+            // We should not be in any other state when requesting this.
+            String msg = "Engine requested response while the message exchange " + mexId + " was in the state " + status;
+            __log.fatal(msg);
+            throw new BpelEngineException(msg);
+        }
+        return response;
+    }
+
+    public void releasePartnerMex(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        dao.release();
+    }
+
+    public Element getSourceEPR(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        String epr = dao.getProperty(MessageExchange.PROPERTY_SEP_PARTNERROLE_EPR);
+        if (epr == null)
+            return null;
+        try {
+            Element eepr = DOMUtils.stringToDOM(epr);
+            return eepr;
+        } catch (Exception ex) {
+            __log.error("Invalid value for SEP property " + MessageExchange.PROPERTY_SEP_PARTNERROLE_EPR + ": " + epr);
+        }
+
+        return null;
+    }
+
+    public String getSourceSessionId(String mexId) {
+        MessageExchangeDAO dao = _dao.getConnection().getMessageExchange(mexId);
+        return dao.getProperty(MessageExchange.PROPERTY_SEP_PARTNERROLE_SESSIONID);
+    }
+
+    public void registerActivityForRecovery(String channel, long activityId, String reason, Date dateTime,
+            Element details, String[] actions, int retries) {
+        if (reason == null)
+            reason = "Unspecified";
+        if (dateTime == null)
+            dateTime = new Date();
+        __log.info("ActivityRecovery: Registering activity " + activityId + ", failure reason: " + reason + " on channel "
+                + channel);
+        _dao.createActivityRecovery(channel, (int) activityId, reason, dateTime, details, actions, retries);
+    }
+
+    public void unregisterActivityForRecovery(String channel) {
+        _dao.deleteActivityRecovery(channel);
+    }
+
+
+    /**
+     * Fetch the session-identifier for the partner link from the database.
+     */
+    public String fetchMySessionId(PartnerLink pLink) {
+        String sessionId = fetchPartnerLinkDAO(pLink).getMySessionId();
+        assert sessionId != null : "Session ID should always be set!";
+        return sessionId;
+    }
+
+    public String fetchPartnersSessionId(PartnerLink pLink) {
+        return fetchPartnerLinkDAO(pLink).getPartnerSessionId();
+    }
+
+    public void initializePartnersSessionId(PartnerLink pLink, String session) {
+        if (__log.isDebugEnabled())
+            __log.debug("initializing partner " + pLink + "  sessionId to " + session);
+        fetchPartnerLinkDAO(pLink).setPartnerSessionId(session);
+
+    }
+
+    public void forceFlush() {
+        _forceFlush = true;
+    }
+
+  
+    /*
+     * Note, this method simply reads properties from the database and knows nothing about property aliases and the like. 
+     * (non-Javadoc)
+     * @see org.apache.ode.bpel.engine.rapi.VariableContext#readVariableProperty(org.apache.ode.bpel.engine.rapi.Variable, javax.xml.namespace.QName)
+     */
+    public String readVariableProperty(Variable variable, QName property) throws UninitializedVariableException {
+
+        ScopeDAO scopeDAO = _dao.getScope(variable.getScopeId());
+        XmlDataDAO dataDAO = scopeDAO.getVariable(variable.getName());
+
+        if (dataDAO.isNull()) {
+            throw new UninitializedVariableException();
+        }
+
+        String val = dataDAO.getProperty(QNameUtils.fromQName(property));
+        
+        if (OdeProcess.__log.isTraceEnabled()) {
+            OdeProcess.__log.trace("readVariableProperty(variable=" + variable + ", property=" + property + ") = " + val);
+            
+        }
+
+        return val;
+    }
+
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.ode.bpel.engine.rapi.VariableContext#writeVariableProperty(org.apache.ode.bpel.engine.rapi.Variable,
+     *      javax.xml.namespace.QName, java.lang.String)
+     */
+    public void writeVariableProperty(Variable variable, QName property, String value) throws UninitializedVariableException {
+
+        ScopeDAO scopeDAO = _dao.getScope(variable.getScopeId());
+        XmlDataDAO dataDAO = scopeDAO.getVariable(variable.getName());
+
+        if (dataDAO.isNull()) {
+            throw new UninitializedVariableException();
+        }
+
+        dataDAO.setProperty(QNameUtils.fromQName(property), value);
+        
+        if (OdeProcess.__log.isTraceEnabled()) {
+            OdeProcess.__log.trace("writeVariableProperty(variable=" + variable + ", property=" + property + ") = " + value);
+            
+        }
+
+    }
+
+    /**
+     * Recover an activity. Called from the Process/Instance management API. Not exposed to runtime. 
+     * @param channel
+     * @param activityId
+     * @param action
+     * @param fault
+     */
+    void recoverActivity(final String channel, final long activityId, final String action, final FaultInfo fault) {
+        _rti.recoverActivity(channel, activityId, action, fault);
+        // _dao.deleteActivityRecovery(channel);
+        execute();
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.ode.bpel.engine.rapi.OdeRTInstanceContext#noreply(java.lang.String, org.apache.ode.bpel.engine.rapi.FaultInfo)
+     */
+    public void noreply(String mexId, FaultInfo optionalFaultData) {
+        MessageExchangeDAO mexDao = _dao.getConnection().getMessageExchange(mexId);
+        if (mexDao != null) {
+            Status status = mexDao.getStatus();
+            InvocationStyle istyle = mexDao.getInvocationStyle();
+            if (mexDao.getPattern() == MessageExchangePattern.REQUEST_ONLY) {
+                mexDao.setAckType(AckType.ONEWAY);
+                mexDao.setStatus(Status.COMPLETED);
+                return;
+            }
+
+            mexDao.setAckType(AckType.FAILURE);
+            mexDao.setFailureType(FailureType.NO_RESPONSE);
+            if (optionalFaultData != null) {
+                mexDao.setFaultExplanation(optionalFaultData.toString());
+            }
+            mexDao.setFaultExplanation("Process did not respond.");
+            mexDao.setStatus(Status.ACK);
+            _bpelProcess.onMyRoleMexAck(mexDao, status);
+        }
+    }
+
+
+}

Modified: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/ConfigurationException.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/ConfigurationException.java?rev=681565&r1=681564&r2=681565&view=diff
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/ConfigurationException.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/ConfigurationException.java Thu Jul 31 17:29:41 2008
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ode.bpel.explang;
+package org.apache.ode.bpel.rtrep.common;
 
 /**
  * Exception indicating thrown from the

Added: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/Constants.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/Constants.java?rev=681565&view=auto
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/Constants.java (added)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/Constants.java Thu Jul 31 17:29:41 2008
@@ -0,0 +1,43 @@
+package org.apache.ode.bpel.rtrep.common;
+
+import org.apache.ode.utils.Namespaces;
+
+public class Constants {
+
+    /**
+     * Extension function bpws:getVariableData('variableName', 'partName'?,
+     * 'locationPath'?)
+     */
+    public static final String EXT_FUNCTION_GETVARIABLEDATA = "getVariableData";
+
+    /**
+     * Extension function
+     * bpws:getVariableProperty('variableName','propertyName')
+     */
+    public static final String EXT_FUNCTION_GETVARIABLEPROPRTY = "getVariableProperty";
+
+    /**
+     * Extension function bpws:getLinkStatus('getLinkName')
+     */
+    public static final String EXT_FUNCTION_GETLINKSTATUS = "getLinkStatus";
+
+    /**
+     * Extension function bpws:getLinkStatus('getLinkName')
+     */
+    public static final String EXT_FUNCTION_DOXSLTRANSFORM = "doXslTransform";
+
+    /**
+     * Non standard extension function ode:splitToElements(sourceText, 'separator' 'targetLocalName', 'targetNS'?)
+     */
+    public static final String NON_STDRD_FUNCTION_SPLITTOELEMENTS = "splitToElements";
+    public static final String NON_STDRD_FUNCTION_COMBINE_URL = "combineUrl";
+    public static final String NON_STDRD_FUNCTION_COMPOSE_URL = "composeUrl";
+    public static final String NON_STDRD_FUNCTION_EXPAND_TEMPLATE = "expandTemplate";
+    public static final String NON_STDRD_FUNCTION_DOM_TO_STRING= "domToString";
+
+
+    public static boolean isBpelNamespace(String uri){
+        return Namespaces.WS_BPEL_20_NS.equals(uri) || Namespaces.WSBPEL2_0_FINAL_EXEC.equals(uri)
+                || Namespaces.BPEL11_NS.equals(uri);
+    }
+}

Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java (from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractAsyncExtensionOperation.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java&p1=ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractAsyncExtensionOperation.java&r1=680846&r2=681565&rev=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractAsyncExtensionOperation.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractAsyncExtensionOperation.java Thu Jul 31 17:29:41 2008
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ode.bpel.runtime.extension;
+package org.apache.ode.bpel.rtrep.common.extension;
 
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.compiler.api.CompilationException;

Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java (from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractExtensionBundle.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java&p1=ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractExtensionBundle.java&r1=680846&r2=681565&rev=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractExtensionBundle.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractExtensionBundle.java Thu Jul 31 17:29:41 2008
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ode.bpel.runtime.extension;
+package org.apache.ode.bpel.rtrep.common.extension;
 
 import java.util.Collections;
 import java.util.HashMap;

Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java (from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractSyncExtensionOperation.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java&p1=ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractSyncExtensionOperation.java&r1=680846&r2=681565&rev=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/AbstractSyncExtensionOperation.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/AbstractSyncExtensionOperation.java Thu Jul 31 17:29:41 2008
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ode.bpel.runtime.extension;
+package org.apache.ode.bpel.rtrep.common.extension;
 
 import org.apache.ode.bpel.common.FaultException;
 import org.apache.ode.bpel.compiler.api.CompilationException;

Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java (from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionContext.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java&p1=ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionContext.java&r1=680846&r2=681565&rev=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionContext.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionContext.java Thu Jul 31 17:29:41 2008
@@ -16,17 +16,15 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ode.bpel.runtime.extension;
+package org.apache.ode.bpel.rtrep.common.extension;
 
 import java.util.Map;
 
 import org.apache.ode.bpel.common.FaultException;
-import org.apache.ode.bpel.o.OActivity;
-import org.apache.ode.bpel.o.OLink;
-import org.apache.ode.bpel.o.OProcess;
-import org.apache.ode.bpel.o.OScope;
-import org.apache.ode.bpel.runtime.BpelRuntimeContext;
 import org.apache.ode.bpel.evar.ExternalVariableModuleException;
+import org.apache.ode.bpel.rtrep.v2.OScope;
+import org.apache.ode.bpel.rtrep.v2.OProcess;
+import org.apache.ode.bpel.rtrep.v2.OActivity;
 import org.w3c.dom.Node;
 
 
@@ -120,12 +118,4 @@
      */
     OActivity getOActivity();
     
-    BpelRuntimeContext getBpelRuntimeContext();
-    
-   
-    //ScopeFrame getScopeFrame();
-    void complete();
-    
-    void completeWithFault(Throwable t);
-    void completeWithFault(FaultException fault);
 }

Copied: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionOperation.java (from r680846, ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionOperation.java)
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionOperation.java?p2=ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionOperation.java&p1=ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionOperation.java&r1=680846&r2=681565&rev=681565&view=diff
==============================================================================
--- ode/branches/rtver/bpel-runtime/src/main/java/org/apache/ode/bpel/runtime/extension/ExtensionOperation.java (original)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/common/extension/ExtensionOperation.java Thu Jul 31 17:29:41 2008
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.ode.bpel.runtime.extension;
+package org.apache.ode.bpel.rtrep.common.extension;
 
 import org.apache.ode.bpel.common.FaultException;
 import org.w3c.dom.Element;

Added: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSet.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSet.java?rev=681565&view=auto
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSet.java (added)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSet.java Thu Jul 31 17:29:41 2008
@@ -0,0 +1,6 @@
+package org.apache.ode.bpel.rtrep.rapi;
+
+public interface CorrelationSet extends org.apache.ode.bpel.rtrep.rapi.ScopedObject {
+
+	String getName();
+}

Added: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSetModel.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSetModel.java?rev=681565&view=auto
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSetModel.java (added)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/CorrelationSetModel.java Thu Jul 31 17:29:41 2008
@@ -0,0 +1,11 @@
+package org.apache.ode.bpel.rtrep.rapi;
+
+import javax.xml.namespace.QName;
+import java.util.Set;
+
+public interface CorrelationSetModel {
+
+    int getId();
+
+    Set<PropertyAliasModel> getAliases(QName messageType);
+}

Added: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/FaultInfo.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/FaultInfo.java?rev=681565&view=auto
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/FaultInfo.java (added)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/FaultInfo.java Thu Jul 31 17:29:41 2008
@@ -0,0 +1,19 @@
+package org.apache.ode.bpel.rtrep.rapi;
+
+import javax.xml.namespace.QName;
+
+import org.w3c.dom.Element;
+
+public interface FaultInfo {
+
+	QName getFaultName();
+
+	String getExplanation();
+
+	int getFaultLineNo();
+
+	int getActivityId();
+
+	Element getFaultMessage();
+
+}

Added: ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/IOContext.java
URL: http://svn.apache.org/viewvc/ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/IOContext.java?rev=681565&view=auto
==============================================================================
--- ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/IOContext.java (added)
+++ ode/branches/rtver/runtime-repo/src/main/java/org/apache/ode/bpel/rtrep/rapi/IOContext.java Thu Jul 31 17:29:41 2008
@@ -0,0 +1,122 @@
+package org.apache.ode.bpel.rtrep.rapi;
+
+import java.util.Date;
+
+import javax.wsdl.Operation;
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.common.FaultException;
+import org.w3c.dom.Element;
+
+public interface IOContext {
+
+    /**
+     * Non-deterministic "select" (used to implement receive/pick) and the like. Calling this method will request that the engine
+     * wait for the first message on a certain set of input ports.
+     * 
+     * @param selectId
+     *            client specified identifier for this operation.
+     * @param timeout
+     *            how long to wait for a response.
+     * @param selectors
+     *            the criteria for messages to receive
+     */
+    void select(String selectId, Date timeout, Selector[] selectors);
+
+    /**
+     * Cancel a previously issue {@link #select(String, Date, Selector[])) call. 
+     * @param selectId identifier for the select. 
+     * @return <code>true</code> if select-id was found/cancelled. 
+     */
+    boolean cancelSelect(String selectId);
+  
+    /**
+     * Send a reply to an open message-exchange.
+     * 
+     * TODO: remove plink paramater, should not be needed. 
+     * 
+     * @param mexId mex id to reply to
+     * @param plink partner link on which we are replying (TODO: remove) 
+     * @param opName operation name
+     * @param msg reply message
+     * @param fault fault type, or <code>null</code> if no fault
+     * @throws NoSuchOperationException
+     */
+    void reply(String mexId, PartnerLink plink, String opName, Element msg, QName fault) throws NoSuchOperationException;
+
+    /**
+     * Invoke a partner.
+     * 
+     * @param invokeId
+     *            request identifier
+     * @param partnerLinkInstance
+     *            partner link (on which to communicate)
+     * @param operation
+     *            operation to invoke
+     * @param outboundMsg
+     *            outgoing message
+     * @return message exchange identifier
+     * @throws UninitializedPartnerEPR
+     * @throws FaultException
+     */
+    String /* MexId */invoke(String invokeId, PartnerLink partnerLinkInstance, Operation operation, Element outboundMsg)
+            throws UninitializedPartnerEPR;
+
+    /**
+     * Get partner's response to an invoke.
+     * 
+     * @param mexId
+     *            message exchange identifier
+     * @return partner's reply
+     */
+    Element getPartnerResponse(String mexId);
+
+    /**
+     * Get partner's fault response to an invoke, or <code>null</code> if response was not a fault.
+     * 
+     * @param mexId
+     *            message exchange identifier
+     * @return partner's fault reply.
+     */
+    QName getPartnerFault(String mexId);
+
+    String getPartnerFaultExplanation(String mexId);
+
+    QName getPartnerResponseType(String mexId);
+
+    /**
+     * Get the request (i.e. a message received) received from a partner's invoke.
+     * 
+     * @param mexId
+     *            message exchange identifier
+     * @return
+     */
+    Element getMyRequest(String mexId);
+
+    void releasePartnerMex(String mexId);
+
+    Element getSourceEPR(String mexId);
+
+    String getSourceSessionId(String mexId);
+
+    /**
+     * Registers a timer for future notification.
+     * 
+     * @param timerChannel
+     *            channel for timer notification
+     * @param timeToFire
+     *            future time to fire timer notification
+     */
+    void registerTimer(String timerId, Date timeToFire);
+
+
+    /**
+     * Cancel a timer.
+     * 
+     * @param timerId
+     * @returns <code>true</code> if timer was found and canelled. 
+     */
+    boolean cancelTimer(String timerId);
+
+
+}