You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yoko-commits@incubator.apache.org by br...@apache.org on 2006/06/07 18:11:55 UTC
svn commit: r412473 - in /incubator/yoko/trunk/tools/src:
main/java/org/apache/yoko/tools/processors/idl/
main/java/org/apache/yoko/tools/processors/wsdl/ test/resources/idl/
Author: bravi
Date: Wed Jun 7 11:11:54 2006
New Revision: 412473
URL: http://svn.apache.org/viewvc?rev=412473&view=rev
Log:
Updating the idltowsdl tool to add the corba binding when generating the wsdl. Jira: http://issues.apache.org/jira/browse/YOKO-52
Modified:
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessagePartVisitor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLParameter.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaBinding.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaProcessor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToIDLAction.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToProcessor.java
incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToTypeProcessor.java
incubator/yoko/trunk/tools/src/test/resources/idl/expected_HelloWorld.wsdl
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/IDLToWSDLProcessor.java Wed Jun 7 11:11:54 2006
@@ -8,9 +8,11 @@
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.OutputStream;
+import java.util.Map;
import java.util.StringTokenizer;
import javax.wsdl.Definition;
+import javax.xml.namespace.QName;
import org.objectweb.celtix.tools.common.Processor;
import org.objectweb.celtix.tools.common.ProcessorEnvironment;
@@ -20,6 +22,8 @@
import org.apache.yoko.tools.common.ToolCorbaConstants;
import org.apache.yoko.tools.common.W3CConstants;
+import org.apache.yoko.tools.processors.wsdl.WSDLToCorbaBinding;
+
public class IDLToWSDLProcessor implements Processor {
private String idl;
@@ -27,7 +31,6 @@
private OutputStream outStream;
public void process() throws ToolException {
- Definition def = null;
idl = getBaseFilename(env.get(ToolCorbaConstants.CFG_IDLFILE).toString());
try {
parseIDL();
@@ -37,7 +40,7 @@
}
public void setOutputStream(OutputStream out) {
- outStream = out;
+ outStream = out;
}
public void parseIDL() throws Exception {
@@ -46,23 +49,33 @@
parser.specification();
AST idlTree = parser.getAST();
- String tns = (String) env.get(ToolCorbaConstants.CFG_TNS);
- if (tns == null) {
- tns = CORBAConstants.WSDL_NS_URI + idl;
- }
-
- try {
- WSDLASTVisitor visitor = new WSDLASTVisitor(tns);
- visitor.visit(idlTree);
- if (outStream == null) {
- java.io.File file = new java.io.File(idl + ".wsdl");
- outStream = new java.io.FileOutputStream(file);
- }
- visitor.writeDefinition(outStream);
- } catch (Exception ex) {
- ex.printStackTrace();
+ String tns = (String) env.get(ToolCorbaConstants.CFG_TNS);
+ if (tns == null) {
+ tns = CORBAConstants.WSDL_NS_URI + idl;
+ }
+
+ try {
+ WSDLASTVisitor visitor = new WSDLASTVisitor(tns);
+ visitor.visit(idlTree);
+ if (outStream == null) {
+ //Use the specified file name from the environment(if provided)
+ java.io.File file = new java.io.File(idl + ".wsdl");
+ outStream = new java.io.FileOutputStream(file);
+ }
+ Definition def = visitor.getDefinition();
+ WSDLToCorbaBinding corbaBinding = new WSDLToCorbaBinding();
+ Map portTypes = def.getPortTypes();
+ java.util.Iterator it = portTypes.keySet().iterator();
+ while (it.hasNext()) {
+ QName portType = (QName) it.next();
+ corbaBinding.addInterfaceName(portType.getLocalPart());
+ }
+ corbaBinding.generateCORBABinding(def);
+ visitor.writeDefinition(outStream);
+ } catch (Exception ex) {
+ ex.printStackTrace();
throw new ToolException(ex.getMessage(), ex);
- }
+ }
}
public void setEnvironment(ProcessorEnvironment penv) {
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessagePartVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessagePartVisitor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessagePartVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/MessagePartVisitor.java Wed Jun 7 11:11:54 2006
@@ -75,7 +75,7 @@
QName element = inputMsg.getQName();
if (inputMsg.getParts().size() == 0) {
part = definition.createPart();
- part.setName("parameters");
+ part.setName("inparameter");
part.setElementName(element);
typesVisitor.addElement(element);
inputMsg.addPart(part);
@@ -91,7 +91,7 @@
QName element = outputMsg.getQName();
if (outputMsg.getParts().size() == 0) {
part = definition.createPart();
- part.setName("parameters");
+ part.setName("outparameter");
part.setElementName(element);
typesVisitor.addElement(element);
outputMsg.addPart(part);
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/TypesVisitor.java Wed Jun 7 11:11:54 2006
@@ -47,9 +47,7 @@
Schema wsdlSchema = (Schema) definition.getExtensionRegistry().createExtension(Types.class,
new QName("http://www.w3.org/2001/XMLSchema",
"schema"));
- XmlSchemaObjectTable table = schema.getElements();
org.w3c.dom.Element el = XmlSchemaSerializer.serializeSchema(schema, true)[0].getDocumentElement();
- org.w3c.dom.NodeList list = el.getChildNodes();
wsdlSchema.setElement(el);
types.addExtensibilityElement(wsdlSchema);
definition.setTypes(types);
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/idl/WSDLASTVisitor.java Wed Jun 7 11:11:54 2006
@@ -38,6 +38,11 @@
break;
default: System.out.println("Visit for node: " + node.getType() + ":" + node);
}
+ try {
+ typesVisitor.attachSchema();
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
}
public Definition getDefinition() {
@@ -58,7 +63,6 @@
}
public boolean writeDefinition(OutputStream outstream) throws Exception {
- typesVisitor.attachSchema();
WSDLWriter writer = wsdlFactory.newWSDLWriter();
writer.writeWSDL(definition, outstream);
return true;
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLParameter.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLParameter.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLParameter.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLParameter.java Wed Jun 7 11:11:54 2006
@@ -55,7 +55,6 @@
Part part = (Part)i.next();
XmlSchemaType schemaType = null;
schemaType = lookUpType(part, xmlSchemaList);
- schemaType = lookUpType(part, xmlSchemaList);
if ((part.getTypeName() != null) || (part.getElementName() != null)) {
ParamType paramtype = createParamType(wsdlToCorbaBinding, part, "in", schemaType);
inputs.add(paramtype);
@@ -156,7 +155,7 @@
Iterator i = xmlSchemaList.iterator();
while (i.hasNext()) {
XmlSchema xmlSchemaType = (XmlSchema)i.next();
-
+
if (part.getElementName() != null) {
XmlSchemaElement schemaElement = xmlSchemaType.getElementByName(part.getElementName());
if (schemaElement != null) {
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaBinding.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaBinding.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaBinding.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaBinding.java Wed Jun 7 11:11:54 2006
@@ -69,24 +69,27 @@
WSDLParameter wsdlParameter;
List<Object> bindingNames;
List<XmlSchema> xmlSchemaList;
+
+ WSDLToTypeProcessor typeProcessor = new WSDLToTypeProcessor();
public WSDLToCorbaBinding() {
}
+ public void setXMLSchemaList(List<XmlSchema> list) {
+ xmlSchemaList = list;
+ }
+
+ public void setXMLSchema(XmlSchema schema) {
+ xmlSchemaType = schema;
+ }
+
public Definition generateCORBABinding() throws Exception {
- try {
+ try {
extReg = new ExtensionRegistry();
addExtensions(extReg);
- wsdlParameter = new WSDLParameter();
- WSDLToTypeProcessor typeProcessor = new WSDLToTypeProcessor();
typeProcessor.setExtensionRegistry(extReg);
- typeProcessor.process(getWsdlFileName());
+ typeProcessor.parseWSDL(getWsdlFileName());
def = typeProcessor.getWSDLDefinition();
- setIdlNamespace(def);
- generateNSPrefix(def, getIdlNamespace(), "ns");
- corbaPrimitiveMap = new CorbaPrimitiveMap();
- xmlSchemaType = typeProcessor.getXmlSchemaType();
- xmlSchemaList = typeProcessor.getXmlSchemaTypes();
generateCORBABinding(def);
} catch (Exception ex) {
throw ex;
@@ -94,9 +97,24 @@
return def;
}
- public void generateCORBABinding(Definition definition) throws Exception {
-
+ public void generateCORBABinding(Definition definition) throws Exception {
def = definition;
+
+ if (extReg == null) {
+ extReg = def.getExtensionRegistry();
+ addExtensions(extReg);
+ typeProcessor.setExtensionRegistry(extReg);
+ }
+ typeProcessor.setWSDLDefinition(def);
+ wsdlParameter = new WSDLParameter();
+ setIdlNamespace(def);
+ generateNSPrefix(def, getIdlNamespace(), "ns");
+ corbaPrimitiveMap = new CorbaPrimitiveMap();
+
+ typeProcessor.process();
+
+ xmlSchemaType = typeProcessor.getXmlSchemaType();
+ xmlSchemaList = typeProcessor.getXmlSchemaTypes();
List<PortType> intfs = null;
if (interfaceNames.size() > 0) {
@@ -171,6 +189,12 @@
private void generateCORBABinding(Definition definition, PortType portType) throws Exception {
QName bqname = null;
+
+ if (extReg == null) {
+ extReg = def.getExtensionRegistry();
+ addExtensions(extReg);
+ }
+
bindingNames = new ArrayList<Object>();
String interfaceName = portType.getQName().getLocalPart();
String bname = getMappedBindingName(interfaceName);
@@ -186,17 +210,21 @@
bname = mangleInterfaceName(interfaceName) + "CORBABinding";
setBindingName(bname);
bqname = new QName(definition.getTargetNamespace(), bname, prefix);
+ int count = 0;
+ while (queryBinding(definition, bqname)) {
+ bname = bname + count;
+ bqname = new QName(definition.getTargetNamespace(), bname, prefix);
+ }
} else {
bqname = new QName(definition.getTargetNamespace(), bname, prefix);
- }
-
- // Check if the Binding with name already exists
- if (queryBinding(definition, bqname)) {
- String msgStr = "Binding " + bqname.getLocalPart()
- + " already exists in WSDL.";
- org.objectweb.celtix.common.i18n.Message msg =
- new org.objectweb.celtix.common.i18n.Message(msgStr, LOG);
- throw new Exception(msg.toString());
+ // Check if the Binding with name already exists
+ if (queryBinding(definition, bqname)) {
+ String msgStr = "Binding " + bqname.getLocalPart()
+ + " already exists in WSDL.";
+ org.objectweb.celtix.common.i18n.Message msg =
+ new org.objectweb.celtix.common.i18n.Message(msgStr, LOG);
+ throw new Exception(msg.toString());
+ }
}
// jwsdl model should have all other bindings in it.
@@ -227,7 +255,6 @@
binding.addExtensibilityElement(bindingType);
} catch (WSDLException ex) {
ex.printStackTrace();
- System.out.println("adding the ext element ot binding.");
}
try {
@@ -235,7 +262,6 @@
binding.setUndefined(false);
definition.addBinding(binding);
} catch (Exception ex) {
- System.out.println("error adding binding");
ex.printStackTrace();
}
}
@@ -275,7 +301,6 @@
}
public void addExtensions(ExtensionRegistry extRegistry) throws JAXBException {
- extReg = extRegistry;
try {
JAXBExtensionHelper.addExtensions(extReg, Binding.class, BindingType.class);
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaProcessor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaProcessor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaProcessor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToCorbaProcessor.java Wed Jun 7 11:11:54 2006
@@ -75,10 +75,9 @@
} catch (ToolException ex) {
throw ex;
} catch (JAXBException ex) {
- System.out.println("exception occured");
throw new ToolException(ex);
} catch (Exception ex) {
- throw new ToolException(ex.getMessage());
+ throw new ToolException(ex);
}
}
@@ -86,10 +85,6 @@
Writer outputWriter = null;
try {
- /*OutputStreamFactory factory = new FileOutputStreamFactory();
- OutputStream out = factory.createOutputStream(wsdlOutput);
- PrintWriter pw = new PrintWriter(out);*/
-
WSDLCorbaFactory wsdlfactory = WSDLCorbaFactory
.newInstance("org.apache.yoko.tools.processors.wsdl.WSDLCorbaFactoryImpl");
WSDLWriter writer = wsdlfactory.newWSDLWriter();
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToIDLAction.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToIDLAction.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToIDLAction.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToIDLAction.java Wed Jun 7 11:11:54 2006
@@ -60,42 +60,33 @@
private IdlInterface intf;
ExtensionRegistry extReg;
+ WSDLToTypeProcessor typeProcessor = new WSDLToTypeProcessor();
+
public WSDLToIDLAction() {
}
public void generateIDL(Definition definition) throws Exception {
-
- if (definition == null) {
- try {
- extReg = new ExtensionRegistry();
- addExtensions(extReg);
- WSDLToTypeProcessor typeProcessor = new WSDLToTypeProcessor();
- typeProcessor.setExtensionRegistry(extReg);
- typeProcessor.process(wsdlFileName);
- def = typeProcessor.getWSDLDefinition();
- Binding binding = findBinding(def);
- if (binding != null) {
- generateIDL(def, binding);
- } else {
- String msgStr = "Binding " + bindingName + " doesn't exists in WSDL.";
- org.objectweb.celtix.common.i18n.Message msg =
- new org.objectweb.celtix.common.i18n.Message(msgStr, LOG);
- throw new Exception(msg.toString());
- }
- } catch (Exception ex) {
- throw ex;
- }
+ if (definition == null) {
+ extReg = new ExtensionRegistry();
+ addExtensions(extReg);
+ typeProcessor.setExtensionRegistry(extReg);
+ typeProcessor.parseWSDL(wsdlFileName);
+ def = typeProcessor.getWSDLDefinition();
} else {
def = definition;
- Binding binding = findBinding(definition);
- if (binding == null) {
- String msgStr = "Binding " + bindingName + " doesn't exists in WSDL.";
- org.objectweb.celtix.common.i18n.Message msg =
- new org.objectweb.celtix.common.i18n.Message(msgStr, LOG);
- throw new Exception(msg.toString());
- }
- generateIDL(definition, binding);
+ extReg = def.getExtensionRegistry();
+ addExtensions(extReg);
+ typeProcessor.setExtensionRegistry(extReg);
+ }
+
+ Binding binding = findBinding(def);
+ if (binding == null) {
+ String msgStr = "Binding " + bindingName + " doesn't exists in WSDL.";
+ org.objectweb.celtix.common.i18n.Message msg =
+ new org.objectweb.celtix.common.i18n.Message(msgStr, LOG);
+ throw new Exception(msg.toString());
}
+ generateIDL(def, binding);
}
@@ -531,4 +522,4 @@
return namespace;
}
-}
\ No newline at end of file
+}
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToProcessor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToProcessor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToProcessor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToProcessor.java Wed Jun 7 11:11:54 2006
@@ -19,6 +19,7 @@
import javax.wsdl.Types;
import javax.wsdl.WSDLException;
import javax.wsdl.extensions.ExtensionRegistry;
+import javax.wsdl.extensions.UnknownExtensibilityElement;
import javax.wsdl.extensions.schema.Schema;
import javax.wsdl.extensions.schema.SchemaImport;
import javax.wsdl.factory.WSDLFactory;
@@ -65,9 +66,6 @@
schemaList = new ArrayList<Schema>();
}
- public void process() throws ToolException {
- }
-
public void parseWSDL(String wsdlUrl) {
try {
WSDLFactory factory = WSDLFactory.newInstance();
@@ -78,6 +76,8 @@
reader.setExtensionRegistry(extReg);
}
wsdlDefinition = reader.readWSDL(wsdlUrl);
+
+ //bravi, Why are we doing this?
parseImports(wsdlDefinition);
buildWSDLDefinition();
} catch (WSDLException we) {
@@ -87,27 +87,6 @@
throw new ToolException(msg, we);
}
}
-
- public void addExtensions(ExtensionRegistry extRegistry) throws JAXBException {
- extReg = extRegistry;
- try {
-
- JAXBExtensionHelper.addExtensions(extReg, Binding.class, BindingType.class);
- JAXBExtensionHelper.addExtensions(extReg, BindingOperation.class,
- org.apache.schemas.yoko.bindings.corba.OperationType.class);
- JAXBExtensionHelper.addExtensions(extReg, Definition.class, TypeMappingType.class);
-
- extReg.mapExtensionTypes(Binding.class, CORBAConstants.NE_CORBA_BINDING, BindingType.class);
- extReg.mapExtensionTypes(BindingOperation.class, CORBAConstants.NE_CORBA_OPERATION,
- org.apache.schemas.yoko.bindings.corba.OperationType.class);
- extReg.mapExtensionTypes(Definition.class, CORBAConstants.NE_CORBA_TYPEMAPPING,
- TypeMappingType.class);
-
- } catch (javax.xml.bind.JAXBException ex) {
- LOG.log(Level.SEVERE, "Failing to serialize/deserialize extensions", ex);
- throw new JAXBException(ex.getMessage());
- }
- }
private void buildWSDLDefinition() {
for (Definition def : importedDefinitions) {
@@ -149,68 +128,49 @@
}
}
- protected void parseWSDLFileType(String wsdlFileName) throws ParserConfigurationException, SAXException,
- IOException {
-
- try {
- DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
- factory.setNamespaceAware(true);
- DocumentBuilder parser = factory.newDocumentBuilder();
- Document document = parser.parse(wsdlFileName);
- Element root = document.getDocumentElement();
- for (Node nd = root.getFirstChild(); nd != null; nd = nd.getNextSibling()) {
- if (Node.ELEMENT_NODE == nd.getNodeType() && ("types".equals(nd.getLocalName()))) {
-
- for (Node nd1 = nd.getFirstChild(); nd1 != null; nd1 = nd1.getNextSibling()) {
- if (Node.ELEMENT_NODE == nd1.getNodeType()) {
- Element el2 = (Element)nd1;
- schematype = schemaCol.read(el2, "http://www.w3.org/2001/XMLSchema");
- schematypeList.add(schematype);
- }
- }
- }
-
- }
- } catch (ParserConfigurationException ex) {
- LOG.log(Level.SEVERE, "Failing to get document builder", ex);
- throw new ParserConfigurationException(ex.toString());
- } catch (SAXException ex) {
- LOG.log(Level.SEVERE, "Failing to parse file", ex);
- throw new SAXException(ex.toString());
- } catch (IOException ex) {
- LOG.log(Level.SEVERE, "Failing to get file", ex);
- throw new SAXException(ex.toString());
- }
- }
-
private void extractSchema(Definition def) {
Types typesElement = def.getTypes();
if (typesElement != null) {
Iterator ite = typesElement.getExtensibilityElements().iterator();
while (ite.hasNext()) {
Object obj = ite.next();
+ org.w3c.dom.Element schemaElem = null;
if (obj instanceof Schema) {
- Schema schema = (Schema)obj;
+ Schema schema = (Schema) obj;
addSchema(schema);
+ schemaElem = schema.getElement();
+ } else if (obj instanceof UnknownExtensibilityElement) {
+ org.w3c.dom.Element elem = ((UnknownExtensibilityElement) obj).getElement();
+ if (elem.getTagName().equals("schema")) {
+ schemaElem = elem;
+ }
+ }
+ if (schemaElem != null) {
+ schematype = schemaCol.read(schemaElem);
+ schematypeList.add(schematype);
}
}
}
}
- private void initModel() {
+ public void process() throws ToolException {
+ if (env == null) {
+ env = new ProcessorEnvironment();
+ env.put("wsdlurl", wsdlDefinition.getDocumentBaseURI());
+ }
+
schemaTargetNamespaces.clear();
extractSchema(wsdlDefinition);
for (Definition def : importedDefinitions) {
extractSchema(def);
}
-
if (schemaList.size() == 0) {
if (env.isVerbose()) {
System.err.println("No schema provided in the wsdl file");
}
return;
- }
- schemaTargetNamespaces.clear();
+ }
+ schemaTargetNamespaces.clear();
}
private boolean isSchemaImported(Schema schema) {
@@ -246,23 +206,16 @@
if (!isSchemaImported(schema)) {
schemaList.add(schema);
}
- }
-
- protected void init(String wsdlFilename) throws Exception {
- parseWSDLFileType(wsdlFilename);
- parseWSDL(wsdlFilename);
- if (env == null) {
- env = new ProcessorEnvironment();
- env.put("wsdlurl", wsdlDefinition.getDocumentBaseURI());
- }
-
- initModel();
}
public Definition getWSDLDefinition() {
return this.wsdlDefinition;
}
+ public void setWSDLDefinition(Definition definition) {
+ wsdlDefinition = definition;
+ }
+
public XmlSchema getXmlSchemaType() {
return this.schematype;
}
@@ -285,18 +238,5 @@
public ExtensionRegistry getExtensionRegistry() {
return extReg;
- }
-
- /*public void setExtensionRegistry() {
- try {
- extReg = new ExtensionRegistry();
- addExtensions(extReg);
- } catch (Exception ex) {
- org.objectweb.celtix.common.i18n.Message msg =
- new org.objectweb.celtix.common.i18n.Message(
- "FAIL_TO_CREATE_WSDL_DEFINITION", LOG);
- throw new ToolException(msg, ex);
- }
- }*/
-
+ }
}
Modified: incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToTypeProcessor.java
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToTypeProcessor.java?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToTypeProcessor.java (original)
+++ incubator/yoko/trunk/tools/src/main/java/org/apache/yoko/tools/processors/wsdl/WSDLToTypeProcessor.java Wed Jun 7 11:11:54 2006
@@ -1,9 +1,6 @@
package org.apache.yoko.tools.processors.wsdl;
-public class WSDLToTypeProcessor extends WSDLToProcessor {
-
- public void process(String wsdlFilename) throws Exception {
- init(wsdlFilename);
- }
+import javax.wsdl.Definition;
+public class WSDLToTypeProcessor extends WSDLToProcessor {
}
Modified: incubator/yoko/trunk/tools/src/test/resources/idl/expected_HelloWorld.wsdl
URL: http://svn.apache.org/viewvc/incubator/yoko/trunk/tools/src/test/resources/idl/expected_HelloWorld.wsdl?rev=412473&r1=412472&r2=412473&view=diff
==============================================================================
--- incubator/yoko/trunk/tools/src/test/resources/idl/expected_HelloWorld.wsdl (original)
+++ incubator/yoko/trunk/tools/src/test/resources/idl/expected_HelloWorld.wsdl Wed Jun 7 11:11:54 2006
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
-<wsdl:definitions targetNamespace="http://schemas.apache.org/yoko/idl/HelloWorld" xmlns:tns="http://schemas.apache.org/yoko/idl/HelloWorld" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+<wsdl:definitions targetNamespace="http://schemas.apache.org/yoko/idl/HelloWorld" xmlns:tns="http://schemas.apache.org/yoko/idl/HelloWorld" xmlns:corba="http://schemas.apache.org/yoko/bindings/corba" xmlns:ns1="http://schemas.apache.org/yoko/idl/HelloWorld/corba/typemap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="unqualified" targetNamespace="http://schemas.apache.org/yoko/idl/HelloWorld" xmlns="http://schemas.apache.org/yoko/idl/HelloWorld" xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="greetMeResponse" type="xs:string"/><xs:element name="greetMe" type="xs:string"/></xs:schema>
</wsdl:types>
<wsdl:message name="greetMeResponse">
- <wsdl:part name="parameters" element="tns:greetMeResponse"/>
+ <wsdl:part name="outparameter" element="tns:greetMeResponse"/>
</wsdl:message>
<wsdl:message name="greetMe">
- <wsdl:part name="parameters" element="tns:greetMe"/>
+ <wsdl:part name="inparameter" element="tns:greetMe"/>
</wsdl:message>
<wsdl:portType name="HelloWorld">
<wsdl:operation name="greetMe">
@@ -15,4 +15,13 @@
<wsdl:output name="greetMeResponse" message="tns:greetMeResponse"/>
</wsdl:operation>
</wsdl:portType>
-</wsdl:definitions>
+ <wsdl:binding name="HelloWorldCORBABinding" type="tns:HelloWorld">
+<corba:binding repositoryID="IDL:HelloWorld:1.0" /> <wsdl:operation name="greetMe">
+<corba:operation name="greetMe"><corba:param mode="in" name="inparameter" idltype="corba:string" /><corba:return name="outparameter" idltype="corba:string" /></corba:operation> <wsdl:input name="greetMeRequest">
+ </wsdl:input>
+ <wsdl:output name="greetMeResponse">
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+<corba:typeMapping targetNamespace="http://schemas.apache.org/yoko/idl/HelloWorld/corba/typemap/" /></wsdl:definitions>
+