You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by bi...@apache.org on 2007/12/07 17:14:38 UTC
svn commit: r602138 - in /incubator/cxf/trunk:
api/src/main/java/org/apache/cxf/tools/common/
rt/javascript/src/main/java/org/apache/cxf/javascript/types/
tools/common/src/main/java/org/apache/cxf/tools/common/ tools/wsdlto/
tools/wsdlto/frontend/javas...
Author: bimargulies
Date: Fri Dec 7 08:14:37 2007
New Revision: 602138
URL: http://svn.apache.org/viewvc?rev=602138&view=rev
Log:
wsdl2js insides working to a first cut.
Added:
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties (with props)
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/resources/org/apache/cxf/tools/wsdlto/javascript/hello_world.wsdl
- copied unchanged from r602118, incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/hello_world.wsdl
Removed:
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/hello_world.wsdl
Modified:
incubator/cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
incubator/cxf/trunk/rt/javascript/src/main/java/org/apache/cxf/javascript/types/SchemaJavascriptBuilder.java
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/pom.xml
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/JavaScriptContainer.java
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptProcessor.java
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/javascript-toolspec.xml
incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptTest.java
incubator/cxf/trunk/tools/wsdlto/pom.xml
Modified: incubator/cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java (original)
+++ incubator/cxf/trunk/api/src/main/java/org/apache/cxf/tools/common/ToolConstants.java Fri Dec 7 08:14:37 2007
@@ -49,6 +49,7 @@
public static final String CFG_ALL = "all";
public static final String CFG_IMPL = "impl";
public static final String CFG_PACKAGENAME = "packagename";
+ public static final String CFG_JSPACKAGEPREFIX = "jspackageprefix";
public static final String CFG_NINCLUDE = "ninclude";
public static final String CFG_NEXCLUDE = "nexclude";
public static final String CFG_CMD_ARG = "args";
@@ -238,4 +239,5 @@
public static final String CLIENT_CLASS = "clientClass";
public static final String SERVER_CLASS = "serverClass";
+ public static final String CFG_JSPREFIXMAP = "javascriptPrefixMap";
}
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=602138&r1=602137&r2=602138&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 Fri Dec 7 08:14:37 2007
@@ -106,7 +106,7 @@
if (xmlSchemaObject instanceof XmlSchemaElement) { // the alternative is too wierd to contemplate.
try {
XmlSchemaElement element = (XmlSchemaElement)xmlSchemaObject;
- if (element.getSchemaTypeName() == null) {
+ if (element.getSchemaTypeName() == null && element.getSchemaType() == null) {
Message message = new Message("ELEMENT_MISSING_TYPE", LOG,
element.getQName(),
element.getSchemaTypeName(),
@@ -114,7 +114,12 @@
LOG.warning(message.toString());
continue;
}
- XmlSchemaType type = schema.getSchema().getTypeByName(element.getSchemaTypeName());
+ XmlSchemaType type;
+ if (element.getSchemaType() != null) {
+ type = element.getSchemaType();
+ } else {
+ type = schema.getSchema().getTypeByName(element.getSchemaTypeName());
+ }
if (!(xmlSchemaObject instanceof XmlSchemaComplexType)) {
// we never make classes for simple type.
continue;
Modified: incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java (original)
+++ incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/ToolContext.java Fri Dec 7 08:14:37 2007
@@ -104,6 +104,21 @@
return get(key);
}
}
+
+ /**
+ * avoid need to suppress warnings on string->object cases.
+ * @param <T>
+ * @param key
+ * @param clazz
+ * @return
+ */
+ public <T> T get(String key, Class<T> clazz) {
+ return clazz.cast(get(key));
+ }
+
+ public <T> T get(String key, Class<T> clazz, Object defaultValue) {
+ return clazz.cast(get(key, defaultValue));
+ }
public <T> T get(Class<T> key) {
return key.cast(get(key.getName()));
Modified: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/javascript/pom.xml?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/frontend/javascript/pom.xml (original)
+++ incubator/cxf/trunk/tools/wsdlto/frontend/javascript/pom.xml Fri Dec 7 08:14:37 2007
@@ -64,6 +64,12 @@
<dependency>
<groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-tools-wsdlto-frontend-jaxws</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-javascript</artifactId>
<version>${project.version}</version>
</dependency>
Modified: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/JavaScriptContainer.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/JavaScriptContainer.java?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/JavaScriptContainer.java (original)
+++ incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/JavaScriptContainer.java Fri Dec 7 08:14:37 2007
@@ -140,7 +140,9 @@
if (sysId == null) {
sysId = serviceInfo.getTargetNamespace();
}
- schemas.put(sysId, schemaInfo.getElement());
+ if (sysId != null) {
+ schemas.put(sysId, schemaInfo.getElement());
+ }
}
if (schemaInfo.getElement() != null && schemaInfo.getSystemId() != null) {
schemas.put(schemaInfo.getSystemId(), schemaInfo.getElement());
@@ -189,8 +191,9 @@
try {
pns = (String[])env.get(ToolConstants.CFG_JSPACKAGEPREFIX);
} catch (ClassCastException e) {
- pns = new String[1];
- pns[0] = (String)env.get(ToolConstants.CFG_JSPACKAGEPREFIX);
+ Message msg = new Message("INVALID_PREFIX_MAPPING", LOG,
+ env.get(ToolConstants.CFG_JSPACKAGEPREFIX));
+ throw new ToolException(msg);
}
for (int j = 0; j < pns.length; j++) {
int pos = pns[j].indexOf("=");
@@ -199,8 +202,6 @@
String ns = pns[j].substring(0, pos);
jsprefix = pns[j].substring(pos + 1);
nsPrefixMap.put(ns, jsprefix);
- } else {
- nsPrefixMap.put("&tns&", jsprefix);
}
}
env.put(ToolConstants.CFG_JSPREFIXMAP, nsPrefixMap);
@@ -264,11 +265,6 @@
if (context.get(ToolConstants.CFG_OUTPUTDIR) == null) {
context.put(ToolConstants.CFG_OUTPUTDIR, ".");
- }
-
- if (context.containsKey(ToolConstants.CFG_ANT)) {
- setAntProperties(context);
- setLibraryReferences(context);
}
if (!context.containsKey(ToolConstants.CFG_WSDL_VERSION)) {
Added: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties?rev=602138&view=auto
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties (added)
+++ incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties Fri Dec 7 08:14:37 2007
@@ -0,0 +1,22 @@
+#
+#
+# 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.
+#
+#
+
+INVALID_PREFIX_MAPPING= JavaScript prefix mapping {0} was not of the form URI=prefix.
Propchange: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties
------------------------------------------------------------------------------
svn:keywords = Rev Date
Propchange: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/Messages.properties
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptProcessor.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptProcessor.java?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptProcessor.java (original)
+++ incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptProcessor.java Fri Dec 7 08:14:37 2007
@@ -29,6 +29,7 @@
import java.nio.charset.Charset;
import java.util.Collection;
+import org.apache.cxf.common.i18n.Message;
import org.apache.cxf.javascript.BasicNameManager;
import org.apache.cxf.javascript.JavascriptQueryHandler;
import org.apache.cxf.javascript.NamespacePrefixAccumulator;
@@ -48,8 +49,7 @@
ServiceInfo serviceInfo = context.get(ServiceInfo.class);
- //File jsFile = getOutputFile(builder.getOutputFile(), serviceInfo.getName().getLocalPart() + ".js");
- File jsFile = null;
+ File jsFile = getOutputFile(serviceInfo.getName().getLocalPart() + ".js");
BasicNameManager nameManager = new BasicNameManager(serviceInfo, null);
NamespacePrefixAccumulator prefixManager = new NamespacePrefixAccumulator(serviceInfo
@@ -83,6 +83,28 @@
} catch (IOException e) {
throw new ToolException(e);
}
+ }
+
+ private File getOutputFile(String defaultOutputFile) {
+ String output = (String)context.get(ToolConstants.CFG_OUTPUTFILE);
+ String dir = (String)context.get(ToolConstants.CFG_OUTPUTDIR);
+ if (dir == null) {
+ dir = "./";
+ }
+ File result;
+ if (output != null) {
+ result = new File(output);
+ if (!result.isAbsolute()) {
+ result = new File(new File(dir), output);
+ }
+ } else {
+ result = new File(new File(dir), defaultOutputFile);
+ }
+ // rename the exising js
+ if (result.exists() && !result.renameTo(new File(result.getParent(), result.getName()))) {
+ throw new ToolException(new Message("OUTFILE_EXISTS", LOG));
+ }
+ return result;
}
}
Modified: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/javascript-toolspec.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/javascript-toolspec.xml?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/javascript-toolspec.xml (original)
+++ incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/main/java/org/apache/cxf/tools/wsdlto/javascript/javascript-toolspec.xml Fri Dec 7 08:14:37 2007
@@ -43,9 +43,8 @@
<option id="jspackageprefix" maxOccurs="unbounded">
<annotation>
The JavaScript function name prefix to use for the generated code.
- By default, this specifies the JavaScript prefix for use with the
- WSDL's TNS. You may optionally specify a namespace URI to specif
- a prefix for other namespaces mentioned in the WSDL.
+ Specify each prefix mapping with with the format
+ URI=prefix.
</annotation>
<switch>p</switch>
<associatedArgument placement="afterSpace">
Modified: incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptTest.java
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptTest.java?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptTest.java (original)
+++ incubator/cxf/trunk/tools/wsdlto/frontend/javascript/src/test/java/org/apache/cxf/tools/wsdlto/javascript/WSDLToJavaScriptTest.java Fri Dec 7 08:14:37 2007
@@ -19,18 +19,15 @@
package org.apache.cxf.tools.wsdlto.javascript;
-import java.net.URISyntaxException;
-
+import org.apache.cxf.tools.common.ProcessorTestBase;
import org.apache.cxf.tools.common.ToolConstants;
import org.apache.cxf.tools.common.ToolContext;
-import org.junit.Assert;
import org.junit.Test;
/**
*
*/
-@org.junit.Ignore
-public class WSDLToJavaScriptTest extends Assert {
+public class WSDLToJavaScriptTest extends ProcessorTestBase {
// just run with a minimum of fuss.
@Test
@@ -39,12 +36,8 @@
ToolContext context = new ToolContext();
context.put(ToolConstants.CFG_WSDLURL, getLocation("hello_world.wsdl"));
+ context.put(ToolConstants.CFG_OUTPUTDIR, output.toString());
container.setContext(context);
container.execute();
- }
-
-
- private String getLocation(String wsdlFile) throws URISyntaxException {
- return this.getClass().getResource(wsdlFile).toURI().getPath();
}
}
Modified: incubator/cxf/trunk/tools/wsdlto/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/pom.xml?rev=602138&r1=602137&r2=602138&view=diff
==============================================================================
--- incubator/cxf/trunk/tools/wsdlto/pom.xml (original)
+++ incubator/cxf/trunk/tools/wsdlto/pom.xml Fri Dec 7 08:14:37 2007
@@ -34,6 +34,7 @@
<modules>
<module>core</module>
<module>frontend/jaxws</module>
+ <module>frontend/javascript</module>
<module>databinding/jaxb</module>
<module>test</module>
<module>misc</module>