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 am...@apache.org on 2007/03/30 09:50:44 UTC

svn commit: r523980 - /webservices/axis2/branches/java/1_2/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.java

Author: amilas
Date: Fri Mar 30 00:50:43 2007
New Revision: 523980

URL: http://svn.apache.org/viewvc?view=rev&rev=523980
Log:
save only one service with the wsdl file

Modified:
    webservices/axis2/branches/java/1_2/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.java

Modified: webservices/axis2/branches/java/1_2/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_2/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.java?view=diff&rev=523980&r1=523979&r2=523980
==============================================================================
--- webservices/axis2/branches/java/1_2/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.java (original)
+++ webservices/axis2/branches/java/1_2/modules/codegen/src/org/apache/axis2/wsdl/codegen/writer/WSDL11Writer.java Fri Mar 30 00:50:43 2007
@@ -1,9 +1,7 @@
 package org.apache.axis2.wsdl.codegen.writer;
 
 import org.apache.axis2.description.AxisService;
-import org.apache.axis2.description.Parameter;
 import org.apache.axis2.util.FileWriter;
-import org.apache.axis2.wsdl.WSDLConstants;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;
 import org.w3c.dom.Node;
@@ -12,15 +10,13 @@
 import javax.wsdl.Definition;
 import javax.wsdl.Import;
 import javax.wsdl.Types;
+import javax.wsdl.Service;
 import javax.wsdl.extensions.schema.Schema;
 import javax.wsdl.factory.WSDLFactory;
 import javax.wsdl.xml.WSDLWriter;
 import java.io.File;
 import java.io.FileOutputStream;
-import java.util.Map;
-import java.util.Vector;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 /*
  * Copyright 2004,2005 The Apache Software Foundation.
  *
@@ -81,7 +77,7 @@
     }
 
     private void writeWSDL(Definition definition,
-                           String fileName,
+                           String serviceName,
                            Map changedMap) throws Exception {
         // first process the imports and save them.
         Map imports = definition.getImports();
@@ -104,9 +100,44 @@
         // finally save the file
         WSDLWriter wsdlWriter = WSDLFactory.newInstance().newWSDLWriter();
         File outputFile = FileWriter.createClassFile(baseFolder,
-                null, fileName, ".wsdl");
+                null, serviceName, ".wsdl");
         FileOutputStream out = new FileOutputStream(outputFile);
-        wsdlWriter.writeWSDL(definition, out);
+
+        // we have a catch here
+        // if there are multimple services in the definition object
+        // we have to write only the relavent service.
+
+
+        if (definition.getServices().size() > 1){
+           List removedServices = new ArrayList();
+           List servicesList = new ArrayList();
+
+           Map services = definition.getServices();
+           // populate the services list
+           for (Iterator iter = services.values().iterator();iter.hasNext();){
+               servicesList.add(iter.next());
+           }
+           Service service;
+           for (Iterator iter = servicesList.iterator();iter.hasNext();){
+               service = (Service) iter.next();
+               if (!service.getQName().getLocalPart().equals(serviceName)){
+                   definition.removeService(service.getQName());
+                   removedServices.add(service);
+               }
+           }
+
+           //now we have only the required service so write it
+           wsdlWriter.writeWSDL(definition, out);
+
+           // again add the removed services
+           for (Iterator iter = removedServices.iterator(); iter.hasNext();){
+               service = (Service) iter.next();
+               definition.addService(service);
+           }
+        } else {
+           // no problem proceed normaly
+           wsdlWriter.writeWSDL(definition, out);
+        }
         out.flush();
         out.close();
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org