axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From thil...@apache.org
Subject svn commit: r500228 - in /webservices/axis2/trunk/java/modules/json: src/org/apache/axis2/ src/org/apache/axis2/json/ test-resources/ test/org/apache/axis2/json/
Date Fri, 26 Jan 2007 12:12:48 GMT
Author: thilina
Date: Fri Jan 26 04:12:46 2007
New Revision: 500228

URL: http://svn.apache.org/viewvc?view=rev&rev=500228
Log:
Applying the patch given at https://issues.apache.org/jira/browse/AXIS2-2037

Thanx Isuru..

Added:
    webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishDataSource.java
    webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishOMBuilder.java
    webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONBadgerfishIntegrationTest.java
Modified:
    webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/JScriptConstants.java
    webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONDataSource.java
    webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONMessageFormatter.java
    webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONOMBuilder.java
    webservices/axis2/trunk/java/modules/json/test-resources/axis2.xml
    webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java

Modified: webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/JScriptConstants.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/JScriptConstants.java?view=diff&rev=500228&r1=500227&r2=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/JScriptConstants.java (original)
+++ webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/JScriptConstants.java Fri Jan 26 04:12:46 2007
@@ -17,4 +17,13 @@
 
 public class JScriptConstants {
 	public static final String MEDIA_TYPE_APPLICATION_JSON = "application/json";
+
+    public static final String MEDIA_TYPE_APPLICATION_JSON_BADGERFISH = "application/json/badgerfish";
+
+//    public static final String JSON_CONVENTION = "convention";
+//
+//    public static final String BADGERFISH = "badgerfish";
+//
+//    public static final String MAPPED = "mapped";
+    
 }

Added: webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishDataSource.java?view=auto&rev=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishDataSource.java (added)
+++ webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishDataSource.java Fri Jan 26 04:12:46 2007
@@ -0,0 +1,47 @@
+package org.apache.axis2.json;
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.axiom.om.OMDataSource;
+import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.OMException;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+import org.json.JSONException;
+import org.codehaus.jettison.badgerfish.BadgerFishXMLInputFactory;
+import org.codehaus.jettison.mapped.MappedXMLInputFactory;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamConstants;
+import java.io.*;
+import java.util.HashMap;
+
+public class JSONBadgerfishDataSource extends JSONDataSource{
+
+    public JSONBadgerfishDataSource(InputStream jsonInputStream, String localName){
+        super(jsonInputStream, localName);
+    }
+
+
+    public javax.xml.stream.XMLStreamReader getReader() throws javax.xml.stream.XMLStreamException {
+
+        BadgerFishXMLInputFactory inputFactory = new BadgerFishXMLInputFactory();
+        return inputFactory.createXMLStreamReader(new JSONTokener("{" + localName + ":" + this.getJSONString()));
+
+    }
+
+
+}

Added: webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishOMBuilder.java?view=auto&rev=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishOMBuilder.java (added)
+++ webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONBadgerfishOMBuilder.java Fri Jan 26 04:12:46 2007
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis2.json;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import org.apache.axiom.om.OMElement;
+import org.apache.axiom.om.OMNamespace;
+import org.apache.axiom.om.impl.OMNamespaceImpl;
+import org.apache.axiom.om.impl.builder.OMBuilder;
+import org.apache.axiom.om.impl.llom.OMSourcedElementImpl;
+import org.apache.axiom.om.impl.llom.factory.OMLinkedListImplFactory;
+import org.apache.axis2.JScriptConstants;
+
+public class JSONBadgerfishOMBuilder extends JSONOMBuilder{
+
+    protected JSONDataSource getDataSource(){
+        return new JSONBadgerfishDataSource(this.jsonInputStream, localName);
+    }
+
+
+}

Modified: webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONDataSource.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONDataSource.java?view=diff&rev=500228&r1=500227&r2=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONDataSource.java (original)
+++ webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONDataSource.java Fri Jan 26 04:12:46 2007
@@ -1,142 +1,164 @@
-package org.apache.axis2.json;
-/*
- * Copyright 2004,2005 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import org.apache.axiom.om.OMDataSource;
-import org.apache.axiom.om.OMOutputFormat;
-import org.apache.axiom.om.OMException;
-import org.json.JSONObject;
-import org.json.JSONTokener;
-import org.json.JSONException;
-import org.codehaus.jettison.badgerfish.BadgerFishXMLInputFactory;
-
-import javax.xml.stream.XMLStreamReader;
-import javax.xml.stream.XMLStreamConstants;
-import java.io.*;
-
-public class JSONDataSource implements OMDataSource {
-
-    private InputStream jsonInputStream;
-    private String jsonString;
-    private boolean isRead = false;
-    private String localName;
-
-    public JSONDataSource(InputStream jsonInputStream, String localName) {
-        this.jsonInputStream = jsonInputStream;
-        this.localName = localName;
-    }
-
-    //gives json
-    public void serialize(OutputStream outputStream, OMOutputFormat omOutputFormat) throws javax.xml.stream.XMLStreamException {
-        OutputStreamWriter writer = new OutputStreamWriter(outputStream);
-        serialize(writer, omOutputFormat);
-        try {
-            writer.flush();
-        } catch (IOException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-    }
-
-    //gives json
-    public void serialize(Writer writer, OMOutputFormat omOutputFormat) throws javax.xml.stream.XMLStreamException {
-        try {
-            JSONTokener jsonTokener = new JSONTokener("{" + localName + ":" + this.getJSONString());
-            JSONObject jsonObject = new JSONObject(jsonTokener);
-            jsonObject.write(writer);
-        } catch (JSONException e) {
-            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-        }
-    }
-
-    //gives xml
-    public void serialize(javax.xml.stream.XMLStreamWriter xmlStreamWriter) throws javax.xml.stream.XMLStreamException {
-        XMLStreamReader reader = getReader();
-        xmlStreamWriter.writeStartDocument();
-        while (reader.hasNext()) {
-            int x = reader.next();
-            switch (x) {
-                case XMLStreamConstants.START_ELEMENT:
-                    xmlStreamWriter.writeStartElement(reader.getPrefix(), reader.getLocalName(), reader.getNamespaceURI(reader.getPrefix()));
-                    int namespaceCount = reader.getNamespaceCount();
-                    for (int i = namespaceCount - 1; i >= 0; i--) {
-                        xmlStreamWriter.writeNamespace(reader.getNamespacePrefix(i), reader.getNamespaceURI(i));
-                    }
-                    int attributeCount = reader.getAttributeCount();
-                    for (int i = 0; i < attributeCount; i++) {
-                        xmlStreamWriter.writeAttribute(reader.getAttributePrefix(i),
-                                reader.getAttributeNamespace(i), reader.getAttributeLocalName(i),
-                                reader.getAttributeValue(i));
-                    }
-                    break;
-                case XMLStreamConstants.START_DOCUMENT:
-                    break;
-                case XMLStreamConstants.CHARACTERS:
-                    xmlStreamWriter.writeCharacters(reader.getText());
-                    break;
-                case XMLStreamConstants.CDATA:
-                    xmlStreamWriter.writeCData(reader.getText());
-                    break;
-                case XMLStreamConstants.END_ELEMENT:
-                    xmlStreamWriter.writeEndElement();
-                    break;
-                case XMLStreamConstants.END_DOCUMENT:
-                    xmlStreamWriter.writeEndDocument();
-                    break;
-                case XMLStreamConstants.SPACE:
-                    break;
-                case XMLStreamConstants.COMMENT:
-                    xmlStreamWriter.writeComment(reader.getText());
-                    break;
-                case XMLStreamConstants.DTD:
-                    xmlStreamWriter.writeDTD(reader.getText());
-                    break;
-                case XMLStreamConstants.PROCESSING_INSTRUCTION:
-                    xmlStreamWriter.writeProcessingInstruction(reader.getPITarget(), reader.getPIData());
-                    break;
-                case XMLStreamConstants.ENTITY_REFERENCE:
-                    xmlStreamWriter.writeEntityRef(reader.getLocalName());
-                    break;
-                default :
-                    throw new OMException();
-            }
-        }
-        xmlStreamWriter.writeEndDocument();
-    }
-
-    public javax.xml.stream.XMLStreamReader getReader() throws javax.xml.stream.XMLStreamException {
-        BadgerFishXMLInputFactory inputFactory = new BadgerFishXMLInputFactory();
-        return inputFactory.createXMLStreamReader(new JSONTokener("{" + localName + ":" + this.getJSONString()));
-    }
-
-    private String getJSONString() {
-        if (isRead) {
-            return jsonString;
-        } else {
-            try {
-                char temp = (char) jsonInputStream.read();
-                jsonString = "";
-                while ((int) temp != 65535) {
-                    jsonString += temp;
-                    temp = (char) jsonInputStream.read();
-                }
-            } catch (IOException e) {
-                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
-            }
-            isRead = true;
-            return jsonString;
-        }
-    }
-}
+package org.apache.axis2.json;
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import org.apache.axiom.om.OMDataSource;
+import org.apache.axiom.om.OMOutputFormat;
+import org.apache.axiom.om.OMException;
+import org.json.JSONObject;
+import org.json.JSONTokener;
+import org.json.JSONException;
+import org.codehaus.jettison.badgerfish.BadgerFishXMLInputFactory;
+import org.codehaus.jettison.mapped.MappedXMLInputFactory;
+
+import javax.xml.stream.XMLStreamReader;
+import javax.xml.stream.XMLStreamConstants;
+import java.io.*;
+import java.util.HashMap;
+
+public class JSONDataSource implements OMDataSource {
+
+    private InputStream jsonInputStream;
+    private String jsonString;
+    private boolean isRead = false;
+    protected String localName;
+
+    public JSONDataSource(InputStream jsonInputStream, String localName) {
+        this.jsonInputStream = jsonInputStream;
+        this.localName = localName;
+    }
+
+    //gives json
+    public void serialize(OutputStream outputStream, OMOutputFormat omOutputFormat) throws javax.xml.stream.XMLStreamException {
+        OutputStreamWriter writer = new OutputStreamWriter(outputStream);
+        serialize(writer, omOutputFormat);
+        try {
+            writer.flush();
+        } catch (IOException e) {
+            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+        }
+    }
+
+    //gives json
+    public void serialize(Writer writer, OMOutputFormat omOutputFormat) throws javax.xml.stream.XMLStreamException {
+        try {
+            JSONTokener jsonTokener = new JSONTokener("{" + localName + ":" + this.getJSONString());
+            JSONObject jsonObject = new JSONObject(jsonTokener);
+            jsonObject.write(writer);
+        } catch (JSONException e) {
+            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+        }
+    }
+
+    //gives xml
+    public void serialize(javax.xml.stream.XMLStreamWriter xmlStreamWriter) throws javax.xml.stream.XMLStreamException {
+        XMLStreamReader reader = getReader();
+        xmlStreamWriter.writeStartDocument();
+        while (reader.hasNext()) {
+            int x = reader.next();
+            switch (x) {
+                case XMLStreamConstants.START_ELEMENT:
+                    xmlStreamWriter.writeStartElement(reader.getPrefix(), reader.getLocalName(), reader.getNamespaceURI(reader.getPrefix()));
+                    int namespaceCount = reader.getNamespaceCount();
+                    for (int i = namespaceCount - 1; i >= 0; i--) {
+                        xmlStreamWriter.writeNamespace(reader.getNamespacePrefix(i), reader.getNamespaceURI(i));
+                    }
+                    int attributeCount = reader.getAttributeCount();
+                    for (int i = 0; i < attributeCount; i++) {
+                        xmlStreamWriter.writeAttribute(reader.getAttributePrefix(i),
+                                reader.getAttributeNamespace(i), reader.getAttributeLocalName(i),
+                                reader.getAttributeValue(i));
+                    }
+                    break;
+                case XMLStreamConstants.START_DOCUMENT:
+                    break;
+                case XMLStreamConstants.CHARACTERS:
+                    xmlStreamWriter.writeCharacters(reader.getText());
+                    break;
+                case XMLStreamConstants.CDATA:
+                    xmlStreamWriter.writeCData(reader.getText());
+                    break;
+                case XMLStreamConstants.END_ELEMENT:
+                    xmlStreamWriter.writeEndElement();
+                    break;
+                case XMLStreamConstants.END_DOCUMENT:
+                    xmlStreamWriter.writeEndDocument();
+                    break;
+                case XMLStreamConstants.SPACE:
+                    break;
+                case XMLStreamConstants.COMMENT:
+                    xmlStreamWriter.writeComment(reader.getText());
+                    break;
+                case XMLStreamConstants.DTD:
+                    xmlStreamWriter.writeDTD(reader.getText());
+                    break;
+                case XMLStreamConstants.PROCESSING_INSTRUCTION:
+                    xmlStreamWriter.writeProcessingInstruction(reader.getPITarget(), reader.getPIData());
+                    break;
+                case XMLStreamConstants.ENTITY_REFERENCE:
+                    xmlStreamWriter.writeEntityRef(reader.getLocalName());
+                    break;
+                default :
+                    throw new OMException();
+            }
+        }
+        xmlStreamWriter.writeEndDocument();
+    }
+
+    public javax.xml.stream.XMLStreamReader getReader() throws javax.xml.stream.XMLStreamException {
+
+        //todo-badgerfish
+
+//        BadgerFishXMLInputFactory inputFactory = new BadgerFishXMLInputFactory();
+//        return inputFactory.createXMLStreamReader(new JSONTokener("{" + localName + ":" + this.getJSONString()));
+
+        //todo-end
+
+        //todo-mapped
+
+        HashMap nstojns = new HashMap();
+        nstojns.put("", "");
+
+        MappedXMLInputFactory inputFactory = new MappedXMLInputFactory(nstojns);
+        String jsonString = "{" + localName + ":" + this.getJSONString();          
+        return inputFactory.createXMLStreamReader(new JSONTokener(jsonString));
+
+        //todo-end
+    }
+
+    protected String getJSONString() {
+        if (isRead) {
+            return jsonString;
+        } else {
+            try {
+                char temp = (char) jsonInputStream.read();
+                jsonString = "";
+                while ((int) temp != 65535) {
+                    jsonString += temp;
+                    temp = (char) jsonInputStream.read();
+                }
+            } catch (IOException e) {
+                e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+            }
+            isRead = true;
+            return jsonString;
+        }
+    }
+
+    public String getCompleteJOSNString(){
+        return localName + getJSONString();
+    }
+}

Modified: webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONMessageFormatter.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONMessageFormatter.java?view=diff&rev=500228&r1=500227&r2=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONMessageFormatter.java (original)
+++ webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONMessageFormatter.java Fri Jan 26 04:12:46 2007
@@ -23,6 +23,7 @@
 
 import javax.xml.stream.FactoryConfigurationError;
 import javax.xml.stream.XMLStreamException;
+import javax.xml.stream.XMLStreamWriter;
 
 import org.apache.axiom.om.OMElement;
 import org.apache.axiom.om.OMOutputFormat;
@@ -33,30 +34,46 @@
 import org.apache.axis2.transport.MessageFormatter;
 import org.apache.axis2.transport.http.HTTPConstants;
 import org.codehaus.jettison.badgerfish.BadgerFishXMLStreamWriter;
+import org.codehaus.jettison.mapped.MappedXMLStreamWriter;
+import org.codehaus.jettison.mapped.MappedNamespaceConvention;
 
 
 public class JSONMessageFormatter implements MessageFormatter {
 
     public String getContentType(MessageContext msgCtxt, OMOutputFormat format, String soapActionString) {
-            String contentType;
-            String encoding = format.getCharSetEncoding();
-            if (msgCtxt.getProperty(Constants.Configuration.CONTENT_TYPE) != null) {
-                contentType = (String) msgCtxt.getProperty(Constants.Configuration.CONTENT_TYPE);
+        String contentType;
+        String encoding = format.getCharSetEncoding();
+        if (msgCtxt.getProperty(Constants.Configuration.CONTENT_TYPE) != null) {
+            contentType = (String) msgCtxt.getProperty(Constants.Configuration.CONTENT_TYPE);
+        } else {
+            if (msgCtxt.getProperty(Constants.Configuration.MESSAGE_TYPE).equals(JScriptConstants.MEDIA_TYPE_APPLICATION_JSON_BADGERFISH)) {
+                contentType = JScriptConstants.MEDIA_TYPE_APPLICATION_JSON_BADGERFISH;
             } else {
                 contentType = JScriptConstants.MEDIA_TYPE_APPLICATION_JSON;
             }
 
-            if (encoding != null) {
-                contentType += "; charset=" + encoding;
-            }
-            return contentType;
+        }
+
+        if (encoding != null) {
+            contentType += "; charset=" + encoding;
+        }
+        return contentType;
     }
 
     public byte[] getBytes(MessageContext msgCtxt, OMOutputFormat format) throws AxisFault {
-    	OMElement element = msgCtxt.getEnvelope().getBody().getFirstElement();
+        OMElement element = msgCtxt.getEnvelope().getBody().getFirstElement();
         try {
             ByteArrayOutputStream bytesOut = new ByteArrayOutputStream();
-            BadgerFishXMLStreamWriter jsonWriter = new BadgerFishXMLStreamWriter(new OutputStreamWriter(bytesOut));
+            XMLStreamWriter jsonWriter;
+
+//            if (msgCtxt.getProperty(JScriptConstants.JSON_CONVENTION) != null && msgCtxt.getProperty(JScriptConstants.JSON_CONVENTION).equals(JScriptConstants.BADGERFISH)) {
+            if (msgCtxt.getProperty(Constants.Configuration.MESSAGE_TYPE).equals(JScriptConstants.MEDIA_TYPE_APPLICATION_JSON_BADGERFISH)) {
+                jsonWriter = new BadgerFishXMLStreamWriter(new OutputStreamWriter(bytesOut));
+            } else {
+                MappedNamespaceConvention mnc = new MappedNamespaceConvention();
+                jsonWriter = new MappedXMLStreamWriter(mnc, new OutputStreamWriter(bytesOut));
+            }
+
             element.serializeAndConsume(jsonWriter);
             jsonWriter.writeEndDocument();
 
@@ -74,12 +91,25 @@
     }
 
     public void writeTo(MessageContext msgCtxt, OMOutputFormat format,
-			OutputStream out, boolean preserve) throws AxisFault {
-    	OMElement element = msgCtxt.getEnvelope().getBody().getFirstElement();
-    	BadgerFishXMLStreamWriter jsonWriter = new BadgerFishXMLStreamWriter(new OutputStreamWriter(out));
+                        OutputStream out, boolean preserve) throws AxisFault {
+        OMElement element = msgCtxt.getEnvelope().getBody().getFirstElement();
+
+        XMLStreamWriter jsonWriter;
+
+//        if (msgCtxt.getProperty(JScriptConstants.JSON_CONVENTION) != null && msgCtxt.getProperty(JScriptConstants.JSON_CONVENTION).equals(JScriptConstants.BADGERFISH)) {
+        if (msgCtxt.getProperty(Constants.Configuration.MESSAGE_TYPE).equals(JScriptConstants.MEDIA_TYPE_APPLICATION_JSON_BADGERFISH)) {
+            jsonWriter = new BadgerFishXMLStreamWriter(new OutputStreamWriter(out));
+        } else {
+            MappedNamespaceConvention mnc = new MappedNamespaceConvention();
+            jsonWriter = new MappedXMLStreamWriter(mnc, new OutputStreamWriter(out));
+        }
+
         try {
             element.serializeAndConsume(jsonWriter);
             jsonWriter.writeEndDocument();
+
+//            jsonWriter.close();
+
         } catch (XMLStreamException e) {
             throw new AxisFault(e);
         }

Modified: webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONOMBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONOMBuilder.java?view=diff&rev=500228&r1=500227&r2=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONOMBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/json/src/org/apache/axis2/json/JSONOMBuilder.java Fri Jan 26 04:12:46 2007
@@ -46,8 +46,12 @@
         if (localName == null) {
             localName = getLocalName();
         }
-        JSONDataSource jsonDataSource = new JSONDataSource(this.jsonInputStream, localName);
+        JSONDataSource jsonDataSource = getDataSource();
         return new OMSourcedElementImpl(localName.substring(1, localName.length() - 1), ns, factory, jsonDataSource);
+    }
+
+    protected JSONDataSource getDataSource(){
+        return new JSONDataSource(this.jsonInputStream, localName);
     }
 
     private String getLocalName() {

Modified: webservices/axis2/trunk/java/modules/json/test-resources/axis2.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/test-resources/axis2.xml?view=diff&rev=500228&r1=500227&r2=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/test-resources/axis2.xml (original)
+++ webservices/axis2/trunk/java/modules/json/test-resources/axis2.xml Fri Jan 26 04:12:46 2007
@@ -1,107 +1,107 @@
-<!--
-/*
- * Copyright 2001-2004 The Apache Software Foundation.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- -->
- 
-<axisconfig name="AxisJava2.0">
-    <!-- ================================================= -->
-    <!-- Parameters -->
-    <!-- ================================================= -->
-    <parameter name="hotdeployment" locked="false">true</parameter>
-    <parameter name="hotupdate" locked="false">false</parameter>
-    <parameter name="enableMTOM" locked="false">false</parameter>
-    <parameter name="enableSwA" locked="false">false</parameter>
-
-    <!--Uncomment if you want to enable file caching for attachments -->
-    <!--parameter name="cacheAttachments" locked="false">true</parameter>
-    <parameter name="attachmentDIR" locked="false"></parameter>
-    <parameter name="sizeThreshold" locked="false">4000</parameter-->
-
-    <!--This will give out the timout of the configuration contexts, in seconds-->
-    <parameter name="ConfigContextTimeoutInterval" locked="false">30</parameter>
-
-    <!--During a fault, stacktrace can be sent with the fault message. The following flag will control -->
-    <!--that behaviour.-->
-    <parameter name="sendStacktraceDetailsWithFaults" locked="false">false</parameter>
-
-    <!--If there aren't any information available to find out the fault reason, we set the message of the expcetion-->
-    <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
-    <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
-    <!--is set then, Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
-    <parameter name="DrillDownToRootCauseForFaultReason" locked="false">false</parameter>
-
-    <parameter name="userName" locked="false">admin</parameter>
-    <parameter name="password" locked="false">axis2</parameter>
-
-    <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
-    <!--<parameter name="ServicesDirectory" locked="false">service</parameter>-->
-    <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
-    <!--<parameter name="ModulesDirectory" locked="false">modules</parameter>-->
-
-
-
-    <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
-    <!--root which can configured using the following contextRoot parameter-->
-    <!--<parameter name="contextRoot" locked="false">axis2</parameter>-->
-
-    <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distingiush those endpoints-->
-    <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
-    <!--context path to proper Axis2 servlets-->
-    <!--<parameter name="servicePath" locked="false">services</parameter>-->
-    <!--<parameter name="restPath" locked="false">rest</parameter>-->
-
-
-    <!--Set the flag to true if you want to enable transport level session mangment-->
-    <parameter name="manageTransportSession" locked="false">false</parameter>
-
-    <!--Following two parameters will be used to handle REST in Axis2. The default settings will make Axis2 to have two-->
-    <!--different endpoints, one for REST (AxisRESTServlet) one for SOAP message handling (AxisServlet). But following-->
-    <!--parameters help to tweak the message handling of two main servlets. -->
-
-    <!-- If the enableRESTInAxis2MainServlet is true, then Axis2MainServlet will handle both SOAP and REST messages -->
-    <parameter name="enableRESTInAxis2MainServlet" locked="true">false</parameter>
-
-    <!-- Following parameter will completely disable REST handling in both the servlets-->
-    <parameter name="disableREST" locked="true">false</parameter>
-
-    <!-- This will disable the separate servlet we have for REST handling. -->
-    <parameter name="disableSeparateEndpointForREST" locked="true">false</parameter>
-
-    <!-- If you have a frontend host which exposes this webservice using a different public URL  -->
-    <!-- use this parameter to override autodetected url -->
-    <!--<parameter name="httpFrontendHostUrl" locked="false">https://someotherhost/context</parameter>-->
-
-
-    <!--    The way of adding listener to the system-->
-    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
-    <!--        <parameter name="RSS_URL" locked="false">http://127.0.0.1/rss</parameter>-->
-    <!--    </listener>-->
-
-    <!-- ================================================= -->
-    <!-- Message Receivers -->
-    <!-- ================================================= -->
-    <!--This is the Deafult Message Receiver for the system , if you want to have MessageReceivers for -->
-    <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
-    <!--any operation -->
-    <!--Note : You can ovride this for particular service by adding the same element with your requirement-->
-    <messageReceivers>
-        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
-                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
-        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
-                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
+<!--
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+ -->
+ 
+<axisconfig name="AxisJava2.0">
+    <!-- ================================================= -->
+    <!-- Parameters -->
+    <!-- ================================================= -->
+    <parameter name="hotdeployment" locked="false">true</parameter>
+    <parameter name="hotupdate" locked="false">false</parameter>
+    <parameter name="enableMTOM" locked="false">false</parameter>
+    <parameter name="enableSwA" locked="false">false</parameter>
+
+    <!--Uncomment if you want to enable file caching for attachments -->
+    <!--parameter name="cacheAttachments" locked="false">true</parameter>
+    <parameter name="attachmentDIR" locked="false"></parameter>
+    <parameter name="sizeThreshold" locked="false">4000</parameter-->
+
+    <!--This will give out the timout of the configuration contexts, in seconds-->
+    <parameter name="ConfigContextTimeoutInterval" locked="false">30</parameter>
+
+    <!--During a fault, stacktrace can be sent with the fault message. The following flag will control -->
+    <!--that behaviour.-->
+    <parameter name="sendStacktraceDetailsWithFaults" locked="false">false</parameter>
+
+    <!--If there aren't any information available to find out the fault reason, we set the message of the expcetion-->
+    <!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be -->
+    <!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag-->
+    <!--is set then, Axis2 tries to get the first exception and set its message as the faultreason/Reason.-->
+    <parameter name="DrillDownToRootCauseForFaultReason" locked="false">false</parameter>
+
+    <parameter name="userName" locked="false">admin</parameter>
+    <parameter name="password" locked="false">axis2</parameter>
+
+    <!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.-->
+    <!--<parameter name="ServicesDirectory" locked="false">service</parameter>-->
+    <!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path-->
+    <!--<parameter name="ModulesDirectory" locked="false">modules</parameter>-->
+
+
+
+    <!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context-->
+    <!--root which can configured using the following contextRoot parameter-->
+    <!--<parameter name="contextRoot" locked="false">axis2</parameter>-->
+
+    <!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distingiush those endpoints-->
+    <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this -->
+    <!--context path to proper Axis2 servlets-->
+    <!--<parameter name="servicePath" locked="false">services</parameter>-->
+    <!--<parameter name="restPath" locked="false">rest</parameter>-->
+
+
+    <!--Set the flag to true if you want to enable transport level session mangment-->
+    <parameter name="manageTransportSession" locked="false">false</parameter>
+
+    <!--Following two parameters will be used to handle REST in Axis2. The default settings will make Axis2 to have two-->
+    <!--different endpoints, one for REST (AxisRESTServlet) one for SOAP message handling (AxisServlet). But following-->
+    <!--parameters help to tweak the message handling of two main servlets. -->
+
+    <!-- If the enableRESTInAxis2MainServlet is true, then Axis2MainServlet will handle both SOAP and REST messages -->
+    <parameter name="enableRESTInAxis2MainServlet" locked="true">false</parameter>
+
+    <!-- Following parameter will completely disable REST handling in both the servlets-->
+    <parameter name="disableREST" locked="true">false</parameter>
+
+    <!-- This will disable the separate servlet we have for REST handling. -->
+    <parameter name="disableSeparateEndpointForREST" locked="true">false</parameter>
+
+    <!-- If you have a frontend host which exposes this webservice using a different public URL  -->
+    <!-- use this parameter to override autodetected url -->
+    <!--<parameter name="httpFrontendHostUrl" locked="false">https://someotherhost/context</parameter>-->
+
+
+    <!--    The way of adding listener to the system-->
+    <!--    <listener class="org.apache.axis2.ObserverIMPL">-->
+    <!--        <parameter name="RSS_URL" locked="false">http://127.0.0.1/rss</parameter>-->
+    <!--    </listener>-->
+
+    <!-- ================================================= -->
+    <!-- Message Receivers -->
+    <!-- ================================================= -->
+    <!--This is the Deafult Message Receiver for the system , if you want to have MessageReceivers for -->
+    <!--all the other MEP implement it and add the correct entry to here , so that you can refer from-->
+    <!--any operation -->
+    <!--Note : You can ovride this for particular service by adding the same element with your requirement-->
+    <messageReceivers>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
+                         class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/>
+        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
+                         class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
     </messageReceivers>
     
     <!-- ================================================= -->
@@ -114,6 +114,10 @@
                          class="org.apache.axis2.transport.http.SOAPMessageFormatter"/>
         <messageFormatter contentType="application/json"
                          class="org.apache.axis2.json.JSONMessageFormatter"/>
+        <messageFormatter contentType="application/json/badgerfish"
+                         class="org.apache.axis2.json.JSONMessageFormatter"/>
+        <messageFormatter contentType="text/javascript"
+                         class="org.apache.axis2.json.JSONMessageFormatter"/>
     </messageFormatters>
     
     <!-- ================================================= -->
@@ -124,214 +128,218 @@
     <messageBuilders>
         <messageBuilder contentType="application/json"
                          class="org.apache.axis2.json.JSONOMBuilder"/>
+        <messageBuilder contentType="application/json/badgerfish"
+                         class="org.apache.axis2.json.JSONBadgerfishOMBuilder"/>
+        <messageBuilder contentType="text/javascript"
+                         class="org.apache.axis2.json.JSONOMBuilder"/>
         <messageBuilder contentType="application/soap+xml"
                          class="org.apache.axiom.soap.impl.builder.StAXSOAPModelBuilder"/>
     </messageBuilders>
-    
-    <!-- ================================================= -->
-    <!-- Transport Ins -->
-    <!-- ================================================= -->
-    <transportReceiver name="http"
-                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
-        <parameter name="port" locked="false">8080</parameter>
-        <!-- Here is the complete list of supported parameters (see example settings further below):
-            port: the port to listen on (default 6060)
-            hostname:  if non-null, url prefix used in reply-to endpoint references                                 (default null)
-            originServer:  value of http Server header in outgoing messages                                         (default "Simple-Server/1.1")
-            requestTimeout:  value in millis of time that requests can wait for data                                (default 20000)
-            requestTcpNoDelay:  true to maximize performance and minimize latency                                   (default true)
-                                false to minimize bandwidth consumption by combining segments
-            requestCoreThreadPoolSize:  number of threads available for request processing (unless queue fills up)  (default 25)
-            requestMaxThreadPoolSize:  number of threads available for request processing if queue fills us         (default 150)
-                                       note that default queue never fills up:  see HttpFactory
-            threadKeepAliveTime:  time to keep threads in excess of core size alive while inactive                  (default 180)
-                                  note that no such threads can exist with default unbounded request queue
-            threadKeepAliveTimeUnit:  TimeUnit of value in threadKeepAliveTime (default SECONDS)                    (default SECONDS)
-        -->
-        <!-- <parameter name="hostname"                  locked="false">http://www.myApp.com/ws</parameter> -->
-        <!-- <parameter name="originServer"              locked="false">My-Server/1.1</parameter>           -->
-        <!-- <parameter name="requestTimeout"            locked="false">10000</parameter>                   -->
-        <!-- <parameter name="requestTcpNoDelay"         locked="false">false</parameter>                   -->
-        <!-- <parameter name="requestCoreThreadPoolSize" locked="false">50</parameter>                      -->
-        <!-- <parameter name="RequestMaxThreadPoolSize"  locked="false">100</parameter>                     -->
-        <!-- <parameter name="threadKeepAliveTime"       locked="false">240000</parameter>                  -->
-        <!-- <parameter name="threadKeepAliveTimeUnit"   locked="false">MILLISECONDS</parameter>            -->
-    </transportReceiver>
-    
-    <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
-    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
-        <parameter name="myTopicConnectionFactory" locked="false">        	        	
-        	<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
-        	<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
-        	<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
-        </parameter>
-
-        <parameter name="myQueueConnectionFactory" locked="false">        	        	
-        	<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
-        	<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
-        	<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
-        </parameter>
-
-        <parameter name="default" locked="false">        	        	
-        	<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
-        	<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
-        	<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
-        </parameter>
-    </transportReceiver>-->
-
-    <!--Uncomment if you want to have SMTP transport support-->
-    <!--<transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">-->
-    <!--<parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>-->
-    <!--<parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>-->
-    <!--<parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>-->
-    <!--<parameter name="transport.mail.pop3.port" locked="false">110</parameter>-->
-    <!--<parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>-->
-    <!--</transportReceiver>-->
-
-	<!--Uncomment if you want to have TCP transport support-->
-    <!--transportReceiver name="tcp"
-                       class="org.apache.axis2.transport.tcp.TCPServer">
-        <parameter name="port" locked="false">6060</parameter-->>
-        <!--If you want to give your own host address for EPR generation-->
-        <!--uncommet following paramter , and set as you required.-->
-        <!--<parameter name="hostname" locked="false">tcp://myApp.com/ws</parameter>-->
-    <!-- /transportReceiver -->
-
-    <!-- ================================================= -->
-    <!-- Transport Outs -->
-    <!-- ================================================= -->
-
-    <transportSender name="tcp"
-                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
-    <transportSender name="local"
-                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
-    <transportSender name="http"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
-    </transportSender>
-    <transportSender name="https"
-                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
-        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
-        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
-    </transportSender>
-    <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
-    <transportSender name="jms"
-                     class="org.apache.axis2.transport.jms.JMSSender"/>
-    -->
-
-    <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
-   <transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
-       <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
-       <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
-       <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
-       <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
-   </transportSender>
-   -->
-
-    <!-- ================================================= -->
-    <!-- Global Modules  -->
-    <!-- ================================================= -->
-    <!-- Comment this to disable Addressing -->
-    <!--module ref="addressing"/-->
-
-    <!--Configuring module , providing parameters for modules whether they refer or not-->
-    <!--<moduleConfig name="addressing">-->
-    <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
-    <!--</moduleConfig>-->
-
-    <!-- ================================================= -->
-    <!-- Phases  -->
-    <!-- ================================================= -->
-    <phaseOrder type="InFlow">
-        <!--  System pre defined phases       -->
-        <phase name="Transport">
-            <handler name="RequestURIBasedDispatcher"
-                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
-                <order phase="Transport"/>
-            </handler>
-            <handler name="SOAPActionBasedDispatcher"
-                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
-                <order phase="Transport"/>
-            </handler>
-        </phase>
-        <phase name="Security"/>
-        <phase name="PreDispatch"/>
-        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
-            <handler name="AddressingBasedDispatcher"
-                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-            <handler name="RequestURIOperationDispatcher"
-                     class="org.apache.axis2.engine.RequestURIOperationDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-
-            <handler name="SOAPMessageBodyBasedDispatcher"
-                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-            <handler name="InstanceDispatcher"
-                     class="org.apache.axis2.engine.InstanceDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-        </phase>
-        <!--  System pre defined phases       -->
-        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
-        <phase name="OperationInPhase"/>
-	<phase name="soapmonitorPhase"/>
-    </phaseOrder>
-    <phaseOrder type="OutFlow">
-        <!--      user can add his own phases to this area  -->
-	<phase name="soapmonitorPhase"/>
-        <phase name="OperationOutPhase"/>
-        <!--system predefined phase-->
-        <!--these phase will run irrespective of the service-->
-        <phase name="PolicyDetermination"/>
-        <phase name="MessageOut"/>
-        <phase name="Security"/>
-    </phaseOrder>
-    <phaseOrder type="InFaultFlow">
-        <phase name="PreDispatch"/>
-        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
-            <handler name="RequestURIBasedDispatcher"
-                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-
-            <handler name="SOAPActionBasedDispatcher"
-                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-
-            <handler name="AddressingBasedDispatcher"
-                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-            <handler name="RequestURIOperationDispatcher"
-                     class="org.apache.axis2.engine.RequestURIOperationDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-
-            <handler name="SOAPMessageBodyBasedDispatcher"
-                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
-                <order phase="Dispatch"/>
-            </handler>
-            <handler name="InstanceDispatcher"
-                     class="org.apache.axis2.engine.InstanceDispatcher">
-                <order phase="PostDispatch"/>
-            </handler>
-        </phase>
-        <!--      user can add his own phases to this area  -->
-        <phase name="OperationInFaultPhase"/>
-	<phase name="soapmonitorPhase"/>
-    </phaseOrder>
-    <phaseOrder type="OutFaultFlow">
-        <!--      user can add his own phases to this area  -->
-	<phase name="soapmonitorPhase"/>
-        <phase name="OperationOutFaultPhase"/>
-        <phase name="PolicyDetermination"/>
-        <phase name="MessageOut"/>
-    </phaseOrder>
-</axisconfig>
-
+    
+    <!-- ================================================= -->
+    <!-- Transport Ins -->
+    <!-- ================================================= -->
+    <transportReceiver name="http"
+                       class="org.apache.axis2.transport.http.SimpleHTTPServer">
+        <parameter name="port" locked="false">8080</parameter>
+        <!-- Here is the complete list of supported parameters (see example settings further below):
+            port: the port to listen on (default 6060)
+            hostname:  if non-null, url prefix used in reply-to endpoint references                                 (default null)
+            originServer:  value of http Server header in outgoing messages                                         (default "Simple-Server/1.1")
+            requestTimeout:  value in millis of time that requests can wait for data                                (default 20000)
+            requestTcpNoDelay:  true to maximize performance and minimize latency                                   (default true)
+                                false to minimize bandwidth consumption by combining segments
+            requestCoreThreadPoolSize:  number of threads available for request processing (unless queue fills up)  (default 25)
+            requestMaxThreadPoolSize:  number of threads available for request processing if queue fills us         (default 150)
+                                       note that default queue never fills up:  see HttpFactory
+            threadKeepAliveTime:  time to keep threads in excess of core size alive while inactive                  (default 180)
+                                  note that no such threads can exist with default unbounded request queue
+            threadKeepAliveTimeUnit:  TimeUnit of value in threadKeepAliveTime (default SECONDS)                    (default SECONDS)
+        -->
+        <!-- <parameter name="hostname"                  locked="false">http://www.myApp.com/ws</parameter> -->
+        <!-- <parameter name="originServer"              locked="false">My-Server/1.1</parameter>           -->
+        <!-- <parameter name="requestTimeout"            locked="false">10000</parameter>                   -->
+        <!-- <parameter name="requestTcpNoDelay"         locked="false">false</parameter>                   -->
+        <!-- <parameter name="requestCoreThreadPoolSize" locked="false">50</parameter>                      -->
+        <!-- <parameter name="RequestMaxThreadPoolSize"  locked="false">100</parameter>                     -->
+        <!-- <parameter name="threadKeepAliveTime"       locked="false">240000</parameter>                  -->
+        <!-- <parameter name="threadKeepAliveTimeUnit"   locked="false">MILLISECONDS</parameter>            -->
+    </transportReceiver>
+    
+    <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
+    <transportReceiver name="jms" class="org.apache.axis2.transport.jms.JMSListener">
+        <parameter name="myTopicConnectionFactory" locked="false">        	        	
+        	<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        	<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
+        	<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">TopicConnectionFactory</parameter>
+        </parameter>
+
+        <parameter name="myQueueConnectionFactory" locked="false">        	        	
+        	<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        	<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
+        	<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
+        </parameter>
+
+        <parameter name="default" locked="false">        	        	
+        	<parameter name="java.naming.factory.initial" locked="false">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
+        	<parameter name="java.naming.provider.url" locked="false">tcp://localhost:61616</parameter>        	
+        	<parameter name="transport.jms.ConnectionFactoryJNDIName" locked="false">QueueConnectionFactory</parameter>
+        </parameter>
+    </transportReceiver>-->
+
+    <!--Uncomment if you want to have SMTP transport support-->
+    <!--<transportReceiver name="mail" class="org.apache.axis2.transport.mail.SimpleMailListener">-->
+    <!--<parameter name="transport.mail.pop3.host" locked="false">127.0.0.1</parameter>-->
+    <!--<parameter name="transport.mail.pop3.user" locked="false">axis2</parameter>-->
+    <!--<parameter name="transport.mail.pop3.password" locked="false">axis2</parameter>-->
+    <!--<parameter name="transport.mail.pop3.port" locked="false">110</parameter>-->
+    <!--<parameter name="transport.mail.replyToAddress" locked="false">axis2@127.0.0.1</parameter>-->
+    <!--</transportReceiver>-->
+
+	<!--Uncomment if you want to have TCP transport support-->
+    <!--transportReceiver name="tcp"
+                       class="org.apache.axis2.transport.tcp.TCPServer">
+        <parameter name="port" locked="false">6060</parameter-->>
+        <!--If you want to give your own host address for EPR generation-->
+        <!--uncommet following paramter , and set as you required.-->
+        <!--<parameter name="hostname" locked="false">tcp://myApp.com/ws</parameter>-->
+    <!-- /transportReceiver -->
+
+    <!-- ================================================= -->
+    <!-- Transport Outs -->
+    <!-- ================================================= -->
+
+    <transportSender name="tcp"
+                     class="org.apache.axis2.transport.tcp.TCPTransportSender"/>
+    <transportSender name="local"
+                     class="org.apache.axis2.transport.local.LocalTransportSender"/>
+    <transportSender name="http"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    </transportSender>
+    <transportSender name="https"
+                     class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
+        <parameter name="PROTOCOL" locked="false">HTTP/1.1</parameter>
+        <parameter name="Transfer-Encoding" locked="false">chunked</parameter>
+    </transportSender>
+    <!--Uncomment this and configure as appropriate for JMS transport support, after setting up your JMS environment (e.g. ActiveMQ)
+    <transportSender name="jms"
+                     class="org.apache.axis2.transport.jms.JMSSender"/>
+    -->
+
+    <!-- Uncomment this one with the appropriate papameters to enable the SMTP transport Receiver
+   <transportSender name="mailto" class="org.apache.axis2.transport.mail.MailTransportSender">
+       <parameter name="transport.mail.smtp.host" locked="false">127.0.0.1</parameter>
+       <parameter name="transport.mail.smtp.user" locked="false">axis2</parameter>
+       <parameter name="transport.mail.smtp.password" locked="false">axis2</parameter>
+       <parameter name="transport.mail.smtp.port" locked="false">25</parameter>
+   </transportSender>
+   -->
+
+    <!-- ================================================= -->
+    <!-- Global Modules  -->
+    <!-- ================================================= -->
+    <!-- Comment this to disable Addressing -->
+    <!--module ref="addressing"/-->
+
+    <!--Configuring module , providing parameters for modules whether they refer or not-->
+    <!--<moduleConfig name="addressing">-->
+    <!--<parameter name="addressingPara" locked="false">N/A</parameter>-->
+    <!--</moduleConfig>-->
+
+    <!-- ================================================= -->
+    <!-- Phases  -->
+    <!-- ================================================= -->
+    <phaseOrder type="InFlow">
+        <!--  System pre defined phases       -->
+        <phase name="Transport">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
+                <order phase="Transport"/>
+            </handler>
+        </phase>
+        <phase name="Security"/>
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.engine.RequestURIOperationDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="InstanceDispatcher"
+                     class="org.apache.axis2.engine.InstanceDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+        </phase>
+        <!--  System pre defined phases       -->
+        <!--   After Postdispatch phase module author or or service author can add any phase he want      -->
+        <phase name="OperationInPhase"/>
+	<phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFlow">
+        <!--      user can add his own phases to this area  -->
+	<phase name="soapmonitorPhase"/>
+        <phase name="OperationOutPhase"/>
+        <!--system predefined phase-->
+        <!--these phase will run irrespective of the service-->
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+        <phase name="Security"/>
+    </phaseOrder>
+    <phaseOrder type="InFaultFlow">
+        <phase name="PreDispatch"/>
+        <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
+            <handler name="RequestURIBasedDispatcher"
+                     class="org.apache.axis2.engine.RequestURIBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPActionBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="AddressingBasedDispatcher"
+                     class="org.apache.axis2.engine.AddressingBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="RequestURIOperationDispatcher"
+                     class="org.apache.axis2.engine.RequestURIOperationDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+
+            <handler name="SOAPMessageBodyBasedDispatcher"
+                     class="org.apache.axis2.engine.SOAPMessageBodyBasedDispatcher">
+                <order phase="Dispatch"/>
+            </handler>
+            <handler name="InstanceDispatcher"
+                     class="org.apache.axis2.engine.InstanceDispatcher">
+                <order phase="PostDispatch"/>
+            </handler>
+        </phase>
+        <!--      user can add his own phases to this area  -->
+        <phase name="OperationInFaultPhase"/>
+	<phase name="soapmonitorPhase"/>
+    </phaseOrder>
+    <phaseOrder type="OutFaultFlow">
+        <!--      user can add his own phases to this area  -->
+	<phase name="soapmonitorPhase"/>
+        <phase name="OperationOutFaultPhase"/>
+        <phase name="PolicyDetermination"/>
+        <phase name="MessageOut"/>
+    </phaseOrder>
+</axisconfig>
+

Added: webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONBadgerfishIntegrationTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONBadgerfishIntegrationTest.java?view=auto&rev=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONBadgerfishIntegrationTest.java (added)
+++ webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONBadgerfishIntegrationTest.java Fri Jan 26 04:12:46 2007
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.axis2.json;
+
+import org.apache.axis2.client.Options;
+import org.apache.axis2.Constants;
+
+public class JSONBadgerfishIntegrationTest extends JSONIntegrationTest {
+
+    protected void setMessageType(Options options) {
+        options.setProperty(Constants.Configuration.MESSAGE_TYPE,
+                "application/json/badgerfish");
+    }
+
+}

Modified: webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java?view=diff&rev=500228&r1=500227&r2=500228
==============================================================================
--- webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java (original)
+++ webservices/axis2/trunk/java/modules/json/test/org/apache/axis2/json/JSONIntegrationTest.java Fri Jan 26 04:12:46 2007
@@ -83,12 +83,9 @@
 			OMElement payload = createEnvelope();
 			Options options = new Options();
 			options.setTo(targetEPR);
-	
-			options.setProperty(Constants.Configuration.MESSAGE_TYPE,
-					"application/json");
+			setMessageType(options);
 			options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
-	//		options.setTimeOutInMilliSeconds(1000);
-			
+	
 			ServiceClient sender = new ServiceClient(configurationContext, null);
 			options.setAction(null);
 			sender.setOptions(options);
@@ -96,6 +93,11 @@
 			OMElement result = sender.sendReceive(payload);
 			OMElement ele = (OMElement) result.getFirstOMChild();
 			compareWithCreatedOMText(ele.getText());
+	}
+	
+	protected void setMessageType(Options options) {
+		options.setProperty(Constants.Configuration.MESSAGE_TYPE,
+		"application/json");
 	}
 	
 	protected void compareWithCreatedOMText(String response) {



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org


Mime
View raw message