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/09/14 10:06:42 UTC

svn commit: r280803 - in /webservices/axis2/trunk/java/modules/core/src/org/apache/axis2: deployment/ deployment/repository/util/ description/

Author: deepal
Date: Wed Sep 14 01:06:14 2005
New Revision: 280803

URL: http://svn.apache.org/viewcvs?rev=280803&view=rev
Log:
ServiceGroup modification , no compile errors , I will fix the build soon 

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentConstants.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceGroupDescription.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentConstants.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentConstants.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentConstants.java Wed Sep 14 01:06:14 2005
@@ -23,6 +23,7 @@
     int SERVICE = 0; // if it is a servise
     int MODULE = 1; // if it is a module
 
+    String META_INF ="META-INF";
     String SERVICEXML = "META-INF/service.xml";
     String SERVICEWSDL = "META-INF/service.wsdl";
     String MODULEXML = "META-INF/module.xml";
@@ -92,5 +93,7 @@
 
     String AXIS_STORAGE = "axisStorage";
 
-
+    //element in a services.xml
+    String SERVICE_ELEMENT ="service";
+    String SERVICE_GROUP_ELEMENT ="serviceGroup";
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Sep 14 01:06:14 2005
@@ -37,6 +37,7 @@
 import org.apache.commons.logging.LogFactory;
 
 import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 import java.io.*;
 import java.util.*;
 
@@ -384,24 +385,40 @@
     }
 
 
-    private void addnewService(ServiceDescription serviceMetaData) throws AxisFault {
-        try {
-            loadServiceProperties(serviceMetaData);
-            axisConfig.addService(serviceMetaData);
-            serviceMetaData.setFileName(currentArchiveFile.getFile().getAbsolutePath());
-            ArrayList list = currentArchiveFile.getModules();
+    private void addnewService(ServiceGroupDescription serviceMetaData) throws AxisFault {
+        Iterator services = currentArchiveFile.getService().values().iterator();
+        while (services.hasNext()) {
+            ServiceDescription serviceDescription = (ServiceDescription) services.next();
+            loadServiceProperties(serviceDescription);
+            serviceDescription.setFileName(currentArchiveFile.getFile().getAbsolutePath());
+
+            //module form serviceGroup
+            ArrayList groupModules = serviceMetaData.getModules();
+            for (int i = 0; i < groupModules.size(); i++) {
+                ModuleDescription module = axisConfig.getModule((QName) groupModules.get(i));
+                if (module != null) {
+                    serviceDescription.engageModule(module, axisConfig);
+                } else {
+                    throw new DeploymentException(Messages.getMessage(
+                            DeploymentErrorMsgs.IN_VALID_MODUELE_REF, serviceDescription.getName().
+                            getLocalPart(), ((QName) groupModules.get(i)).getLocalPart()));
+                }
+            }
+
+            //modules from <service>
+            ArrayList list = serviceDescription.getModules();
             for (int i = 0; i < list.size(); i++) {
                 ModuleDescription module = axisConfig.getModule((QName) list.get(i));
                 if (module != null) {
-                    serviceMetaData.engageModule(module, axisConfig);
+                    serviceDescription.engageModule(module, axisConfig);
                 } else {
                     throw new DeploymentException(Messages.getMessage(
-                            DeploymentErrorMsgs.IN_VALID_MODUELE_REF, serviceMetaData.getName().
+                            DeploymentErrorMsgs.IN_VALID_MODUELE_REF, serviceDescription.getName().
                             getLocalPart(), ((QName) list.get(i)).getLocalPart()));
                 }
             }
 
-            HashMap opeartions = serviceMetaData.getOperations();
+            HashMap opeartions = serviceDescription.getOperations();
             Collection opCol = opeartions.values();
             for (Iterator iterator = opCol.iterator(); iterator.hasNext();) {
                 OperationDescription opDesc = (OperationDescription) iterator.next();
@@ -419,9 +436,7 @@
                 }
 
             }
-            ///factory.createChains(serviceMetaData, axisConfig, );
-        } catch (PhaseException e) {
-            throw new AxisFault(e);
+            serviceMetaData.addService(serviceDescription);
         }
 //        System.out.println("Adding service = " + serviceMetaData.getName().getLocalPart());
     }
@@ -563,18 +578,17 @@
                             String serviceStatus = "";
                             try {
                                 // ServiceDescription service = archiveReader.createService(currentArchiveFile.getAbsolutePath());
-                                ServiceDescription service =
-                                        archiveReader.createService(currentArchiveFile);
-                                service.setClassLoader(currentArchiveFile.getClassLoader());
-                              //  service.setParent(axisConfig);
-                                archiveReader.processServiceDescriptor(currentArchiveFile.getAbsolutePath(),
+                                ServiceGroupDescription sericeGroup =
+                                        new ServiceGroupDescription(axisConfig);
+                                archiveReader.processServiceGroup(currentArchiveFile.getAbsolutePath(),
                                         this,
-                                        service,extractServiceArchive);
+                                        sericeGroup,extractServiceArchive);
 //                                archiveReader.readServiceArchive(currentArchiveFile.getAbsolutePath(),
 //                                        this,
 //                                        service);
-                                addnewService(service);
-                                log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS, currentArchiveFile.getName()));
+                                addnewService(sericeGroup);
+                                log.info(Messages.getMessage(
+                                        DeploymentErrorMsgs.DEPLOYING_WS, currentArchiveFile.getName()));
                             } catch (DeploymentException de) {
                                 log.info(Messages.getMessage(DeploymentErrorMsgs.IN_VALID_SERVICE,
                                         currentArchiveFile.getName()));
@@ -768,7 +782,7 @@
             currentArchiveFile.setClassLoader(classLoader);
 
             ServiceBuilder builder = new ServiceBuilder(serviceInputStream,this,axisService);
-            builder.populateService();
+            builder.populateService(builder.buildOM());
 
 //            DeploymentParser schme = new DeploymentParser(serviceInputStream,
 //                    this);
@@ -777,6 +791,8 @@
 //            axisConfig.addService(axisService);
         }  catch (AxisFault axisFault) {
             throw new DeploymentException(axisFault);
+        } catch (XMLStreamException e) {
+            throw new DeploymentException(e);
         }
         return axisService;
     }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DescriptionBuilder.java Wed Sep 14 01:06:14 2005
@@ -56,13 +56,16 @@
         this.engine = engine;
     }
 
+    public DescriptionBuilder() {
+    }
+
     /**
      * This will creat OMElemnt for a given service.xml
      *
      * @return OMElement <code>OMElement</code>
      * @throws javax.xml.stream.XMLStreamException
      */
-    protected OMElement buildOM() throws XMLStreamException {
+    public OMElement buildOM() throws XMLStreamException {
         XMLStreamReader xmlReader =
                 XMLInputFactory.newInstance().createXMLStreamReader(serviceInputSteram);
         OMFactory fac = OMAbstractFactory.getOMFactory();
@@ -169,26 +172,26 @@
      * @param moduleRefs  <code>java.util.Iterator</code>
      * @throws DeploymentException   <code>DeploymentException</code>
      */
-    protected void processModuleRefs(Iterator moduleRefs) throws DeploymentException {
-        try {
-            while (moduleRefs.hasNext()) {
-                OMElement moduleref = (OMElement) moduleRefs.next();
-                OMAttribute moduleRefAttribute = moduleref.getAttribute(
-                        new QName(REF));
-                if(moduleRefAttribute !=null){
-                    String refName = moduleRefAttribute.getValue();
-                    if(engine.getModule(new QName(refName)) == null) {
-                        throw new DeploymentException(Messages.getMessage(
-                                DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
-                    } else {
-                        engine.getCurrentFileItem().addModule(new QName(refName));
-                    }
-                }
-            }
-        }catch (AxisFault axisFault) {
-            throw   new DeploymentException(axisFault);
-        }
-    }
+//    protected void processModuleRefs(Iterator moduleRefs) throws DeploymentException {
+//        try {
+//            while (moduleRefs.hasNext()) {
+//                OMElement moduleref = (OMElement) moduleRefs.next();
+//                OMAttribute moduleRefAttribute = moduleref.getAttribute(
+//                        new QName(REF));
+//                if(moduleRefAttribute !=null){
+//                    String refName = moduleRefAttribute.getValue();
+//                    if(engine.getModule(new QName(refName)) == null) {
+//                        throw new DeploymentException(Messages.getMessage(
+//                                DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
+//                    } else {
+//                        engine.getCurrentFileItem().addModule(new QName(refName));
+//                    }
+//                }
+//            }
+//        }catch (AxisFault axisFault) {
+//            throw   new DeploymentException(axisFault);
+//        }
+//    }
 
 
     /**
@@ -335,7 +338,7 @@
      * @param fileName
      * @return String
      */
-    protected String getShortFileName(String fileName) {
+    public String getShortFileName(String fileName) {
         char seperator = '.';
         String value;
         int index = fileName.lastIndexOf(seperator);

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceBuilder.java Wed Sep 14 01:06:14 2005
@@ -8,6 +8,7 @@
 import org.apache.axis2.om.OMElement;
 import org.apache.axis2.om.impl.OMOutputImpl;
 import org.apache.axis2.Constants;
+import org.apache.axis2.AxisFault;
 
 import javax.xml.namespace.QName;
 import javax.xml.stream.XMLOutputFactory;
@@ -57,28 +58,17 @@
         this.service = service;
     }
 
+    public ServiceBuilder(DeploymentEngine engine,ServiceDescription service) {
+        this.service = service;
+        super.engine = engine;
+    }
+
     /**
      * top most method that used to populate service from corresponding OM
      */
-    public void populateService() throws DeploymentException {
+    public void populateService(OMElement service_element) throws DeploymentException {
         try {
-            OMElement service_element = buildOM();
 
-            //setting service Name
-            OMAttribute serviceNameatt = service_element.getAttribute(
-                    new QName(ATTNAME));
-            if(serviceNameatt !=null){
-                String serviceName = serviceNameatt.getValue();
-                if (serviceName != null && !"".equals(serviceName)) {
-                    service.setName(new QName(serviceName));
-                } else {
-                    service.setName(new QName(getShortFileName(engine.getCurrentFileItem()
-                            .getServiceName())));
-                }
-            } else {
-                service.setName(new QName(getShortFileName(engine.getCurrentFileItem()
-                        .getServiceName())));
-            }
             //Processing service level paramters
             Iterator itr = service_element.getChildrenWithName(
                     new QName(PARAMETERST));
@@ -244,8 +234,8 @@
         }
     }
 
-     protected void processOperationModuleConfig(Iterator moduleConfigs ,
-                                              ParameterInclude parent, OperationDescription opeartion)
+    protected void processOperationModuleConfig(Iterator moduleConfigs ,
+                                                ParameterInclude parent, OperationDescription opeartion)
             throws DeploymentException {
         while (moduleConfigs.hasNext()) {
             OMElement moduleConfig = (OMElement) moduleConfigs.next();
@@ -261,6 +251,32 @@
                 processParameters(paramters,moduleConfiguration,parent);
                 opeartion.addModuleConfig(moduleConfiguration);
             }
+        }
+    }
+
+    /**
+     * To get the list og modules that is requird to be engage globally
+     * @param moduleRefs  <code>java.util.Iterator</code>
+     * @throws DeploymentException   <code>DeploymentException</code>
+     */
+    protected void processModuleRefs(Iterator moduleRefs) throws DeploymentException {
+        try {
+            while (moduleRefs.hasNext()) {
+                OMElement moduleref = (OMElement) moduleRefs.next();
+                OMAttribute moduleRefAttribute = moduleref.getAttribute(
+                        new QName(REF));
+                if(moduleRefAttribute !=null){
+                    String refName = moduleRefAttribute.getValue();
+                    if(engine.getModule(new QName(refName)) == null) {
+                        throw new DeploymentException(Messages.getMessage(
+                                DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
+                    } else {
+                        service.addModuleref(new QName(refName));
+                    }
+                }
+            }
+        }catch (AxisFault axisFault) {
+            throw   new DeploymentException(axisFault);
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java Wed Sep 14 01:06:14 2005
@@ -17,6 +17,7 @@
 package org.apache.axis2.deployment.repository.util;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.ServiceDescription;
 import org.apache.axis2.deployment.DeploymentClassLoader;
 
 import javax.xml.namespace.QName;
@@ -25,6 +26,7 @@
 import java.net.MalformedURLException;
 import java.net.URLClassLoader;
 import java.util.ArrayList;
+import java.util.HashMap;
 
 /**
  * ArchiveFileData = Hot Deployment File Item , to store infromation of the module or servise
@@ -39,8 +41,11 @@
     private String moduleClass;
     private String name;
 
-    private ArrayList modules = new ArrayList();
 
+    //To store services in a serviceGroup , if there are wsdl for those servics ,
+    //so wsdl service will be created for each wsdl an those will be temeororaly store
+    //in this table
+    private HashMap service = new HashMap();
 
     public ArchiveFileData(int type, String name) {
         this.type = type;
@@ -165,15 +170,6 @@
 
     }
 
-    public void addModule(QName moduleName) {
-        modules.add(moduleName);
-    }
-
-    public ArrayList getModules() {
-        return modules;
-    }
-
-
     /**
      * to check whthere a given file is  a  jar file
      *
@@ -187,4 +183,18 @@
     public static  boolean isModuleArchiveFile(String filename) {
         return ((filename.endsWith(".jar")) || (filename.endsWith(".mar")));
     }
+
+
+    public void addService(ServiceDescription servicedesc){
+        service.put(servicedesc.getName(),servicedesc);
+    }
+
+    public ServiceDescription getService(QName serviceName){
+        return (ServiceDescription)service.get(serviceName);
+    }
+
+    public HashMap getService() {
+        return service;
+    }
+
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Wed Sep 14 01:06:14 2005
@@ -20,15 +20,20 @@
 import org.apache.axis2.description.AxisDescWSDLComponentFactory;
 import org.apache.axis2.description.ModuleDescription;
 import org.apache.axis2.description.ServiceDescription;
+import org.apache.axis2.description.ServiceGroupDescription;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.wsdl.WSDLVersionWrapper;
 import org.apache.axis2.wsdl.builder.WOMBuilder;
 import org.apache.axis2.wsdl.builder.WOMBuilderFactory;
+import org.apache.axis2.om.OMElement;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.wsdl.WSDLDescription;
 import org.apache.wsdl.impl.WSDLServiceImpl;
 
+import javax.wsdl.WSDLException;
+import javax.xml.namespace.QName;
+import javax.xml.stream.XMLStreamException;
 import java.io.*;
 import java.util.Iterator;
 import java.util.zip.ZipEntry;
@@ -90,6 +95,84 @@
         return service;
     }
 
+
+    private void processWSDLFile(InputStream in , DeploymentEngine depengine) throws DeploymentException {
+        try {
+            WOMBuilder builder = WOMBuilderFactory.getBuilder(WOMBuilderFactory.WSDL11);
+            WSDLVersionWrapper wsdlVersionWrapper = builder.build(in,
+                    new AxisDescWSDLComponentFactory());
+            WSDLDescription womDescription = wsdlVersionWrapper.getDescription();
+            Iterator iterator = womDescription.getServices().keySet()
+                    .iterator();
+            if (iterator.hasNext()) {
+                // remove <wsdl:service> and <wsdl:binding> elements from the service
+                // description we read in as we will be replacing them anyway.
+                WSDLServiceImpl serviceimpl = (WSDLServiceImpl)
+                        womDescription.getServices().get(iterator.next());
+                ServiceDescription service = new ServiceDescription(serviceimpl);
+                service.setName(serviceimpl.getName());
+                service.setWSDLDefinition(wsdlVersionWrapper.getDefinition());
+                depengine.getCurrentFileItem().addService(service);
+            }
+        } catch (WSDLException e) {
+            throw new DeploymentException(e);
+        }
+    }
+
+    /**
+     * To create service objects out form wsdls file inside a service archive file
+     * @param file <code>ArchiveFileData</code>
+     * @param depengine <code>DeploymentEngine</code>
+     * @throws DeploymentException  <code>DeploymentException</code>
+     */
+    public void processWSDLs(ArchiveFileData file , DeploymentEngine depengine) throws DeploymentException {
+        File serviceFile = file.getFile();
+        boolean isDirectory = serviceFile.isDirectory();
+        if(isDirectory){
+            try {
+                File meta_inf = new File(serviceFile,META_INF);
+                if(meta_inf.exists()){
+                    File files [] = meta_inf.listFiles();
+                    for (int i = 0; i < files.length; i++) {
+                        File file1 = files[i];
+                        String fileName = file1.getName();
+                        if(fileName.endsWith(".wsdl") || fileName.endsWith(".WSDL")){
+                            InputStream in = new FileInputStream(file1);
+                            processWSDLFile(in,depengine);
+                            in.close();
+                        }
+                    }
+                } else {
+                    throw new DeploymentException("In valid service META-INF file not found");
+                }
+            } catch (FileNotFoundException e) {
+                throw new DeploymentException(e);
+            } catch (IOException e) {
+                throw new DeploymentException(e);
+            }
+        }   else {
+
+            ZipInputStream zin;
+            try {
+                zin = new ZipInputStream(new FileInputStream(serviceFile));
+                ZipEntry entry;
+                while ((entry = zin.getNextEntry()) != null) {
+                    String entryName = entry.getName();
+                    if (entryName.startsWith(META_INF) && (entryName.endsWith(".wsdl")
+                            || entryName.endsWith(".WSDL"))) {
+                        processWSDLFile(zin,depengine);
+                    }
+                }
+                zin.close();
+            } catch (FileNotFoundException e) {
+                throw new DeploymentException(e);
+            } catch (IOException e) {
+                throw new DeploymentException(e);
+            }
+        }
+
+    }
+
     /**
      * This method will readServiceArchive the given jar or aar.
      * it take two arguments filename and refereance to DeployEngine
@@ -97,12 +180,12 @@
      * @param filename
      * @param engine
      */
-    public void processServiceDescriptor(String filename,
-                                         DeploymentEngine engine,
-                                         ServiceDescription service, boolean extarctService) throws DeploymentException {
+    public void processServiceGroup(String filename,
+                                    DeploymentEngine engine,
+                                    ServiceGroupDescription serviceGroupDesc, boolean extarctService)
+            throws DeploymentException {
         // get attribute values
         boolean foundServiceXML = false;
-        ServiceBuilder builder;
         if (! extarctService) {
             ZipInputStream zin;
             try {
@@ -111,9 +194,7 @@
                 while ((entry = zin.getNextEntry()) != null) {
                     if (entry.getName().equals(SERVICEXML)) {
                         foundServiceXML = true;
-                        builder = new ServiceBuilder(zin, engine, service);
-                        builder.populateService();
-                        break;
+                        buildServiceGroup(zin, engine, serviceGroupDesc);
                     }
                 }
                 zin.close();
@@ -130,11 +211,11 @@
                 InputStream in = null;
                 try {
                     in = new FileInputStream(file);
-                    builder = new ServiceBuilder(in, engine, service);
-                    builder.populateService();
-
+                    buildServiceGroup(in,engine,serviceGroupDesc);
                 } catch (FileNotFoundException e) {
                     throw new DeploymentException("FileNotFound : " + e);
+                } catch (XMLStreamException e) {
+                    throw new DeploymentException("XMLStreamException : " + e);
                 } finally {
                     try {
                         if (in != null) {
@@ -148,6 +229,36 @@
                 throw new DeploymentException(
                         Messages.getMessage(DeploymentErrorMsgs.SERVICE_XML_NOT_FOUND));
             }
+        }
+    }
+
+    private void buildServiceGroup(InputStream zin, DeploymentEngine engine,
+                                   ServiceGroupDescription serviceGroupDesc)
+            throws XMLStreamException, DeploymentException {
+        DescriptionBuilder builder;
+        String rootelementName;
+        builder = new DescriptionBuilder(zin, engine);
+        OMElement services = builder.buildOM();
+        rootelementName = services.getLocalName();
+        if(SERVICE_ELEMENT.equals(rootelementName)){
+            ServiceDescription serviceDesc = engine.getCurrentFileItem().
+                    getService(new QName(builder.getShortFileName(
+                            engine.getCurrentFileItem().getName())));
+            if(serviceDesc == null){
+                serviceDesc = new ServiceDescription(
+                        new QName(builder.getShortFileName(
+                                engine.getCurrentFileItem().getName())));
+                engine.getCurrentFileItem().addService(serviceDesc);
+            }
+            serviceDesc.setParent(serviceGroupDesc);
+            serviceDesc.setClassLoader(engine.getCurrentFileItem().getClassLoader());
+            ServiceBuilder serviceBuilder = new ServiceBuilder(engine,serviceDesc);
+            serviceBuilder.populateService(services);
+            //todo fix me deepal
+            //serviceGroupDesc.addService(serviceDesc);
+        } else if(SERVICE_GROUP_ELEMENT.equals(rootelementName)){
+            ServiceGroupBuilder groupBuilder = new ServiceGroupBuilder(services,engine);
+            groupBuilder.populateServiceGroup(serviceGroupDesc);
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceDescription.java Wed Sep 14 01:06:14 2005
@@ -73,6 +73,9 @@
 
     private HashMap wasaction_opeartionmap = null;
 
+    //to store module ref at deploy time parsing
+    private ArrayList mdoulesList = new ArrayList();
+
     /**
      * Constructor ServiceDescription
      */
@@ -812,6 +815,15 @@
 
     public ModuleConfiguration getModuleConfig(QName moduleName){
         return  (ModuleConfiguration)moduleConfigmap.get(moduleName);
+    }
+
+
+    public void addModuleref(QName moduleref){
+        mdoulesList.add(moduleref);
+    }
+
+    public ArrayList getModules(){
+        return mdoulesList;
     }
 
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceGroupDescription.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceGroupDescription.java?rev=280803&r1=280802&r2=280803&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceGroupDescription.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/ServiceGroupDescription.java Wed Sep 14 01:06:14 2005
@@ -51,6 +51,9 @@
     // to store service Group modules name
     private ArrayList modules;
 
+     //to store module ref at deploy time parsing
+    private ArrayList mdoulesList = new ArrayList();
+
 
     public ServiceGroupDescription() {
         paramInclude = new ParameterIncludeImpl();
@@ -185,6 +188,13 @@
         return (ServiceDescription) services.get(name);
     }
 
+    public void addModuleref(QName moduleref){
+        mdoulesList.add(moduleref);
+    }
+
+    public ArrayList getModules(){
+        return mdoulesList;
+    }
 
 
     public synchronized void removeService(QName name) throws AxisFault {