jaliya 2005/02/14 04:08:55
Modified: sandesha/src/org/apache/sandesha/server FaultProcessor.java
Added: sandesha/src/org/apache/sandesha/server
MessageValidator.java
Log:
MessageValidator and the FaultProcessor was modified
Revision Changes Path
1.6 +21 -1
ws-fx/sandesha/src/org/apache/sandesha/server/FaultProcessor.java
Index: FaultProcessor.java
===================================================================
RCS file:
/home/cvs/ws-fx/sandesha/src/org/apache/sandesha/server/FaultProcessor.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- FaultProcessor.java 11 Feb 2005 11:28:27 -0000 1.5
+++ FaultProcessor.java 14 Feb 2005 12:08:54 -0000 1.6
@@ -10,6 +10,7 @@
import org.apache.sandesha.RMException;
import org.apache.sandesha.RMMessageContext;
import org.apache.axis.AxisFault;
+import org.apache.axis.message.SOAPFault;
/**
* @author JEkanayake
@@ -30,13 +31,32 @@
this.axisFault=axisFault;
}
+ public IStorageManager getStorageManager() {
+ return storageManager;
+ }
+
+ public void setStorageManager(IStorageManager storageManager) {
+ this.storageManager = storageManager;
+ }
+
/*
* (non-Javadoc)
*
* @see
org.apache.sandesha.server.IRMMessageProcessor#processMessage(org.apache.sandesha.RMMessageContext)
*/
public boolean processMessage(RMMessageContext rmMessageContext)
throws RMException {
- // TODO Auto-generated method stub
+
+ //Check the fault type.
+ //Create the fault envelop
+ //identify the target endpoin i.e whether async or sync
+ //if sync, rmMessageContext.getmsgctx.setresopnes(new msg(fault));
+ //return true
+ //else inset to the storage
+ //return false
+
+ SOAPFault soapFault= new SOAPFault(this.axisFault);
+
+
//If we have an actual fault then process and return
System.out.println("ERROR: FAULT PROCESSOR ....");
return false;
1.1
ws-fx/sandesha/src/org/apache/sandesha/server/MessageValidator.java
Index: MessageValidator.java
===================================================================
package org.apache.sandesha.server;
import org.apache.axis.message.addressing.AddressingHeaders;
import org.apache.axis.MessageContext;
import org.apache.axis.AxisFault;
import org.apache.sandesha.ws.rm.RMHeaders;
import org.apache.sandesha.Constants;
import org.apache.sandesha.RMMessageContext;
import javax.xml.soap.SOAPException;
import javax.xml.namespace.QName;
public final class MessageValidator {
public static void validate(final RMMessageContext rmMsgContext) throws
AxisFault {
MessageContext msgContext = rmMsgContext.getMsgContext();
try {
AddressingHeaders addrHeaders = (AddressingHeaders)
msgContext.getProperty(org.apache.axis.message.addressing.Constants.ENV_ADDRESSING_REQUEST_HEADERS);
validateAddrHeaders(addrHeaders);
rmMsgContext.setAddressingHeaders(addrHeaders);
RMHeaders rmHeaders = new RMHeaders();
rmHeaders.fromSOAPEnvelope(msgContext.getRequestMessage().getSOAPEnvelope());
validateRMHeaders(rmHeaders);
rmMsgContext.setRMHeaders(rmHeaders);
} catch (SOAPException e) {
e.printStackTrace();
}
}
private static void validateRMHeaders(RMHeaders rmHeaders) throws
AxisFault {
//Check for Fault scenarios
}
private static void validateAddrHeaders(AddressingHeaders addrHeaders)
throws AxisFault {
if (addrHeaders == null){
throw new AxisFault(new
QName(Constants.InvalidMessageErrors.IN_CORRECT_MESSAGE),Constants.AddressingHeadersValidationErrors.NO_ADDRESSING_HEADERS,
null,null);
}
if (addrHeaders.getMessageID() == null)
throw new
AxisFault(Constants.AddressingHeadersValidationErrors.NO_MESSAGE_ID);
}
}