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);
         }
  
   }
  
  
  

Reply via email to