cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bimargul...@apache.org
Subject svn commit: r604091 - in /incubator/cxf/trunk: distribution/src/main/release/samples/js_browser_client/ distribution/src/main/release/samples/js_browser_client_simple/ distribution/src/main/release/samples/js_browser_client_simple/src/ distribution/src...
Date Fri, 14 Dec 2007 02:50:12 GMT
Author: bimargulies
Date: Thu Dec 13 18:50:11 2007
New Revision: 604091

URL: http://svn.apache.org/viewvc?rev=604091&view=rev
Log:
A functional initial sample of talking to a service from a browser. Functional, at least, in Firefox.

Added:
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml   (with props)
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl   (with props)
Removed:
    incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client/
Modified:
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/Messages.properties
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/XmlSchemaUtils.java
    incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
    incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt Thu Dec 13 18:50:11 2007
@@ -0,0 +1,171 @@
+Hello World Demo using Document/Literal Style
+=============================================
+
+This demo illustrates the use of the JAX-WS APIs to run a simple
+client against a standalone server using SOAP 1.1 over HTTP.
+
+It also shows how CXF configuration can be used to enable schema validation
+on the client and/or server side: By default the message parameters would not
+be validated, but the presence of the cxf.xml configuration file on
+the classpath, and its content change this default behavior:
+The configuration file specifies that 
+
+a) if a JAX-WS client proxy is created for port {http://apache.org/hello_world_soap_http}SoapPort
+it should have schema validation enabled.
+
+b) if a JAX-WS server endpoint is created for port {http://apache.org/hello_world_soap_http}SoapPort
+it should have schema validation enabled.
+
+The client's second greetMe invocation causes an exception (a marshalling
+error) on the client side, i.e. before the request with the invalid parameter
+goes on the wire.
+After commenting the definition of the <jaxws:client> element in cxf.xml you 
+will notice that the client's second greetMe invocation still throws an exception,
+but that this time the exception is caused by an unmarshalling error on the
+server side.
+Commenting both elements, or renaming/removing the cfg.xml file, and thus
+restoring the default behavior, results in the second greetMe invocation
+not causing an exception.
+
+Please review the README in the samples directory before continuing.
+
+
+Prerequisite
+------------
+
+If your environment already includes cxf-manifest-incubator.jar on the
+CLASSPATH, and the JDK and ant bin directories on the PATH
+it is not necessary to set the environment as described in
+the samples directory README.  If your environment is not
+properly configured, or if you are planning on using wsdl2java,
+javac, and java to build and run the demos, you must set the
+environment.
+
+
+Building and running the demo using Ant
+---------------------------------------
+From the base directory of this sample (i.e., where this README file is
+located), the Ant build.xml file can be used to build and run the demo. 
+The server and client targets automatically build the demo.
+
+Using either UNIX or Windows:
+
+  ant server  (from one command line window)
+  ant client  (from a second command line window)
+    
+
+To remove the code generated from the WSDL file and the .class
+files, run "ant clean".
+
+
+Building the demo using wsdl2java and javac
+-------------------------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located) first create the target directory build/classes and then 
+generate code from the WSDL file.
+
+For UNIX:
+  mkdir -p build/classes
+
+  wsdl2java -d build/classes -compile ./wsdl/hello_world.wsdl
+
+For Windows:
+  mkdir build\classes
+    Must use back slashes.
+
+  wsdl2java -d build\classes -compile .\wsdl\hello_world.wsdl
+    May use either forward or back slashes.
+
+Now compile the provided client and server applications with the commands:
+
+For UNIX:  
+  
+  export CLASSPATH=$CLASSPATH:$CXF_HOME/lib/cxf-manifest-incubator.jar:./build/classes
+  javac -d build/classes src/demo/hw/client/*.java
+  javac -d build/classes src/demo/hw/server/*.java
+
+For Windows:
+  set classpath=%classpath%;%CXF_HOME%\lib\cxf-manifest-incubator.jar;.\build\classes
+  javac -d build\classes src\demo\hw\client\*.java
+  javac -d build\classes src\demo\hw\server\*.java
+
+
+Running the demo using java
+---------------------------
+
+From the base directory of this sample (i.e., where this README file is
+located) run the commands, entered on a single command line:
+
+For UNIX (must use forward slashes):
+    java -Djava.util.logging.config.file=$CXF_HOME/etc/logging.properties
+         demo.hw.server.Server &
+
+    java -Djava.util.logging.config.file=$CXF_HOME/etc/logging.properties
+         demo.hw.client.Client ./wsdl/hello_world.wsdl
+
+The server process starts in the background.  After running the client,
+use the kill command to terminate the server process.
+
+For Windows (may use either forward or back slashes):
+  start 
+    java -Djava.util.logging.config.file=%CXF_HOME%\etc\logging.properties
+         demo.hw.server.Server
+
+    java -Djava.util.logging.config.file=%CXF_HOME%\etc\logging.properties
+       demo.hw.client.Client .\wsdl\hello_world.wsdl
+
+A new command windows opens for the server process.  After running the
+client, terminate the server process by issuing Ctrl-C in its command window.
+
+To remove the code generated from the WSDL file and the .class
+files, either delete the build directory and its contents or run:
+
+  ant clean
+
+
+Building and running the demo in a servlet container
+----------------------------------------------------
+
+Please refer to samples directory README for building demo in a servlet container.
+
+Using ant, run the client application with the command:
+
+  ant client-servlet -Dbase.url=http://localhost:#
+
+Where # is the TCP/IP port used by the servlet container,
+e.g., 8080.
+
+Or
+  ant client-servlet -Dhost=localhost -Dport=8080
+
+You can ignore the -Dhost and -Dport if your tomcat setup is same, i.e ant client-servlet
+
+Using java, run the client application with the command:
+
+  For UNIX:
+    
+    java -Djava.util.logging.config.file=$CXF_HOME/etc/logging.properties
+         demo.hw.client.Client http://localhost:#/helloworld/services/hello_world?wsdl
+
+  For Windows:
+
+    java -Djava.util.logging.config.file=%CXF_HOME%\etc\logging.properties
+       demo.hw.client.Client http://localhost:#/helloworld/services/hello_world?wsdl
+
+Where # is the TCP/IP port used by the servlet container,
+e.g., 8080.
+
+
+Running demo with HTTP GET
+--------------------------
+APACHE CXF support HTTP GET to invoke the service, instead of running 
+
+   ant client
+
+you can use 
+
+   ant client.get 
+
+to invoke the service with simple HttpURLConnection, or you can even
+use your favorite browser to get the results back.

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/README.txt
------------------------------------------------------------------------------
    svn:mime-type = text/plain

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml Thu Dec 13 18:50:11 2007
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<project name="JavaScript browser client demo" default="build" basedir=".">
+
+    <import file="../common_build.xml"/>        
+        
+    <target name="client" description="run demo client" depends="build">
+        <property name="param" value=""/>
+        <cxfrun classname="demo.hw.client.Client"
+            param1="${basedir}/wsdl/hello_world.wsdl" 
+            param2="${op}" 
+            param3="${param}"/>
+    </target> 
+        
+    <target name="server" description="run demo server" depends="build">
+        <cxfrun classname="demo.hw.server.Server" 
+            param1="${basedir}/wsdl/hello_world.wsdl"/>
+    </target>
+
+    <target name="client.get" description="run demo client through HTTP GET" depends="build">
+        <property name="param" value=""/>
+        <cxfrun classname="demo.hw.client.Get"
+            param1="${basedir}/wsdl/hello_world.wsdl" 
+            param2="${op}" 
+            param3="${param}"/>
+    </target>
+        
+    <target name="generate.code">
+        <echo level="info" message="Generating code using wsdl2java..."/>
+        <wsdl2java file="hello_world.wsdl"/>
+    </target>
+
+    <property name="cxf.war.file.name" value="helloworld"/>
+    <target name="war" depends="build">
+	<cxfwar wsdl="hello_world.wsdl" filename="${cxf.war.file.name}.war"/>
+    </target>
+
+    <target name="client-servlet" description="run demo client hitting servlet" depends="build">
+        <property name="param" value=""/>
+        <cxfrun classname="demo.hw.client.Client" param1="${base.url}/helloworld/services/hello_world?wsdl" param2="${op}" param3="${param}"/>
+    </target> 
+</project>

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/build.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml Thu Dec 13 18:50:11 2007
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:jaxws="http://cxf.apache.org/jaxws"
+      xmlns:cxf="http://cxf.apache.org/core"
+      xmlns:soap="http://cxf.apache.org/bindings/soap"
+      xmlns:httpj="http://cxf.apache.org/transports/http-jetty/configuration"
+
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+http://cxf.apache.org/bindings/soap http://cxf.apache.org/schema/bindings/soap.xsd
+http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+http://cxf.apache.org/transports/http-jetty/configuration http://cxf.apache.org/schemas/configuration/http-jetty.xsd
+">
+
+<httpj:engine-factory bus="cxf">
+ <!-- The server runs on port 9000 -->
+ <httpj:engine port="9000">
+  <httpj:handlers>
+    <bean class="org.mortbay.jetty.handler.ContextHandler">
+     <property name="contextPath" value="/" />
+     <property name="handler">
+      <bean class="org.mortbay.jetty.handler.ResourceHandler">
+       <property name="baseResource">
+        <bean class="org.mortbay.resource.FileResource">
+         <constructor-arg value="file:staticContent" />
+        </bean>
+        </property>
+      </bean>
+     </property>
+    </bean>
+    <bean class="org.mortbay.jetty.handler.DefaultHandler"/>
+  </httpj:handlers>
+ </httpj:engine>
+</httpj:engine-factory>
+
+    <!-- comment this bean to disable schema validation in the client -->
+
+    <jaxws:client name="{http://apache.org/hello_world_soap_http}SoapPort"
+        createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="schema-validation-enabled" value="true" />
+        </jaxws:properties>
+    </jaxws:client>
+
+    <jaxws:endpoint name="{http://apache.org/hello_world_soap_http}SoapPort"
+        wsdlLocation="wsdl/hello_world.wsdl"
+        createdFromAPI="true">
+        <jaxws:properties>
+            <entry key="schema-validation-enabled" value="true" />
+        </jaxws:properties>
+    </jaxws:endpoint>
+
+</beans>
+

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/cxf.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java Thu Dec 13 18:50:11 2007
@@ -0,0 +1,97 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 demo.hw.client;
+
+import java.io.File;
+import java.net.URL;
+import javax.xml.namespace.QName;
+import javax.xml.ws.WebServiceException;
+import org.apache.hello_world_soap_http.Greeter;
+import org.apache.hello_world_soap_http.PingMeFault;
+import org.apache.hello_world_soap_http.SOAPService;
+import org.apache.hello_world_soap_http.types.FaultDetail;
+
+public final class Client {
+
+    private static final QName SERVICE_NAME 
+        = new QName("http://apache.org/hello_world_soap_http", "SOAPService");
+
+
+    private Client() {
+    } 
+
+    public static void main(String args[]) throws Exception {
+        
+        if (args.length == 0) { 
+            System.out.println("please specify wsdl");
+            System.exit(1); 
+        }
+
+        URL wsdlURL;
+        File wsdlFile = new File(args[0]);
+        if (wsdlFile.exists()) {
+            wsdlURL = wsdlFile.toURL();
+        } else {
+            wsdlURL = new URL(args[0]);
+        }
+        
+        System.out.println(wsdlURL);
+        SOAPService ss = new SOAPService(wsdlURL, SERVICE_NAME);
+        Greeter port = ss.getSoapPort();
+        String resp; 
+
+        System.out.println("Invoking sayHi...");
+        resp = port.sayHi();
+        System.out.println("Server responded with: " + resp);
+        System.out.println();
+
+        System.out.println("Invoking greetMe...");
+        resp = port.greetMe(System.getProperty("user.name"));
+        System.out.println("Server responded with: " + resp);
+        System.out.println();
+
+        System.out.println("Invoking greetMe with invalid length string, expecting exception...");
+        try {
+            resp = port.greetMe("Invoking greetMe with invalid length string, expecting exception...");
+        } catch (WebServiceException ex) {
+            System.out.println("Caught expected WebServiceException:");
+            System.out.println("    " + ex.getMessage());
+        }
+
+        System.out.println();
+
+        System.out.println("Invoking greetMeOneWay...");
+        port.greetMeOneWay(System.getProperty("user.name"));
+        System.out.println("No response from server as method is OneWay");
+        System.out.println();
+
+        try {
+            System.out.println("Invoking pingMe, expecting exception...");
+            port.pingMe();
+        } catch (PingMeFault ex) {
+            System.out.println("Expected exception: PingMeFault has occurred: " + ex.getMessage());
+            FaultDetail detail = ex.getFaultInfo();
+            System.out.println("FaultDetail major:" + detail.getMajor());
+            System.out.println("FaultDetail minor:" + detail.getMinor());            
+        }          
+        System.exit(0); 
+    }
+
+}

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Client.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java Thu Dec 13 18:50:11 2007
@@ -0,0 +1,117 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 demo.hw.client;
+
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.util.Properties;
+
+import javax.xml.transform.OutputKeys;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+public final class Get {
+
+    private Get() {
+    } 
+
+    public static void main(String args[]) throws Exception {
+        // Sent HTTP GET request to invoke sayHi
+        String target = "http://localhost:9000/SoapContext/SoapPort/sayHi";
+        URL url = new URL(target);
+        HttpURLConnection httpConnection = (HttpURLConnection) url.openConnection();
+        httpConnection.connect();
+        System.out.println("Invoking server through HTTP GET to invoke sayHi");
+
+        InputStream in = httpConnection.getInputStream();
+        StreamSource source = new StreamSource(in);
+        printSource(source);
+
+        // Sent HTTP GET request to invoke greetMe FAULT
+        target = "http://localhost:9000/SoapContext/SoapPort/greetMe/me/CXF";
+        url = new URL(target);
+        httpConnection = (HttpURLConnection) url.openConnection();
+        httpConnection.connect();
+        System.out.println("Invoking server through HTTP GET to invoke greetMe");
+
+        try {
+            in = httpConnection.getInputStream();
+            source = new StreamSource(in);
+            printSource(source);
+        } catch (Exception e) {
+            System.err.println("GreetMe Fault: " + e.getMessage());
+        }
+        InputStream err = httpConnection.getErrorStream();
+        source = new StreamSource(err);
+        printSource(source);
+
+        // Sent HTTP GET request to invoke greetMe
+        target = "http://localhost:9000/SoapContext/SoapPort/greetMe/requestType/CXF";
+        url = new URL(target);
+        httpConnection = (HttpURLConnection) url.openConnection();
+        httpConnection.connect();
+        System.out.println("Invoking server through HTTP GET to invoke greetMe");
+
+        in = httpConnection.getInputStream();
+        source = new StreamSource(in);
+        printSource(source);
+
+        // Sent HTTP GET request to invoke pingMe
+        target = "http://localhost:9000/SoapContext/SoapPort/pingMe";
+        url = new URL(target);
+        httpConnection = (HttpURLConnection) url.openConnection();
+        httpConnection.connect();
+        System.out.println("Invoking server through HTTP GET to invoke pingMe");
+
+        try {
+            in = httpConnection.getInputStream();
+        } catch (Exception e) {
+            System.out.println("PingMe fault raised");
+        }
+        err = httpConnection.getErrorStream();
+        source = new StreamSource(err);
+        printSource(source);
+    }
+
+    private static void printSource(Source source) {
+        try {
+            ByteArrayOutputStream bos = new ByteArrayOutputStream();
+            StreamResult sr = new StreamResult(bos);
+            Transformer trans = TransformerFactory.newInstance().newTransformer();
+            Properties oprops = new Properties();
+            oprops.put(OutputKeys.OMIT_XML_DECLARATION, "yes");
+            trans.setOutputProperties(oprops);
+            trans.transform(source, sr);
+            System.out.println();
+            System.out.println("**** Response ******");
+            System.out.println();
+            System.out.println(bos.toString());
+            bos.close();
+            System.out.println();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }    
+}

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/client/Get.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java Thu Dec 13 18:50:11 2007
@@ -0,0 +1,74 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 demo.hw.server;
+
+import java.util.logging.Logger;
+import org.apache.hello_world_soap_http.Greeter;
+import org.apache.hello_world_soap_http.PingMeFault;
+import org.apache.hello_world_soap_http.types.FaultDetail;
+
+@javax.jws.WebService(portName = "SoapPort", serviceName = "SOAPService", 
+                      targetNamespace = "http://apache.org/hello_world_soap_http", 
+                      endpointInterface = "org.apache.hello_world_soap_http.Greeter")
+                  
+public class GreeterImpl implements Greeter {
+
+    private static final Logger LOG = 
+        Logger.getLogger(GreeterImpl.class.getPackage().getName());
+    
+    /* (non-Javadoc)
+     * @see org.apache.hello_world_soap_http.Greeter#greetMe(java.lang.String)
+     */
+    public String greetMe(String me) {
+        LOG.info("Executing operation greetMe");
+        System.out.println("Executing operation greetMe");
+        System.out.println("Message received: " + me + "\n");
+        return "Hello " + me;
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.hello_world_soap_http.Greeter#greetMeOneWay(java.lang.String)
+     */
+    public void greetMeOneWay(String me) {
+        LOG.info("Executing operation greetMeOneWay");
+        System.out.println("Executing operation greetMeOneWay\n");
+        System.out.println("Hello there " + me);
+    }
+
+    /* (non-Javadoc)
+     * @see org.apache.hello_world_soap_http.Greeter#sayHi()
+     */
+    public String sayHi() {
+        LOG.info("Executing operation sayHi");
+        System.out.println("Executing operation sayHi\n");
+        return "Bonjour";
+    }
+    
+    public void pingMe() throws PingMeFault {
+        FaultDetail faultDetail = new FaultDetail();
+        faultDetail.setMajor((short)2);
+        faultDetail.setMinor((short)1);
+        LOG.info("Executing operation pingMe, throwing PingMeFault exception");
+        System.out.println("Executing operation pingMe, throwing PingMeFault exception\n");
+        throw new PingMeFault("PingMeFault raised by server", faultDetail);
+    }
+
+    
+}

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/GreeterImpl.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java Thu Dec 13 18:50:11 2007
@@ -0,0 +1,41 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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 demo.hw.server;
+
+import javax.xml.ws.Endpoint;
+
+public class Server {
+
+    protected Server() throws Exception {
+        System.out.println("Starting Server");
+        Object implementor = new GreeterImpl();
+        String address = "http://localhost:9000/SoapContext/SoapPort";
+        Endpoint.publish(address, implementor);
+    }
+
+    public static void main(String args[]) throws Exception {
+        new Server();
+        System.out.println("Server ready...");
+
+        Thread.sleep(5 * 60 * 1000);
+        System.out.println("Server exiting");
+        System.exit(0);
+    }
+}

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/src/demo/hw/server/Server.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html Thu Dec 13 18:50:11 2007
@@ -0,0 +1,51 @@
+<html>
+<head>
+<title>Hello World JavaScript Client Sample</title>
+<script type="text/javascript" src="/SoapContext/SoapPort?js">
+</script>
+<script type="text/javascript">
+var Greeter = new apache_org_hello_world_soap_http_Greeter();
+Greeter.url = "/SoapContext/SoapPort";
+
+var responseSpan;
+
+function sayHiResponse(response)
+{
+    responseSpan.firstChild.nodeValue = response.getResponseType();
+}
+
+function sayHiError(error)
+{
+      alert('error ' + error);
+}
+
+function invokeSayHi()
+{
+    responseSpan = document.getElementById('sayHiResponse');
+    responseSpan.firstChild.nodeValue = " - pending - ";
+    Greeter.sayHi(sayHiResponse, sayHiError);
+}
+</script>
+</head>
+<body>
+<h1>
+Hello World Sample
+</h1>
+<form>
+<div>
+	<table>
+	  <tr>
+	    <td>Run sayHi</td>
+	    <td><input type="button" 
+                       value="invoke" name="sayHi" 
+		       onClick="invokeSayHi()">
+	  </tr>
+	  <tr>
+	    <td>sayHi response</td>
+	    <td><span id='sayHiResponse'>- not yet invoked -</span></td>
+	  </tr>
+	</table>
+</div>
+</form>
+</body>
+</html>
\ No newline at end of file

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/staticContent/HelloWorld.html
------------------------------------------------------------------------------
    svn:mime-type = text/html

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml Thu Dec 13 18:50:11 2007
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xmlns:jaxws="http://cxf.apache.org/jaxws"
+      xmlns:soap="http://cxf.apache.org/bindings/soap"
+
+      xsi:schemaLocation="
+http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+http://cxf.apache.org/bindings/soap http://cxf.apache.org/schemas/configuration/soap.xsd
+http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+
+">
+
+    <jaxws:endpoint
+        id="hello_world"
+        implementor="demo.hw.server.GreeterImpl"
+        wsdlLocation="WEB-INF/wsdl/hello_world.wsdl"
+        address="/hello_world">
+                <jaxws:features>
+ 		    <bean class="org.apache.cxf.feature.LoggingFeature"/>
+                </jaxws:features>
+    </jaxws:endpoint>
+</beans>

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/cxf-servlet.xml
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Added: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl?rev=604091&view=auto
==============================================================================
--- incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl (added)
+++ incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl Thu Dec 13 18:50:11 2007
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Licensed to the Apache Software Foundation (ASF) under one
+  or more contributor license agreements. See the NOTICE file
+  distributed with this work for additional information
+  regarding copyright ownership. The ASF licenses this file
+  to you 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.
+-->
+<wsdl:definitions name="HelloWorld" targetNamespace="http://apache.org/hello_world_soap_http" 
+    xmlns="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" 
+    xmlns:tns="http://apache.org/hello_world_soap_http"
+    xmlns:x1="http://apache.org/hello_world_soap_http/types"
+    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
+    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+    <wsdl:types>
+        <schema targetNamespace="http://apache.org/hello_world_soap_http/types" 
+            xmlns="http://www.w3.org/2001/XMLSchema"
+	    xmlns:tns="http://apache.org/hello_world_soap_http/types"
+            elementFormDefault="qualified">
+	    <simpleType name="MyStringType">
+		<restriction base="string">
+		    <maxLength value="30" />
+		</restriction>
+	    </simpleType>
+
+            <element name="sayHi">
+                <complexType/>
+            </element>
+            <element name="sayHiResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMe">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="tns:MyStringType"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeResponse">
+                <complexType>
+                    <sequence>
+                        <element name="responseType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="greetMeOneWay">
+                <complexType>
+                    <sequence>
+                        <element name="requestType" type="string"/>
+                    </sequence>
+                </complexType>
+            </element>
+            <element name="pingMe">
+                <complexType/>
+            </element>
+            <element name="pingMeResponse">
+                <complexType/>
+            </element>
+            <element name="faultDetail">
+                <complexType>
+                    <sequence>
+                        <element name="minor" type="short"/>
+                        <element name="major" type="short"/>
+                    </sequence>
+                </complexType>
+            </element>
+        </schema>
+    </wsdl:types>
+    <wsdl:message name="sayHiRequest">
+        <wsdl:part element="x1:sayHi" name="in"/>
+    </wsdl:message>
+    <wsdl:message name="sayHiResponse">
+        <wsdl:part element="x1:sayHiResponse" name="out"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeRequest">
+        <wsdl:part element="x1:greetMe" name="in"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeResponse">
+        <wsdl:part element="x1:greetMeResponse" name="out"/>
+    </wsdl:message>
+    <wsdl:message name="greetMeOneWayRequest">
+        <wsdl:part element="x1:greetMeOneWay" name="in"/>
+    </wsdl:message>
+    <wsdl:message name="pingMeRequest">
+        <wsdl:part name="in" element="x1:pingMe"/>
+    </wsdl:message>
+    <wsdl:message name="pingMeResponse">
+        <wsdl:part name="out" element="x1:pingMeResponse"/>
+    </wsdl:message>		
+    <wsdl:message name="pingMeFault">
+        <wsdl:part name="faultDetail" element="x1:faultDetail"/>
+    </wsdl:message>
+    
+    <wsdl:portType name="Greeter">
+        <wsdl:operation name="sayHi">
+            <wsdl:input message="tns:sayHiRequest" name="sayHiRequest"/>
+            <wsdl:output message="tns:sayHiResponse" name="sayHiResponse"/>
+        </wsdl:operation>
+        
+        <wsdl:operation name="greetMe">
+            <wsdl:input message="tns:greetMeRequest" name="greetMeRequest"/>
+            <wsdl:output message="tns:greetMeResponse" name="greetMeResponse"/>
+        </wsdl:operation>
+        
+        <wsdl:operation name="greetMeOneWay">
+            <wsdl:input message="tns:greetMeOneWayRequest" name="greetMeOneWayRequest"/>
+        </wsdl:operation>
+
+        <wsdl:operation name="pingMe">
+            <wsdl:input name="pingMeRequest" message="tns:pingMeRequest"/>
+            <wsdl:output name="pingMeResponse" message="tns:pingMeResponse"/>
+            <wsdl:fault name="pingMeFault" message="tns:pingMeFault"/>
+        </wsdl:operation> 
+    </wsdl:portType>
+    <wsdl:binding name="Greeter_SOAPBinding" type="tns:Greeter">
+        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+        
+        <wsdl:operation name="sayHi">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input name="sayHiRequest">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="sayHiResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        
+        <wsdl:operation name="greetMe">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input name="greetMeRequest">
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output name="greetMeResponse">
+                <soap:body use="literal"/>
+            </wsdl:output>
+        </wsdl:operation>
+        
+        <wsdl:operation name="greetMeOneWay">
+            <soap:operation soapAction="" style="document"/>
+            <wsdl:input name="greetMeOneWayRequest">
+                <soap:body use="literal"/>
+            </wsdl:input>
+        </wsdl:operation>
+
+        <wsdl:operation name="pingMe">
+            <soap:operation style="document"/>
+            <wsdl:input>
+                <soap:body use="literal"/>
+            </wsdl:input>
+            <wsdl:output>
+                <soap:body use="literal"/>
+            </wsdl:output>
+            <wsdl:fault name="pingMeFault">
+                <soap:fault name="pingMeFault" use="literal"/>
+            </wsdl:fault>
+        </wsdl:operation>
+        
+    </wsdl:binding>
+    <wsdl:service name="SOAPService">
+        <wsdl:port binding="tns:Greeter_SOAPBinding" name="SoapPort">
+            <soap:address location="http://localhost:9000/SoapContext/SoapPort"/>
+        </wsdl:port>
+    </wsdl:service>
+</wsdl:definitions>
+

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl
------------------------------------------------------------------------------
    svn:keywords = Rev Date

Propchange: incubator/cxf/trunk/distribution/src/main/release/samples/js_browser_client_simple/wsdl/hello_world.wsdl
------------------------------------------------------------------------------
    svn:mime-type = text/xml

Modified: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/Messages.properties?rev=604091&r1=604090&r2=604091&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/Messages.properties (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/Messages.properties Thu Dec 13 18:50:11 2007
@@ -19,7 +19,6 @@
 #
 #
 NON_SEQUENCE_PARTICLE=JavaScript limitation: Type {0} is not defined as a sequence. {1}
-NULL_PARTICLE=JavaScript limitation: Type {0} has no particle. {1} 
 NON_ELEMENT_CHILD=JavaScript limitation: Non-Element sequence member {0} of {1}. {2}
 ABSTRACT_ELEMENT=JavaScript limitation: Abstract element {0} of {1}. {2}
 ELEMENT_HAS_NO_TYPE=Element {0} has no type in the schema. {1}

Modified: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/XmlSchemaUtils.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/XmlSchemaUtils.java?rev=604091&r1=604090&r2=604091&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/XmlSchemaUtils.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/XmlSchemaUtils.java Thu Dec 13 18:50:11 2007
@@ -49,6 +49,7 @@
     public static final String NIL_ATTRIBUTES = XSI_NS_ATTR + " xsi:nil='true'";
 
     private static final Logger LOG = LogUtils.getL7dLogger(XmlSchemaUtils.class);
+    private static final XmlSchemaSequence EMPTY_SEQUENCE = new XmlSchemaSequence();
     
     private XmlSchemaUtils() {
     }
@@ -64,6 +65,7 @@
     public static void unsupportedConstruct(String messageKey, XmlSchemaType subject) {
         Message message = new Message(messageKey, LOG, subject.getQName(), 
                                       cleanedUpSchemaSource(subject));
+        LOG.severe(message.toString());
         throw new UnsupportedConstruct(message);
     }
     
@@ -75,14 +77,15 @@
         throw new UnsupportedConstruct(message);
         
     }
-
     
     public static XmlSchemaSequence getSequence(XmlSchemaComplexType type) {
         XmlSchemaParticle particle = type.getParticle();
         XmlSchemaSequence sequence = null;
         
         if (particle == null) {
-            unsupportedConstruct("NULL_PARTICLE", type);
+            // the code that uses this wants to iterate. An empty one is more useful than
+            // a null pointer, and certainly an exception.
+            return EMPTY_SEQUENCE;
         }
         
         try {

Modified: incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java?rev=604091&r1=604090&r2=604091&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java Thu Dec 13 18:50:11 2007
@@ -40,7 +40,6 @@
 import org.apache.ws.commons.schema.XmlSchemaElement;
 import org.apache.ws.commons.schema.XmlSchemaObject;
 import org.apache.ws.commons.schema.XmlSchemaObjectTable;
-import org.apache.ws.commons.schema.XmlSchemaParticle;
 import org.apache.ws.commons.schema.XmlSchemaSequence;
 import org.apache.ws.commons.schema.XmlSchemaSimpleType;
 import org.apache.ws.commons.schema.XmlSchemaType;
@@ -297,19 +296,9 @@
     public String domDeserializerFunction(QName name, XmlSchemaComplexType type) {
         StringBuilder code = new StringBuilder();
         JavascriptUtils utils = new JavascriptUtils(code);
-        XmlSchemaParticle particle = type.getParticle();
         XmlSchemaSequence sequence = null;
         
-        if (particle == null) {
-            XmlSchemaUtils.unsupportedConstruct("NULL_PARTICLE", type);
-        }
-        
-        try {
-            sequence = (XmlSchemaSequence) particle;
-        } catch (ClassCastException cce) {
-            XmlSchemaUtils.unsupportedConstruct("NON_SEQUENCE_PARTICLE", type);
-        }
-        
+        sequence = XmlSchemaUtils.getSequence(type);
         String typeObjectName = nameManager.getJavascriptName(name);
         code.append("function " + typeObjectName + "_deserialize (cxfjsutils, element) {\n");
         // create the object we are deserializing into.

Modified: incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js?rev=604091&r1=604090&r2=604091&view=diff
==============================================================================
--- incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js (original)
+++ incubator/cxf/trunk/rt/javascript/src/main/resources/org/apache/cxf/javascript/cxf-utils.js Thu Dec 13 18:50:11 2007
@@ -28,6 +28,7 @@
 function CxfApacheOrgUtil()
 {
 	this.ELEMENT_NODE = 1;
+
 	if ("function" == typeof(org_apache_cxf_trace)) {
 		this.trace = org_apache_cxf_trace.trace;
 	} else {
@@ -181,6 +182,13 @@
     // handler functions
     this.onsuccess = null;
     this.onerror = null;
+    // Firefox is noncompliant with respect to the defined constants,
+    // so we define our own.
+    this.READY_STATE_UNINITIALIZED = 0;
+    this.READY_STATE_LOADING = 1;
+    this.READY_STATE_LOADED = 2;
+    this.READY_STATE_INTERACTIVE = 3;
+    this.READY_STATE_DONE = 4;
 }
 
 // Caller must avoid stupid mistakes like 'GET' with a request body.
@@ -259,7 +267,7 @@
 
     this.utils.trace("onreadystatechange " + ready);
 
-    if (ready == req.DONE) {
+    if (ready == this.READY_STATE_DONE) {
         var httpStatus=req.status;
         this.utils.trace("onreadystatechange DONE " + httpStatus);
 



Mime
View raw message