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