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/14 09:05:04 UTC

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

Author: deepal
Date: Mon Nov 14 00:04:42 2005
New Revision: 344074

URL: http://svn.apache.org/viewcvs?rev=344074&view=rev
Log:
abstracting file system deployment from deployment to improve the deployment mechanism 

Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.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/ModuleBuilder.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/ServiceGroupBuilder.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/deployment/util/Utils.java
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java
    webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/AxisConfigBuilder.java Mon Nov 14 00:04:42 2005
@@ -41,11 +41,13 @@
 public class AxisConfigBuilder extends DescriptionBuilder {
 
     private AxisConfiguration axisConfiguration;
+    private DeploymentEngine engine;
 
     public AxisConfigBuilder(InputStream serviceInputSteram, DeploymentEngine engine,
                              AxisConfiguration axisConfiguration) {
-        super(serviceInputSteram, engine);
+        super(serviceInputSteram, axisConfiguration);
         this.axisConfiguration = axisConfiguration;
+        this.engine = engine;
     }
 
     public void populateConfig() throws DeploymentException {

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=344074&r1=344073&r2=344074&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 Mon Nov 14 00:04:42 2005
@@ -29,9 +29,7 @@
 import org.apache.axis2.description.*;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurationImpl;
-import org.apache.axis2.engine.Handler;
 import org.apache.axis2.i18n.Messages;
-import org.apache.axis2.modules.Module;
 import org.apache.axis2.phaseresolver.PhaseMetadata;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -207,6 +205,7 @@
             axisConfig = createEngineConfig();
             AxisConfigBuilder builder = new AxisConfigBuilder(in, this, axisConfig);
             builder.populateConfig();
+            ((AxisConfigurationImpl) axisConfig).setPhasesinfo(phasesinfo);
             //setting the CLs
             setClassLoaders(repository);
         } catch (FileNotFoundException e) {
@@ -221,7 +220,6 @@
         try {
             ((AxisConfigurationImpl) axisConfig).setRepository(axis2repository);
             validateSystemPredefinedPhases();
-            ((AxisConfigurationImpl) axisConfig).setPhasesinfo(phasesinfo);
             engageModules();
         } catch (AxisFault axisFault) {
             log.info(Messages.getMessage(DeploymentErrorMsgs.MODULE_VAL_FAILED, axisFault.getMessage()));
@@ -362,12 +360,13 @@
     }
 
 
-    private void addnewService(AxisServiceGroup axisServiceMetaData) throws AxisFault {
+    private void addServiceGroup(AxisServiceGroup axisServiceMetaData, ArrayList service) throws AxisFault {
 //        Iterator services = currentArchiveFile.getService().values().iterator();
-        Iterator services = currentArchiveFile.getDeploybleServices().iterator();
+        Iterator services = service.iterator();//              currentArchiveFile.getDeploybleServices().iterator();
         while (services.hasNext()) {
             AxisService axisService = (AxisService) services.next();
-            loadServiceProperties(axisService);
+//            loadServiceProperties(axisService);
+            Utils.loadServiceProperties(axisService);
             axisService.setFileName(currentArchiveFile.getFile().getAbsolutePath());
 
             //module form serviceGroup
@@ -419,110 +418,30 @@
         axisConfig.addServiceGroup(axisServiceMetaData);
     }
 
-    /**
-     * This method is used to fill the axis service , it dose loading service class and also the provider class
-     * and it will also load the service handlers
-     *
-     * @param axisService
-     * @throws org.apache.axis2.AxisFault
-     */
-    private void loadServiceProperties(AxisService axisService) throws AxisFault {
-        Flow inflow = axisService.getInFlow();
-        if (inflow != null) {
-            addFlowHandlers(inflow);
-        }
-
-        Flow outFlow = axisService.getOutFlow();
-        if (outFlow != null) {
-            addFlowHandlers(outFlow);
-        }
-
-        Flow faultInFlow = axisService.getFaultInFlow();
-        if (faultInFlow != null) {
-            addFlowHandlers(faultInFlow);
-        }
-
-        Flow faultOutFlow = axisService.getFaultOutFlow();
-        if (faultOutFlow != null) {
-            addFlowHandlers(faultOutFlow);
-        }
-        // axisService.setClassLoader(currentArchiveFile.getClassLoader());
-    }
-
 
-    private void loadModuleClass(ModuleDescription module) throws AxisFault {
-        Class moduleClass;
-        try {
-            String readInClass = currentArchiveFile.getModuleClass();
-            if (readInClass != null && !"".equals(readInClass)) {
-                moduleClass =
-                        Class.forName(readInClass,
-                                true,
-                                currentArchiveFile.getClassLoader());
-                module.setModule((Module) moduleClass.newInstance());
-            }
-        } catch (Exception e) {
-            throw new AxisFault(e.getMessage(), e);
-        }
-
-    }
-
-
-    private void addFlowHandlers(Flow flow) throws AxisFault {
-        int count = flow.getHandlerCount();
-        ClassLoader loader1 = currentArchiveFile.getClassLoader();
-        for (int j = 0; j < count; j++) {
-            HandlerDescription handlermd = flow.getHandler(j);
-            Class handlerClass;
-            Handler handler;
-            handlerClass = getHandlerClass(handlermd.getClassName(), loader1);
-            try {
-                handler = (Handler) handlerClass.newInstance();
-                handler.init(handlermd);
-                handlermd.setHandler(handler);
-
-            } catch (InstantiationException e) {
-                throw new AxisFault(e);
-            } catch (IllegalAccessException e) {
-                throw new AxisFault(e);
-            }
-
-        }
-    }
-
-
-    public Class getHandlerClass(String className, ClassLoader loader1) throws AxisFault {
-        Class handlerClass;
-        try {
-            handlerClass = Class.forName(className, true, loader1);
-        } catch (ClassNotFoundException e) {
-            throw new AxisFault(e.getMessage());
-        }
-        return handlerClass;
-    }
 
 
     private void addNewModule(ModuleDescription modulemetadata) throws AxisFault {
         // currentArchiveFile.setClassLoader();
         Flow inflow = modulemetadata.getInFlow();
+        ClassLoader moduleClassLoader = modulemetadata.getModuleClassLoader();
         if (inflow != null) {
-            addFlowHandlers(inflow);
+            Utils.addFlowHandlers(inflow,moduleClassLoader);
         }
         Flow outFlow = modulemetadata.getOutFlow();
         if (outFlow != null) {
-            addFlowHandlers(outFlow);
+            Utils.addFlowHandlers(outFlow,moduleClassLoader);
         }
         Flow faultInFlow = modulemetadata.getFaultInFlow();
         if (faultInFlow != null) {
-            addFlowHandlers(faultInFlow);
+            Utils.addFlowHandlers(faultInFlow,moduleClassLoader);
         }
 
         Flow faultOutFlow = modulemetadata.getFaultOutFlow();
         if (faultOutFlow != null) {
-            addFlowHandlers(faultOutFlow);
+            Utils.addFlowHandlers(faultOutFlow,moduleClassLoader);
         }
-        loadModuleClass(modulemetadata);
-        modulemetadata.setModuleClassLoader(currentArchiveFile.getClassLoader());
+//        modulemetadata.setModuleClassLoader(currentArchiveFile.getClassLoader());
         axisConfig.addModule(modulemetadata);
         log.info(Messages.getMessage(DeploymentErrorMsgs.ADDING_NEW_MODULE));
     }
@@ -557,14 +476,16 @@
                             archiveReader = new ArchiveReader();
                             String serviceStatus = "";
                             try {
-                                archiveReader.processWSDLs(currentArchiveFile, this);
+                                HashMap wsdlservice = archiveReader.processWSDLs(currentArchiveFile, this);
                                 // AxisService service = archiveReader.createService(currentArchiveFile.getAbsolutePath());
                                 AxisServiceGroup sericeGroup =
                                         new AxisServiceGroup(axisConfig);
-                                archiveReader.processServiceGroup(currentArchiveFile.getAbsolutePath(),
+                                sericeGroup.setServiceGroupClassLoader(axisConfig.getServiceClassLoader());
+                                ArrayList serviceList   = archiveReader.processServiceGroup(
+                                        currentArchiveFile.getAbsolutePath(),
                                         this,
-                                        sericeGroup, explodedDir);
-                                addnewService(sericeGroup);
+                                        sericeGroup, explodedDir,wsdlservice,axisConfig);
+                                addServiceGroup(sericeGroup,serviceList);
                                 log.info(Messages.getMessage(
                                         DeploymentErrorMsgs.DEPLOYING_WS, currentArchiveFile.getName()));
                             } catch (DeploymentException de) {
@@ -603,10 +524,11 @@
                             String moduleStatus = "";
                             try {
                                 ModuleDescription metaData = new ModuleDescription();
+                                metaData.setModuleClassLoader(currentArchiveFile.getClassLoader());
                                 metaData.setParent(axisConfig);
                                 archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(),
                                         this,
-                                        metaData, explodedDir);
+                                        metaData, explodedDir,axisConfig);
                                 addNewModule(metaData);
                                 log.info(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_MODULE,
                                         metaData.getName().getLocalPart()));
@@ -739,14 +661,14 @@
      */
     public AxisService buildService(AxisService axisService,
                                     InputStream serviceInputStream,
-                                    ClassLoader classLoader) throws DeploymentException {
+                                    ClassLoader classLoader, AxisConfiguration axisConfig) throws DeploymentException {
         try {
             currentArchiveFile = new ArchiveFileData(SERVICE, "");
             currentArchiveFile.setClassLoader(classLoader);
 
-            ServiceBuilder builder = new ServiceBuilder(serviceInputStream, this, axisService);
+            ServiceBuilder builder = new ServiceBuilder(serviceInputStream,axisConfig, axisService);
             builder.populateService(builder.buildOM());
-            loadServiceProperties(axisService);
+            Utils.loadServiceProperties(axisService);
         } catch (AxisFault axisFault) {
             throw new DeploymentException(axisFault);
         } catch (XMLStreamException e) {
@@ -769,30 +691,31 @@
             this.setPhasesinfo(((AxisConfigurationImpl) config).getPhasesinfo());
             currentArchiveFile = new ArchiveFileData(modulearchive, MODULE);
             axismodule = new ModuleDescription();
+            axismodule.setModuleClassLoader(currentArchiveFile.getClassLoader());
             ArchiveReader archiveReader = new ArchiveReader();
-            currentArchiveFile.setClassLoader(false,config.getModuleClassLoader());
-            archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), this, axismodule, false);
+            ClassLoader moduleClassLoader = config.getModuleClassLoader();
+            currentArchiveFile.setClassLoader(false,moduleClassLoader);
+            archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), this, axismodule, false,axisConfig);
             Flow inflow = axismodule.getInFlow();
             if (inflow != null) {
-                addFlowHandlers(inflow);
+                Utils.addFlowHandlers(inflow,moduleClassLoader);
             }
             Flow outFlow = axismodule.getOutFlow();
             if (outFlow != null) {
-                addFlowHandlers(outFlow);
+                Utils.addFlowHandlers(outFlow,moduleClassLoader);
             }
             Flow faultInFlow = axismodule.getFaultInFlow();
             if (faultInFlow != null) {
-                addFlowHandlers(faultInFlow);
+                Utils.addFlowHandlers(faultInFlow,moduleClassLoader);
             }
             Flow faultOutFlow = axismodule.getFaultOutFlow();
             if (faultOutFlow != null) {
-                addFlowHandlers(faultOutFlow);
+                Utils.addFlowHandlers(faultOutFlow,moduleClassLoader);
             }
-            loadModuleClass(axismodule);
+//            loadModuleClass(axismodule);
         } catch (AxisFault axisFault) {
             throw new DeploymentException(axisFault);
         }
-        axismodule.setModuleClassLoader(currentArchiveFile.getClassLoader());
         currentArchiveFile = null;
         return axismodule;
     }

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=344074&r1=344073&r2=344074&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 Mon Nov 14 00:04:42 2005
@@ -20,6 +20,7 @@
 import org.apache.axis2.Constants;
 import org.apache.axis2.description.*;
 import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.om.OMAbstractFactory;
 import org.apache.axis2.om.OMAttribute;
@@ -44,11 +45,12 @@
 
     protected Log log = LogFactory.getLog(getClass());
     protected InputStream des_inputStream;
-    protected DeploymentEngine engine;
+    protected AxisConfiguration axisConfig;
+//    protected DeploymentEngine engine;
 
-    public DescriptionBuilder(InputStream serviceInputStream, DeploymentEngine engine) {
+    public DescriptionBuilder(InputStream serviceInputStream, AxisConfiguration axisConfig) {
         this.des_inputStream = serviceInputStream;
-        this.engine = engine;
+        this.axisConfig = axisConfig;
     }
 
     public DescriptionBuilder() {
@@ -257,7 +259,7 @@
                         new QName(REF));
                 if (moduleRefAttribute !=null) {
                     String refName = moduleRefAttribute.getAttributeValue();
-                    if(engine.getModule(new QName(refName)) == null) {
+                    if(axisConfig.getModule(new QName(refName)) == null) {
                         throw new DeploymentException(Messages.getMessage(
                                 DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
                     } else {

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ModuleBuilder.java Mon Nov 14 00:04:42 2005
@@ -17,12 +17,15 @@
 package org.apache.axis2.deployment;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.modules.Module;
 import org.apache.axis2.deployment.util.PhasesInfo;
 import org.apache.axis2.description.AxisOperation;
 import org.apache.axis2.description.AxisOperationFactory;
 import org.apache.axis2.description.InOnlyAxisOperation;
 import org.apache.axis2.description.ModuleDescription;
 import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.om.OMAttribute;
 import org.apache.axis2.om.OMElement;
@@ -39,9 +42,11 @@
 public class ModuleBuilder extends DescriptionBuilder{
 
     private ModuleDescription module;
-    public ModuleBuilder(InputStream serviceInputSteram, DeploymentEngine engine
-            ,ModuleDescription module) {
-        super(serviceInputSteram, engine);
+    private AxisConfiguration axisConfig;
+    public ModuleBuilder(InputStream serviceInputSteram,ModuleDescription module ,
+                         AxisConfiguration axisConfig) {
+        super(serviceInputSteram, axisConfig);
+        this.axisConfig = axisConfig;
         this.module = module;
     }
 
@@ -49,7 +54,6 @@
     public void populateModule() throws DeploymentException {
         try {
             OMElement moduleElement = buildOM();
-
             // Setting Module Name
             OMAttribute moduleNameAtt = moduleElement.getAttribute(
                     new QName(ATTNAME));
@@ -57,24 +61,15 @@
                 String moduleName = moduleNameAtt.getAttributeValue();
                 if (moduleName != null && !"".equals(moduleName)) {
                     module.setName(new QName(moduleName));
-                } else {
-                    module.setName(new QName(getShortFileName(engine.getCurrentFileItem()
-                            .getServiceName())));
                 }
-            }else {
-                module.setName(new QName(getShortFileName(engine.getCurrentFileItem()
-                        .getServiceName())));
             }
-
             // Setting Module Class , if it is there
             OMAttribute moduleClassAtt = moduleElement.getAttribute(
                     new QName(CLASSNAME));
             if(moduleClassAtt !=null){
                 String moduleClass = moduleClassAtt.getAttributeValue();
                 if(moduleClass !=null && !"".equals(moduleClass)){
-                    if (engine !=null) {
-                        engine.getCurrentFileItem().setModuleClass(moduleClass);
-                    }
+                    loadModuleClass(module,moduleClass);
                 }
             }
 
@@ -120,11 +115,29 @@
 
         } catch (XMLStreamException e) {
             throw new DeploymentException(e);
+        }
+    }
+
 
+    private void loadModuleClass(ModuleDescription module , String moduleClassName)
+            throws DeploymentException {
+        Class moduleClass;
+        try {
+            if (moduleClassName != null && !"".equals(moduleClassName)) {
+                moduleClass =
+                        Class.forName(moduleClassName,
+                                true,
+                                module.getModuleClassLoader());
+                module.setModule((Module) moduleClass.newInstance());
+            }
+        } catch (Exception e) {
+            throw new DeploymentException(e.getMessage(), e);
         }
+
     }
 
 
+
     private ArrayList processOperations(Iterator opeartinsItr) throws DeploymentException {
         ArrayList operations = new ArrayList();
         while (opeartinsItr.hasNext()) {
@@ -175,8 +188,8 @@
             OMElement receiverElement = operation.getFirstChildWithName(
                     new QName(MESSAGERECEIVER));
             if(receiverElement !=null){
-                MessageReceiver messageReceiver = loadMessageReceiver(
-                        engine.getCurrentFileItem().getClassLoader(),receiverElement);
+                MessageReceiver messageReceiver = loadMessageReceiver(module.getModuleClassLoader()
+                        ,receiverElement);
                 op_descrip.setMessageReceiver(messageReceiver);
             }  else {
                 //setting default message reciver
@@ -189,7 +202,7 @@
             processOperationModuleRefs(modules, op_descrip);
 
             //setting Operation phase
-            PhasesInfo info = engine.getPhasesinfo();
+            PhasesInfo info = ((AxisConfigurationImpl) axisConfig).getPhasesinfo();
             info.setOperationPhases(op_descrip);
 
             //adding the opeartion

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=344074&r1=344073&r2=344074&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 Mon Nov 14 00:04:42 2005
@@ -20,6 +20,8 @@
 import org.apache.axis2.deployment.util.PhasesInfo;
 import org.apache.axis2.description.*;
 import org.apache.axis2.engine.MessageReceiver;
+import org.apache.axis2.engine.AxisConfiguration;
+import org.apache.axis2.engine.AxisConfigurationImpl;
 import org.apache.axis2.i18n.Messages;
 import org.apache.axis2.om.OMAttribute;
 import org.apache.axis2.om.OMElement;
@@ -42,37 +44,39 @@
  */
 
 
-public class ServiceBuilder extends DescriptionBuilder{
+public class ServiceBuilder extends DescriptionBuilder {
     private AxisService service;
+    private AxisConfiguration axisConfig;
 
     public ServiceBuilder(InputStream serviceInputSteram,
-                          DeploymentEngine engine,AxisService service) {
-        super(serviceInputSteram, engine);
+                          AxisConfiguration axisConfig, AxisService service) {
+        super(serviceInputSteram, axisConfig);
         this.service = service;
     }
 
-    public ServiceBuilder(DeploymentEngine engine,AxisService service) {
+    public ServiceBuilder(AxisConfiguration axisConfig, AxisService service) {
         this.service = service;
-        super.engine = engine;
+        this.axisConfig = axisConfig;
+        super.axisConfig = axisConfig;
     }
 
     /**
      * top most method that used to populate service from corresponding OM
      */
-    public void populateService(OMElement service_element) throws DeploymentException {
+    public AxisService populateService(OMElement service_element) throws DeploymentException {
         try {
 
             //Processing service level paramters
             Iterator itr = service_element.getChildrenWithName(
                     new QName(PARAMETERST));
-            processParameters(itr,service,service.getParent());
+            processParameters(itr, service, service.getParent());
 
             //process service description
             OMElement descriptionElement = service_element.getFirstChildWithName(
                     new QName(DESCRIPTION));
-            if (descriptionElement !=null) {
+            if (descriptionElement != null) {
                 OMElement descriptionValue = descriptionElement.getFirstElement();
-                if(descriptionValue !=null){
+                if (descriptionValue != null) {
                     StringWriter writer = new StringWriter();
                     descriptionValue.build();
                     descriptionValue.serialize(new
@@ -92,26 +96,26 @@
             //process INFLOW
             OMElement inFlow = service_element.getFirstChildWithName(
                     new QName(INFLOWST));
-            if(inFlow !=null){
-                service.setInFlow(processFlow(inFlow,service));
+            if (inFlow != null) {
+                service.setInFlow(processFlow(inFlow, service));
             }
 
             OMElement outFlow = service_element.getFirstChildWithName(
                     new QName(OUTFLOWST));
-            if(outFlow !=null){
-                service.setOutFlow(processFlow(outFlow,service));
+            if (outFlow != null) {
+                service.setOutFlow(processFlow(outFlow, service));
             }
 
             OMElement inFaultFlow = service_element.getFirstChildWithName(
                     new QName(IN_FAILTFLOW));
-            if(inFaultFlow !=null){
-                service.setFaultInFlow(processFlow(inFaultFlow,service));
+            if (inFaultFlow != null) {
+                service.setFaultInFlow(processFlow(inFaultFlow, service));
             }
 
             OMElement outFaultFlow = service_element.getFirstChildWithName(
                     new QName(OUT_FAILTFLOW));
-            if(outFaultFlow !=null){
-                service.setFaultOutFlow(processFlow(outFaultFlow,service));
+            if (outFaultFlow != null) {
+                service.setFaultOutFlow(processFlow(outFaultFlow, service));
             }
 
             //processing operations
@@ -123,21 +127,22 @@
                 ArrayList wsamappings = opeartionDesc.getWsamappingList();
                 for (int j = 0; j < wsamappings.size(); j++) {
                     Parameter paramter = (Parameter) wsamappings.get(j);
-                    service.addMapping((String)paramter.getValue(),opeartionDesc);
+                    service.addMapping((String) paramter.getValue(), opeartionDesc);
                 }
                 service.addOperation(opeartionDesc);
             }
 
             Iterator moduleConfigs = service_element.getChildrenWithName(new QName(MODULECONFIG));
-            processServiceModuleConfig(moduleConfigs,service,service);
+            processServiceModuleConfig(moduleConfigs, service, service);
 
 
         } catch (XMLStreamException e) {
             throw new DeploymentException(e);
         } catch (AxisFault axisFault) {
             throw new DeploymentException(Messages.getMessage(
-                    DeploymentErrorMsgs.OPERATION_PROCESS_ERROR,axisFault.getMessage()));
+                    DeploymentErrorMsgs.OPERATION_PROCESS_ERROR, axisFault.getMessage()));
         }
+        return service;
     }
 
     private ArrayList processOperations(Iterator opeartinsItr) throws AxisFault {
@@ -148,17 +153,17 @@
             // /getting opeartion name
             OMAttribute op_name_att = operation.getAttribute(
                     new QName(ATTNAME));
-            if(op_name_att == null){
+            if (op_name_att == null) {
                 throw new DeploymentException(Messages.getMessage(Messages.getMessage(
                         DeploymentErrorMsgs.INVALID_OP
-                        ,"operation name missing")));
+                        , "operation name missing")));
             }
 
             //setting the mep of the operation
             OMAttribute op_mep_att = operation.getAttribute(
                     new QName(MEP));
-            String mepurl =null;
-            if(op_mep_att !=null){
+            String mepurl = null;
+            if (op_mep_att != null) {
                 mepurl = op_mep_att.getAttributeValue();
                 //todo value has to be validate
                 //todo
@@ -166,15 +171,15 @@
             }
 
             String opname = op_name_att.getAttributeValue();
-            WSDLOperation wsdlOperation =service.getWSDLOPOperation(new QName(opname));
+            WSDLOperation wsdlOperation = service.getWSDLOPOperation(new QName(opname));
 //            AxisOperation op_descrip = service.getOperation(new QName(opname));
-            AxisOperation op_descrip = null;
-            if(wsdlOperation == null){
-                if(mepurl == null){
+            AxisOperation op_descrip;
+            if (wsdlOperation == null) {
+                if (mepurl == null) {
                     // assumed MEP is in-out
                     op_descrip = new InOutAxisOperation();
                 } else {
-                    op_descrip =AxisOperationFactory.getOperetionDescription(mepurl);
+                    op_descrip = AxisOperationFactory.getOperetionDescription(mepurl);
                 }
 //                op_descrip = new AxisOperation();
                 op_descrip.setName(new QName(opname));
@@ -182,31 +187,29 @@
             } else {
                 //craeting opeartion from existing opeartion
                 String mep = wsdlOperation.getMessageExchangePattern();
-                if(mep == null)   {
+                if (mep == null) {
                     op_descrip = new InOutAxisOperation(wsdlOperation);
                 } else {
-                    op_descrip =AxisOperationFactory.getOperetionDescription(mep);
-                    op_descrip.setWsdlopeartion((WSDLOperationImpl)wsdlOperation);
+                    op_descrip = AxisOperationFactory.getOperetionDescription(mep);
+                    op_descrip.setWsdlopeartion((WSDLOperationImpl) wsdlOperation);
                 }
             }
 
-
-
             //Opeartion Paramters
             Iterator paramters = operation.getChildrenWithName(
                     new QName(PARAMETERST));
-            ArrayList wsamappings = processParameters(paramters,op_descrip,service);
+            ArrayList wsamappings = processParameters(paramters, op_descrip, service);
             op_descrip.setWsamappingList(wsamappings);
             // loading the message receivers
             OMElement receiverElement = operation.getFirstChildWithName(
                     new QName(MESSAGERECEIVER));
-            if(receiverElement !=null){
+            if (receiverElement != null) {
                 MessageReceiver messageReceiver = loadMessageReceiver(
-                        service.getClassLoader(),receiverElement);
+                        service.getClassLoader(), receiverElement);
                 op_descrip.setMessageReceiver(messageReceiver);
-            }  else {
+            } else {
                 //setting default message reciver
-                MessageReceiver msgReceiver =loadDefaultMessageReceiver();
+                MessageReceiver msgReceiver = loadDefaultMessageReceiver();
                 op_descrip.setMessageReceiver(msgReceiver);
             }
 
@@ -216,13 +219,13 @@
             processOperationModuleRefs(modules, op_descrip);
 
             //setting Operation phase
-            if (engine !=null) {
-                PhasesInfo info = engine.getPhasesinfo();
+            if (axisConfig != null) {
+                PhasesInfo info = ((AxisConfigurationImpl) axisConfig).getPhasesinfo();
                 info.setOperationPhases(op_descrip);
             }
 
             Iterator moduleConfigs = operation.getChildrenWithName(new QName(MODULECONFIG));
-            processOperationModuleConfig(moduleConfigs,op_descrip,op_descrip);
+            processOperationModuleConfig(moduleConfigs, op_descrip, op_descrip);
 
             //adding the opeartion
             operations.add(op_descrip);
@@ -231,43 +234,43 @@
     }
 
 
-    protected void processServiceModuleConfig(Iterator moduleConfigs ,
+    protected void processServiceModuleConfig(Iterator moduleConfigs,
                                               ParameterInclude parent, AxisService service)
             throws DeploymentException {
         while (moduleConfigs.hasNext()) {
             OMElement moduleConfig = (OMElement) moduleConfigs.next();
             OMAttribute moduleName_att = moduleConfig.getAttribute(
                     new QName(ATTNAME));
-            if(moduleName_att == null){
+            if (moduleName_att == null) {
                 throw new DeploymentException(Messages.getMessage(
                         DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
             } else {
                 String module = moduleName_att.getAttributeValue();
                 ModuleConfiguration moduleConfiguration =
-                        new ModuleConfiguration(new QName(module),parent);
-                Iterator paramters=  moduleConfig.getChildrenWithName(new QName(PARAMETERST));
-                processParameters(paramters,moduleConfiguration,parent);
+                        new ModuleConfiguration(new QName(module), parent);
+                Iterator paramters = moduleConfig.getChildrenWithName(new QName(PARAMETERST));
+                processParameters(paramters, moduleConfiguration, parent);
                 service.addModuleConfig(moduleConfiguration);
             }
         }
     }
 
-    protected void processOperationModuleConfig(Iterator moduleConfigs ,
+    protected void processOperationModuleConfig(Iterator moduleConfigs,
                                                 ParameterInclude parent, AxisOperation opeartion)
             throws DeploymentException {
         while (moduleConfigs.hasNext()) {
             OMElement moduleConfig = (OMElement) moduleConfigs.next();
             OMAttribute moduleName_att = moduleConfig.getAttribute(
                     new QName(ATTNAME));
-            if(moduleName_att == null){
+            if (moduleName_att == null) {
                 throw new DeploymentException(Messages.getMessage(
                         DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
             } else {
                 String module = moduleName_att.getAttributeValue();
                 ModuleConfiguration moduleConfiguration =
-                        new ModuleConfiguration(new QName(module),parent);
-                Iterator paramters=  moduleConfig.getChildrenWithName(new QName(PARAMETERST));
-                processParameters(paramters,moduleConfiguration,parent);
+                        new ModuleConfiguration(new QName(module), parent);
+                Iterator paramters = moduleConfig.getChildrenWithName(new QName(PARAMETERST));
+                processParameters(paramters, moduleConfiguration, parent);
                 opeartion.addModuleConfig(moduleConfiguration);
             }
         }
@@ -275,8 +278,9 @@
 
     /**
      * 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>
+     *
+     * @param moduleRefs <code>java.util.Iterator</code>
+     * @throws DeploymentException <code>DeploymentException</code>
      */
     protected void processModuleRefs(Iterator moduleRefs) throws DeploymentException {
         try {
@@ -284,9 +288,9 @@
                 OMElement moduleref = (OMElement) moduleRefs.next();
                 OMAttribute moduleRefAttribute = moduleref.getAttribute(
                         new QName(REF));
-                if(moduleRefAttribute !=null){
+                if (moduleRefAttribute != null) {
                     String refName = moduleRefAttribute.getAttributeValue();
-                    if(engine.getModule(new QName(refName)) == null) {
+                    if (axisConfig.getModule(new QName(refName)) == null) {
                         throw new DeploymentException(Messages.getMessage(
                                 DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
                     } else {
@@ -294,8 +298,8 @@
                     }
                 }
             }
-        }catch (AxisFault axisFault) {
-            throw   new DeploymentException(axisFault);
+        } catch (AxisFault axisFault) {
+            throw new DeploymentException(axisFault);
         }
     }
 

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/ServiceGroupBuilder.java Mon Nov 14 00:04:42 2005
@@ -17,6 +17,7 @@
 package org.apache.axis2.deployment;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.description.AxisService;
 import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.description.ModuleConfiguration;
@@ -27,27 +28,38 @@
 
 import javax.xml.namespace.QName;
 import java.util.Iterator;
-public class ServiceGroupBuilder extends DescriptionBuilder{
+import java.util.HashMap;
+import java.util.ArrayList;
+
+public class ServiceGroupBuilder extends DescriptionBuilder {
 
     private OMElement servcice;
-    public ServiceGroupBuilder(OMElement servcice, DeploymentEngine engine) {
-        super.engine =engine;
+    private HashMap wsdlServices;
+    private AxisConfiguration axisConfig;
+
+    public ServiceGroupBuilder(OMElement servcice, HashMap wsdlServices,
+                               AxisConfiguration axisConfig) {
         this.servcice = servcice;
+        this.wsdlServices = wsdlServices;
+        this.axisConfig = axisConfig;
+        super.axisConfig = axisConfig;
     }
-    public void populateServiceGroup(AxisServiceGroup axisServiceGroup) throws DeploymentException {
+
+    public ArrayList populateServiceGroup(AxisServiceGroup axisServiceGroup) throws DeploymentException {
+        ArrayList serviceList = new ArrayList();
         try {
             //Processing service level paramters
             Iterator itr = servcice.getChildrenWithName(
                     new QName(PARAMETERST));
-            processParameters(itr,axisServiceGroup,axisServiceGroup.getParent());
+            processParameters(itr, axisServiceGroup, axisServiceGroup.getParent());
 
             Iterator moduleConfigs = servcice.getChildrenWithName(new QName(MODULECONFIG));
-            processServiceModuleConfig(moduleConfigs,axisServiceGroup.getParent(),axisServiceGroup);
+            processServiceModuleConfig(moduleConfigs, axisServiceGroup.getParent(), axisServiceGroup);
 
             //processing servicewide modules which required to engage gloabbly
             Iterator moduleRefs = servcice.getChildrenWithName(
                     new QName(MODULEST));
-            processModuleRefs(moduleRefs,axisServiceGroup);
+            processModuleRefs(moduleRefs, axisServiceGroup);
 
             Iterator serviceitr = servcice.getChildrenWithName(new QName(SERVICE_ELEMENT));
             while (serviceitr.hasNext()) {
@@ -56,48 +68,45 @@
                 OMAttribute serviceNameatt = service.getAttribute(
                         new QName(ATTNAME));
                 String serviceName = serviceNameatt.getAttributeValue();
-                if(serviceName == null){
+                if (serviceName == null) {
                     throw new DeploymentException(Messages.getMessage(
                             DeploymentErrorMsgs.SEERVICE_NAME_ERROR));
                 } else {
-                    AxisService axisService = engine.getCurrentFileItem().getService(
-                            serviceName);
-                    if(axisService == null){
+                    AxisService axisService = (AxisService) wsdlServices.get(serviceName);
+                    if (axisService == null) {
                         axisService = new AxisService(new QName(serviceName));
-                        engine.getCurrentFileItem().addService(axisService);
                         axisService.setName(new QName(serviceName));
                     }
                     // the service that has to be deploy
-                    engine.getCurrentFileItem().getDeploybleServices().add(axisService);
                     axisService.setParent(axisServiceGroup);
-                    axisService.setClassLoader(engine.getCurrentFileItem().getClassLoader());
-                    ServiceBuilder serviceBuilder = new ServiceBuilder(engine,axisService);
-                    serviceBuilder.populateService(service);
+                    axisService.setClassLoader(axisServiceGroup.getServiceGroupClassLoader());
+                    ServiceBuilder serviceBuilder = new ServiceBuilder(axisConfig, axisService);
+                    AxisService as = serviceBuilder.populateService(service);
+                    serviceList.add(as);
                 }
             }
-
-        } catch (DeploymentException e) {
+        } catch (AxisFault e) {
             throw new DeploymentException(e);
         }
-
+     return serviceList;
     }
 
-    protected void processServiceModuleConfig(Iterator moduleConfigs ,
+    protected void processServiceModuleConfig(Iterator moduleConfigs,
                                               ParameterInclude parent, AxisServiceGroup axisService)
             throws DeploymentException {
         while (moduleConfigs.hasNext()) {
             OMElement moduleConfig = (OMElement) moduleConfigs.next();
             OMAttribute moduleName_att = moduleConfig.getAttribute(
                     new QName(ATTNAME));
-            if(moduleName_att == null){
-                 throw new DeploymentException(Messages.getMessage(
+            if (moduleName_att == null) {
+                throw new DeploymentException(Messages.getMessage(
                         DeploymentErrorMsgs.INVALID_MODULE_CONFIG));
             } else {
                 String module = moduleName_att.getAttributeValue();
                 ModuleConfiguration moduleConfiguration =
-                        new ModuleConfiguration(new QName(module),parent);
-                Iterator paramters=  moduleConfig.getChildrenWithName(new QName(PARAMETERST));
-                processParameters(paramters,moduleConfiguration,parent);
+                        new ModuleConfiguration(new QName(module), parent);
+                Iterator paramters = moduleConfig.getChildrenWithName(new QName(PARAMETERST));
+                processParameters(paramters, moduleConfiguration, parent);
                 axisService.addModuleConfig(moduleConfiguration);
             }
         }
@@ -105,19 +114,20 @@
 
     /**
      * 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>
+     *
+     * @param moduleRefs <code>java.util.Iterator</code>
+     * @throws DeploymentException <code>DeploymentException</code>
      */
-    protected void processModuleRefs(Iterator moduleRefs ,AxisServiceGroup axisServiceGroup)
+    protected void processModuleRefs(Iterator moduleRefs, AxisServiceGroup axisServiceGroup)
             throws DeploymentException {
         try {
             while (moduleRefs.hasNext()) {
                 OMElement moduleref = (OMElement) moduleRefs.next();
                 OMAttribute moduleRefAttribute = moduleref.getAttribute(
                         new QName(REF));
-                if(moduleRefAttribute !=null){
+                if (moduleRefAttribute != null) {
                     String refName = moduleRefAttribute.getAttributeValue();
-                    if(engine.getModule(new QName(refName)) == null) {
+                    if (axisConfig.getModule(new QName(refName)) == null) {
                         throw new DeploymentException(Messages.getMessage(
                                 DeploymentErrorMsgs.MODEULE_NOT_FOUND, refName));
                     } else {
@@ -125,8 +135,8 @@
                     }
                 }
             }
-        }catch (AxisFault axisFault) {
-            throw   new DeploymentException(axisFault);
+        } 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=344074&r1=344073&r2=344074&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 Mon Nov 14 00:04:42 2005
@@ -38,7 +38,7 @@
     private File file = null;
     private int type;
     private String messgeReceiver;
-    private String moduleClass;
+//    private String moduleClass;
     private String name;
 
 
@@ -96,14 +96,6 @@
 
     public void setClassLoader(ClassLoader classLoader) {
         this.classLoader = classLoader;
-    }
-
-    public String getModuleClass() {
-        return moduleClass;
-    }
-
-    public void setModuleClass(String moduleClass) {
-        this.moduleClass = moduleClass;
     }
 
     public void setClassLoader(boolean extarctArichive, ClassLoader parent) throws AxisFault {

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=344074&r1=344073&r2=344074&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 Mon Nov 14 00:04:42 2005
@@ -27,6 +27,7 @@
 import org.apache.axis2.wsdl.WSDLVersionWrapper;
 import org.apache.axis2.wsdl.builder.WOMBuilder;
 import org.apache.axis2.wsdl.builder.WOMBuilderFactory;
+import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.wsdl.WSDLDescription;
@@ -37,7 +38,8 @@
 import javax.xml.stream.XMLStreamException;
 import java.io.*;
 import java.util.Iterator;
-import java.util.Map;
+import java.util.HashMap;
+import java.util.ArrayList;
 import java.util.zip.ZipEntry;
 import java.util.zip.ZipInputStream;
 import java.util.zip.ZipOutputStream;
@@ -46,54 +48,7 @@
 
     private Log log = LogFactory.getLog(getClass());
 
-    /**
-     * To create a ServiceDescrption <code>AxisService</code>   using given wsdl , if the
-     * service.wsdl there in the arcive file AxisService will be creted using that else
-     * default AxisService will be crated
-     *
-     * @param file
-     * @return
-     * @throws DeploymentException
-     */
-    public AxisService createService(ArchiveFileData file) throws DeploymentException {
-        AxisService service = null;
-        InputStream in = file.getClassLoader().getResourceAsStream(SERVICE_WSDL_WITH_FOLDER);
-        boolean foundservice = false;
-        try {
-            if (in != null) {
-                WOMBuilder builder = WOMBuilderFactory.getBuilder(WSDLConstants.WSDL_1_1);
-                WSDLVersionWrapper wsdlVersionWrapper = builder.build(in,
-                        new AxisDescWSDLComponentFactory());
-                WSDLDescription womDescription = wsdlVersionWrapper.getDescription();
-                Iterator iterator = womDescription.getServices().keySet()
-                        .iterator();
-                if (iterator.hasNext()) {
-                    foundservice = true;
-                    // 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());
-                    service = new AxisService(serviceimpl);
-                }
-                if (!foundservice) {
-                    service = new AxisService();
-                }
-                service.setWSDLDefinition(wsdlVersionWrapper.getDefinition());
-                in.close();
-            } else {
-                service = new AxisService();
-                log.info(Messages.getMessage(DeploymentErrorMsgs.WSDL_FILE_NOT_FOUND,
-                        file.getName()));
-            }
-        } catch (Exception e) {
-            throw new DeploymentException(e);
-        }
-
-        return service;
-    }
-
-
-    private void processWSDLFile(InputStream in , DeploymentEngine depengine) throws DeploymentException {
+    private AxisService processWSDLFile(InputStream in) throws DeploymentException {
         try {
             WOMBuilder builder = WOMBuilderFactory.getBuilder(WSDLConstants.WSDL_1_1);
             WSDLVersionWrapper wsdlVersionWrapper = builder.build(in,
@@ -118,33 +73,39 @@
                 AxisService service = new AxisService(serviceimpl);
                 service.setName(serviceimpl.getName());
                 service.setWSDLDefinition(wsdlVersionWrapper.getDefinition());
-                depengine.getCurrentFileItem().addService(service);
+                return service;
+//                depengine.getCurrentFileItem().addService(service);
             }
         } catch (WSDLException e) {
             throw new DeploymentException(e);
         }
+        return null;
     }
 
     /**
      * To create service objects out form wsdls file inside a service archive file
-     * @param file <code>ArchiveFileData</code>
+     *
+     * @param file      <code>ArchiveFileData</code>
      * @param depengine <code>DeploymentEngine</code>
-     * @throws DeploymentException  <code>DeploymentException</code>
+     * @throws DeploymentException <code>DeploymentException</code>
      */
-    public void processWSDLs(ArchiveFileData file , DeploymentEngine depengine) throws DeploymentException {
+    public HashMap processWSDLs(ArchiveFileData file, DeploymentEngine depengine) throws DeploymentException {
         File serviceFile = file.getFile();
+        //to store service come from wsdl files
+        HashMap servicesMap = new HashMap();
         boolean isDirectory = serviceFile.isDirectory();
-        if(isDirectory){
+        if (isDirectory) {
             try {
-                File meta_inf = new File(serviceFile,META_INF);
-                if(meta_inf.exists()){
+                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")){
+                        if (fileName.endsWith(".wsdl") || fileName.endsWith(".WSDL")) {
                             InputStream in = new FileInputStream(file1);
-                            processWSDLFile(in,depengine);
+                            AxisService service = processWSDLFile(in);
+                            servicesMap.put(service.getName().getLocalPart(), service);
                             try {
                                 in.close();
                             } catch (IOException e) {
@@ -162,7 +123,7 @@
             } catch (IOException e) {
                 throw new DeploymentException(e);
             }
-        }   else {
+        } else {
 
             ZipInputStream zin;
             try {
@@ -170,7 +131,7 @@
                 ZipEntry entry;
                 byte[] buf = new byte[1024];
                 int read;
-                ByteArrayOutputStream out ;
+                ByteArrayOutputStream out;
                 while ((entry = zin.getNextEntry()) != null) {
                     String entryName = entry.getName();
                     if ((entryName.startsWith(META_INF) ||
@@ -182,7 +143,8 @@
                             out.write(buf, 0, read);
                         }
                         ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
-                        processWSDLFile(in,depengine);
+                        AxisService service = processWSDLFile(in);
+                        servicesMap.put(service.getName().getLocalPart(), service);
                     }
                 }
                 try {
@@ -196,7 +158,7 @@
                 throw new DeploymentException(e);
             }
         }
-
+        return servicesMap;
     }
 
     /**
@@ -206,9 +168,10 @@
      * @param filename
      * @param engine
      */
-    public void processServiceGroup(String filename,
-                                    DeploymentEngine engine,
-                                    AxisServiceGroup axisServiceGroup, boolean extarctService)
+    public ArrayList processServiceGroup(String filename,
+                                         DeploymentEngine engine,
+                                         AxisServiceGroup axisServiceGroup, boolean extarctService,
+                                         HashMap wsdls, AxisConfiguration axisConfig)
             throws DeploymentException {
         // get attribute values
         boolean foundServiceXML = false;
@@ -220,10 +183,9 @@
                 while ((entry = zin.getNextEntry()) != null) {
                     if (entry.getName().equals(SERVICEXML)) {
                         foundServiceXML = true;
-                        buildServiceGroup(zin, engine, axisServiceGroup);
                         axisServiceGroup.setServiceGroupName(DescriptionBuilder.getShortFileName(
                                 engine.getCurrentFileItem().getName()));
-                        break;
+                        return buildServiceGroup(zin, engine, axisServiceGroup, wsdls, axisConfig);
                     }
                 }
                 //    zin.close();
@@ -237,38 +199,40 @@
         } else {
             File file = new File(filename, SERVICEXML);
             if (file.exists()) {
-                InputStream in ;
+                InputStream in;
                 try {
                     in = new FileInputStream(file);
-                    buildServiceGroup(in,engine,axisServiceGroup);
                     axisServiceGroup.setServiceGroupName(engine.getCurrentFileItem().getName());
+                    return buildServiceGroup(in, engine, axisServiceGroup, wsdls, axisConfig);
                 } catch (FileNotFoundException e) {
                     throw new DeploymentException(Messages.getMessage(DeploymentErrorMsgs.FNF_WITH_E
-                            ,e.getMessage()));
+                            , e.getMessage()));
                 } catch (XMLStreamException e) {
                     throw new DeploymentException(Messages.getMessage(DeploymentErrorMsgs.XTZX_EXCEPTION
-                            ,e.getMessage()));
+                            , e.getMessage()));
                 }
             } else {
                 throw new DeploymentException(
                         Messages.getMessage(DeploymentErrorMsgs.SERVICE_XML_NOT_FOUND));
             }
         }
+        return null;
     }
 
-    private void buildServiceGroup(InputStream zin, DeploymentEngine engine,
-                                   AxisServiceGroup axisServiceGroup)
+    private ArrayList buildServiceGroup(InputStream zin, DeploymentEngine engine,
+                                        AxisServiceGroup axisServiceGroup, HashMap wsdlServices,
+                                        AxisConfiguration axisConfig)
             throws XMLStreamException, DeploymentException {
         DescriptionBuilder builder;
         String rootelementName;
-        builder = new DescriptionBuilder(zin, engine);
+        builder = new DescriptionBuilder(zin, axisConfig);
         OMElement services = builder.buildOM();
         rootelementName = services.getLocalName();
-        if(SERVICE_ELEMENT.equals(rootelementName)){
+        if (SERVICE_ELEMENT.equals(rootelementName)) {
             AxisService axisService = engine.getCurrentFileItem().
                     getService(DescriptionBuilder.getShortFileName(
                             engine.getCurrentFileItem().getName()));
-            if(axisService == null){
+            if (axisService == null) {
                 axisService = new AxisService(
                         new QName(DescriptionBuilder.getShortFileName(
                                 engine.getCurrentFileItem().getName())));
@@ -276,18 +240,22 @@
             }
             axisService.setParent(axisServiceGroup);
             axisService.setClassLoader(engine.getCurrentFileItem().getClassLoader());
-            ServiceBuilder serviceBuilder = new ServiceBuilder(engine,axisService);
-            serviceBuilder.populateService(services);
-            engine.getCurrentFileItem().getDeploybleServices().add(axisService);
-        } else if(SERVICE_GROUP_ELEMENT.equals(rootelementName)){
-            ServiceGroupBuilder groupBuilder = new ServiceGroupBuilder(services,engine);
-            groupBuilder.populateServiceGroup(axisServiceGroup);
+            ServiceBuilder serviceBuilder = new ServiceBuilder(axisConfig, axisService);
+            AxisService service = serviceBuilder.populateService(services);
+            ArrayList serviceList = new ArrayList();
+            serviceList.add(service);
+            return serviceList;
+//            engine.getCurrentFileItem().getDeploybleServices().add(axisService);
+        } else if (SERVICE_GROUP_ELEMENT.equals(rootelementName)) {
+            ServiceGroupBuilder groupBuilder = new ServiceGroupBuilder(services, wsdlServices, axisConfig);
+            return groupBuilder.populateServiceGroup(axisServiceGroup);
         }
+        return null;
     }
 
     public void readModuleArchive(String filename,
                                   DeploymentEngine engine,
-                                  ModuleDescription module , boolean explodedDir)
+                                  ModuleDescription module, boolean explodedDir, AxisConfiguration axisConfig)
             throws DeploymentException {
         // get attribute values
         boolean foundmoduleXML = false;
@@ -299,7 +267,10 @@
                 while ((entry = zin.getNextEntry()) != null) {
                     if (entry.getName().equals(MODULEXML)) {
                         foundmoduleXML = true;
-                        ModuleBuilder builder = new ModuleBuilder(zin, engine, module);
+                        ModuleBuilder builder = new ModuleBuilder(zin, module, axisConfig);
+                        //setting module name
+                        module.setName(new QName(DescriptionBuilder.getShortFileName(
+                                engine.getCurrentFileItem().getServiceName())));
                         builder.populateModule();
                         break;
                     }
@@ -318,11 +289,14 @@
                 InputStream in;
                 try {
                     in = new FileInputStream(file);
-                    ModuleBuilder builder = new ModuleBuilder(in, engine, module);
+                    ModuleBuilder builder = new ModuleBuilder(in, module, axisConfig);
+                    // setting module name
+                    module.setName(new QName(DescriptionBuilder.getShortFileName(
+                            engine.getCurrentFileItem().getServiceName())));
                     builder.populateModule();
                 } catch (FileNotFoundException e) {
                     throw new DeploymentException(Messages.getMessage(DeploymentErrorMsgs.FNF_WITH_E
-                            ,e.getMessage()));
+                            , e.getMessage()));
                 }
             } else {
                 throw new DeploymentException(Messages.getMessage(
@@ -368,9 +342,9 @@
             }
             if (in == null) {
                 throw new DeploymentException(Messages.getMessage(
-                            DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, moduleName));
+                        DeploymentErrorMsgs.MODULEXML_NOT_FOUND_FOR_THE_MODULE, moduleName));
             } else {
-                if(!modules.exists()) {
+                if (!modules.exists()) {
                     modules.mkdirs();
                 }
                 modulearchiveFile.createNewFile();

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/util/Utils.java Mon Nov 14 00:04:42 2005
@@ -1,6 +1,11 @@
 package org.apache.axis2.deployment.util;
 
+import org.apache.axis2.AxisFault;
 import org.apache.axis2.deployment.DeploymentException;
+import org.apache.axis2.description.AxisService;
+import org.apache.axis2.description.Flow;
+import org.apache.axis2.description.HandlerDescription;
+import org.apache.axis2.engine.Handler;
 
 import java.io.File;
 import java.net.MalformedURLException;
@@ -28,7 +33,7 @@
 
 public class Utils {
 
-    public static ClassLoader getClassLoader(ClassLoader parent , File file) throws DeploymentException {
+    public static ClassLoader getClassLoader(ClassLoader parent, File file) throws DeploymentException {
         URLClassLoader classLoader;
         if (file != null) {
             try {
@@ -69,5 +74,67 @@
             }
         }
         return null;
+    }
+
+    /**
+     * This method is used to fill the axis service , it dose loading service class and also the provider class
+     * and it will also load the service handlers
+     *
+     * @param axisService
+     * @throws org.apache.axis2.AxisFault
+     */
+    public static void loadServiceProperties(AxisService axisService) throws AxisFault {
+        Flow inflow = axisService.getInFlow();
+        ClassLoader cls = axisService.getClassLoader();
+        if (inflow != null) {
+            addFlowHandlers(inflow, cls);
+        }
+
+        Flow outFlow = axisService.getOutFlow();
+        if (outFlow != null) {
+            addFlowHandlers(outFlow, cls);
+        }
+
+        Flow faultInFlow = axisService.getFaultInFlow();
+        if (faultInFlow != null) {
+            addFlowHandlers(faultInFlow, cls);
+        }
+
+        Flow faultOutFlow = axisService.getFaultOutFlow();
+        if (faultOutFlow != null) {
+            addFlowHandlers(faultOutFlow, cls);
+        }
+        // axisService.setClassLoader(currentArchiveFile.getClassLoader());
+    }
+
+    public static void  addFlowHandlers(Flow flow, ClassLoader clsLoader) throws AxisFault {
+        int count = flow.getHandlerCount();
+        for (int j = 0; j < count; j++) {
+            HandlerDescription handlermd = flow.getHandler(j);
+            Class handlerClass;
+            Handler handler;
+            handlerClass = getHandlerClass(handlermd.getClassName(), clsLoader);
+            try {
+                handler = (Handler) handlerClass.newInstance();
+                handler.init(handlermd);
+                handlermd.setHandler(handler);
+
+            } catch (InstantiationException e) {
+                throw new AxisFault(e);
+            } catch (IllegalAccessException e) {
+                throw new AxisFault(e);
+            }
+
+        }
+    }
+
+    private static Class getHandlerClass(String className, ClassLoader loader1) throws AxisFault {
+        Class handlerClass;
+        try {
+            handlerClass = Class.forName(className, true, loader1);
+        } catch (ClassNotFoundException e) {
+            throw new AxisFault(e.getMessage());
+        }
+        return handlerClass;
     }
 }

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/description/AxisServiceGroup.java Mon Nov 14 00:04:42 2005
@@ -53,6 +53,8 @@
     //to store module ref at deploy time parsing
     private ArrayList mdoulesList = new ArrayList();
 
+    //class loader
+    private ClassLoader serviceGroupClassLoader;
 
     public AxisServiceGroup() {
         paramInclude = new ParameterIncludeImpl();
@@ -207,5 +209,13 @@
     public ServiceGroupContext getServiceGroupContext(ConfigurationContext parent){
         ServiceGroupContext serviceGroupContext = new ServiceGroupContext(parent,this) ;
         return serviceGroupContext;
+    }
+
+    public ClassLoader getServiceGroupClassLoader() {
+        return serviceGroupClassLoader;
+    }
+
+    public void setServiceGroupClassLoader(ClassLoader serviceGroupClassLoader) {
+        this.serviceGroupClassLoader = serviceGroupClassLoader;
     }
 }

Modified: webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java?rev=344074&r1=344073&r2=344074&view=diff
==============================================================================
--- webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java (original)
+++ webservices/axis2/trunk/java/modules/core/test/org/apache/axis2/engine/ParamterLocked.java Mon Nov 14 00:04:42 2005
@@ -130,7 +130,7 @@
             ModuleDescription module = new ModuleDescription();
             module.setParent(ar);
             InputStream in = new FileInputStream(repo + "/module_overide_global_non_locked_para.xml");
-            ModuleBuilder mbuilder = new ModuleBuilder(in,null,module);
+            ModuleBuilder mbuilder = new ModuleBuilder(in,module,ar);
             mbuilder.populateModule();
         }catch (FileNotFoundException e) {
             fail("This can not fail with this FileNotFoundException " + e) ;
@@ -145,7 +145,7 @@
             ModuleDescription module = new ModuleDescription();
             module.setParent(ar);
             InputStream in = new FileInputStream(repo + "/module_overide_locked_para.xml");
-            ModuleBuilder mbuilder = new ModuleBuilder(in,null,module);
+            ModuleBuilder mbuilder = new ModuleBuilder(in,module,ar);
             mbuilder.populateModule();
             fail("Parmter is locked can not overide" ) ;
         }catch (FileNotFoundException e) {