You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by lr...@apache.org on 2008/04/25 21:20:27 UTC

svn commit: r651685 - in /incubator/tuscany/java/sca/modules/implementation-bpel/src: main/java/org/apache/tuscany/sca/implementation/bpel/ode/ main/java/org/apache/tuscany/sca/implementation/bpel/provider/ test/java/org/apache/tuscany/sca/implementati...

Author: lresende
Date: Fri Apr 25 12:20:15 2008
New Revision: 651685

URL: http://svn.apache.org/viewvc?rev=651685&view=rev
Log:
Fixing mapping from BPEL process instance to an SCA component instance and other minor code cleanup

Added:
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java   (with props)
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java   (with props)
Modified:
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServer.java
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java   (contents, props changed)
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java   (contents, props changed)
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProvider.java
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProviderFactory.java
    incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java
    incubator/tuscany/java/sca/modules/implementation-bpel/src/test/java/org/apache/tuscany/sca/implementation/bpel/EmbeddedODEServerTestCase.java   (props changed)
    incubator/tuscany/java/sca/modules/implementation-bpel/src/test/resources/log4j.properties

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServer.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServer.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServer.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/EmbeddedODEServer.java Fri Apr 25 12:20:15 2008
@@ -28,6 +28,7 @@
 import java.util.concurrent.Executors;
 
 import javax.transaction.TransactionManager;
+import javax.xml.namespace.QName;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -76,7 +77,7 @@
     
     protected ExecutorService _executorService;
 
-    private Map<String, RuntimeComponent> tuscanyRuntimeComponents = new ConcurrentHashMap<String, RuntimeComponent>();
+    private Map<QName, RuntimeComponent> tuscanyRuntimeComponents = new ConcurrentHashMap<QName, RuntimeComponent>();
     
     public EmbeddedODEServer(TransactionManager txMgr) {
         _txMgr = txMgr;
@@ -153,7 +154,7 @@
         _bpelServer.setInMemDaoConnectionFactory(new BpelDAOConnectionFactoryImpl(_scheduler));
         // _bpelServer.setEndpointReferenceContext(new EndpointReferenceContextImpl(this));
         _bpelServer.setMessageExchangeContext(new ODEMessageExchangeContext(this));
-        _bpelServer.setBindingContext(new ODEBindingContext(this));
+        _bpelServer.setBindingContext(new ODEBindingContext());
         _bpelServer.setScheduler(_scheduler);
         if (_config.isDehydrationEnabled()) {
             CountLRUDehydrationPolicy dehy = new CountLRUDehydrationPolicy();
@@ -279,11 +280,11 @@
         //TODO
     }
     
-    public void setTuscanyRuntimeComponent(String componentName, RuntimeComponent componentContext) {
-        tuscanyRuntimeComponents.put(componentName, componentContext);
+    public void registerTuscanyRuntimeComponent(QName processName,RuntimeComponent componentContext) {
+        tuscanyRuntimeComponents.put(processName, componentContext);
     }
-    
-    public RuntimeComponent getTuscanyRuntimeComponent(String componentName) {
-        return tuscanyRuntimeComponents.get(componentName);
+        
+    public RuntimeComponent getTuscanyRuntimeComponent(QName processName) {
+        return tuscanyRuntimeComponents.get(processName);
     }
 }

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java Fri Apr 25 12:20:15 2008
@@ -9,107 +9,53 @@
 import org.apache.ode.bpel.iapi.Endpoint;
 import org.apache.ode.bpel.iapi.EndpointReference;
 import org.apache.ode.bpel.iapi.PartnerRoleChannel;
-import org.apache.ode.utils.DOMUtils;
-import org.apache.tuscany.sca.runtime.RuntimeComponent;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 /**
  * Binding Context information
  * 
- * @version $Rev: 573789 $ $Date: 2007-09-07 23:59:49 -0700 (Fri, 07 Sep 2007) $
+ * @version $Rev$ $Date$
  */
 public class ODEBindingContext implements BindingContext {
-    private static final Log __log = LogFactory.getLog(ODEBindingContext.class);
+    protected final Log __log = LogFactory.getLog(getClass());
 
-    private EmbeddedODEServer _server;
+    public ODEBindingContext() {
 
-    public ODEBindingContext(EmbeddedODEServer _server) {
-        this._server = _server;
     }
 
     public EndpointReference activateMyRoleEndpoint(QName pid, Endpoint endpoint) {
         // This will be needed when we support callBacks
-        if (__log.isDebugEnabled())
+        if (__log.isDebugEnabled()) {
             __log.debug("Activating MyRole Endpoint : " + pid + " - " + endpoint.serviceName);
-
-        System.out.println(">>> Activating MyRole Endpoint : " + pid + " - " + endpoint.serviceName);
-        
-        return new TuscanyEPR(endpoint);
-    }
-
-    public void deactivateMyRoleEndpoint(Endpoint endpoint) {
-        if (__log.isDebugEnabled())
-            __log.debug("Deactivate MyRole Endpoint : " + endpoint.serviceName);
-
-    }
-
-    public PartnerRoleChannel createPartnerRoleChannel(QName qName, PortType portType, Endpoint endpoint) {
-        if (__log.isDebugEnabled())
-            __log.debug("Create PartnerRole channel : " + qName + " - " + portType.getQName() + " - "+ endpoint.serviceName);
-
-        System.out.println(">>> Create PartnerRole channel : " + qName + " - " + portType.getQName() + " - "+ endpoint.serviceName);
-        
-        return new TuscanyPRC();
-    }
-
-    // TODO This should hold something that makes sense for Tuscany so that the
-    // process has an address that makes sense from the outside world perspective
-    private class TuscanyEPR implements EndpointReference {
-        private final Endpoint endpoint;
-        private final Document doc = DOMUtils.newDocument();
-        
-        public TuscanyEPR() {
-            this.endpoint = null;
         }
         
-        public TuscanyEPR(Endpoint endpoint) {
-            this.endpoint = endpoint;
-            
-            Element serviceref = doc.createElementNS(EndpointReference.SERVICE_REF_QNAME.getNamespaceURI(),
-                                                     EndpointReference.SERVICE_REF_QNAME.getLocalPart());
-            serviceref.setNodeValue(endpoint.serviceName + ":" + endpoint.portName);
-            doc.appendChild(serviceref);
-        }
+        QName processName = getProcessName(pid);
         
-        public Document toXML() {
-            return doc;
-        }
+        return new TuscanyEPR(processName, endpoint);
     }
 
-    private class TuscanyPRC implements PartnerRoleChannel {
-        private TuscanyEPR tuscanyEPR;
-        private RuntimeComponent tuscanyRuntimeComponent;
-        
-        public TuscanyPRC() {
-            this.tuscanyEPR = null;
-        }
-        
-        public TuscanyPRC(TuscanyEPR tuscanyEPR, RuntimeComponent tuscanyRuntimeComponent){
-            this.tuscanyEPR = tuscanyEPR;
-            this.tuscanyRuntimeComponent = tuscanyRuntimeComponent;
+    public void deactivateMyRoleEndpoint(Endpoint endpoint) {
+        if (__log.isDebugEnabled()) {
+            __log.debug("Deactivate MyRole Endpoint : " + endpoint.serviceName);
         }
 
-        public void close() {
-
-        }
+    }
 
-        public RuntimeComponent getTuscanyRuntimeComponent(){
-            return this.tuscanyRuntimeComponent;
-        }
-        
-        public EndpointReference getInitialEndpointReference() {
-            final Document doc = DOMUtils.newDocument();
-            Element serviceref = doc.createElementNS(EndpointReference.SERVICE_REF_QNAME.getNamespaceURI(),
-                                                     EndpointReference.SERVICE_REF_QNAME.getLocalPart());
-            doc.appendChild(serviceref);
-            
-            return new EndpointReference() {
-                public Document toXML() {
-                    return doc;
-                }
-            };
+    public PartnerRoleChannel createPartnerRoleChannel(QName pid, PortType portType, Endpoint endpoint) {
+        if (__log.isDebugEnabled()) {
+            __log.debug("Create PartnerRole channel : " + pid + " - " + portType.getQName() + " - "+ endpoint.serviceName);
         }
 
+        QName processName = getProcessName(pid);
+        return new TuscanyPRC(processName, pid, portType, endpoint);
+    }
+    
+    /**
+     * Helper method to retrieve the BPEL process name from a processID (where processID have version concatenated to it)
+     * @param pid
+     * @return QName the BPEL process name
+     */
+    private static QName getProcessName(QName pid) {
+        String processName = pid.getLocalPart().substring(0, pid.getLocalPart().lastIndexOf("-"));
+        return new QName(pid.getNamespaceURI(), processName);
     }
 }

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEBindingContext.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEExternalService.java Fri Apr 25 12:20:15 2008
@@ -39,10 +39,12 @@
 import org.w3c.dom.Element;
 
 /**
+ * Helper Class to handle invocation to Tuscany Component References
+ * 
  * @version $Rev$ $Date$ 
  */
 public class ODEExternalService {
-    private static final Log __log = LogFactory.getLog(ODEExternalService.class);
+    protected final Log __log = LogFactory.getLog(getClass());
 
     private EmbeddedODEServer _server;
     private Scheduler _sched;
@@ -77,7 +79,12 @@
                         public Object call() throws Exception {
                             try {
                                 // do execution
-                                RuntimeComponent tuscanyRuntimeComponent = _server.getTuscanyRuntimeComponent("HelloWorldService");
+                                if(! (partnerRoleMessageExchange.getChannel() instanceof TuscanyPRC)) {
+                                    throw new IllegalArgumentException("Channel should be an instance of TuscanyPRC");
+                                }
+                                
+                                TuscanyPRC channel = (TuscanyPRC) partnerRoleMessageExchange.getChannel();
+                                RuntimeComponent tuscanyRuntimeComponent = _server.getTuscanyRuntimeComponent(channel.getProcessName());
 
                                 RuntimeComponentReference runtimeComponentReference =
                                     (RuntimeComponentReference)tuscanyRuntimeComponent.getReferences().get(0);
@@ -103,12 +110,16 @@
                                 Element msg = partnerRoleMessageExchange.getRequest().getMessage();
                                 if (msg != null) {
                                     String xml = DOMUtils.domToString(msg);
-                                    System.out.println(">>> Original message: " + xml);
-
+                                    
                                     String payload =
                                         DOMUtils.domToString(getPayload(partnerRoleMessageExchange.getRequest()));
-                                    System.out.println(">>> Payload: " + payload);
-
+                                    
+                                    if(__log.isDebugEnabled()) {
+                                        __log.debug("Starting invocation of SCA Reference");
+                                        __log.debug(">>> Original message: " + xml);
+                                        __log.debug(">>> Payload: " + payload);
+                                    }
+                                    
                                     Object[] args = new Object[] {getPayload(partnerRoleMessageExchange.getRequest())};
 
                                     Object result = null;
@@ -123,9 +134,11 @@
                                                                                     null);
                                     }
 
-                                    // partnerRoleMessageExchange.getResponse().setMessage(null);
                                     
-                                    System.out.println(">>> Result : " + DOMUtils.domToString((Element)result));
+                                    if(__log.isDebugEnabled()) {
+                                        __log.debug("SCA Reference invocation finished");
+                                        __log.debug(">>> Result : " + DOMUtils.domToString((Element)result));
+                                    }
 
                                     if (!success) {
                                         return null;
@@ -257,7 +270,10 @@
         contentMessage.appendChild(contentPart);
         dom.appendChild(contentMessage);
 
-        System.out.println("::result message:: " + DOMUtils.domToString(dom.getDocumentElement()));
+        if(__log.isDebugEnabled()) {
+            __log.debug("Creating result message:");
+            __log.debug(">>>" + DOMUtils.domToString(dom.getDocumentElement()));
+        }
 
         QName id = partnerRoleMessageExchange.getOperation().getOutput().getMessage().getQName();
         Message response = partnerRoleMessageExchange.createMessage(id);

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java Fri Apr 25 12:20:15 2008
@@ -1,28 +1,17 @@
 package org.apache.tuscany.sca.implementation.bpel.ode;
 
-import java.util.concurrent.Callable;
-
-import javax.xml.namespace.QName;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.ode.bpel.iapi.BpelEngineException;
 import org.apache.ode.bpel.iapi.ContextException;
-import org.apache.ode.bpel.iapi.Message;
-import org.apache.ode.bpel.iapi.MessageExchange;
 import org.apache.ode.bpel.iapi.MessageExchangeContext;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
 import org.apache.ode.bpel.iapi.PartnerRoleMessageExchange;
-import org.apache.ode.utils.DOMUtils;
-import org.apache.tuscany.sca.interfacedef.Operation;
-import org.apache.tuscany.sca.runtime.RuntimeComponentReference;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
 
 /**
  * Message Exchange Context information
  * 
- * @version $Rev: 573789 $ $Date: 2007-09-07 23:59:49 -0700 (Fri, 07 Sep 2007) $
+ * @version $Rev$ $Date$
  */
 public class ODEMessageExchangeContext implements MessageExchangeContext {
     private static final Log __log = LogFactory.getLog(ODEMessageExchangeContext.class);
@@ -34,169 +23,17 @@
     }
 
     public void invokePartner(PartnerRoleMessageExchange partnerRoleMessageExchange) throws ContextException {
-        if (__log.isDebugEnabled())
+        if (__log.isDebugEnabled()) {
             __log.debug("Invoking a partner operation: " + partnerRoleMessageExchange.getOperationName());
-        
-        System.out.println(">>> Invoking a partner operation: " + partnerRoleMessageExchange.getOperationName());
+        }
         
         ODEExternalService scaService = new ODEExternalService(_server);
         scaService.invoke(partnerRoleMessageExchange);
-        
-        
-//        boolean isTwoWay = partnerRoleMessageExchange.getMessageExchangePattern() == org.apache.ode.bpel.iapi.MessageExchange.MessageExchangePattern.REQUEST_RESPONSE;
-//        
-//        
-//        try {
-//            RuntimeComponent tuscanyRuntimeComponent = _server.getTuscanyRuntimeComponent("HelloWorldService");
-//            
-//            RuntimeComponentReference runtimeComponentReference = (RuntimeComponentReference) tuscanyRuntimeComponent.getReferences().get(0);
-//            RuntimeWire runtimeWire = runtimeComponentReference.getRuntimeWire(runtimeComponentReference.getBindings().get(0));
-//
-//            //convert operations
-//            Operation operation = findOperation(partnerRoleMessageExchange.getOperation().getName(), runtimeComponentReference);
-//            
-//            
-//            /* This is how a request looks like (payload is wrapped with extra info)
-//            <?xml version="1.0" encoding="UTF-8"?>
-//            <message>
-//              <parameters>
-//                <getGreetings xmlns="http://greetings">
-//                  <message xmlns="http://helloworld">Luciano</message>
-//                </getGreetings>
-//              </parameters>
-//            </message>
-//            */            
-//            Element msg = partnerRoleMessageExchange.getRequest().getMessage();
-//            if( msg != null) {
-//	            String xml = DOMUtils.domToString(msg);
-//	            System.out.println(">>> " + xml);
-//	            
-//	            String payload = DOMUtils.domToString(getPayload(partnerRoleMessageExchange.getRequest()));
-//	            System.out.println(">>> " + payload);
-//	            
-//	            Object[] args = new Object[] {getPayload(partnerRoleMessageExchange.getRequest())};
-//
-//            	Object result = null;
-//            	boolean success = false;
-//            	
-//            	try {
-//            		result = runtimeWire.invoke(operation, args);
-//            		success = true;
-//            	} catch(Exception e) {
-//            		partnerRoleMessageExchange.replyWithFailure(MessageExchange.FailureType.OTHER, e.getMessage(), null);
-//            	}
-//            	
-//            	//partnerRoleMessageExchange.getResponse().setMessage(null);
-//            	System.out.println(">>> Result : " + DOMUtils.domToString((Element)result));
-//
-//            	if(!success) {
-//            		return;
-//            	}
-//            	
-//            	//process results based on type of message invocation
-//            	if(isTwoWay) {
-//            		//two way invocation
-//					//Message response = createResponseMessage(partnerRoleMessageExchange, (Element) result);
-//					//partnerRoleMessageExchange.reply(response);
-//					
-//					replyTwoWayInvocation(partnerRoleMessageExchange.getMessageExchangeId(), (Element) result);
-//    					
-//            	} else {
-//            		//one way invocation
-//	            	partnerRoleMessageExchange.replyOneWayOk();
-//            	}
-//            }
-//
-//        } catch (Exception e) {
-//        	e.printStackTrace();
-//        }
     }
 
     public void onAsyncReply(MyRoleMessageExchange myRoleMessageExchange) throws BpelEngineException {
-        if (__log.isDebugEnabled())
-            __log.debug("Processing an async reply from service " + myRoleMessageExchange.getServiceName());  
-    }
-    
-    /**
-     * Find the SCA Reference operation
-     * 
-     * @param operationName
-     * @param runtimeComponentReference
-     * @return
-     */
-    private Operation findOperation(String operationName, RuntimeComponentReference runtimeComponentReference) {
-        Operation reseultOperation = null;
-        
-        for(Operation operation : runtimeComponentReference.getInterfaceContract().getInterface().getOperations()) {
-                if (operationName.equalsIgnoreCase(operation.getName())) {
-                        reseultOperation = operation;
-                        break;
-                }
-        }
-        return reseultOperation;
-    }
-    
-    /**
-     * Get paylod from a given ODEMessage
-     * @param odeMessage
-     * @return
-     */
-    private Element getPayload(Message odeMessage) {
-        Element payload = null;
-        Element parameters = odeMessage.getPart("parameters");
-
-        if (parameters != null && parameters.hasChildNodes()) {
-            payload = (Element)parameters.getFirstChild();
+        if (__log.isDebugEnabled()) {
+            __log.debug("Processing an async reply from service " + myRoleMessageExchange.getServiceName());
         }
-
-        return payload;
-    }
-    
-
-    private void replyTwoWayInvocation(final String odeMexId, final Element result) {
-    	try {
-    		_server.getScheduler().execIsolatedTransaction( new Callable<Void>() {
-    			public Void call() throws Exception {
-    				PartnerRoleMessageExchange odeMex = null;
-    				try {
-    					odeMex = (PartnerRoleMessageExchange)  _server.getBpelServer().getEngine().getMessageExchange(odeMexId);
-    					if (odeMex != null) {
-    						Message response = createResponseMessage(odeMex, (Element) result);
-    						odeMex.reply(response);
-    					}
-    				} catch (Exception ex) {
-    					String errmsg = "Unable to process response: " + ex.getMessage();
-    					if (odeMex != null) {
-    						odeMex.replyWithFailure(MessageExchange.FailureType.OTHER, errmsg, null);
-    					}
-    				}
-    				
-    				return null;
-    			}
-    		});    		
-    	} catch(Exception ex) {
-    		ex.printStackTrace();
-    	}
-    	
-    }
-
-    
-    private Message createResponseMessage(PartnerRoleMessageExchange partnerRoleMessageExchange, Element invocationResult) {
-    	Document dom = DOMUtils.newDocument();
-        
-        Element contentMessage = dom.createElement("message");
-        Element contentPart = dom.createElement(partnerRoleMessageExchange.getOperation().getOutput().getName());
-        
-        contentPart.appendChild(dom.importNode(invocationResult, true));
-        contentMessage.appendChild(contentPart);
-        dom.appendChild(contentMessage);
-        
-        System.out.println("::result message:: " + DOMUtils.domToString(dom.getDocumentElement()));
-
-		QName id = partnerRoleMessageExchange.getOperation().getOutput().getMessage().getQName();
-		Message response = partnerRoleMessageExchange.createMessage(id);
-		response.setMessage(dom.getDocumentElement());
-                
-        return response;
     }
-}
+ }

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/ODEMessageExchangeContext.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java?rev=651685&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java (added)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java Fri Apr 25 12:20:15 2008
@@ -0,0 +1,54 @@
+/*
+ * 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.tuscany.sca.implementation.bpel.ode;
+
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.iapi.Endpoint;
+import org.apache.ode.bpel.iapi.EndpointReference;
+import org.apache.ode.utils.DOMUtils;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * This should hold something that makes sense for Tuscany so that the
+ * process has an address that makes sense from the outside world perspective
+ * 
+ * @version $Rev$ $Date$
+ */
+public class TuscanyEPR implements EndpointReference {
+    private final QName prcessName;
+    private final Endpoint endpoint;
+    private final Document doc = DOMUtils.newDocument();
+    
+    public TuscanyEPR(QName processName, Endpoint endpoint) {
+        this.prcessName = processName;
+        this.endpoint = endpoint;
+        
+        Element serviceref = doc.createElementNS(EndpointReference.SERVICE_REF_QNAME.getNamespaceURI(),
+                                                 EndpointReference.SERVICE_REF_QNAME.getLocalPart());
+        serviceref.setNodeValue(endpoint.serviceName + ":" + endpoint.portName);
+        doc.appendChild(serviceref);
+    }
+    
+    public Document toXML() {
+        return doc;
+    }
+}

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyEPR.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java?rev=651685&view=auto
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java (added)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java Fri Apr 25 12:20:15 2008
@@ -0,0 +1,71 @@
+/*
+ * 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.tuscany.sca.implementation.bpel.ode;
+
+import javax.wsdl.PortType;
+import javax.xml.namespace.QName;
+
+import org.apache.ode.bpel.iapi.Endpoint;
+import org.apache.ode.bpel.iapi.EndpointReference;
+import org.apache.ode.bpel.iapi.PartnerRoleChannel;
+import org.apache.ode.utils.DOMUtils;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
+/**
+ * Tuscany Partner Role Channel for ODE Integration
+ * 
+ * @version $Rev$ $Date$
+ */
+public class TuscanyPRC implements PartnerRoleChannel {
+    private final QName processName;
+    private final QName pid;
+    private final PortType portType;
+    private final Endpoint endpoint;
+    
+    public TuscanyPRC(QName processName, QName pid, PortType portType, Endpoint endpoint){
+        this.processName = processName;
+        this.pid = pid;
+        this.portType = portType;
+        this.endpoint = endpoint;
+    }
+    
+    public QName getProcessName() {
+        return this.processName;
+    }
+
+    public void close() {
+
+    }
+    
+    public EndpointReference getInitialEndpointReference() {
+        final Document doc = DOMUtils.newDocument();
+        Element serviceref = doc.createElementNS(EndpointReference.SERVICE_REF_QNAME.getNamespaceURI(),
+                                                 EndpointReference.SERVICE_REF_QNAME.getLocalPart());
+        doc.appendChild(serviceref);
+        
+        return new EndpointReference() {
+            public Document toXML() {
+                return doc;
+            }
+        };
+    }
+
+}

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/ode/TuscanyPRC.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProvider.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProvider.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProvider.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProvider.java Fri Apr 25 12:20:15 2008
@@ -23,8 +23,8 @@
 
 import javax.transaction.TransactionManager;
 
-import org.apache.tuscany.sca.assembly.ComponentReference;
-import org.apache.tuscany.sca.databinding.xml.DOMDataBinding;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.tuscany.sca.implementation.bpel.BPELImplementation;
 import org.apache.tuscany.sca.implementation.bpel.ode.EmbeddedODEServer;
 import org.apache.tuscany.sca.implementation.bpel.ode.ODEDeployment;
@@ -36,22 +36,18 @@
 import org.apache.tuscany.sca.runtime.RuntimeComponentService;
 
 /**
- * The model representing a sample CRUD implementation in an SCA assembly model.
- * The sample CRUD implementation is not a full blown implementation, it only
- * supports a subset of what a component implementation can support: - a single
- * fixed service (as opposed to a list of services typed by different
- * interfaces) - a directory attribute used to specify where a CRUD component is
- * going to persist resources - no references or properties - no policy intents
- * or policy sets
+ * BPEL Implementation provider
+ * 
+ * @version $Rev$ $Date$
  */
 public class BPELImplementationProvider implements ImplementationProvider {
-
+    private final Log __log = LogFactory.getLog(getClass());
+    
     private RuntimeComponent component;
-
+    private BPELImplementation implementation;
+    
     private EmbeddedODEServer odeServer;
     private TransactionManager txMgr;
-
-    private BPELImplementation implementation;
     
     /**
      * Constructs a new BPEL Implementation.
@@ -76,7 +72,9 @@
     }
 
     public void start() {
-        System.out.println("Starting " + component.getName());
+        if(__log.isInfoEnabled()) {
+            __log.info("Starting " + component.getName());
+        }
         
         try {
             if (!odeServer.isInitialized()) {
@@ -87,13 +85,16 @@
             URL deployURL = this.implementation.getProcessDefinition().getLocation();
             
             File deploymentDir = new File(deployURL.toURI().getPath()).getParentFile();
-            System.out.println(">>> Deploying : " + deploymentDir.toString());
+            
+            if(__log.isInfoEnabled()) {
+                __log.info(">>> Deploying : " + deploymentDir.toString());
+            }
 
             // deploy the process
             if (odeServer.isInitialized()) {
                 try {
                     txMgr.begin();
-                    odeServer.setTuscanyRuntimeComponent(component.getName(), component);
+                    odeServer.registerTuscanyRuntimeComponent(implementation.getProcess(), component);
                     odeServer.deploy(new ODEDeployment(deploymentDir));
                     txMgr.commit();
                 } catch (Exception e) {
@@ -110,7 +111,9 @@
     }
 
     public void stop() {
-        System.out.println("Stopping " + component.getName());
+        if(__log.isInfoEnabled()) {
+            __log.info("Stopping " + component.getName());
+        }
         
         if (odeServer.isInitialized()) {
             // start ode server
@@ -118,9 +121,10 @@
         }
         
         txMgr = null;
-        
-        System.out.println("Stopped !!!");
 
+        if(__log.isInfoEnabled()) {
+            __log.info("Stopped !!!");
+        }
     }
 
 }

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProviderFactory.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProviderFactory.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProviderFactory.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELImplementationProviderFactory.java Fri Apr 25 12:20:15 2008
@@ -33,6 +33,8 @@
  * BPEL Implementation provider factory
  * 
  * We use the provider factory to instantiate a ODE server that is going to be injected in all BPEL components
+ * 
+ * @version $Rev$ $Date$
  */
 public class BPELImplementationProviderFactory implements ImplementationProviderFactory<BPELImplementation> {
 

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/main/java/org/apache/tuscany/sca/implementation/bpel/provider/BPELInvoker.java Fri Apr 25 12:20:15 2008
@@ -28,6 +28,8 @@
 import javax.wsdl.Service;
 import javax.xml.namespace.QName;
 
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 import org.apache.ode.bpel.iapi.MyRoleMessageExchange;
 import org.apache.ode.bpel.iapi.MessageExchange.Status;
 import org.apache.ode.utils.DOMUtils;
@@ -50,8 +52,12 @@
  * component implementation logic. In this example we are simply delegating the
  * CRUD operation invocations to the corresponding methods on our fake
  * resource manager.
+ * 
+ * @version $Rev$ $Date$
  */
 public class BPELInvoker implements Invoker {
+    protected final Log __log = LogFactory.getLog(getClass());
+    
     private EmbeddedODEServer odeServer;
     private TransactionManager txMgr;
     
@@ -77,6 +83,9 @@
     
     private void initializeInvocation() {
       
+        if(__log.isDebugEnabled()){
+            __log.debug("Initializing BPELInvoker");
+        }
         Interface interfaze = operation.getInterface();
         if(interfaze instanceof WSDLInterface){
             WSDLInterface wsdlInterface = null;
@@ -108,6 +117,10 @@
             throw new InvocationTargetException(null,"Unsupported service contract");
         }
         
+        if(__log.isDebugEnabled()) {
+            __log.debug("Invoking bpel component : " + bpelServiceName + "#" + bpelOperationName);
+        }
+        
         org.apache.ode.bpel.iapi.MyRoleMessageExchange mex = null;
         Future onhold = null;
         
@@ -147,10 +160,12 @@
             mex = (MyRoleMessageExchange)odeServer.getBpelServer().getEngine().getMessageExchange(mex.getMessageExchangeId());
 
             Status status = mex.getStatus();
-            System.out.println("Status: " + status.name());
             Element invocationResponse = mex.getResponse().getMessage();
-            System.out.println("Response: " + DOMUtils.domToString(invocationResponse));
-            
+        
+            if(__log.isDebugEnabled()) {
+                __log.debug("Invocation status:" + status.name());
+                __log.debug("Response:\n" + DOMUtils.domToString(invocationResponse));
+            }
             //process the method invocation result
             response = processResponse(invocationResponse);
             
@@ -192,8 +207,11 @@
         contentMessage.appendChild(contentPart);
         dom.appendChild(contentMessage);
         
-        System.out.println("::arg:::::: " + DOMUtils.domToString((Element) args[0]));
-        System.out.println("::message:: " + DOMUtils.domToString(dom.getDocumentElement()));
+        if(__log.isDebugEnabled()) {
+            __log.debug("Creating invocation message:");
+            __log.debug(">> args.....: " + DOMUtils.domToString((Element) args[0]));
+            __log.debug(">> message..:" + DOMUtils.domToString(dom.getDocumentElement()));
+        }
 
         org.apache.ode.bpel.iapi.Message request = mex.createMessage(new QName("", ""));
         request.setMessage(dom.getDocumentElement());

Propchange: incubator/tuscany/java/sca/modules/implementation-bpel/src/test/java/org/apache/tuscany/sca/implementation/bpel/EmbeddedODEServerTestCase.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Modified: incubator/tuscany/java/sca/modules/implementation-bpel/src/test/resources/log4j.properties
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/implementation-bpel/src/test/resources/log4j.properties?rev=651685&r1=651684&r2=651685&view=diff
==============================================================================
--- incubator/tuscany/java/sca/modules/implementation-bpel/src/test/resources/log4j.properties (original)
+++ incubator/tuscany/java/sca/modules/implementation-bpel/src/test/resources/log4j.properties Fri Apr 25 12:20:15 2008
@@ -26,10 +26,11 @@
 log4j.category.org.apache.ode.bpel.engine=OFF
 log4j.category.org.apache.ode.daohib.bpel.CorrelatorDaoImpl=OFF
 log4j.category.org.apache.ode.bpel.epr=OFF
-log4j.category.org.apache.tuscany.sca.implementation.bpel=DEBUG
-log4j.category.org.apache.tuscany.sca.implementation.bpel.ode=DEBUG
+log4j.category.org.apache.tuscany.sca.implementation.bpel=OFF
+log4j.category.org.apache.tuscany.sca.implementation.bpel.ode=OFF
+log4j.category.org.apache.tuscany.sca.implementation.bpel.provider=OFF
 
 # Console appender
 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
-log4j.appender.CONSOLE.layout.ConversionPattern=%p - %C{1}.%M(%L) | %m%n
+log4j.appender.CONSOLE.layout.ConversionPattern=[%p] - %C{1}.%M(%L) | %m%n