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 ru...@apache.org on 2001/05/05 18:48:33 UTC
cvs commit: xml-axis/java/test/encoding TestSer.java TestString.java
rubys 01/05/05 09:48:33
Modified: java/samples/encoding TestSer.java
java/src/org/apache/axis Message.java MessageContext.java
java/src/org/apache/axis/client AdminClient.java
HTTPCall.java
java/src/org/apache/axis/encoding
DeserializationContext.java
SerializationContext.java
java/src/org/apache/axis/handlers MsgDispatchHandler.java
java/src/org/apache/axis/message MessageElement.java
RPCParam.java SAXAdapter.java SOAPSAXHandler.java
ThreadedSAXAdapter.java
java/test/encoding TestSer.java TestString.java
Log:
Move TypeMappingRegistry to the MessageContext, part I
Revision Changes Path
1.4 +4 -2 xml-axis/java/samples/encoding/TestSer.java
Index: TestSer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/samples/encoding/TestSer.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TestSer.java 2001/05/05 13:54:00 1.3
+++ TestSer.java 2001/05/05 16:48:31 1.4
@@ -1,5 +1,6 @@
package samples.encoding;
+import org.apache.axis.MessageContext;
import org.apache.axis.message.*;
import org.apache.axis.encoding.*;
import org.apache.axis.utils.QName;
@@ -15,6 +16,7 @@
public static final String myNS = "urn:myNS";
public static void main(String args[]) {
+ MessageContext msgContext = new MessageContext();
SOAPEnvelope msg = new SOAPEnvelope();
RPCParam arg1 = new RPCParam("urn:myNamespace", "testParam", "this is a string");
QName dataQName = new QName("typeNS", "Data");
@@ -35,7 +37,7 @@
if (args.length == 0) {
Writer stringWriter = new StringWriter();
- SerializationContext context = new SerializationContext(stringWriter);
+ SerializationContext context = new SerializationContext(stringWriter, msgContext);
TypeMappingRegistry reg = context.getTypeMappingRegistry();
@@ -55,7 +57,7 @@
reader = new FileReader(args[0]);
}
- SAXAdapter adapter = new SAXAdapter(new SAXParser(), new InputSource(reader));
+ SAXAdapter adapter = new SAXAdapter(new SAXParser(), new InputSource(reader), new MessageContext());
adapter.setServiceDescription(service);
TypeMappingRegistry reg = adapter.getContext().getTypeMappingRegistry();
reg.addDeserializerFactory(dataQName, Data.class, DataSer.getFactory());
1.28 +15 -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.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- Message.java 2001/05/05 11:44:32 1.27
+++ Message.java 2001/05/05 16:48:32 1.28
@@ -81,6 +81,7 @@
private String currentForm ;
private String messageType ;
private ServiceDescription serviceDesc = null;
+ private MessageContext msgContext;
/**
* Just something to us working...
@@ -118,6 +119,16 @@
this.serviceDesc = serviceDesc;
}
+ public MessageContext getMessageContext()
+ {
+ if (msgContext == null) msgContext=new MessageContext();
+ return msgContext;
+ }
+ public void setMessageContext(MessageContext msgContext)
+ {
+ this.msgContext = msgContext;
+ }
+
public void setCurrentMessage(Object currMsg, String form) {
Debug.Print( 2, "Setting current message form to: ", form );
currentMessage = currMsg ;
@@ -216,7 +227,7 @@
StringWriter writer = new StringWriter();
AxisFault env = (AxisFault)currentMessage;
try {
- env.output(new SerializationContext(writer));
+ env.output(new SerializationContext(writer, getMessageContext()));
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -229,7 +240,7 @@
StringWriter writer = new StringWriter();
SOAPEnvelope env = (SOAPEnvelope)currentMessage;
try {
- env.output(new SerializationContext(writer));
+ env.output(new SerializationContext(writer, getMessageContext()));
} catch (Exception e) {
e.printStackTrace();
return null;
@@ -333,7 +344,8 @@
// ThreadedSAXAdapter parser =
// new ThreadedSAXAdapter(new org.apache.xerces.parsers.SAXParser(), is);
SAXAdapter parser =
- new SAXAdapter(new org.apache.xerces.parsers.SAXParser(), is);
+ new SAXAdapter(new org.apache.xerces.parsers.SAXParser(), is,
+ getMessageContext());
parser.setServiceDescription(serviceDesc);
SOAPEnvelope env = parser.getEnvelope();
env.setMessageType(messageType);
1.16 +19 -0 xml-axis/java/src/org/apache/axis/MessageContext.java
Index: MessageContext.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/MessageContext.java,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- MessageContext.java 2001/05/02 18:57:13 1.15
+++ MessageContext.java 2001/05/05 16:48:32 1.16
@@ -58,6 +58,8 @@
import java.util.* ;
import org.apache.axis.* ;
import org.apache.axis.utils.AxisClassLoader ;
+import org.apache.axis.encoding.TypeMappingRegistry;
+import org.apache.axis.encoding.SOAPTypeMappingRegistry;
/**
* Some more general docs will go here.
@@ -113,8 +115,25 @@
public MessageContext() {}
+
public MessageContext( Message inMsg ) {
setRequestMessage( inMsg );
+ }
+
+ /**
+ * Mappings of QNames to serializers/deserializers (and therfore
+ * to Java types).
+ */
+ private TypeMappingRegistry mappingRegistry = null;
+
+ public void setTypeMappingRegistry(TypeMappingRegistry reg) {
+ mappingRegistry = reg;
+ }
+
+ public TypeMappingRegistry getTypeMappingRegistry() {
+ if (mappingRegistry == null)
+ mappingRegistry = new SOAPTypeMappingRegistry();
+ return mappingRegistry;
}
/**
1.17 +1 -1 xml-axis/java/src/org/apache/axis/client/AdminClient.java
Index: AdminClient.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/AdminClient.java,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -r1.16 -r1.17
--- AdminClient.java 2001/04/28 16:29:35 1.16
+++ AdminClient.java 2001/05/05 16:48:32 1.17
@@ -118,7 +118,7 @@
input.close();
SOAPEnvelope envelope = (SOAPEnvelope) outMsg.getAs("SOAPEnvelope");
SOAPBodyElement body = envelope.getFirstBody();
- SerializationContext ctx = new SerializationContext(new PrintWriter(System.out));
+ SerializationContext ctx = new SerializationContext(new PrintWriter(System.out), msgContext);
body.output(ctx);
// System.out.println( outMsg.getAs( "String" ) );
}
1.24 +1 -1 xml-axis/java/src/org/apache/axis/client/HTTPCall.java
Index: HTTPCall.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/client/HTTPCall.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- HTTPCall.java 2001/05/03 21:17:49 1.23
+++ HTTPCall.java 2001/05/05 16:48:32 1.24
@@ -192,7 +192,7 @@
if (DEBUG_LOG) {
try {
- SerializationContext ctx = new SerializationContext(new PrintWriter(System.out));
+ SerializationContext ctx = new SerializationContext(new PrintWriter(System.out), msgContext);
System.out.println("");
System.out.println("**DEBUG**");
reqEnv.output(ctx);
1.8 +11 -9 xml-axis/java/src/org/apache/axis/encoding/DeserializationContext.java
Index: DeserializationContext.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializationContext.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DeserializationContext.java 2001/05/05 13:47:12 1.7
+++ DeserializationContext.java 2001/05/05 16:48:32 1.8
@@ -61,6 +61,7 @@
import org.apache.axis.encoding.*;
import org.apache.axis.message.*;
import org.apache.axis.utils.QName;
+import org.apache.axis.MessageContext;
/** Keeps track of the active typeMappings, element IDs, parser, and
* SOAPSAXHandler in an ongoing parse. Might want to move the
@@ -73,13 +74,16 @@
{
public SOAPSAXHandler baseHandler;
public Hashtable idMappings = new Hashtable();
- public TypeMappingRegistry mappingRegistry = null;
public Hashtable fixups = new Hashtable();
public boolean hasUnresolvedHrefs = false;
- public DeserializationContext(SOAPSAXHandler baseHandler)
+ private MessageContext msgContext;
+
+ public DeserializationContext(SOAPSAXHandler baseHandler,
+ MessageContext msgContext)
{
this.baseHandler = baseHandler;
+ this.msgContext = msgContext;
}
public SOAPSAXHandler getSAXHandler()
@@ -172,16 +176,14 @@
return getQNameFromString(type);
}
- public void setTypeMappingRegistry(TypeMappingRegistry reg)
+ public TypeMappingRegistry getTypeMappingRegistry()
{
- mappingRegistry = reg;
+ return msgContext.getTypeMappingRegistry();
}
-
- public TypeMappingRegistry getTypeMappingRegistry()
+
+ public MessageContext getMessageContext()
{
- if (mappingRegistry == null)
- mappingRegistry = new SOAPTypeMappingRegistry();
- return mappingRegistry;
+ return msgContext;
}
public void registerID(String id, MessageElement element)
1.7 +6 -10 xml-axis/java/src/org/apache/axis/encoding/SerializationContext.java
Index: SerializationContext.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/SerializationContext.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- SerializationContext.java 2001/05/04 21:29:57 1.6
+++ SerializationContext.java 2001/05/05 16:48:32 1.7
@@ -61,6 +61,7 @@
import org.xml.sax.helpers.AttributesImpl;
import org.apache.axis.message.*;
import org.apache.axis.utils.*;
+import org.apache.axis.MessageContext;
/** Manage a serialization, including keeping track of namespace mappings
* and element stacks.
@@ -83,23 +84,18 @@
int lastPrefixIndex = 1;
- private TypeMappingRegistry mappingRegistry = null;
+ private MessageContext msgContext;
- public SerializationContext(Writer writer)
+ public SerializationContext(Writer writer, MessageContext msgContext)
{
this.writer = writer;
+ this.msgContext = msgContext;
+ if (msgContext==null) throw new NullPointerException();
}
- public void setTypeMappingRegistry(TypeMappingRegistry reg)
- {
- mappingRegistry = reg;
- }
-
public TypeMappingRegistry getTypeMappingRegistry()
{
- if (mappingRegistry == null)
- mappingRegistry = new SOAPTypeMappingRegistry();
- return mappingRegistry;
+ return msgContext.getTypeMappingRegistry();
}
public String getPrefixForURI(String uri)
1.21 +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.20
retrieving revision 1.21
diff -u -r1.20 -r1.21
--- MsgDispatchHandler.java 2001/05/02 14:37:14 1.20
+++ MsgDispatchHandler.java 2001/05/05 16:48:32 1.21
@@ -126,7 +126,7 @@
(SOAPEnvelope)resMsg.getAs("SOAPEnvelope");
StringWriter writer = new StringWriter();
- reqBody.output(new SerializationContext(writer));
+ reqBody.output(new SerializationContext(writer, msgContext));
Reader reader = new StringReader(writer.getBuffer().toString());
Document doc = XMLUtils.newDocument(new InputSource(reader));
1.15 +1 -1 xml-axis/java/src/org/apache/axis/message/MessageElement.java
Index: MessageElement.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/MessageElement.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- MessageElement.java 2001/05/04 19:24:46 1.14
+++ MessageElement.java 2001/05/05 16:48:33 1.15
@@ -105,7 +105,7 @@
}
this.namespaceURI = namespace;
this.name = localPart;
- //this.context = context;
+ setDeserializationContext(context);
if (attributes == null) {
this.attributes = new AttributesImpl();
1.12 +1 -1 xml-axis/java/src/org/apache/axis/message/RPCParam.java
Index: RPCParam.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/RPCParam.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- RPCParam.java 2001/05/05 13:47:13 1.11
+++ RPCParam.java 2001/05/05 16:48:33 1.12
@@ -150,7 +150,7 @@
// but haven't run them through a deserializer yet.
StringWriter xml = new StringWriter();
try {
- SerializationContext xmlContext = new SerializationContext(xml);
+ SerializationContext xmlContext = new SerializationContext(xml, context.getMessageContext());
((ElementRecorder)value).outputChildren(xmlContext);
} catch (Exception e) {
if (DEBUG_LOG) e.printStackTrace();
1.3 +4 -1 xml-axis/java/src/org/apache/axis/message/SAXAdapter.java
Index: SAXAdapter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SAXAdapter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SAXAdapter.java 2001/05/02 19:54:13 1.2
+++ SAXAdapter.java 2001/05/05 16:48:33 1.3
@@ -1,6 +1,7 @@
package org.apache.axis.message;
import org.xml.sax.*;
+import org.apache.axis.MessageContext;
/** This class is an adapter for the Axis SAX-event system
* which uses a SAX parser to parse on its own thread, synchronizing
@@ -14,8 +15,10 @@
private XMLReader _parser;
InputSource inputSource;
- public SAXAdapter(XMLReader parser, InputSource inputSource)
+ public SAXAdapter(XMLReader parser, InputSource inputSource,
+ MessageContext msgContext)
{
+ super(msgContext);
_parser = new org.apache.xerces.parsers.SAXParser();
_parser.setContentHandler(this);
1.8 +2 -2 xml-axis/java/src/org/apache/axis/message/SOAPSAXHandler.java
Index: SOAPSAXHandler.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPSAXHandler.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- SOAPSAXHandler.java 2001/05/04 19:24:47 1.7
+++ SOAPSAXHandler.java 2001/05/05 16:48:33 1.8
@@ -152,10 +152,10 @@
// Body factory. Only doing rpc bodies for right now...
ElementFactory bodyFactory = new BodyFactory();
- public SOAPSAXHandler()
+ public SOAPSAXHandler(MessageContext msgContext)
{
envelope = new SOAPEnvelope(this);
- this.context = new DeserializationContext(this);
+ this.context = new DeserializationContext(this,msgContext);
// just testing...
headerRegistry.registerFactory("urn:myNS", "Debug", DebugHeader.getFactory());
1.3 +4 -1 xml-axis/java/src/org/apache/axis/message/ThreadedSAXAdapter.java
Index: ThreadedSAXAdapter.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/ThreadedSAXAdapter.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ThreadedSAXAdapter.java 2001/04/27 15:24:30 1.2
+++ ThreadedSAXAdapter.java 2001/05/05 16:48:33 1.3
@@ -1,6 +1,7 @@
package org.apache.axis.message;
import org.xml.sax.*;
+import org.apache.axis.MessageContext;
/** This class is an adapter for the Axis SAX-event system
* which uses a SAX parser to parse on its own thread, synchronizing
@@ -45,8 +46,10 @@
}
}
- public ThreadedSAXAdapter(XMLReader parser, InputSource inputSource)
+ public ThreadedSAXAdapter(XMLReader parser, InputSource inputSource,
+ MessageContext msgContext)
{
+ super(msgContext);
_parser = new org.apache.xerces.parsers.SAXParser();
_parser.setContentHandler(this);
//elementHandler = new SAXOutputter(new PrintWriter(System.out));
1.3 +4 -2 xml-axis/java/test/encoding/TestSer.java
Index: TestSer.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestSer.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- TestSer.java 2001/05/05 13:47:48 1.2
+++ TestSer.java 2001/05/05 16:48:33 1.3
@@ -1,5 +1,6 @@
package test.encoding;
+import org.apache.axis.MessageContext;
import org.apache.axis.message.*;
import org.apache.axis.encoding.*;
import org.apache.axis.utils.QName;
@@ -21,6 +22,7 @@
}
public void testData() throws Exception {
+ MessageContext msgContext = new MessageContext();
SOAPEnvelope msg = new SOAPEnvelope();
RPCParam arg1 = new RPCParam("urn:myNamespace", "testParam", "this is a string");
@@ -33,7 +35,7 @@
msg.addBodyElement(body);
Writer stringWriter = new StringWriter();
- SerializationContext context = new SerializationContext(stringWriter);
+ SerializationContext context = new SerializationContext(stringWriter, msgContext);
TypeMappingRegistry reg = context.getTypeMappingRegistry();
QName dataQName = new QName("typeNS", "Data");
@@ -46,7 +48,7 @@
StringReader reader = new StringReader(msgString);
- SAXAdapter adapter = new SAXAdapter(new SAXParser(), new InputSource(reader));
+ SAXAdapter adapter = new SAXAdapter(new SAXParser(), new InputSource(reader), msgContext);
reg = adapter.getContext().getTypeMappingRegistry();
reg.addDeserializerFactory(dataQName, Data.class, DataSer.getFactory());
1.2 +4 -2 xml-axis/java/test/encoding/TestString.java
Index: TestString.java
===================================================================
RCS file: /home/cvs/xml-axis/java/test/encoding/TestString.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestString.java 2001/05/04 01:26:36 1.1
+++ TestString.java 2001/05/05 16:48:33 1.2
@@ -1,5 +1,6 @@
package test.encoding;
+import org.apache.axis.MessageContext;
import org.apache.axis.message.*;
import org.apache.axis.encoding.*;
import org.apache.axis.utils.QName;
@@ -21,6 +22,7 @@
}
private void runtest(String value, String expected) throws Exception {
+ MessageContext msgContext = new MessageContext();
SOAPEnvelope msg = new SOAPEnvelope();
RPCParam input = new RPCParam("urn:myNamespace", "testParam", value);
@@ -28,7 +30,7 @@
msg.addBodyElement(body);
Writer stringWriter = new StringWriter();
- SerializationContext context = new SerializationContext(stringWriter);
+ SerializationContext context = new SerializationContext(stringWriter, msgContext);
msg.output(context);
@@ -36,7 +38,7 @@
StringReader reader = new StringReader(msgString);
- SAXAdapter adapter = new SAXAdapter(new SAXParser(), new InputSource(reader));
+ SAXAdapter adapter = new SAXAdapter(new SAXParser(), new InputSource(reader), msgContext);
SOAPEnvelope env = adapter.getEnvelope();
RPCElement rpcElem = (RPCElement)env.getFirstBody();
RPCParam output = rpcElem.getParam("testParam");