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

svn commit: r420016 - in /incubator/ode/scratch/pxe-iapi: axis/ axis/src/main/java/com/fs/pxe/axis/ axis/src/main/java/com/fs/pxe/axis/epr/ axis/src/main/java/com/fs/pxe/axis/hooks/ bpel-api/src/main/java/com/fs/pxe/bpel/epr/ bpel-api/src/main/java/com...

Author: mriou
Date: Fri Jul  7 16:55:07 2006
New Revision: 420016

URL: http://svn.apache.org/viewvc?rev=420016&view=rev
Log:
Partner link assignment (and therefore enpdoint) work for simple URLs and WSDL 1.1 service endpoints. WSA endpoints aren't working yet. Added a method in IAPI EndpointReferenceContext interface to handle the EPR conversion when necessary.

Added:
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/
      - copied from r419390, incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/epr/
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL11Endpoint.java
      - copied, changed from r419925, incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/epr/WSDL11Endpoint.java
Removed:
    incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/epr/
Modified:
    incubator/ode/scratch/pxe-iapi/axis/pom.xml
    incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/AxisInvoker.java
    incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/DeploymentPoller.java
    incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/EndpointReferenceContextImpl.java
    incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/PXEService.java
    incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/hooks/PXEMessageReceiver.java
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/EndpointFactory.java
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/MutableEndpoint.java
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/URLEndpoint.java
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSAEndpoint.java
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL20Endpoint.java
    incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/iapi/EndpointReferenceContext.java
    incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/BpelRuntimeContextImpl.java
    incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/ProcessDDInitializer.java
    incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/runtime/ASSIGN.java
    incubator/ode/scratch/pxe-iapi/jbi/src/main/java/com/fs/pxe/jbi/EndpointReferenceContextImpl.java
    incubator/ode/scratch/pxe-iapi/sp-bpel/src/main/java/com/fs/pxe/bpel/provider/URLEndpointReferenceImpl.java

Modified: incubator/ode/scratch/pxe-iapi/axis/pom.xml
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/axis/pom.xml?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/pom.xml (original)
+++ incubator/ode/scratch/pxe-iapi/axis/pom.xml Fri Jul  7 16:55:07 2006
@@ -36,6 +36,10 @@
       <groupId>pxe</groupId>
       <artifactId>pxe-naming</artifactId>
     </dependency>
+    <dependency>
+      <groupId>pxe</groupId>
+      <artifactId>pxe-bpel-api</artifactId>
+    </dependency>
 
     <dependency>
       <groupId>axis2</groupId>

Modified: incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/AxisInvoker.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/AxisInvoker.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/AxisInvoker.java (original)
+++ incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/AxisInvoker.java Fri Jul  7 16:55:07 2006
@@ -1,9 +1,9 @@
 package com.fs.pxe.axis;
 
-import com.fs.pxe.axis.epr.MutableEndpoint;
 import com.fs.pxe.bpel.iapi.Message;
 import com.fs.pxe.bpel.iapi.MessageExchange;
 import com.fs.pxe.bpel.iapi.PartnerRoleMessageExchange;
+import com.fs.pxe.bpel.epr.MutableEndpoint;
 import com.fs.utils.DOMUtils;
 import org.apache.axiom.om.OMElement;
 import org.apache.axis2.AxisFault;
@@ -67,6 +67,9 @@
           reply = freply.get();
         } catch (Exception e) {
           __log.error("We've been interrupted while waiting for reply to MEX " + pxeMex + "!!!");
+          String errmsg = "Error sending message to Axis2 for PXE mex " + pxeMex;
+          __log.error(errmsg, e);
+          pxeMex.replyWithFailure(MessageExchange.FailureType.COMMUNICATION_ERROR, errmsg, null);
         }
 
         final Message response = pxeMex.createMessage(pxeMex.getOperation().getOutput().getMessage().getQName());

Modified: incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/DeploymentPoller.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/DeploymentPoller.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/DeploymentPoller.java (original)
+++ incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/DeploymentPoller.java Fri Jul  7 16:55:07 2006
@@ -73,6 +73,7 @@
           DeploymentUnit du = new DeploymentUnit(file, _pxeServer);
           _inspectedFiles.add(du);
           du.deploy(!_initDone);
+          __log.info("Deployment of artifact " + file.getName() + " successful.");
         } catch (Exception e) {
           __log.error("Deployment of " + file.getName() + " failed, aborting for now.", e);
         }

Modified: incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/EndpointReferenceContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/EndpointReferenceContextImpl.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/EndpointReferenceContextImpl.java (original)
+++ incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/EndpointReferenceContextImpl.java Fri Jul  7 16:55:07 2006
@@ -1,15 +1,22 @@
 package com.fs.pxe.axis;
 
-import com.fs.pxe.axis.epr.EndpointFactory;
+import com.fs.pxe.bpel.epr.EndpointFactory;
 import com.fs.pxe.bpel.iapi.EndpointReference;
 import com.fs.pxe.bpel.iapi.EndpointReferenceContext;
+import com.fs.utils.DOMUtils;
 import org.w3c.dom.Element;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
 
 public class EndpointReferenceContextImpl implements EndpointReferenceContext {
 
+  private static final Log __log = LogFactory.getLog(EndpointReferenceContextImpl.class);
+
   public EndpointReference resolveEndpointReference(Element element) {
+    if (__log.isDebugEnabled())
+      __log.debug("Resolving endpoint reference " + DOMUtils.domToString(element));
     return EndpointFactory.createEndpoint(element);
   }
 
@@ -20,5 +27,10 @@
 
   public void deactivateEndpoint(EndpointReference endpointReference) {
     // Axis doesn't need any explicit endpoint activation / deactivation
+  }
+
+  public EndpointReference convertEndpoint(QName qName, Element element) {
+    EndpointReference endpoint = EndpointFactory.convert(qName, element);
+    return endpoint;
   }
 }

Modified: incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/PXEService.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/PXEService.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/PXEService.java (original)
+++ incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/PXEService.java Fri Jul  7 16:55:07 2006
@@ -74,9 +74,11 @@
           __log.debug("Invoking PXE using MEX " + pxeMex);
         pxeMex.invoke(pxeRequest);
 
+        boolean timeout = false;
         // Invocation response could be delayed, if so we have to wait for it.
         if (pxeMex.getStatus() == MessageExchange.Status.ASYNC) {
-          pxeMex = callback.getResponse(TIMEOUT);
+          MyRoleMessageExchange tmpMex = callback.getResponse(TIMEOUT);
+          if (tmpMex == null) timeout = true;
         } else {
           // Callback wasn't necessary, cleaning up
           _waitingCallbacks.remove(pxeMex.getMessageExchangeId());
@@ -87,9 +89,12 @@
 
         // Hopefully we have a response
         __log.debug("Handling response for MEX " + pxeMex);
-        onResponse(pxeMex, envelope);
-
-        success = true;
+        if (timeout) {
+          __log.error("Timeout when waiting for response to MEX " + pxeMex);
+        } else {
+          onResponse(pxeMex, envelope);
+          success = true;
+        }
       } else {
         __log.error("PXE MEX " + pxeMex + " was unroutable.");
       }
@@ -104,7 +109,7 @@
           throw new AxisFault("Commit failed!", e);
         }
       } else {
-        __log.debug("Rolling back PXE MEX "  + pxeMex );
+        __log.error("Rolling back PXE MEX "  + pxeMex );
         try {
           _txManager.rollback();
         } catch (Exception e) {
@@ -130,7 +135,7 @@
       case FAULT:
         throw new AxisFault(null, mex.getFault(), null, null, OMUtils.toOM(mex.getFaultResponse().getMessage()));
       case RESPONSE:
-        fillEnvelope(mex.getResponse(), envelope);
+        fillEnvelope(mex, envelope);
         break;
       case FAILURE:
         // TODO: get failure codes out of the message.
@@ -166,10 +171,16 @@
     dest.setMessage(pxemsg);
   }
 
-  private void fillEnvelope(Message resp, SOAPEnvelope envelope) throws AxisFault {
+  private void fillEnvelope(MyRoleMessageExchange mex, SOAPEnvelope envelope) throws AxisFault {
+    Message resp = mex.getResponse();
+    // TODO Handle messages style
+    OMElement responseRoot =
+            envelope.getOMFactory().createOMElement(mex.getOperation().getName() + "Response", null);
+    envelope.getBody().addChild(responseRoot);
+
     Element srcPartEl = DOMUtils.getFirstChildElement(resp.getMessage());
     while (srcPartEl != null) {
-      envelope.getBody().addChild(OMUtils.toOM(srcPartEl));
+      responseRoot.addChild(OMUtils.toOM(srcPartEl));
       srcPartEl = DOMUtils.getNextSiblingElement(srcPartEl);
     }
   }

Modified: incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/hooks/PXEMessageReceiver.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/hooks/PXEMessageReceiver.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/hooks/PXEMessageReceiver.java (original)
+++ incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/hooks/PXEMessageReceiver.java Fri Jul  7 16:55:07 2006
@@ -31,6 +31,11 @@
       MessageContext outMsgContext = Utils.createOutMessageContext(msgContext);
       outMsgContext.getOperationContext().addMessageContext(outMsgContext);
       invokeBusinessLogic(msgContext, outMsgContext);
+      if (__log.isDebugEnabled()) {
+        __log.debug("Reply for " + msgContext.getAxisService().getName() +
+              "." + msgContext.getAxisOperation().getName());
+        __log.debug("Reply message " + outMsgContext.getEnvelope());
+      }
       AxisEngine engine = new AxisEngine(
               msgContext.getOperationContext().getServiceContext().getConfigurationContext());
       engine.send(outMsgContext);

Modified: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/EndpointFactory.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/EndpointFactory.java?rev=420016&r1=419390&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/EndpointFactory.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/EndpointFactory.java Fri Jul  7 16:55:07 2006
@@ -1,16 +1,21 @@
-package com.fs.pxe.axis.epr;
+package com.fs.pxe.bpel.epr;
 
 import com.fs.utils.Namespaces;
-import org.w3c.dom.Node;
+import com.fs.utils.DOMUtils;
+import org.w3c.dom.Element;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
 import java.util.Map;
 
 /**
- * Factory for {@link com.fs.pxe.sfwk.core.ServiceEndpoint} implementations.
+ * Factory for {@link com.fs.pxe.bpel.iapi.EndpointReference} implementations.
  */
 public class EndpointFactory {
 
+  private static final Log __log = LogFactory.getLog(EndpointFactory.class);
+
   private static QName WSDL20_ELMT_QNAME = new QName(Namespaces.WSDL_20, "service");
   private static QName WSDL11_ELMT_QNAME = new QName(Namespaces.WSDL_11, "service");
   private static QName WSA_ELMT_QNAME = new QName(Namespaces.WS_ADDRESSING_NS, "EndpointReference");
@@ -22,12 +27,13 @@
   /**
    * Creates a ServiceEndpoint using the provided Node. The actual endpoint
    * type is detected using the endpoint node (text or element qname).
-   * @param endpointNode
+   * @param endpointElmt
    * @return the new ServiceEndpoint
    */
-  public static MutableEndpoint createEndpoint(Node endpointNode) {
+  public static MutableEndpoint createEndpoint(Element endpointElmt) {
     for (MutableEndpoint endpoint : EndpointFactory.ENDPOINTS) {
-      if (endpoint.accept(endpointNode)) {
+      // Eliminating the service-ref element for accept
+      if (endpoint.accept(endpointElmt)) {
         MutableEndpoint se;
         try {
           se = endpoint.getClass().newInstance();
@@ -36,10 +42,11 @@
         } catch (IllegalAccessException e) {
           throw new RuntimeException(e);
         }
-        se.set(endpointNode);
+        se.set(endpointElmt);
         return se;
       }
     }
+    __log.warn("Couldnt create any endpoint for element " + DOMUtils.domToString(endpointElmt));
     return null;
   }
 
@@ -47,11 +54,11 @@
    * Convert an EPR element into another EPR using the provided target type. The target
    * type is actually the qualified name of the root element for the target EPR (i.e
    * wsa:MutableEndpoint, wsdl:service) or null to convert to a simple URL.
-   * @param sourceEndpoint
    * @param targetElmtType QName to convert to
+   * @param sourceEndpoint
    * @return the converted MutableEndpoint
    */
-  public static MutableEndpoint convert(Node sourceEndpoint, QName targetElmtType) {
+  public static MutableEndpoint convert(QName targetElmtType, Element sourceEndpoint) {
     MutableEndpoint targetEpr;
     MutableEndpoint sourceEpr = EndpointFactory.createEndpoint(sourceEndpoint);
     Map transfoMap = sourceEpr.toMap();
@@ -71,6 +78,11 @@
     }
 
     targetEpr.fromMap(transfoMap);
+    if (__log.isDebugEnabled()) {
+      __log.debug("Converted endpoint to type " + targetElmtType);
+      __log.debug("Source endpoint " + DOMUtils.domToString(sourceEndpoint));
+      __log.debug("Destination endpoint " + DOMUtils.domToString(targetEpr.toXML()));
+    }
     return targetEpr;
   }
 }

Modified: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/MutableEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/MutableEndpoint.java?rev=420016&r1=419390&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/MutableEndpoint.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/MutableEndpoint.java Fri Jul  7 16:55:07 2006
@@ -1,4 +1,4 @@
-package com.fs.pxe.axis.epr;
+package com.fs.pxe.bpel.epr;
 
 import com.fs.pxe.bpel.iapi.EndpointReference;
 import org.w3c.dom.Node;

Modified: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/URLEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/URLEndpoint.java?rev=420016&r1=419390&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/URLEndpoint.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/URLEndpoint.java Fri Jul  7 16:55:07 2006
@@ -1,4 +1,4 @@
-package com.fs.pxe.axis.epr;
+package com.fs.pxe.bpel.epr;
 
 import com.fs.utils.DOMUtils;
 import com.fs.utils.Namespaces;
@@ -34,6 +34,13 @@
       Element elmt = (Element)node;
       if (elmt.getLocalName().equals("address") && elmt.getNamespaceURI().equals(Namespaces.SOAP_NS))
         return true;
+      if (elmt.getLocalName().equals("service-ref") && elmt.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS)) {
+        if (DOMUtils.getFirstChildElement(elmt) == null)
+          return true;
+        elmt = DOMUtils.getFirstChildElement(elmt);
+        if (elmt.getLocalName().equals("address") && elmt.getNamespaceURI().equals(Namespaces.SOAP_NS))
+          return true;
+      }
     }
     return false;
   }
@@ -42,13 +49,23 @@
     if (node.getNodeType() == Node.TEXT_NODE) _url = ((Text)node).getWholeText();
     else if (node.getNodeType() == Node.ELEMENT_NODE) {
       Element elmt = (Element)node;
-      _url = elmt.getAttribute("location");
+      if (elmt.getNamespaceURI().equals(Namespaces.SOAP_NS))
+        _url = elmt.getAttribute("location");
+      else if (elmt.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS)) {
+        if (DOMUtils.getFirstChildElement(elmt) == null)
+          _url = elmt.getTextContent();
+        else {
+          elmt = DOMUtils.getFirstChildElement(elmt);
+          _url = elmt.getAttribute("location");
+        }
+      }
     }
   }
 
   public Document toXML() {
     Document doc = DOMUtils.newDocument();
     Element serviceRef = doc.createElementNS(SERVICE_REF_QNAME.getNamespaceURI(), SERVICE_REF_QNAME.getLocalPart());
+    doc.appendChild(serviceRef);
     Node urlNode = doc.createTextNode(_url);
     serviceRef.appendChild(urlNode);
     return doc;

Modified: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSAEndpoint.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSAEndpoint.java?rev=420016&r1=419390&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSAEndpoint.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSAEndpoint.java Fri Jul  7 16:55:07 2006
@@ -1,4 +1,4 @@
-package com.fs.pxe.axis.epr;
+package com.fs.pxe.bpel.epr;
 
 import com.fs.utils.DOMUtils;
 import com.fs.utils.Namespaces;
@@ -17,21 +17,6 @@
 
   private Element _eprElmt;
 
-  public WSAEndpoint() {
-  }
-
-  public WSAEndpoint(String url, String sessionId) {
-    Document doc = DOMUtils.newDocument();
-    _eprElmt = doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "EndpointReference");
-    Element addrElmt = doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "Address");
-    addrElmt.setTextContent(url);
-    Element sessElmt = doc.createElementNS(Namespaces.INTALIO_SESSION_NS, "identifier");
-    sessElmt.setTextContent(sessionId);
-    _eprElmt.appendChild(addrElmt);
-    _eprElmt.appendChild(sessElmt);
-    doc.appendChild(_eprElmt);
-  }
-
   public String getSessionId() {
     NodeList idNodes = _eprElmt.getElementsByTagNameNS(Namespaces.INTALIO_SESSION_NS, "identifier");
     if (idNodes.getLength() > 0) return idNodes.item(0).getTextContent();
@@ -65,6 +50,8 @@
   public boolean accept(Node node) {
     if (node.getNodeType() == Node.ELEMENT_NODE) {
       Element elmt = (Element)node;
+      if (elmt.getLocalName().equals("service-ref") && elmt.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS))
+        elmt= DOMUtils.getFirstChildElement(elmt);
       if (elmt.getLocalName().equals("EndpointReference") && elmt.getNamespaceURI().equals(Namespaces.WS_ADDRESSING_NS))
         return true;
     }
@@ -79,6 +66,11 @@
   }
 
   public Document toXML() {
+    // Wrapping
+    Document doc = DOMUtils.newDocument();
+    Element serviceRef = doc.createElementNS(Namespaces.WS_BPEL_20_NS, "service-ref");
+    doc.appendChild(serviceRef);
+    serviceRef.appendChild(doc.importNode(_eprElmt, true));
     return _eprElmt.getOwnerDocument();
   }
 
@@ -93,6 +85,7 @@
   public void fromMap(Map eprMap) {
     Document doc = DOMUtils.newDocument();
     Element serviceRef = doc.createElementNS(SERVICE_REF_QNAME.getNamespaceURI(), SERVICE_REF_QNAME.getLocalPart());
+    doc.appendChild(serviceRef);
     _eprElmt = doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "EndpointReference");
     serviceRef.appendChild(_eprElmt);
     Element addrElmt = doc.createElementNS(Namespaces.WS_ADDRESSING_NS, "Address");
@@ -103,6 +96,5 @@
       _eprElmt.appendChild(sessElmt);
     }
     _eprElmt.appendChild(addrElmt);
-    doc.appendChild(_eprElmt);
   }
 }

Copied: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL11Endpoint.java (from r419925, incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/epr/WSDL11Endpoint.java)
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL11Endpoint.java?p2=incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL11Endpoint.java&p1=incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/epr/WSDL11Endpoint.java&r1=419925&r2=420016&rev=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/axis/src/main/java/com/fs/pxe/axis/epr/WSDL11Endpoint.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL11Endpoint.java Fri Jul  7 16:55:07 2006
@@ -1,4 +1,4 @@
-package com.fs.pxe.axis.epr;
+package com.fs.pxe.bpel.epr;
 
 import com.fs.utils.DOMUtils;
 import com.fs.utils.Namespaces;
@@ -29,9 +29,10 @@
   public boolean accept(Node node) {
     if (node.getNodeType() == Node.ELEMENT_NODE) {
       Element elmt = (Element) node;
+      if (elmt.getLocalName().equals("service-ref") && elmt.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS))
+        elmt= DOMUtils.getFirstChildElement(elmt);
       if (elmt.getLocalName().equals("service") && elmt.getNamespaceURI().equals(Namespaces.WSDL_11))
-        if (elmt.getElementsByTagNameNS(Namespaces.SOAP_NS, "address").getLength() > 0)
-          return true;
+        return true;
     }
     return false;
   }
@@ -44,6 +45,11 @@
   }
 
   public Document toXML() {
+    // Wrapping
+    Document doc = DOMUtils.newDocument();
+    Element serviceRef = doc.createElementNS(Namespaces.WS_BPEL_20_NS, "service-ref");
+    doc.appendChild(serviceRef);
+    serviceRef.appendChild(doc.importNode(_serviceElmt, true));
     return _serviceElmt.getOwnerDocument();
   }
 
@@ -60,6 +66,7 @@
   public void fromMap(Map eprMap) {
     Document doc = DOMUtils.newDocument();
     Element serviceRef = doc.createElementNS(SERVICE_REF_QNAME.getNamespaceURI(), SERVICE_REF_QNAME.getLocalPart());
+    doc.appendChild(serviceRef);
     _serviceElmt = doc.createElementNS(Namespaces.WSDL_11, "service");
     serviceRef.appendChild(_serviceElmt);
     if (eprMap.get(SERVICE_QNAME) != null) {

Modified: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL20Endpoint.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL20Endpoint.java?rev=420016&r1=419390&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL20Endpoint.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/epr/WSDL20Endpoint.java Fri Jul  7 16:55:07 2006
@@ -1,4 +1,4 @@
-package com.fs.pxe.axis.epr;
+package com.fs.pxe.bpel.epr;
 
 import com.fs.utils.DOMUtils;
 import com.fs.utils.Namespaces;
@@ -56,9 +56,10 @@
   public boolean accept(Node node) {
     if (node.getNodeType() == Node.ELEMENT_NODE) {
       Element elmt = (Element) node;
+      if (elmt.getLocalName().equals("service-ref") && elmt.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS))
+        elmt= DOMUtils.getFirstChildElement(elmt);
       if (elmt.getLocalName().equals("service") && elmt.getNamespaceURI().equals(Namespaces.WSDL_20))
-        if (_serviceElmt.getElementsByTagNameNS(Namespaces.WSDL_20, "endpoint").getLength() > 0)
-          return true;
+        return true;
     }
     return false;
   }
@@ -71,7 +72,12 @@
   }
 
   public Document toXML() {
-    return _serviceElmt.getOwnerDocument();
+    // Wrapping
+    Document doc = DOMUtils.newDocument();
+    Element serviceRef = doc.createElementNS(Namespaces.WS_BPEL_20_NS, "service-ref");
+    doc.appendChild(serviceRef);
+    serviceRef.appendChild(doc.importNode(_serviceElmt, true));
+    return doc;
   }
 
   public Map toMap() {
@@ -85,6 +91,7 @@
   public void fromMap(Map eprMap) {
     Document doc = DOMUtils.newDocument();
     Element serviceRef = doc.createElementNS(SERVICE_REF_QNAME.getNamespaceURI(), SERVICE_REF_QNAME.getLocalPart());
+    doc.appendChild(serviceRef);
     _serviceElmt = doc.createElementNS(Namespaces.WSDL_20, "service");
     _serviceElmt.setAttribute("name", "");
     _serviceElmt.setAttribute("interface", "");

Modified: incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/iapi/EndpointReferenceContext.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/iapi/EndpointReferenceContext.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/iapi/EndpointReferenceContext.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-api/src/main/java/com/fs/pxe/bpel/iapi/EndpointReferenceContext.java Fri Jul  7 16:55:07 2006
@@ -41,5 +41,13 @@
    * @param epr EPR returned from {@link #activateEndpoint(QName, QName, Element)}
    */
   void deactivateEndpoint(EndpointReference epr);
-  
+
+  /**
+   * Converts an endpoint reference from its XML representation to another
+   * type of endpoint reference.
+   * @param targetType
+   * @param sourceEndpoint
+   * @return converted EndpointReference, being of targetType
+   */
+  EndpointReference convertEndpoint(QName targetType, Element sourceEndpoint);
 }

Modified: incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/BpelRuntimeContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/BpelRuntimeContextImpl.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/BpelRuntimeContextImpl.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/BpelRuntimeContextImpl.java Fri Jul  7 16:55:07 2006
@@ -90,11 +90,11 @@
   private BpelProcess _bpelProcess;
 
   /** Five second maximum for continous execution. */
-  private long _maxReductionTimeMs = 5000;
+  private long _maxReductionTimeMs = 20000;
 
   public BpelRuntimeContextImpl(BpelProcess bpelProcess,
-      ProcessInstanceDAO dao, PROCESS PROCESS,
-      MyRoleMessageExchangeImpl instantiatingMessageExchange) {
+                                ProcessInstanceDAO dao, PROCESS PROCESS,
+                                MyRoleMessageExchangeImpl instantiatingMessageExchange) {
     _bpelProcess = bpelProcess;
     _dao = dao;
     _iid = dao.getInstanceId();
@@ -146,7 +146,7 @@
   }
 
   public boolean isEndpointReferenceInitialized(PartnerLinkInstance pLink,
-      boolean isMyEpr) {
+                                                boolean isMyEpr) {
     ScopeDAO scopeDAO = _dao.getScope(pLink.scopeInstanceId);
     PartnerLinkDAO spl = scopeDAO.getPartnerLink(pLink.partnerLink.getId());
     PartnerLinkDAO ppl = scopeDAO.getProcessInstance().getProcess()
@@ -225,7 +225,7 @@
   }
 
   public void initializePartnerLinks(Long parentScopeId,
-      Collection<OPartnerLink> partnerLinks) {
+                                     Collection<OPartnerLink> partnerLinks) {
 
     if (BpelProcess.__log.isTraceEnabled()) {
       BpelProcess.__log.trace(ObjectPrinter.stringifyMethodEnter(
@@ -240,7 +240,7 @@
   }
 
   public void select(PickResponseChannel pickResponseChannel, Date timeout,
-      boolean createInstance, Selector[] selectors) throws FaultException {
+                     boolean createInstance, Selector[] selectors) throws FaultException {
     if (BpelProcess.__log.isTraceEnabled())
       BpelProcess.__log.trace(ObjectPrinter.stringifyMethodEnter("select",
           new Object[] { "pickResponseChannel", pickResponseChannel, "timeout",
@@ -385,7 +385,7 @@
   }
 
   public Node fetchVariableData(VariableInstance var,
-      OMessageVarType.Part part, boolean forWriting) throws FaultException {
+                                OMessageVarType.Part part, boolean forWriting) throws FaultException {
     Node container = fetchVariableData(var, forWriting);
     OVarType varType = var.declaration.type;
 
@@ -399,7 +399,7 @@
   }
 
   public Element fetchEndpointReferenceData(PartnerLinkInstance pLink,
-      boolean isMyEPR) throws FaultException {
+                                            boolean isMyEPR) throws FaultException {
     ScopeDAO scopeDAO = _dao.getScope(pLink.scopeInstanceId);
     PartnerLinkDAO spl = scopeDAO.getPartnerLink(pLink.partnerLink.getId());
     PartnerLinkDAO ppl = scopeDAO.getProcessInstance().getProcess()
@@ -432,7 +432,7 @@
    *           in case of selection or other fault
    */
   public String readProperty(VariableInstance variable,
-      OProcess.OProperty property) throws FaultException {
+                             OProcess.OProperty property) throws FaultException {
     Node varData = fetchVariableData(variable, false);
 
     OProcess.OPropertyAlias alias = property
@@ -459,7 +459,10 @@
   }
 
   public Element writeEndpointReference(PartnerLinkInstance variable,
-      Element data) throws FaultException {
+                                        Element data) throws FaultException {
+    if (__log.isDebugEnabled())
+      __log.debug("Writing endpoint reference " + variable.partnerLink.getName() +
+              " with value " + DOMUtils.domToString(data));
     ScopeDAO scopeDAO = _dao.getScope(variable.scopeInstanceId);
     PartnerLinkDAO eprDAO = scopeDAO.getPartnerLink(variable.partnerLink
         .getId());
@@ -468,7 +471,7 @@
   }
 
   public String fetchEndpointSessionId(PartnerLinkInstance pLink,
-      boolean isMyEPR) throws FaultException {
+                                       boolean isMyEPR) throws FaultException {
     Element eprElmt = (Element) fetchEndpointReferenceData(pLink, isMyEPR);
     // This is rather ugly as we're assuming that the session identifier is
     // always a direct
@@ -503,7 +506,7 @@
   }
 
   public Element updatePartnerEndpointReference(PartnerLinkInstance variable,
-      Element data) throws FaultException {
+                                                Element data) throws FaultException {
     ScopeDAO scopeDAO = _dao.getScope(variable.scopeInstanceId);
     PartnerLinkDAO eprDAO = scopeDAO.getPartnerLink(variable.partnerLink
         .getId());
@@ -512,15 +515,15 @@
   }
 
   public Node convertEndpointReference(Element sourceNode, Node targetNode) {
-    return sourceNode;
-    // TODO: replace the conversion logic.. where to locate??
-    // if (targetNode.getNodeType() == Node.TEXT_NODE)
-    // return _bpelProcess._context.convertEndpoint(sourceNode, null);
-    // else {
-    // QName nodeQName = new QName(targetNode.getNamespaceURI(), targetNode
-    // .getLocalName());
-    // return _bpelProcess._context.convertEndpoint(sourceNode, nodeQName);
-    // }
+     QName nodeQName;
+     if (targetNode.getNodeType() == Node.TEXT_NODE) {
+       nodeQName = new QName(Namespaces.XML_SCHEMA, "string");
+     } else {
+       // We have an element
+        nodeQName = new QName(targetNode.getNamespaceURI(), targetNode.getLocalName());
+     }
+     return _bpelProcess._engine._contexts.eprContext
+             .convertEndpoint(nodeQName, sourceNode).toXML();
   }
 
   public void commitChanges(VariableInstance variable, Node changes) {
@@ -532,7 +535,7 @@
   }
 
   public void reply(final PartnerLinkInstance plinkInstnace,
-      final String opName, final String mexId, Element msg, String fault)
+                    final String opName, final String mexId, Element msg, String fault)
       throws FaultException {
     String mexRef = _outstandingRequests.release(plinkInstnace, opName, mexId);
 
@@ -581,7 +584,7 @@
    *      com.fs.pxe.bpel.common.CorrelationKey)
    */
   public void writeCorrelation(CorrelationSetInstance cset,
-      CorrelationKey correlation) {
+                               CorrelationKey correlation) {
     ScopeDAO scopeDAO = _dao.getScope(cset.scopeInstance);
     CorrelationSetDAO cs = scopeDAO.getCorrelationSet(cset.declaration.name);
     OScope.CorrelationSet csetdef = (OScope.CorrelationSet) _bpelProcess._oprocess
@@ -613,7 +616,7 @@
    *           DOCUMENTME
    */
   public void initializeCorrelation(CorrelationSetInstance cset,
-      VariableInstance variable) throws FaultException {
+                                    VariableInstance variable) throws FaultException {
     if (BpelProcess.__log.isDebugEnabled()) {
       BpelProcess.__log.debug("Initializing correlation set "
           + cset.declaration.name);
@@ -671,7 +674,7 @@
   }
 
   public String invoke(PartnerLinkInstance partnerLink, Operation operation,
-      Element outgoingMessage, InvokeResponseChannel channel)
+                       Element outgoingMessage, InvokeResponseChannel channel)
       throws FaultException {
     if (BpelProcess.__log.isDebugEnabled()) {
       BpelProcess.__log.debug("invoke activity: partnerLink=" + partnerLink
@@ -721,6 +724,7 @@
       mexDao.setStatus(MessageExchange.Status.REQUEST.toString());
       _bpelProcess._engine._contexts.mexContext.invokePartner(mex);
     } else {
+      __log.error("Couldn't find endpoint for partner EPR " + DOMUtils.domToString(partnerEPR));
       mex.setFailure(FailureType.UNKNOWN_ENDPOINT, "UnknownEndpoint",
           partnerEPR);
     }
@@ -753,7 +757,7 @@
 
   }
 
-  
+
   void execute() {
     long maxTime = System.currentTimeMillis() + _maxReductionTimeMs;
     boolean canReduce = true;
@@ -792,7 +796,7 @@
   }
 
   void inputMsgMatch(final String responsechannel, final int idx,
-      MyRoleMessageExchangeImpl mex) {
+                     MyRoleMessageExchangeImpl mex) {
     // if we have a message match, this instance should be marked
     // active if it isn't already
     if (_dao.getState() == ProcessState.STATE_READY) {
@@ -940,7 +944,7 @@
    * efficient lookup.
    */
   private void writeProperties(VariableInstance variable, Node value,
-      XmlDataDAO dao) {
+                               XmlDataDAO dao) {
     if (variable.declaration.type instanceof OMessageVarType) {
       for (Iterator<OProcess.OProperty> iter = variable.declaration.getOwner().properties
           .iterator(); iter.hasNext();) {

Modified: incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/ProcessDDInitializer.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/ProcessDDInitializer.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/ProcessDDInitializer.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/engine/ProcessDDInitializer.java Fri Jul  7 16:55:07 2006
@@ -5,8 +5,6 @@
 import com.fs.utils.DOMUtils;
 import com.fs.pxe.bpel.o.OProcess;
 import com.fs.pxe.bpel.o.OPartnerLink;
-import com.fs.pxe.bpel.dd.TDeploymentDescriptor;
-import com.fs.pxe.bpel.dd.TRoles;
 import com.fs.pxe.bpel.dao.ProcessDAO;
 import com.fs.pxe.bpel.dao.PartnerLinkDAO;
 import com.fs.pxe.bpel.iapi.BpelEngineException;
@@ -19,7 +17,6 @@
 import org.apache.commons.logging.LogFactory;
 import org.w3c.dom.Element;
 import org.w3c.dom.Document;
-import org.w3c.dom.Text;
 
 import javax.xml.namespace.QName;
 import javax.wsdl.Service;
@@ -82,7 +79,7 @@
           ProcessDDInitializer.__log.error(msg);
           throw new BpelEngineException(msg);
         }
-        eprdao.setMyEPR(epr);
+        eprdao.setMyEPR(createServiceRef(epr));
       }
     }
     if (_dd.getInvokeList().size() > 0) {
@@ -115,7 +112,7 @@
           ProcessDDInitializer.__log.error(msg);
           throw new BpelEngineException(msg);
         }
-        eprdao.setPartnerEPR(epr);
+        eprdao.setPartnerEPR(createServiceRef(epr));
       }
     }
   }
@@ -180,4 +177,26 @@
       newDao.addCorrelator(correlator);
     }
   }
+
+  /**
+   * Create-and-copy a service-ref element.
+   * @param elmt
+   * @return wrapped element
+   */
+  private Element createServiceRef(Element elmt) {
+    Document doc = DOMUtils.newDocument();
+    QName elQName = new QName(elmt.getNamespaceURI(),elmt.getLocalName());
+    // If we get a service-ref, just copy it, otherwise make a service-ref wrapper
+    if (!EndpointReference.SERVICE_REF_QNAME.equals(elQName)) {
+      Element serviceref = doc.createElementNS(EndpointReference.SERVICE_REF_QNAME.getNamespaceURI(),
+          EndpointReference.SERVICE_REF_QNAME.getLocalPart());
+      serviceref.appendChild(doc.importNode(elmt,true));
+      doc.appendChild(serviceref);
+    } else {
+      doc.appendChild(doc.importNode(elmt, true));
+    }
+
+    return doc.getDocumentElement();
+  }
+
 }

Modified: incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/runtime/ASSIGN.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/runtime/ASSIGN.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/runtime/ASSIGN.java (original)
+++ incubator/ode/scratch/pxe-iapi/bpel-runtime/src/main/java/com/fs/pxe/bpel/runtime/ASSIGN.java Fri Jul  7 16:55:07 2006
@@ -139,7 +139,7 @@
 			OAssign.VariableRef varRef = (OAssign.VariableRef) from;
 			Node data = getBpelRuntimeContext().fetchVariableData(
 					_scopeFrame.resolve(varRef.variable), false);
-			retVal = evalQuery(data, varRef.part, varRef.location,
+      retVal = evalQuery(data, varRef.part, varRef.location,
 					getEvaluationContext());
 		} else if (from instanceof OAssign.PropertyRef) {
 			OAssign.PropertyRef propRef = (OAssign.PropertyRef) from;
@@ -361,6 +361,8 @@
         // Sneakily converting the EPR if it's not the format expected by the lvalue
         if (ocopy.from instanceof OAssign.PartnerLinkRef) {
           rvalue = getBpelRuntimeContext().convertEndpointReference((Element)rvalue, lvaluePtr);
+          if (rvalue.getNodeType() == Node.DOCUMENT_NODE)
+            rvalue = ((Document)rvalue).getDocumentElement();
         }
 
         if (rvalue.getNodeType() == Node.ELEMENT_NODE
@@ -373,6 +375,9 @@
 				}
         final VariableInstance lval = _scopeFrame.resolve(ocopy.to
             .getVariable());
+        if (__log.isDebugEnabled())
+          __log.debug("ASSIGN Writing variable" + lval.declaration.name +
+                  " value " + DOMUtils.domToString(lvalue));
         napi.commitChanges(lval, lvalue);
 			}
 		}
@@ -393,7 +398,7 @@
 	}
 
   private void replaceEndpointRefence(PartnerLinkInstance plval, Node rvalue) throws FaultException {
-    // If variable is a simple type, we can get a type wrapper here (like xs:string
+    // If variable is a simple type, we will get a type wrapper here (like xs:string
     // or xs:uri), it's eliminated here.
     if (rvalue.getNamespaceURI() != null && rvalue.getNamespaceURI().equals(Namespaces.XML_SCHEMA)) {
       // Getting a non-empty text node
@@ -405,17 +410,15 @@
       }
     }
 
-    // Eventually eliminating the unnecessary service-ref wrapper
-    if (rvalue.getNodeType() == Node.ELEMENT_NODE) {
-      Element relmt = (Element) rvalue;
-      if (relmt.getNamespaceURI().equals(Namespaces.WS_BPEL_20_NS) && relmt.getLocalName().equals("service-ref"))
-        rvalue = DOMUtils.getFirstChildElement(relmt);
+    // Eventually wrapping with service-ref element if we've been directly assigned some
+    // value that isn't wrapped.
+    if (rvalue.getNodeType() == Node.TEXT_NODE ||
+            (rvalue.getNodeType() == Node.ELEMENT_NODE && !rvalue.getLocalName().equals("service-ref"))) {
+      Document doc = DOMUtils.newDocument();
+      Element serviceRef = doc.createElementNS(Namespaces.WS_BPEL_20_NS, "service-ref");
+      serviceRef.appendChild(doc.importNode(rvalue, true));
+      rvalue = serviceRef;
     }
-
-    // TODO: replace
-//    if (!getBpelRuntimeContext().isEndpointValid(rvalue))
-//      throw new FaultException(getOAsssign().getOwner().constants.qnSelectionFailure,
-//          "The assigned node doesn't look like a correct endpoint reference supported for partnerLink assignment.");
 
     getBpelRuntimeContext().writeEndpointReference(plval, (Element)rvalue);
 	}

Modified: incubator/ode/scratch/pxe-iapi/jbi/src/main/java/com/fs/pxe/jbi/EndpointReferenceContextImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/jbi/src/main/java/com/fs/pxe/jbi/EndpointReferenceContextImpl.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/jbi/src/main/java/com/fs/pxe/jbi/EndpointReferenceContextImpl.java (original)
+++ incubator/ode/scratch/pxe-iapi/jbi/src/main/java/com/fs/pxe/jbi/EndpointReferenceContextImpl.java Fri Jul  7 16:55:07 2006
@@ -13,6 +13,7 @@
 import com.fs.pxe.bpel.iapi.ContextException;
 import com.fs.pxe.bpel.iapi.EndpointReference;
 import com.fs.pxe.bpel.iapi.EndpointReferenceContext;
+import com.fs.pxe.bpel.epr.EndpointFactory;
 import com.fs.utils.DOMUtils;
 
 /**
@@ -79,5 +80,9 @@
     }
   }
 
-  
+  public EndpointReference convertEndpoint(QName qName, Element element) {
+    EndpointReference endpoint = EndpointFactory.convert(qName, element);
+    // Forcing JBI lookup
+    return resolveEndpointReference(endpoint.toXML().getDocumentElement());
+  }
 }

Modified: incubator/ode/scratch/pxe-iapi/sp-bpel/src/main/java/com/fs/pxe/bpel/provider/URLEndpointReferenceImpl.java
URL: http://svn.apache.org/viewvc/incubator/ode/scratch/pxe-iapi/sp-bpel/src/main/java/com/fs/pxe/bpel/provider/URLEndpointReferenceImpl.java?rev=420016&r1=420015&r2=420016&view=diff
==============================================================================
--- incubator/ode/scratch/pxe-iapi/sp-bpel/src/main/java/com/fs/pxe/bpel/provider/URLEndpointReferenceImpl.java (original)
+++ incubator/ode/scratch/pxe-iapi/sp-bpel/src/main/java/com/fs/pxe/bpel/provider/URLEndpointReferenceImpl.java Fri Jul  7 16:55:07 2006
@@ -42,6 +42,7 @@
     Document doc = DOMUtils.newDocument();
     Element serviceRef =
             doc.createElementNS(SERVICE_REF_QNAME.getNamespaceURI(), SERVICE_REF_QNAME.getLocalPart());
+    doc.appendChild(serviceRef);
     Element soapAddress = doc.createElementNS(SOAP_ADDR_EL.getNamespaceURI(), SOAP_ADDR_EL.getLocalPart());
     soapAddress.setAttribute("location", _url.toExternalForm());
     doc.appendChild(serviceRef);