You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by de...@apache.org on 2005/11/30 08:16:59 UTC

svn commit: r349903 - in /webservices/axis2/trunk/java/modules: core/src/org/apache/axis2/deployment/listener/ core/src/org/apache/axis2/deployment/repository/util/ wsdl/src/org/apache/axis2/wsdl/writer/

Author: deepal
Date: Tue Nov 29 23:16:41 2005
New Revision: 349903

URL: http://svn.apache.org/viewcvs?rev=349903&view=rev
Log:
1. Fixing deployment bug (Hot update)
2. update WOMWriter to support Java2WSDL

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/WSInfoList.java
    webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMWriter.java
    webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL11Writer.java
    webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL20Writer.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java?rev=349903&r1=349902&r2=349903&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java Tue Nov 29 23:16:41 2005
@@ -33,6 +33,7 @@
      * Referance to a WSInfoList
      */
     private WSInfoList wsInfoList;
+    private DeploymentEngine deEngine;
 
 
     /**
@@ -54,6 +55,7 @@
                                   DeploymentEngine deploy_engine) {
         this.folderName = folderName;
         wsInfoList = new WSInfoList(deploy_engine);
+        this.deEngine = deploy_engine;
         init();
     }
 
@@ -97,8 +99,6 @@
      * call to update method of WSInfoList object
      */
     public void update() {
-        //todo completet this
-        // this call the update method of WSInfoList
         wsInfoList.update();
     }
 
@@ -112,7 +112,7 @@
         wsInfoList.init();
         checkModules();
 //        checkServices();
-        update();
+        deEngine.doDeploy();
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/WSInfoList.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/WSInfoList.java?rev=349903&r1=349902&r2=349903&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/WSInfoList.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/WSInfoList.java Tue Nov 29 23:16:41 2005
@@ -30,6 +30,8 @@
      */
     private static List jarList = new ArrayList();
 
+    private boolean compair = false; // to check wheter the checking is dond
+
     /**
      * All the curently updated jars
      */
@@ -104,25 +106,26 @@
                         ArchiveFileData archiveFileData = new ArchiveFileData(file, MODULE);
                         deployer.addWSToDeploy(archiveFileData);//to inform that new web service is deployed
                     } else {
-                        if (deployer.isHotUpdate()) {
-                            WSInfo tempWSInfo = getFileItem(file.getName());
-                            if (isModified(file, tempWSInfo)) {
-                                tempWSInfo.setLastModifiedDate(file.lastModified());
-                                WSInfo wsInfo = new WSInfo(tempWSInfo.getFileName(),
-                                        tempWSInfo.getLastModifiedDate(),
-                                        MODULE);
-                                deployer.addWSToUndeploy(wsInfo);   // add entry to undeploy list
-                                ArchiveFileData archiveFileData = new ArchiveFileData(file, MODULE);
-                                deployer.addWSToDeploy(archiveFileData); // add entry to deploylist
-
-                            }
-                        }
+//                        if (deployer.isHotUpdate()) {
+//                            WSInfo tempWSInfo = getFileItem(file.getName());
+//                            if (isModified(file, tempWSInfo)) {
+//                                tempWSInfo.setLastModifiedDate(file.lastModified());
+//                                WSInfo wsInfo = new WSInfo(tempWSInfo.getFileName(),
+//                                        tempWSInfo.getLastModifiedDate(),
+//                                        MODULE);
+//                                deployer.addWSToUndeploy(wsInfo);   // add entry to undeploy list
+//                                ArchiveFileData archiveFileData = new ArchiveFileData(file, MODULE);
+//                                deployer.addWSToDeploy(archiveFileData); // add entry to deploylist
+//
+//                            }
+//                        }
                     }
                     break;
                 }
         }
         String jarname = file.getName();
         currentJars.add(jarname);
+        compair = true;
     }
 
     /**
@@ -170,6 +173,11 @@
      * that is hot undeployment
      */
     public void checkForUndeploye() {
+        if(!compair){
+            return;
+        } else {
+            compair = false;
+        }
         Iterator iter = jarList.listIterator();
         int size = currentJars.size();
         List tempvector = new ArrayList();
@@ -178,6 +186,9 @@
         boolean exist ;
         while (iter.hasNext()) {
             WSInfo fileitem = (WSInfo) iter.next();
+            if(fileitem.getType() == MODULE){
+                continue;
+            }
             exist = false;
             for (int i = 0; i < size; i++) {
                 filename = (String) currentJars.get(i);
@@ -209,12 +220,13 @@
      *
      */
     public void update() {
-        checkForUndeploye();
-        if (deployer.isHotUpdate()) {
-            deployer.unDeploy();
+        synchronized (deployer) {
+            checkForUndeploye();
+            if (deployer.isHotUpdate()) {
+                deployer.unDeploy();
+            }
+            deployer.doDeploy();
         }
-        deployer.doDeploy();
-
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMWriter.java?rev=349903&r1=349902&r2=349903&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMWriter.java (original)
+++ webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMWriter.java Tue Nov 29 23:16:41 2005
@@ -44,8 +44,7 @@
 
     public void setEncoding(String encoding);
 
-
-
-
+    //to set the defaultWSDLPrefix for the wsdl file
+     void setdefaultWSDLPrefix(String defaultWSDLPrefix);
 
 }

Modified: webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL11Writer.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL11Writer.java?rev=349903&r1=349902&r2=349903&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL11Writer.java (original)
+++ webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL11Writer.java Tue Nov 29 23:16:41 2005
@@ -1,26 +1,22 @@
 package org.apache.axis2.wsdl.writer;
 
+import com.ibm.wsdl.util.xml.DOM2Writer;
+import org.apache.axis2.om.OMAbstractFactory;
+import org.apache.axis2.om.OMElement;
+import org.apache.axis2.om.OMFactory;
+import org.apache.axis2.om.impl.OMOutputImpl;
+import org.apache.axis2.om.impl.llom.builder.StAXOMBuilder;
 import org.apache.axis2.wsdl.WSDLVersionWrapper;
 import org.apache.wsdl.*;
-import org.apache.wsdl.extensions.SOAPAddress;
-import org.apache.wsdl.extensions.SOAPBinding;
-import org.apache.wsdl.extensions.SOAPBody;
-import org.apache.wsdl.extensions.SOAPHeader;
-import org.apache.wsdl.extensions.SOAPOperation;
-import org.apache.wsdl.extensions.Schema;
+import org.apache.wsdl.extensions.*;
 import org.w3c.dom.Element;
 
 import javax.wsdl.WSDLException;
 import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLWriter;
 import javax.xml.namespace.QName;
-import javax.xml.stream.XMLOutputFactory;
-import javax.xml.stream.XMLStreamException;
-import javax.xml.stream.XMLStreamWriter;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.UnsupportedEncodingException;
-import java.io.Writer;
+import javax.xml.stream.*;
+import java.io.*;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -71,11 +67,18 @@
     private String soapNsPrefix = null;
     private XMLStreamWriter writer;
 
+    private Writer rawWriter = null;
+
 
     public void setEncoding(String encoding) {
         this.encoding = encoding;
     }
 
+    //to set the defaultWSDLPrefix for the wsdl file
+    public void setdefaultWSDLPrefix(String defaultWSDLPrefix) {
+        this.defaultWSDLPrefix = defaultWSDLPrefix;
+    }
+
     /**
      * @param wsdlWrapper
      * @param out
@@ -114,7 +117,7 @@
     public void writeWOM(WSDLDescription wsdlDescription, OutputStream out) throws WriterException, XMLStreamException {
         try {
             //create a writer from the stream
-//            Writer writer = new OutputStreamWriter(out,encoding);
+            rawWriter = new OutputStreamWriter(out, encoding);
             writer = XMLOutputFactory.newInstance().createXMLStreamWriter(out);
 
             writeStartDescripton(wsdlDescription, writer);
@@ -312,6 +315,10 @@
                         writer.writeAttribute("name", part.getName());
                         String elementName = part.getElementName();
                         if (elementName != null) {
+                            //todo ajith pls take a look at that I have done the correct thing here
+                            if (part.getPrefix() != null && !part.getPrefix().trim().equals("")) {
+                                elementName = part.getPrefix() + ":" + elementName;
+                            }
                             writer.writeAttribute("element", elementName);
                         }
                         //put the type also here. For the time being let this be like it
@@ -352,6 +359,7 @@
             WSDL11MessagePart part = new WSDL11MessagePart();
             part.setName("part1");
             part.setElementName(reference.getLocalPart());  //todo prefix needs to be here!!!!
+            part.setPrefix(reference.getPrefix());
             WSDL11Message message = new WSDL11Message();
             message.setMessageName(reference.getLocalPart() + MESSAGE_NAME_SUFFIX);
             message.setParts(new WSDL11MessagePart[]{part});
@@ -451,7 +459,7 @@
                 MessageReference inputMessage = operation.getInputMessage();
                 if (inputMessage != null) {
                     message = (WSDL11Message) messageMap.get(inputMessage.getElementQName());
-                    writer.writeStartElement(defaultWSDLPrefix,INPUT_NAME, WSDL1_1_NAMESPACE_URI);
+                    writer.writeStartElement(defaultWSDLPrefix, INPUT_NAME, WSDL1_1_NAMESPACE_URI);
                     writer.writeAttribute("message", targetNamespacePrefix + ":" + message.getMessageName());
                     writer.writeEndElement();
                 }
@@ -514,12 +522,13 @@
         //write the input
         WSDLBindingMessageReference input = bindingOp.getInput();
         if (input != null) {
-            writer.writeStartElement(defaultWSDLPrefix, BINDING_OUTPUT, WSDL1_1_NAMESPACE_URI);
+            //
+            writer.writeStartElement(defaultWSDLPrefix, BINDING_INPUT, WSDL1_1_NAMESPACE_URI);
             handleExtensibiltyElements(input.getExtensibilityElements());
             writer.writeEndElement();
         }
 
-        WSDLBindingMessageReference output = bindingOp.getInput();
+        WSDLBindingMessageReference output = bindingOp.getOutput();
         if (output != null) {
             writer.writeStartElement(defaultWSDLPrefix, BINDING_OUTPUT, WSDL1_1_NAMESPACE_URI);
             handleExtensibiltyElements(output.getExtensibilityElements());
@@ -536,17 +545,31 @@
 
     }
 
+    //to write scheam types into output straem
+    private void writeScheams(Element element) throws XMLStreamException {
+        String scheamTypes = DOM2Writer.nodeToString(element);
+        System.out.println(scheamTypes);
+        XMLStreamReader xmlReader = XMLInputFactory.newInstance().createXMLStreamReader(new
+                ByteArrayInputStream(scheamTypes.getBytes()));
+        OMFactory fac = OMAbstractFactory.getOMFactory();
+
+        StAXOMBuilder staxOMBuilder = new StAXOMBuilder(fac, xmlReader);
+        OMElement scheamElement = staxOMBuilder.getDocumentElement();
+        scheamElement.serialize(new OMOutputImpl(writer));
+    }
+
     /**
      * @param extElement
      * @throws IOException
      */
     protected void writeExtensibiltyElement(WSDLExtensibilityElement extElement) throws IOException, XMLStreamException {
+
         if (extElement instanceof Schema) {
             Element element = ((Schema) extElement).getElement();
-            if (element.getNodeValue() != null) {
-                writer.writeStartElement(element.toString());
-                writer.writeEndElement();
-            }
+//            if (element.getNodeValue() != null) {
+            writeScheams(element);
+//            rawWriter.write(element.toString()); //quick hack for crimson
+//            }
         } else if (extElement instanceof SOAPAddress) {
             writeSOAPAddressExtensibilityElement((SOAPAddress) extElement);
         } else if (extElement instanceof SOAPBinding) {
@@ -579,6 +602,9 @@
     protected void writeSOAPBodyExtensibilityElement(SOAPBody soapBody) throws IOException, XMLStreamException {
         writer.writeStartElement(soapNsPrefix, "body", WSDL1_1_SOAP_NAMESPACE_URI);
         writer.writeAttribute("use", soapBody.getUse());
+        if (soapBody.getNamespaceURI() != null) {
+            writer.writeAttribute("namespace", soapBody.getNamespaceURI());
+        }
         writer.writeEndElement();
     }
 
@@ -593,6 +619,7 @@
         writer.writeStartElement(soapNsPrefix, BINDING_OPERATION, WSDL1_1_SOAP_NAMESPACE_URI);
         writer.writeAttribute("name", soapop.getType().getLocalPart());
         writer.writeAttribute("soapaction", soapop.getSoapAction());
+        writer.writeAttribute("style", soapop.getStyle());
         writer.writeEndElement();
     }
 
@@ -630,6 +657,15 @@
         private String name;
         private String elementName;
         private String type;
+        private String prefix;
+
+        public String getPrefix() {
+            return prefix;
+        }
+
+        public void setPrefix(String prefix) {
+            this.prefix = prefix;
+        }
 
         public String getName() {
             return name;

Modified: webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL20Writer.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL20Writer.java?rev=349903&r1=349902&r2=349903&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL20Writer.java (original)
+++ webservices/axis2/trunk/java/modules/wsdl/src/org/apache/axis2/wsdl/writer/WOMtoWSDL20Writer.java Tue Nov 29 23:16:41 2005
@@ -20,29 +20,32 @@
  * limitations under the License.
  */
 
-public class WOMtoWSDL20Writer implements WOMWriter{
+public class WOMtoWSDL20Writer implements WOMWriter {
 
     public void setEncoding(String encoding) {
-          throw new UnsupportedOperationException();
+        throw new UnsupportedOperationException();
+    }
+
+    //to set the defaultWSDLPrefix for the wsdl file
+    public void setdefaultWSDLPrefix(String defaultWSDLPrefix) {
+        throw new UnsupportedOperationException("Not complete!");
     }
 
     /**
-     *
      * @param wsdlWrapper
      * @param out
      * @throws WriterException
      */
     public void writeWOM(WSDLVersionWrapper wsdlWrapper, OutputStream out) throws WriterException {
-       throw new WriterException("Not complete!");
+        throw new WriterException("Not complete!");
     }
 
     /**
-     *
      * @param wsdlDescription
      * @param out
      * @throws WriterException
      */
     public void writeWOM(WSDLDescription wsdlDescription, OutputStream out) throws WriterException {
-         throw new WriterException("Not complete!");
+        throw new WriterException("Not complete!");
     }
 }