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 du...@apache.org on 2001/03/21 02:17:26 UTC
cvs commit: xml-axis/java/src/org/apache/axis/message RPCArg.java RPCBody.java SOAPBody.java SOAPEnvelope.java SOAPHeader.java
dug 01/03/20 17:17:25
Modified: java/samples/stock undeploy.xml
java/src/org/apache/axis AxisFault.java Message.java
java/src/org/apache/axis/client HTTPMessage.java
java/src/org/apache/axis/handlers DebugHandler.java
MsgDispatchHandler.java
java/src/org/apache/axis/message RPCArg.java RPCBody.java
SOAPBody.java SOAPEnvelope.java SOAPHeader.java
Log:
Renamed some getAsXXX method to getElement and getDocument
Added a getAsDOMElement method to SOAPHeader and SOAPEnvelope to allow
people to use w3c dom stuff
Redesigned SOAPHeader so that the entire Header is returned as a single
element instead of trying to parse it - which makes more sense since they
could technically have data in the Header element itself.
Revision Changes Path
1.2 +0 -1 xml-axis/java/samples/stock/undeploy.xml
Index: undeploy.xml
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/stock/undeploy.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- undeploy.xml 2001/02/09 12:41:54 1.1
+++ undeploy.xml 2001/03/21 01:17:02 1.2
@@ -8,7 +8,6 @@
<!-- This file will be replaced by WSDD once it's ready -->
<undeploy>
- <handler name="debug" />
<handler name="authen" />
<handler name="author" />
<chain name="checks" />
1.11 +1 -1 xml-axis/java/src/org/apache/axis/AxisFault.java
Index: AxisFault.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/AxisFault.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- AxisFault.java 2001/03/02 20:02:48 1.10
+++ AxisFault.java 2001/03/21 01:17:07 1.11
@@ -132,7 +132,7 @@
return( (Element[]) faultDetails.toArray() );
}
- public Element getAsXML() {
+ public Element getElement() {
Element elem, root ;
int i ;
1.14 +3 -3 xml-axis/java/src/org/apache/axis/Message.java
Index: Message.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/Message.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- Message.java 2001/03/13 06:46:18 1.13
+++ Message.java 2001/03/21 01:17:08 1.14
@@ -256,17 +256,17 @@
else if ( currentForm.equals("AxisFault") ) {
AxisFault fault = (AxisFault) currentMessage ;
SOAPEnvelope env = new SOAPEnvelope();
- SOAPBody body = new SOAPBody( fault.getAsXML() );
+ SOAPBody body = new SOAPBody( fault.getElement() );
env.addBody( body );
- setCurrentMessage( env.getAsXML(), "Document" );
+ setCurrentMessage( env.getDocument(), "Document" );
Debug.Print( 2, "Exit: Message::getAsDocument" );
return( (Document) currentMessage );
}
else if ( currentForm.equals("SOAPEnvelope") ) {
SOAPEnvelope env = (SOAPEnvelope) currentMessage ;
- setCurrentMessage( env.getAsXML(), "Document" );
+ setCurrentMessage( env.getDocument(), "Document" );
Debug.Print( 2, "Exit: Message::getAsDocument" );
return( (Document) currentMessage );
}
1.20 +5 -7 xml-axis/java/src/org/apache/axis/client/HTTPMessage.java
Index: HTTPMessage.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/HTTPMessage.java,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -r1.19 -r1.20
--- HTTPMessage.java 2001/03/15 01:53:32 1.19
+++ HTTPMessage.java 2001/03/21 01:17:12 1.20
@@ -198,13 +198,11 @@
msgContext.setProperty(MessageContext.TRANS_OUTPUT, "HTTP.output" );
}
- if ( false ) { // Debug.getDebugLevel() > 0 ) {
- SOAPHeader header = new SOAPHeader();
- header.setPrefix("d");
- header.setName("Debug");
- header.setNamespaceURI( Constants.URI_DEBUG );
+ if ( Debug.getDebugLevel() > 0 ) {
+ Element elem = new Element( "Debug", "d", Constants.URI_DEBUG );
+ elem.addContent( "" + Debug.getDebugLevel() );
+ SOAPHeader header = new SOAPHeader(elem);
header.setActor( Constants.URI_NEXT_ACTOR );
- header.addDataNode( "" + Debug.getDebugLevel() );
reqEnv.addHeader( header );
}
@@ -229,7 +227,7 @@
Message resMsg = msgContext.getResponseMessage();
SOAPEnvelope resEnv = (SOAPEnvelope) resMsg.getAs( "SOAPEnvelope" );
SOAPBody resBody = resEnv.getFirstBody();
- Document doc = new Document( resBody.getAsXML() );
+ Document doc = new Document( resBody.getRoot() );
mc.setResponseMessage( new Message(doc, "Document") );
1.7 +3 -2 xml-axis/java/src/org/apache/axis/handlers/DebugHandler.java
Index: DebugHandler.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/DebugHandler.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DebugHandler.java 2001/03/02 20:03:25 1.6
+++ DebugHandler.java 2001/03/21 01:17:15 1.7
@@ -75,11 +75,12 @@
SOAPEnvelope env = (SOAPEnvelope) msg.getAs( "SOAPEnvelope" );
Vector headers = null ;
- headers = env.getHeadersByURI( Constants.URI_DEBUG );
+ headers = env.getHeadersByNameAndURI("Debug", Constants.URI_DEBUG);
for ( int i = 0 ; headers != null && i < headers.size() ; i ++ ) {
SOAPHeader header = (SOAPHeader) headers.get(i);
- String value = (String) header.getDataAtIndex( 0 );
+ Element root = header.getRoot();
+ String value = root.getText();
if ( value != null ) {
int debugVal = Integer.parseInt( value );
Debug.Print( 1, "Setting debug level to: " + debugVal );
1.12 +1 -1 xml-axis/java/src/org/apache/axis/handlers/MsgDispatchHandler.java
Index: MsgDispatchHandler.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/handlers/MsgDispatchHandler.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- MsgDispatchHandler.java 2001/03/15 01:53:32 1.11
+++ MsgDispatchHandler.java 2001/03/21 01:17:15 1.12
@@ -104,7 +104,7 @@
new SOAPEnvelope() :
(SOAPEnvelope)resMsg.getAs("SOAPEnvelope");
- Document doc = new Document( reqBody.getAsXML() );
+ Document doc = new Document( reqBody.getRoot() );
/* If no methodName was specified during deployment then get it */
/* from the root of the Body element */
1.10 +1 -1 xml-axis/java/src/org/apache/axis/message/RPCArg.java
Index: RPCArg.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCArg.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- RPCArg.java 2001/03/15 01:53:33 1.9
+++ RPCArg.java 2001/03/21 01:17:19 1.10
@@ -123,7 +123,7 @@
}
public void setType(String str) { type = str ; }
- public Element getAsXML() {
+ public Element getElement() {
Element root ;
if ( prefix != null )
1.12 +3 -3 xml-axis/java/src/org/apache/axis/message/RPCBody.java
Index: RPCBody.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCBody.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- RPCBody.java 2001/03/13 06:46:19 1.11
+++ RPCBody.java 2001/03/21 01:17:19 1.12
@@ -134,7 +134,7 @@
}
}
- public Element getAsXML() {
+ public Element getElement() {
Element root ;
if ( prefix != null )
@@ -143,13 +143,13 @@
root = new Element( methodName );
for ( int i = 0 ; args != null && i < args.size() ; i++ ) {
RPCArg arg = (RPCArg) args.get(i) ;
- root.addContent( arg.getAsXML() );
+ root.addContent( arg.getElement() );
}
return( root );
}
public SOAPBody getAsSOAPBody() {
- return( new SOAPBody( getAsXML() ) );
+ return( new SOAPBody( getElement() ) );
}
};
1.12 +11 -2 xml-axis/java/src/org/apache/axis/message/SOAPBody.java
Index: SOAPBody.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPBody.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SOAPBody.java 2001/03/15 01:53:33 1.11
+++ SOAPBody.java 2001/03/21 01:17:20 1.12
@@ -59,6 +59,7 @@
import java.util.* ;
import org.jdom.* ;
+import org.apache.axis.AxisFault ;
import org.apache.axis.message.* ;
/**
@@ -91,8 +92,16 @@
this.root = r ;
}
- public Element getAsXML() {
- return( root );
+ public org.w3c.dom.Element getAsDOMElement() throws AxisFault {
+ if ( root == null ) return( null );
+ try {
+ org.jdom.output.DOMOutputter outputter = null ;
+ outputter = new org.jdom.output.DOMOutputter();
+ return( outputter.output( root ) );
+ }
+ catch( Exception e ) {
+ throw new AxisFault( e );
+ }
}
};
1.14 +21 -3 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.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- SOAPEnvelope.java 2001/03/15 01:53:33 1.13
+++ SOAPEnvelope.java 2001/03/21 01:17:20 1.14
@@ -137,6 +137,24 @@
return( headers );
}
+ public Vector getHeadersByNameAndURI(String name, String URI) {
+ Vector tmpList = null ;
+ /* If URI is null then they asked for the entire list */
+ /******************************************************/
+ if ( URI == null ) return( headers );
+ if ( headers == null ) return( null );
+
+ for ( int i = 0 ; i < headers.size(); i++ ) {
+ SOAPHeader header = (SOAPHeader) headers.elementAt(i);
+ if ( URI.equals( header.getNamespaceURI() ) &&
+ name.equals( header.getName()) ) {
+ if ( tmpList == null ) tmpList = new Vector();
+ tmpList.add( header );
+ }
+ }
+ return( tmpList );
+ }
+
public Vector getHeadersByURI(String URI) {
Vector tmpList = null ;
/* If URI is null then they asked for the entire list */
@@ -191,7 +209,7 @@
return( body );
}
- public Document getAsXML() {
+ public Document getDocument() {
Document doc = null ;
Element root ;
int i ;
@@ -213,7 +231,7 @@
root.addContent( elem );
for ( i = 0 ; i < headers.size() ; i++ ) {
SOAPHeader h = (SOAPHeader) headers.get(i);
- elem.addContent( h.getAsXML() );
+ elem.addContent( h.getRoot() );
}
}
if ( body != null ) {
@@ -221,7 +239,7 @@
tmpEnvPre, tmpEnvURI );
root.addContent( elem );
for ( i = 0 ; i < body.size() ; i++ ) {
- Element bod = ((SOAPBody)body.get(i)).getAsXML();
+ Element bod = ((SOAPBody)body.get(i)).getRoot();
if ( bod.getDocument() != null )
bod = (Element) bod.clone();
elem.addContent( bod );
1.12 +64 -64 xml-axis/java/src/org/apache/axis/message/SOAPHeader.java
Index: SOAPHeader.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPHeader.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- SOAPHeader.java 2001/03/13 06:46:19 1.11
+++ SOAPHeader.java 2001/03/21 01:17:21 1.12
@@ -67,93 +67,93 @@
* @author Doug Davis (dug@us.ibm.com)
*/
public class SOAPHeader {
+ protected Element root ;
+ protected boolean processed ;
+
+ // Utility vars - dup of info in 'root' but faster access here
protected String name ;
protected String prefix ;
protected String namespaceURI ;
- protected boolean mustUnderstand ;
protected String actor ;
- protected Vector data ;
- protected boolean processed ;
+ protected boolean mustUnderstand ;
public SOAPHeader() {
processed = false ;
}
public SOAPHeader(Element elem) {
- String value ;
- prefix = elem.getNamespacePrefix();
- namespaceURI = elem.getNamespaceURI();
- name = elem.getName();
- value = elem.getAttributeValue( Constants.ATTR_MUST_UNDERSTAND,
- elem.getNamespace() );
- if ( "1".equals(value) ) mustUnderstand = true ;
- actor = elem.getAttributeValue( Constants.ATTR_ACTOR, elem.getNamespace() );
- setData( elem.getMixedContent() );
processed = false ;
+ setRoot( elem );
}
- public String getName() { return( name ); }
- public void setName(String n) { name = n; }
+ public Element getRoot() {
+ return( root );
+ }
- public String getPrefix() { return( prefix ); }
- public void setPrefix(String p) { prefix = p; }
+ public void setRoot(Element elem) {
+ String value ;
+
+ root = elem ;
+ prefix = elem.getNamespacePrefix();
+ namespaceURI = elem.getNamespaceURI();
+ name = elem.getName();
+
+ value = elem.getAttributeValue( Constants.ATTR_ACTOR,
+ elem.getNamespace() );
+ if ( value != null )
+ actor = value ;
+ else
+ // Handle the case where they set Actor before they set the root
+ if ( value != null ) setActor( value );
+
+ value = elem.getAttributeValue( Constants.ATTR_MUST_UNDERSTAND,
+ elem.getNamespace() );
+ if ( value != null )
+ mustUnderstand = "1".equals(value);
+ else
+ // Handle the case where they set MU before they set the root
+ if ( mustUnderstand ) setMustUnderstand( true );
+ }
+ public String getName() { return( name ); }
+ public String getPrefix() { return( prefix ); }
public String getNamespaceURI() { return( namespaceURI ); }
- public void setNamespaceURI(String nsuri) { namespaceURI = nsuri ; }
public boolean getMustUnderstand() { return( mustUnderstand ); }
- public void setMustUnderstand(boolean b) { mustUnderstand = b ; }
+ public void setMustUnderstand(boolean b) {
+ Namespace ns = null ;
+ Attribute attr = null ;
+
+ mustUnderstand = b ;
+ if ( root == null ) return ;
+ ns = Namespace.getNamespace( Constants.NSPREFIX_SOAP_ENV,
+ Constants.URI_SOAP_ENV );
+ attr = new Attribute(Constants.ATTR_MUST_UNDERSTAND, "1", ns );
+ root.addAttribute( attr );
+ }
public String getActor() { return( actor ); }
- public void setActor(String a) { actor = a ; }
-
- public Vector getData() { return( data ); }
+ public void setActor(String a) {
+ Namespace ns = null ;
+ Attribute attr = null ;
+
+ actor = a ;
+ ns = Namespace.getNamespace( Constants.NSPREFIX_SOAP_ENV,
+ Constants.URI_SOAP_ENV );
+ attr = new Attribute( Constants.ATTR_ACTOR, actor, ns );
+ root.addAttribute( attr );
+ }
- public Object getDataAtIndex(int i) {
- if ( data == null || i >= data.size() ) return( null );
- return( (Object) data.get(i) );
- }
-
- public void addDataNode(Object n) {
- if ( data == null ) data = new Vector();
- data.add(n);
- };
-
- public void setData(List nl) {
- data = null ;
- if ( nl != null && nl.size() != 0 ) data = new Vector();
- for ( int i = 0 ; i < nl.size() ; i++ )
- data.add( nl.get(i) );
- }
-
- public Element getAsXML() {
- Element root = new Element( name, prefix, namespaceURI );
- Namespace ns = null ;
- Attribute attr = null ;
- if ( mustUnderstand ) {
- ns = Namespace.getNamespace( Constants.NSPREFIX_SOAP_ENV,
- Constants.URI_SOAP_ENV );
- attr = new Attribute(Constants.ATTR_MUST_UNDERSTAND, "1", ns );
- root.addAttribute( attr );
+ public org.w3c.dom.Element getAsDOMElement() throws AxisFault {
+ if ( root == null ) return( null );
+ try {
+ org.jdom.output.DOMOutputter outputter = null ;
+ outputter = new org.jdom.output.DOMOutputter();
+ return( outputter.output( root ) );
}
- if ( actor != null ) {
- ns = Namespace.getNamespace( Constants.NSPREFIX_SOAP_ENV,
- Constants.URI_SOAP_ENV );
- attr = new Attribute( Constants.ATTR_ACTOR, actor, ns );
- root.addAttribute( attr );
+ catch( Exception e ) {
+ throw new AxisFault( e );
}
- for ( int i = 0 ; data != null && i < data.size() ; i++ ) {
- Object o = data.get(i);
- if ( o instanceof String )
- root.addContent( (String) o );
- else if ( o instanceof CDATA )
- root.addContent( (CDATA) o );
- else if ( o instanceof Element )
- root.addContent( (Element) o );
- else
- System.err.println( "Unknown type: " + o.getClass() );
- }
- return( root );
}
public void setProcessed(boolean value) {