You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by gd...@apache.org on 2002/01/03 18:12:36 UTC

cvs commit: xml-axis/java/src/org/apache/axis/message SOAPEnvelope.java

gdaniels    02/01/03 09:12:36

  Modified:    java/src/org/apache/axis AxisEngine.java Constants.java
               java/src/org/apache/axis/handlers/soap SOAPService.java
               java/src/org/apache/axis/message SOAPEnvelope.java
  Log:
  First round of changes for actor attribute support.
  
  Revision  Changes    Path
  1.63      +22 -1     xml-axis/java/src/org/apache/axis/AxisEngine.java
  
  Index: AxisEngine.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/AxisEngine.java,v
  retrieving revision 1.62
  retrieving revision 1.63
  diff -u -r1.62 -r1.63
  --- AxisEngine.java	23 Dec 2001 14:52:36 -0000	1.62
  +++ AxisEngine.java	3 Jan 2002 17:12:36 -0000	1.63
  @@ -74,6 +74,7 @@
   
   import javax.xml.rpc.namespace.QName;
   import java.util.Hashtable;
  +import java.util.ArrayList;
   import java.beans.IntrospectionException;
   
   /**
  @@ -98,7 +99,7 @@
       public static final String PROP_SEND_XSI = "sendXsiTypes";
   
       /** Our go-to guy for configuration... */
  -    protected ConfigurationProvider configProvider;
  +    protected transient ConfigurationProvider configProvider;
   
       protected DeploymentRegistry myRegistry =
               new SimpleWsddDeploymentManager();
  @@ -119,6 +120,11 @@
       private Session session = new SimpleSession();
       
       protected WSDDGlobalConfiguration myGlobalConfig = null;
  +    
  +    /**
  +     * What actor URIs hold for the entire engine?
  +     */ 
  +    private ArrayList actorURIs = new ArrayList();
   
       /**
        * Thread local storage used for locating the active message context.
  @@ -281,6 +287,21 @@
                   h = respFlow.getInstance(myRegistry);
           }
           return h;
  +    }
  +    
  +    public ArrayList getActorURIs()
  +    {
  +        return actorURIs;
  +    }
  +    
  +    public void addActorURI(String uri)
  +    {
  +        actorURIs.add(uri);
  +    }
  +    
  +    public void removeActorURI(String uri)
  +    {
  +        actorURIs.remove(uri);
       }
   
       /*********************************************************************
  
  
  
  1.45      +4 -0      xml-axis/java/src/org/apache/axis/Constants.java
  
  Index: Constants.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Constants.java,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- Constants.java	31 Dec 2001 18:31:41 -0000	1.44
  +++ Constants.java	3 Jan 2002 17:12:36 -0000	1.45
  @@ -301,6 +301,10 @@
       public static final String ATTR_ARRAY_TYPE      = "arrayType";
       public static final String ATTR_OFFSET          = "offset";
       public static final String ATTR_POSITION        = "position";
  +    
  +    // Well-known actor values
  +    public static final String ACTOR_NEXT = 
  +            "http://schemas.xmlsoap.org/soap/actor/next";
   
       // Fault Codes
       //////////////////////////////////////////////////////////////////////////
  
  
  
  1.39      +5 -0      xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java
  
  Index: SOAPService.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/soap/SOAPService.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- SOAPService.java	23 Dec 2001 12:33:32 -0000	1.38
  +++ SOAPService.java	3 Jan 2002 17:12:36 -0000	1.39
  @@ -76,6 +76,7 @@
   import javax.xml.rpc.namespace.QName;
   import java.util.Enumeration;
   import java.util.Vector;
  +import java.util.ArrayList;
   import java.beans.IntrospectionException;
   
   /** A <code>SOAPService</code> is a Handler which encapsulates a SOAP
  @@ -196,6 +197,10 @@
           if (category.isDebugEnabled()) {
               category.debug( JavaUtils.getMessage("semanticCheck00"));
           }
  +        
  +        // This needs to be set to the merged list of service-specific and
  +        // enigne-wide actors we should be acting as.
  +        ArrayList actors = null;
           
           // 1. Check mustUnderstands
           SOAPEnvelope env = msgContext.getRequestMessage().getSOAPEnvelope();
  
  
  
  1.47      +19 -0     xml-axis/java/src/org/apache/axis/message/SOAPEnvelope.java
  
  Index: SOAPEnvelope.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPEnvelope.java,v
  retrieving revision 1.46
  retrieving revision 1.47
  diff -u -r1.46 -r1.47
  --- SOAPEnvelope.java	12 Nov 2001 18:06:04 -0000	1.46
  +++ SOAPEnvelope.java	3 Jan 2002 17:12:36 -0000	1.47
  @@ -169,6 +169,25 @@
           return headers;
       }
       
  +    /**
  +     * Get all the headers targeted at a list of actors.
  +     */ 
  +    public Vector getHeadersByActor(ArrayList actors)
  +    {
  +        Vector results = new Vector();
  +        Iterator i = headers.iterator();
  +        while (i.hasNext()) {
  +            SOAPHeader header = (SOAPHeader)i.next();
  +            // Always process NEXT's, and then anything else in our list
  +            if (Constants.ACTOR_NEXT.equals(header.getActor()) || 
  +                (actors != null && actors.contains(header.getActor()))) {
  +                results.add(header);
  +            }
  +        }
  +        
  +        return results;
  +    }
  +    
       public void addHeader(SOAPHeader header)
       {
           if (category.isDebugEnabled())