You are viewing a plain text version of this content. The canonical link for it is here.
Posted to kandula-dev@ws.apache.org by da...@apache.org on 2006/01/07 06:36:51 UTC

svn commit: r366675 - in /webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility: AddressingHeaders.java Callback.java CallbackRegistry.java EndpointReferenceFactory.java Service.java SoapFaultSender.java

Author: dasarath
Date: Fri Jan  6 21:36:49 2006
New Revision: 366675

URL: http://svn.apache.org/viewcvs?rev=366675&view=rev
Log: (empty)

Added:
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/AddressingHeaders.java
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/SoapFaultSender.java
Removed:
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Callback.java
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/CallbackRegistry.java
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/EndpointReferenceFactory.java
Modified:
    webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java

Added: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/AddressingHeaders.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/AddressingHeaders.java?rev=366675&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/AddressingHeaders.java (added)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/AddressingHeaders.java Fri Jan  6 21:36:49 2006
@@ -0,0 +1,51 @@
+/*
+ * Created on Jan 6, 2006
+ *
+ */
+package org.apache.ws.transaction.utility;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.axis.components.uuid.UUIDGenFactory;
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.axis.message.addressing.MessageID;
+import org.apache.axis.message.addressing.RelatesTo;
+import org.apache.axis.message.addressing.RelationshipTypeValues;
+import org.apache.axis.types.URI;
+import org.apache.axis.types.URI.MalformedURIException;
+
+/**
+ * @author Dasarath Weeratunge
+ *  
+ */
+public class AddressingHeaders extends
+		org.apache.axis.message.addressing.AddressingHeaders {
+
+	public AddressingHeaders(EndpointReference to, EndpointReference from) {
+		super(to);
+		MessageID id;
+		try {
+			id = new MessageID(new URI("uuid:"
+					+ UUIDGenFactory.getUUIDGen().nextUUID()));
+		} catch (MalformedURIException e) {
+			e.printStackTrace();
+			throw new RuntimeException(e);
+		}
+		setMessageID(id);
+		if (from != null)
+			setFrom(from);
+	}
+
+	public AddressingHeaders(EndpointReference to, EndpointReference from,
+			EndpointReference replyTo) {
+		this(to, from);
+		setReplyTo(replyTo);
+	}
+
+	public void setRelatesTo(MessageID id) {
+		List l = new ArrayList(1);
+		l.add(new RelatesTo(id, RelationshipTypeValues.RESPONSE));
+		setRelatesTo(l);
+	}
+}
\ No newline at end of file

Modified: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java?rev=366675&r1=366674&r2=366675&view=diff
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java (original)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/Service.java Fri Jan  6 21:36:49 2006
@@ -16,64 +16,68 @@
  */
 package org.apache.ws.transaction.utility;
 
-import java.util.ArrayList;
-import java.util.List;
-
 import javax.xml.namespace.QName;
 import javax.xml.rpc.Call;
 import javax.xml.rpc.ServiceException;
 
-import org.apache.axis.components.uuid.UUIDGenFactory;
-import org.apache.axis.message.MessageElement;
 import org.apache.axis.message.addressing.AddressingHeaders;
 import org.apache.axis.message.addressing.Constants;
-import org.apache.axis.message.addressing.EndpointReference;
-import org.apache.axis.message.addressing.MessageID;
-import org.apache.axis.message.addressing.RelatesTo;
-import org.apache.axis.message.addressing.RelationshipTypeValues;
-import org.apache.axis.types.URI;
-import org.apache.axis.types.URI.MalformedURIException;
 
 public class Service extends org.apache.axis.client.Service {
 	AddressingHeaders headers;
 
-	Object callback;
+	//	Callback callback;
 
-	public Service(EndpointReference epr) {
-		headers = new AddressingHeaders(epr);
-	}
-	
-	public Service(EndpointReference epr, EndpointReference replyTo) {
-		headers = new AddressingHeaders(epr);
-		headers.setReplyTo(replyTo);
-	}
-	
-	public void setCallback(Object callback) {
-		this.callback = callback;
+	public Service() {
 	}
-	
-	public void setRelatesTo(MessageID id){
-		List l = new ArrayList(1);
-		l.add(new RelatesTo(id, RelationshipTypeValues.RESPONSE));
-		headers.setRelatesTo(l);
+
+	//	public Service(EndpointReference to) {
+	//		headers = new AddressingHeaders(to);
+	//	}
+	//
+	//	public Service(EndpointReference to, Callback callback) {
+	//		headers = new AddressingHeaders(to);
+	//		setCallback(callback);
+	//	}
+	//
+	//	public Service(EndpointReference to, EndpointReference replyTo,
+	//			Callback callback) {
+	//		headers = new AddressingHeaders(to);
+	//		headers.setReplyTo(replyTo);
+	//	}
+	//
+	//	public void setCallback(Callback callback) {
+	//		this.callback = callback;
+	//		CoordinationService cs = CoordinationService.getInstance();
+	//		headers.setFaultTo(cs.getFaultDispatcherService(callback));
+	//	}
+	//
+	//	public void setRelatesTo(MessageID id) {
+	//		List l = new ArrayList(1);
+	//		l.add(new RelatesTo(id, RelationshipTypeValues.RESPONSE));
+	//		headers.setRelatesTo(l);
+	//	}
+
+	public void setAddressingHeaders(AddressingHeaders headers) {
+		this.headers = headers;
 	}
-	
+
 	public Call createCall() throws ServiceException {
 		Call call = super.createCall();
-		if (callback != null) {
-			try {
-				MessageID id = new MessageID(new URI("uuid:"
-						+ UUIDGenFactory.getUUIDGen().nextUUID()));
-				headers.setMessageID(id);
-				String ref = id.toString();
-				CallbackRegistry.getInstance().registerCallback(ref, callback);
-				MessageElement e = new MessageElement(
-						CallbackRegistry.CALLBACK_REF, ref);
-				headers.getReplyTo().getProperties().add(e);
-			} catch (MalformedURIException e) {
-				throw new ServiceException(e.getMessage());
-			}
-		}
+		//		if (callback != null) {
+		//			try {
+		//				MessageID id = new MessageID(new URI("uuid:"
+		//						+ UUIDGenFactory.getUUIDGen().nextUUID()));
+		//				headers.setMessageID(id);
+		//				String ref = id.toString();
+		//				CallbackRegistry.getInstance().registerCallback(ref, callback);
+		//				MessageElement e = new MessageElement(
+		//						CallbackRegistry.CALLBACK_REF, ref);
+		//				headers.getReplyTo().getProperties().add(e);
+		//			} catch (MalformedURIException e) {
+		//				throw new ServiceException(e.getMessage());
+		//			}
+		//		}
 		call.setProperty(Constants.ENV_ADDRESSING_REQUEST_HEADERS, headers);
 		return call;
 	}

Added: webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/SoapFaultSender.java
URL: http://svn.apache.org/viewcvs/webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/SoapFaultSender.java?rev=366675&view=auto
==============================================================================
--- webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/SoapFaultSender.java (added)
+++ webservices/kandula/branches/Kandula_1/src/java/org/apache/ws/transaction/utility/SoapFaultSender.java Fri Jan  6 21:36:49 2006
@@ -0,0 +1,60 @@
+/*
+ * Created on Jan 3, 2006
+ *
+ */
+package org.apache.ws.transaction.utility;
+
+import java.net.MalformedURLException;
+
+import javax.xml.rpc.ServiceException;
+
+import org.apache.axis.AxisFault;
+import org.apache.axis.MessageContext;
+import org.apache.axis.client.Call;
+import org.apache.axis.message.SOAPEnvelope;
+import org.apache.axis.message.SOAPFault;
+import org.apache.axis.message.addressing.Constants;
+import org.apache.axis.message.addressing.EndpointReference;
+import org.apache.axis.message.addressing.MessageID;
+import org.apache.axis.soap.SOAPConstants;
+
+/**
+ * @author Dasarath Weeratunge
+ *  
+ */
+public class SoapFaultSender {
+
+	private static MessageID getCurrentMessageID() {
+		org.apache.axis.message.addressing.AddressingHeaders headers = (org.apache.axis.message.addressing.AddressingHeaders) MessageContext.getCurrentContext().getProperty(
+			Constants.ENV_ADDRESSING_REQUEST_HEADERS);
+		return headers.getMessageID();
+	}
+
+	public static void invoke(EndpointReference faultTo, String action,
+			AxisFault fault) throws AxisFault, MalformedURLException,
+			ServiceException {
+		if (faultTo == null)
+			throw fault;
+
+		AddressingHeaders headers = new AddressingHeaders(faultTo, null);
+		headers.setRelatesTo(getCurrentMessageID());
+		Service service = new Service();
+		service.setAddressingHeaders(headers);
+		Call call = (Call) service.createCall();
+		call.setTargetEndpointAddress(TCPSnifferHelper.redirect(faultTo.getAddress().toString()));
+		call.setSOAPActionURI(action);
+
+		SOAPEnvelope env = new SOAPEnvelope();
+		SOAPFault faultElement = new SOAPFault(fault);
+		env.addBodyElement(faultElement);
+		// FIXME:
+		faultElement.setQName(SOAPConstants.SOAP11_CONSTANTS.getFaultQName());
+		// FIXME:
+		fault.setFaultDetail(null);
+
+		try {
+			call.invoke(env);
+		} catch (Exception e) {
+		}
+	}
+}
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: kandula-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: kandula-dev-help@ws.apache.org