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())