ode-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From gno...@apache.org
Subject svn commit: r386358 - in /incubator/ode/scratch/ode: bpelTests/ src/main/java/org/apache/ode/bpe/action/bpel/ src/main/java/org/apache/ode/bpe/bped/unmanaged/ src/main/java/org/apache/ode/bpe/context/nonpersistent/ src/main/java/org/apache/ode/bpe/cont...
Date Thu, 16 Mar 2006 15:48:03 GMT
Author: gnodet
Date: Thu Mar 16 07:48:02 2006
New Revision: 386358

URL: http://svn.apache.org/viewcvs?rev=386358&view=rev
Log:
ODE-2: Patch fixing several issues for ServiceMix integration

Modified:
    incubator/ode/scratch/ode/bpelTests/build.xml
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/action/bpel/ExternalServiceAction.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/bped/unmanaged/EventDirectorSLImpl.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContainer.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContextService.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/resolver/ResolverVariableContext.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/correlation/unmanaged/CorrelationServiceSLImpl.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELAttributes.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELInvoke.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELPick.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELRepositoryHandler.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/ExtensibilityArtifacts.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/engine/ProcessService.java
    incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/util/BPEProperties.java

Modified: incubator/ode/scratch/ode/bpelTests/build.xml
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/bpelTests/build.xml?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/bpelTests/build.xml (original)
+++ incubator/ode/scratch/ode/bpelTests/build.xml Thu Mar 16 07:48:02 2006
@@ -51,9 +51,6 @@
 			<param name="jartest.num" value="10"/>
 		</antcall>
 		<antcall target="jartest">
-			<param name="jartest.num" value="11"/>
-		</antcall>
-		<antcall target="jartest">
 			<param name="jartest.num" value="12"/>
 		</antcall>
 		<antcall target="jartest">

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/action/bpel/ExternalServiceAction.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/action/bpel/ExternalServiceAction.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/action/bpel/ExternalServiceAction.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/action/bpel/ExternalServiceAction.java
Thu Mar 16 07:48:02 2006
@@ -73,6 +73,7 @@
 	public static final String EXT_ACTION_PROPS = "external_action_properties";
 	public static final String OPERATION_KEY ="operation_key";
 	public static final String PARTNER_LINK = "partner_link";
+	public static final String INVOKE_ATTRIBUTES = "invoke_attributes";
 
 	private IExternalAction action;
 	private IURIResolver m_uriResolver;

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/bped/unmanaged/EventDirectorSLImpl.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/bped/unmanaged/EventDirectorSLImpl.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/bped/unmanaged/EventDirectorSLImpl.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/bped/unmanaged/EventDirectorSLImpl.java
Thu Mar 16 07:48:02 2006
@@ -54,17 +54,17 @@
 	// correlation service
 	private CorrelationService correlationService;
 	private LockingService lockingService;
-	private EventContext currentEventContext;
+	private ThreadLocal currentEventContext = new ThreadLocal();
 	
 	private UUIDService us;
 	
 	// The event director will use a stack to push and pop ProcessInstance
 	// on the evaluation context. This will cause the engine to use depth
 	// first evaluation of the process tree.
-	private Stack processInstanceStack = new Stack();
+	private ThreadLocal processInstanceStack = new ThreadLocal();
 	
 	// mark for dead current process 
-	private boolean dead;
+	private ThreadLocal dead = new ThreadLocal();
 	
 	/**
 	 * @see org.apache.ode.bpe.bped.IInternalEventDirector#init(BPEProperties, CorrelationService)
@@ -111,13 +111,21 @@
 			// member variable.  A better solution would be to
 			// pass the event context as a parameter through the
 			// call chain.
-			EventContext previousEventContext = currentEventContext;
-			currentEventContext = new EventContext();
+			EventContext previousEventContext = getEventContext();
+			setEventContext(new EventContext());
 			IResponseMessage responseMessage = this.getCorrelationService().correlateEvent(msg, sync,
this);
-			currentEventContext = previousEventContext;
+			setEventContext(previousEventContext);
 			
 			return responseMessage;
 	}
+	
+	private EventContext getEventContext() {
+    return (EventContext) currentEventContext.get();
+  }
+  
+  private void setEventContext(EventContext context) {
+    currentEventContext.set(context);
+  }
 
 	/**
 	 * @see org.apache.ode.bpe.bped.IInternalEventDirector#activate(String)
@@ -163,28 +171,28 @@
 	 * @see org.apache.ode.bpe.bped.EventDirector#getReturnMessageMetadata()
 	 */
 	public ReturnMessageLocatorHolder getReturnMessageMetadata() {
-		return currentEventContext.getReturnMessageMetadata();
+		return getEventContext().getReturnMessageMetadata();
 	}
 
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.bped.EventDirector#getMessageEvent()
 	 */
 	public IRequestMessageEvent getMessageEvent() {
-		return currentEventContext.getMessageEvent();
+		return getEventContext().getMessageEvent();
 	}
 
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.bped.EventDirector#setReturnMessageMetadata(java.util.Collection)
 	 */
 	public void setReturnMessageMetadata(ReturnMessageLocatorHolder rmlh) {
-		currentEventContext.setReturnMessageMetadata(rmlh);	
+		getEventContext().setReturnMessageMetadata(rmlh);	
 	}
 
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.bped.EventDirector#setMessageEvent(org.apache.ode.bpe.event.MessageEvent)
 	 */
 	public void setMessageEvent(IRequestMessageEvent me) {
-		currentEventContext.setMessageEvent(me);
+		getEventContext().setMessageEvent(me);
 		
 	}
 
@@ -211,7 +219,7 @@
 	 */
 	public void sendEvent(StateEvent me, boolean sync) throws BPException {
 		logger.fine("Recieved state event.");
-		currentEventContext = new EventContext();
+		setEventContext(new EventContext());
 		this.handleStateEvent(me, sync);
 		
 	}
@@ -228,50 +236,60 @@
 	 * @see org.apache.ode.bpe.bped.EventDirector#sendEvent(org.apache.ode.bpe.timerservice.IBPETimer)
 	 */
 	public Fault sendEvent(IBPETimer me, boolean sync) throws BPException {
+    logger.fine("Recieved timer event.");
+    setEventContext(new EventContext());
 		EventDirectorUtil.handleTimerEvent(this,me);
 		return null;
 	}
 			
+    private Stack getProcessInstanceStack() {
+        Stack stack = (Stack) processInstanceStack.get();
+        if (stack == null) {
+            stack = new Stack();
+            processInstanceStack.set(stack);
+        }
+        return stack;
+    }
+    
 	/**
 	 * @see org.apache.ode.bpe.engine.IEvaluationContext#addProcessInstance(org.apache.ode.bpe.engine.ProcessInstance)
 	 */
 	public void addProcessInstance(ProcessInstance pi) {
-		processInstanceStack.push(pi);
-
+        getProcessInstanceStack().push(pi);
 	}
 
 	/**
 	 * @see org.apache.ode.bpe.engine.IEvaluationContext#getNextProcessInstance()
 	 */
 	public ProcessInstance getNextProcessInstance() {
-		return ( processInstanceStack.size() > 0 ) ? (ProcessInstance)processInstanceStack.pop()
: null;
+		return ( getProcessInstanceStack().size() > 0 ) ? (ProcessInstance)getProcessInstanceStack().pop()
: null;
 	}
 
 	/**
 	 * @see org.apache.ode.bpe.engine.IEvaluationContext#initProcessInstanceCollection()
 	 */
 	public void initProcessInstanceCollection() {
-		processInstanceStack.clear();
+        getProcessInstanceStack().clear();
 	}
 	/**
 	 * @see org.apache.ode.bpe.engine.IEvaluationContext#hasMoreProcessInstances()
 	 */
 	public boolean processInstanceCollectionIsEmpty() {
-		return processInstanceStack.isEmpty();
+		return getProcessInstanceStack().isEmpty();
 	}
 	
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.engine.IEvaluationContext#setDeadProcess()
 	 */
 	public void setDeadProcess(boolean mark) {
-		dead = mark;
+		dead.set(new Boolean(mark));
 	}
 
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.engine.IEvaluationContext#isDeadProcess()
 	 */
 	public boolean isDeadProcess() {
-		return dead;
+		return ((Boolean) dead.get()).booleanValue();
 	}
 
 	/* (non-Javadoc)

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContainer.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContainer.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContainer.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContainer.java
Thu Mar 16 07:48:02 2006
@@ -59,37 +59,37 @@
 	// Implement the IContainer facade.  Polymorphic enhancements must be made in the
 	// internal* methods, not the IContainer interface methods.
 	
-	public IContainer createContainer( String iContainerLocator ) throws ContextServiceException
+	public synchronized IContainer createContainer( String iContainerLocator ) throws ContextServiceException
 	{
 		return internalCreateContainer( iContainerLocator );
 	}
 	
-	public IPart createPart( String iPartLocator ) throws ContextServiceException
+	public synchronized IPart createPart( String iPartLocator ) throws ContextServiceException
 	{
 		return internalCreatePart( iPartLocator );
 	}
 
-	public INode findChild( String iChildLocator ) throws ContextServiceException 
+	public synchronized INode findChild( String iChildLocator ) throws ContextServiceException

 	{
 		return internalFindChild( iChildLocator );
 	}
 
-	public void removeChild( String iChildLocator ) throws ContextServiceException
+	public synchronized void removeChild( String iChildLocator ) throws ContextServiceException
 	{
 		internalRemoveChild( iChildLocator );
 	}
 
-	public void moveNode( INode iSourceNode, String iTargetName ) throws ContextServiceException
+	public synchronized void moveNode( INode iSourceNode, String iTargetName ) throws ContextServiceException
 	{
 		internalMoveNode( iSourceNode, iTargetName );
 	}
 
-	public void copyNode( INode iSourceNode, String iTargetName ) throws ContextServiceException
+	public synchronized void copyNode( INode iSourceNode, String iTargetName ) throws ContextServiceException
 	{
 		internalCopyNode( iSourceNode, iTargetName );
 	}
 	
-	public Collection getChildren() throws ContextServiceException
+	public synchronized Collection getChildren() throws ContextServiceException
 	{
 		return internalGetChildren();
 	}

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContextService.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContextService.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContextService.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/nonpersistent/TransientContextService.java
Thu Mar 16 07:48:02 2006
@@ -53,7 +53,7 @@
 	/**
 	 * @see org.apache.ode.bpe.context.IContextService#getRoot()
 	 */
-	public IContainer getRoot() throws ContextServiceException
+	public synchronized IContainer getRoot() throws ContextServiceException
 	{
 		if (m_root == null)
 		{

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/resolver/ResolverVariableContext.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/resolver/ResolverVariableContext.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/resolver/ResolverVariableContext.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/context/resolver/ResolverVariableContext.java
Thu Mar 16 07:48:02 2006
@@ -55,17 +55,17 @@
 				} else
 				{
 					o = o.toString();
-					// See if we can turn this into Integer.  We unfortunately do not have any
+					// See if we can turn this into Double.  We unfortunately do not have any
 					// type information.  The following xpath will not work if you do not
-					// return an integer.  So it seems we are stuck with the following solution.
+					// return an double.  So it seems we are stuck with the following solution.
 					try{
-						Integer i = new Integer((String)o);
+						Double d = new Double((String)o);
 						// if we got to here, it didn't throw
-						o = i;
+						o = d;
 					}
 					catch(java.lang.NumberFormatException e)
 					{
-						//It threw an exception.  The contents of o are not an integer.
+						//It threw an exception.  The contents of o are not a number.
 						//Don't need to do anything.
 					}
 				}

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/correlation/unmanaged/CorrelationServiceSLImpl.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/correlation/unmanaged/CorrelationServiceSLImpl.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/correlation/unmanaged/CorrelationServiceSLImpl.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/correlation/unmanaged/CorrelationServiceSLImpl.java
Thu Mar 16 07:48:02 2006
@@ -49,7 +49,7 @@
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.correlation.CorrelationService#createRegistration(org.apache.ode.bpe.correlation.Registration)
 	 */
-	public void createRegistration(Registration regisration)
+	public synchronized void createRegistration(Registration regisration)
 		throws CorrelationServiceException {
 
 		// add to static key hash
@@ -104,7 +104,7 @@
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.correlation.CorrelationService#getRegistrations(org.apache.ode.bpe.instance.service.IMPIProcess)
 	 */
-	public Collection getRegistrations(IPMIProcess key)
+	public synchronized Collection getRegistrations(IPMIProcess key)
 		throws CorrelationServiceException {
 		return (ArrayList) hashByProcId.get(key.getKey());
 	}
@@ -112,7 +112,7 @@
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.correlation.CorrelationService#getRegistrations(org.apache.ode.bpe.event.IStaticKey,
java.util.Collection)
 	 */
-	public Collection getRegistrations(IStaticKey key, Collection keyValues)
+	public synchronized Collection getRegistrations(IStaticKey key, Collection keyValues)
 		throws CorrelationServiceException {
 			
 			ArrayList regs = new ArrayList();		
@@ -140,16 +140,13 @@
 				}
 			}
 		}
-			
-			return regs;
-			
-			
+		return regs;
 	}
 	
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.correlation.CorrelationService#getRegistrations(org.apache.ode.bpe.event.IStaticKey)
 	 */
-	public Collection getRegistrations(IStaticKey key)
+	public synchronized Collection getRegistrations(IStaticKey key)
 		throws CorrelationServiceException {
 			ArrayList regs = (ArrayList)hashByStaticKey.get(key.toString());
 			if ( regs == null ) {
@@ -194,7 +191,7 @@
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.correlation.CorrelationService#getRegistrations(org.apache.ode.bpe.event.IStaticKey,
java.lang.String)
 	 */
-	public Registration getRegistration(IStaticKey key, String operationId,
+	public synchronized Registration getRegistration(IStaticKey key, String operationId,
 		String processId) throws CorrelationServiceException {
 		HashMap opHash= (HashMap)hashByStaticKeyandOperationIdandProcId.get(key.toString());
 		if ( opHash == null ) {
@@ -210,7 +207,7 @@
 	/* (non-Javadoc)
 	 * @see org.apache.ode.bpe.correlation.CorrelationService#removeRegistration(org.apache.ode.bpe.correlation.Registration)
 	 */
-	public void removeRegistration(Registration registration) throws CorrelationServiceException
{
+	public synchronized void removeRegistration(Registration registration) throws CorrelationServiceException
{
 		// remove from static key hash
 		String key = registration.getStaticKeyValue();
 		ArrayList regs = (ArrayList) hashByStaticKey.get(key);

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELAttributes.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELAttributes.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELAttributes.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELAttributes.java
Thu Mar 16 07:48:02 2006
@@ -19,6 +19,8 @@
  */
 package org.apache.ode.bpe.deployment.bpel;
 
+import java.util.HashMap;
+import java.util.Map;
 import java.util.Properties;
 
 import javax.xml.namespace.QName;
@@ -40,10 +42,12 @@
 	
 	static final long serialVersionUID = 2362373868375195807L;
 
+  private Map uris;
 	
 	public BPELAttributes(Attributes attrs) {
 		super();
 		
+		uris = new HashMap();
 		// attrs are owned by the SAX Parser therefore they should be copied into
 		// the objects private collection. Attributes may be referenced 
 		// accross element boundries and it appears the parser will reuse the
@@ -51,9 +55,14 @@
 		int len = attrs.getLength();
 		for (int i = 0; i < len; i++ ) {
 			put(attrs.getQName(i),attrs.getValue(i));
+			uris.put(attrs.getQName(i),attrs.getURI(i));
 		}	
 	}
 	
+	public String getURI(String attribute) {
+    return (String) uris.get(attribute);
+  }
+	
 	public BPELAttributes() {
 		super();
 	}
@@ -173,14 +182,11 @@
 		return (QName)get(BPELSchema.TYPE_ATTR.getValue());
 	}
 	
-	void setDataType(BPELNode context) {
-
-		try {
-			QName ret = context.getQName(getProperty(BPELSchema.TYPE_ATTR.getValue()));
-			put(BPELSchema.TYPE_ATTR.getValue(),ret);
-		} catch (DeploymentException e) {
+	void setDataType(BPELNode context) throws DeploymentException {
+		QName ret = context.getQName(getProperty(BPELSchema.TYPE_ATTR.getValue()));
+		if (ret != null) {
+		  put(BPELSchema.TYPE_ATTR.getValue(),ret);
 		}
-
 	}
 	
 	String getQueryLanguage() {

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELInvoke.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELInvoke.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELInvoke.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELInvoke.java
Thu Mar 16 07:48:02 2006
@@ -144,6 +144,8 @@
 			
 			ccact.addMetadata(EXT_ACTION_PROPS,act.getAction().getProps());
 			
+			ccact.addMetadata(org.apache.ode.bpe.action.bpel.ExternalServiceAction.INVOKE_ATTRIBUTES,getAttributes());
+			
 			ccact.addMetadata(org.apache.ode.bpe.action.bpel.ExternalServiceAction.PARTNER_LINK,getAttributes().getPartnerLink());
 			
 			if ( !ops.isEmpty() ) ccact.addMetadata(RegisterAction.OPERATIONS,ops);

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELPick.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELPick.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELPick.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELPick.java
Thu Mar 16 07:48:02 2006
@@ -133,8 +133,10 @@
 		for ( Iterator itr = m_eventHandlers.iterator(); itr.hasNext(); ) {
 			
 			op = ((BPELEvent)itr.next()).getOperation(regAct,ccB);
-			getProcess().addNonInstanceCreatingStaticKey(op.getKey());
-			if ( op != null ) ops.add( op );
+			if ( op != null ) {
+        getProcess().addNonInstanceCreatingStaticKey(op.getKey());
+        ops.add( op );
+			}
 		}
 		try {
 			regAct.addMetadata(RegisterAction.OPERATIONS,ops);

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELRepositoryHandler.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELRepositoryHandler.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELRepositoryHandler.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/BPELRepositoryHandler.java
Thu Mar 16 07:48:02 2006
@@ -76,19 +76,20 @@
 
 	BPELRepositoryHandler(String docName, HashMap supportDoc, DefinitionService ds) throws DeploymentException
{
 		m_bpelName = docName;
-		m_props = new BPEProperties();
 		
 		try {
 			if ( ds == null ) {
+        m_props = new BPEProperties();			
 				m_props.setDefinitionServiceClass("org.apache.ode.bpe.definition.serialimpl.DefinitionService_SerImpl");
 				UUIDService us = UUIDServiceFactory.createUUIDService(m_props);
 				m_ds = DefinitionServiceFactory.createDefinitionService(m_props,us);
 			} else {
 				m_ds = ds;
+				m_props = ds.getBPEProperties();
 			}
 			
 			// Create the object that manages the list of supporting documents
-			m_artifacts = new ExtensibilityArtifacts(docName, supportDoc);
+			m_artifacts = new ExtensibilityArtifacts(docName, supportDoc, m_props);
 			
 		} catch (UUIDServiceException e) {
 			BPELUtil.throwNewException(logger,Level.SEVERE,"BPEL_UUIDINVALID",null,e);
@@ -225,8 +226,12 @@
 		// An alarm can only be held by a scope. The builder assumes the xml
 		// parser will enforce this constraint using the BPEL XMLSchema.
 
-		testScope(); // make sure the current context is a scope
-		push( new BPELOnAlarm(m_context,attr) );
+    if ( m_context instanceof BPELPick ) {
+      push( new BPELOnAlarm(m_context,attr) );
+    } else {
+		  testScope(); // make sure the current context is a scope
+		  push( new BPELOnAlarm(m_context,attr) );
+		}
 	}
 	public void closeOnAlarm() throws DeploymentException {
 		pop();

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/ExtensibilityArtifacts.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/ExtensibilityArtifacts.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/ExtensibilityArtifacts.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/deployment/bpel/ExtensibilityArtifacts.java
Thu Mar 16 07:48:02 2006
@@ -68,6 +68,7 @@
 import org.apache.ode.bpe.binding.bpe.TBinding;
 import org.apache.ode.bpe.binding.bpe.TOperation;
 import org.apache.ode.bpe.binding.bpe.TSchema;
+import org.apache.ode.bpe.util.BPEProperties;
 import org.apache.ode.bpe.wsdl.extensions.BPEAction;
 import org.apache.ode.bpe.wsdl.extensions.BPEActionSerializer;
 import org.apache.ode.bpe.wsdl.extensions.BPEFault;
@@ -104,8 +105,6 @@
 	// The perferred data type for BPEL variables and for params passed across
 	// an IExternalAction interface.
 	private static final String DEFAULT_TYPE = "";
-	// A default implementation of IExternalAction;
-	private static final String DEFAULT_IMPL = "org.apache.ode.bpe.action.bpel.external.WSIFAction";
 
 	// The process holds namespace prefixes used in the BPEL document.
 	private BPELProcess process;
@@ -124,10 +123,13 @@
 	private TSchema bpeBinding;
 	private HashMap activityBindingMap;
 	
+	private BPEProperties properties;
 	
-	public ExtensibilityArtifacts( String bpelDocName, HashMap artifacts ) throws DeploymentException
{
+	
+	public ExtensibilityArtifacts( String bpelDocName, HashMap artifacts, BPEProperties props
) throws DeploymentException {
 		rootDef = getRootWSDL(bpelDocName, artifacts);
 		bpeBinding = getBPEBindings(bpelDocName, artifacts);
+		properties = props;
 		
 		Pattern bindingPattern = Pattern.compile(bpelDocName+".xml");
 
@@ -147,6 +149,10 @@
 		}
 	}
 	
+	public BPEProperties getBPEProperties() {
+    return properties;
+  }
+	
 
 	/**
 	 * Build a map of activity ID's to activity bindings.
@@ -479,13 +485,16 @@
 
 		if ( bpeAction == null ) {
 		   
+		  if (properties.getExternalActionDefaultImplementation() == null) {
+        // Temp fix for rob madden.
+        throw new RuntimeException("Could not find action binding for: pt = " 
+			              + pt.getQName() + ", oper = " + opr.getName());
+			}
+			
 			// create a default action
 			bpeAction = new BPEAction();
-			bpeAction.setImplementation(DEFAULT_IMPL);
-			
-			// Temp fix for rob madden.
-			throw new RuntimeException("Could not find action binding for: pt = " 
-			            + pt.getQName() + ", oper = " + opr.getName());
+			bpeAction.setBPEImplementation(properties.getExternalActionBPEImplementation());
+			bpeAction.setImplementation(properties.getExternalActionDefaultImplementation());
 		}
 		
 		retVal.setAction(bpeAction);

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/engine/ProcessService.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/engine/ProcessService.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/engine/ProcessService.java
(original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/engine/ProcessService.java
Thu Mar 16 07:48:02 2006
@@ -102,7 +102,7 @@
     * Creates a ProcessInstance from a RootDefinition key.
     * 
     * @param key - the unique identifier of a root definition */
-   public ProcessInstance createProcess(ProcessDefinitionKey key) throws BPException
+   public synchronized ProcessInstance createProcess(ProcessDefinitionKey key) throws BPException
    {
        IPMDRoot rootDefinition = is.getDefinitionService().getRootDefinition(key);
        if ( ! rootDefinition.isActive() )
@@ -115,7 +115,7 @@
               is.getDefinitionService().getRootDefinition(key)),this);
    }
    
-   public ProcessInstance createSubProcess(IPMIProcess ipmi, IPMDProcess ipmd) throws BPException
+   public synchronized ProcessInstance createSubProcess(IPMIProcess ipmi, IPMDProcess ipmd)
throws BPException
    {
 		return new ProcessInstance(ipmi.createSubProcess(ipmd),this);	
    }
@@ -127,7 +127,7 @@
     * @param key
     * 
     */
-   public ProcessInstance lookupProcess(String rootkey, String key) throws BPException
+   public synchronized ProcessInstance lookupProcess(String rootkey, String key) throws BPException
    {
       return new ProcessInstance(is.getInstance(rootkey, key),this);
    }
@@ -136,11 +136,11 @@
     * Get the InstanceService associated with this ProcessService.
     * @return InstanceService
     */
-   public InstanceService getInstanceService() {
+   public synchronized InstanceService getInstanceService() {
 		return is;
    }
  
-   public IContextService getContextService(IPMIProcess rootkey) throws BPException  {
+   public synchronized IContextService getContextService(IPMIProcess rootkey) throws BPException
 {
 		return getContextService(rootkey.isStateless());   	
    }
    
@@ -150,7 +150,7 @@
     * @return a context service
     * @throws BPException
     */
-   public IContextService getContextService(String rootkey) 
+   public synchronized IContextService getContextService(String rootkey) 
    	throws BPException {
 
    		IPMIProcess proc = is.getInstanceForContext(rootkey,rootkey);
@@ -162,7 +162,7 @@
 		return getContextService(rootDef.getIsStateless());
    	}
    	
-   	private IContextService getContextService(boolean isStateless) throws BPException {
+   	private synchronized IContextService getContextService(boolean isStateless) throws BPException
{
 
 		IContextService ret = null;
 		
@@ -219,7 +219,7 @@
     * @throws ScopeServiceException
     * @throws BPException
     */
-   public IScopeService getScopeService(IPMIProcess rootkey) 
+   public synchronized IScopeService getScopeService(IPMIProcess rootkey) 
    	throws ScopeServiceException, BPException{
 		IScopeService ss = (IScopeService)scopeServices.get(rootkey.getRootKey());
 		if ( ss == null ) {
@@ -237,7 +237,7 @@
 	* @throws ScopeServiceException
 	* @throws BPException
 	*/
-   public IScopeService getScopeService(String rootkey) 
+   public synchronized IScopeService getScopeService(String rootkey) 
 	throws ScopeServiceException, BPException{
 		IScopeService ss = (IScopeService)scopeServices.get(rootkey);
 		if ( ss == null ) {
@@ -255,7 +255,7 @@
 	 * @param pcb the process call back interface
 	 * @throws BPException
 	 */
-   public void update(String rootkey, IEvaluationContext ec,
+   public synchronized void update(String rootkey, IEvaluationContext ec,
    	IProcessCallBack pcb)throws BPException{
    		
    	scopeServices.remove(rootkey);
@@ -267,13 +267,13 @@
     * Init the process service.
     *
     */
-   public void init(){
+   public synchronized void init(){
    	ctxPersistent = null;
    	is.init();
    }
 
    // this is for the in memory case only
-   public IContextService getTransientContextService() throws ContextServiceException {
+   public synchronized IContextService getTransientContextService() throws ContextServiceException
{
 	   if ( ctxNonPersistent == null ) { 
 		   BPEProperties props = new BPEProperties();
 		ctxNonPersistent = ContextServiceFactory.createContextService(props,us,

Modified: incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/util/BPEProperties.java
URL: http://svn.apache.org/viewcvs/incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/util/BPEProperties.java?rev=386358&r1=386357&r2=386358&view=diff
==============================================================================
--- incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/util/BPEProperties.java (original)
+++ incubator/ode/scratch/ode/src/main/java/org/apache/ode/bpe/util/BPEProperties.java Thu
Mar 16 07:48:02 2006
@@ -146,7 +146,10 @@
     public static final String EXTERNAL_INTERACTION_FACTORIES_DEFAULT =
         "";
 
-
+    // External actions
+    public static final String EXTERNAL_ACTION_BPE_IMPLEMENTATION_KEY = "EXTERNAL_ACTION_BPE_IMPLEMENTATION_KEY";
+    public static final String EXTERNAL_ACTION_BPE_IMPLEMENTATION_DEFAULT = "org.apache.ode.action.bpel.ExternalServiceAction";
+    public static final String EXTERNAL_ACTION_DEFAULT_IMPLEMENTATION_KEY = "EXTERNAL_ACTION_DEFAULT_IMPLEMENTATION_KEY";
 
     private Context jndiContext;
 
@@ -509,6 +512,20 @@
         return lookupString(
                 EXTERNAL_INTERACTION_FACTORIES_KEY,
                 EXTERNAL_INTERACTION_FACTORIES_DEFAULT );
+    }
+    
+    public String getExternalActionBPEImplementation()
+    {
+      return lookupString(
+                EXTERNAL_ACTION_BPE_IMPLEMENTATION_KEY,
+                EXTERNAL_ACTION_BPE_IMPLEMENTATION_DEFAULT );
+    }
+    
+    public String getExternalActionDefaultImplementation()
+    {
+      return lookupString(
+                EXTERNAL_ACTION_DEFAULT_IMPLEMENTATION_KEY,
+                null );
     }
 
     /**



Mime
View raw message