You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by ch...@apache.org on 2005/10/07 13:51:52 UTC
svn commit: r307091 - in
/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions:
SchemaUtility.java XMLBeans/XMLBeansSchemaUtility.java
Author: chinthaka
Date: Fri Oct 7 04:51:39 2005
New Revision: 307091
URL: http://svn.apache.org/viewcvs?rev=307091&view=rev
Log:
Adding more stuff to ?wsdl generation
Modified:
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/SchemaUtility.java
webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/XMLBeans/XMLBeansSchemaUtility.java
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/SchemaUtility.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/SchemaUtility.java?rev=307091&r1=307090&r2=307091&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/SchemaUtility.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/SchemaUtility.java Fri Oct 7 04:51:39 2005
@@ -2,7 +2,8 @@
import org.apache.axis2.AxisFault;
import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.om.OMElement;
+
+import javax.wsdl.Definition;
/*
* Copyright 2001-2004 The Apache Software Foundation.
@@ -37,14 +38,18 @@
* @param serviceDescription
* @return
*/
+
public boolean isRelevant(ServiceDescription serviceDescription) throws AxisFault;
/**
* isRelevant() must be called before calling this method.
* This will return the complete schema of the given service.
+ *
* @param serviceDescription
* @return
* @throws AxisFault
*/
- public OMElement getSchema(ServiceDescription serviceDescription) throws AxisFault;
+ public void getSchema(ServiceDescription serviceDescription, Definition definition) throws AxisFault;
+
+ public void createMessagesAndPortTypes(ServiceDescription serviceDescription, Definition definition) throws AxisFault;
}
Modified: webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/XMLBeans/XMLBeansSchemaUtility.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/XMLBeans/XMLBeansSchemaUtility.java?rev=307091&r1=307090&r2=307091&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/XMLBeans/XMLBeansSchemaUtility.java (original)
+++ webservices/axis2/trunk/java/modules/codegen/src/org/apache/axis2/databinding/extensions/XMLBeans/XMLBeansSchemaUtility.java Fri Oct 7 04:51:39 2005
@@ -1,23 +1,25 @@
package org.apache.axis2.databinding.extensions.XMLBeans;
-import com.ibm.wsdl.DefinitionImpl;
import com.ibm.wsdl.InputImpl;
import com.ibm.wsdl.MessageImpl;
import com.ibm.wsdl.OperationImpl;
import com.ibm.wsdl.OutputImpl;
import com.ibm.wsdl.PartImpl;
import com.ibm.wsdl.PortTypeImpl;
+import com.ibm.wsdl.TypesImpl;
+import com.ibm.wsdl.extensions.schema.SchemaImpl;
import org.apache.axis2.AxisFault;
import org.apache.axis2.databinding.extensions.SchemaUtility;
import org.apache.axis2.description.OperationDescription;
import org.apache.axis2.description.ServiceDescription;
-import org.apache.axis2.om.OMAbstractFactory;
import org.apache.axis2.om.OMElement;
import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder;
import org.apache.axis2.wsdl.codegen.extension.XMLBeansExtension;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.xmlbeans.XmlObject;
+import org.w3c.dom.Document;
+import org.xml.sax.SAXException;
import javax.wsdl.Definition;
import javax.wsdl.Input;
@@ -26,10 +28,11 @@
import javax.wsdl.Output;
import javax.wsdl.Part;
import javax.wsdl.PortType;
-import javax.wsdl.WSDLException;
-import javax.wsdl.factory.WSDLFactory;
-import javax.wsdl.xml.WSDLWriter;
+import javax.wsdl.Types;
+import javax.wsdl.extensions.schema.Schema;
import javax.xml.namespace.QName;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
import javax.xml.stream.XMLStreamException;
import java.io.File;
import java.io.FileInputStream;
@@ -91,9 +94,9 @@
}
}
- public OMElement getSchema(ServiceDescription serviceDescription) throws AxisFault {
+ public void getSchema(ServiceDescription serviceDescription, Definition definition) throws AxisFault {
if (!isRelevant(serviceDescription)) {
- return null;
+ return;
}
@@ -103,20 +106,27 @@
ZipEntry entry;
String entryName = "";
- OMElement typesElement = OMAbstractFactory.getOMFactory().createOMElement("types", null);
+
+ Schema schema;
+ Types types = new TypesImpl();
+ definition.setTypes(types);
+
while ((entry = zipInputStream.getNextEntry()) != null) {
entryName = entry.getName();
if (entryName.startsWith(XMLBeansExtension.SCHEMA_FOLDER) && entryName.endsWith(".xsd")) {
InputStream schemaEntry = serviceDescription.getClassLoader().getResourceAsStream(entryName);
- typesElement.addChild(new StAXOMBuilder(schemaEntry).getDocumentElement());
-
+ schema = new SchemaImpl();
+ Document document = DocumentBuilderFactory.newInstance().newDocumentBuilder().parse(schemaEntry);
+ schema.setElement(document.getDocumentElement());
+ types.addExtensibilityElement(schema);
}
}
- return typesElement;
} catch (IOException e) {
throw new AxisFault(e);
- } catch (XMLStreamException e) {
+ } catch (ParserConfigurationException e) {
throw new AxisFault(e);
+ } catch (SAXException e) {
+ throw new UnsupportedOperationException();
}
}
@@ -140,10 +150,9 @@
}
- public void createMessagesAndPortTypes(ServiceDescription serviceDescription) throws AxisFault {
+ public void createMessagesAndPortTypes(ServiceDescription serviceDescription, Definition definition) throws AxisFault {
HashMap mappings = readMappings(serviceDescription);
- Definition definition = new DefinitionImpl();
try {
@@ -152,6 +161,7 @@
PortType portType = new PortTypeImpl();
portType.setQName(serviceDescription.getName());
+ definition.addPortType(portType);
Class serviceImplementation = classLoader.loadClass(serviceClassName);
Method[] methods = serviceImplementation.getMethods();
@@ -189,30 +199,25 @@
portType.addOperation(wsdlOperation);
}
- WSDLWriter wsdlWriter = WSDLFactory.newInstance().newWSDLWriter();
- wsdlWriter.writeWSDL(definition, System.out);
+ portType.setUndefined(false);
} catch (ClassNotFoundException e) {
log.error("Can not load the service " + serviceDescription + " from the given class loader");
throw new AxisFault(e);
- } catch (WSDLException e) {
- e.printStackTrace();
- throw new UnsupportedOperationException();
}
-
}
private Message getMessage(HashMap mappings, Class returnType) {
- System.out.println("returnType = " + returnType);
String mappingName = (String) mappings.get(returnType.getName());
- System.out.println("mappingName = " + mappingName);
Message message = new MessageImpl();
message.setQName(new QName(mappingName));
Part part = new PartImpl();
part.setName("param");
part.setElementName(new QName(mappingName));
+ message.addPart(part);
+ message.setUndefined(false);
return message;
}
@@ -234,7 +239,6 @@
OMElement mappingElement = (OMElement) mappingElementsIter.next();
String messageName = mappingElement.getFirstChildWithName(new QName(XMLBeansExtension.MESSAGE)).getText();
String javaclass = mappingElement.getFirstChildWithName(new QName(XMLBeansExtension.JAVA_NAME)).getText();
- System.out.println(javaclass + ":" + messageName);
mappings.put(javaclass, messageName);
}