You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by de...@apache.org on 2006/10/12 07:27:23 UTC

svn commit: r463134 - in /webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment: DeploymentEngine.java ServiceBuilder.java WarBasedAxisConfigurator.java repository/util/ArchiveReader.java

Author: deepal
Date: Wed Oct 11 22:27:20 2006
New Revision: 463134

URL: http://svn.apache.org/viewvc?view=rev&rev=463134
Log:
fixing AXIS2-1344

Modified:
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
    webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java Wed Oct 11 22:27:20 2006
@@ -338,6 +338,19 @@
                                  URL serviceLocation,
                                  ArchiveFileData currentArchiveFile)
             throws AxisFault {
+        fillServiceGroup(serviceGroup, serviceList, serviceLocation, axisConfig);
+        axisConfig.addServiceGroup(serviceGroup);
+        startUpService(serviceGroup);
+        if (currentArchiveFile != null) {
+            addAsWebResources(currentArchiveFile.getFile(),
+                    serviceGroup.getServiceGroupName(), serviceGroup);
+        }
+    }
+
+    private static void fillServiceGroup(AxisServiceGroup serviceGroup,
+                                         ArrayList serviceList,
+                                         URL serviceLocation,
+                                         AxisConfiguration axisConfig) throws AxisFault {
         serviceGroup.setParent(axisConfig);
         // module from services.xml at serviceGroup level
         ArrayList groupModules = serviceGroup.getModuleRefs();
@@ -408,12 +421,6 @@
                 }
             }
         }
-        axisConfig.addServiceGroup(serviceGroup);
-        startUpService(serviceGroup);
-        if (currentArchiveFile != null) {
-            addAsWebResources(currentArchiveFile.getFile(),
-                    serviceGroup.getServiceGroupName(), serviceGroup);
-        }
     }
 
     /**
@@ -1005,5 +1012,36 @@
         }
 
         return axisService;
+    }
+
+    /**
+     * To build a AxisServiceGroup for a given services.xml
+     * You have to add the created group into AxisConfig
+     * @param servicesxml : inpupstream create using services.xml
+     * @param classLoader : corresponding class loader to load the class
+     * @param serviceGroupName : name of the service group
+     * @param axisConfig : 
+     * @return
+     * @throws AxisFault
+     */
+    public static AxisServiceGroup buildServiceGroup(InputStream servicesxml,
+                                                     ClassLoader classLoader,
+                                                     String serviceGroupName,
+                                                     AxisConfiguration axisConfig) throws AxisFault {
+        ArchiveFileData currentArchiveFile = new ArchiveFileData(
+                DeploymentConstants.TYPE_SERVICE, "", false);
+        currentArchiveFile.setClassLoader(classLoader);
+        ArchiveReader archiveReader = new ArchiveReader();
+        AxisServiceGroup serviceGroup = new AxisServiceGroup();
+        serviceGroup.setServiceGroupName(serviceGroupName);
+        try {
+            ArrayList serviceList = archiveReader.buildServiceGroup(servicesxml,
+                    currentArchiveFile, serviceGroup,
+                    new HashMap(), axisConfig);
+            fillServiceGroup(serviceGroup, serviceList, null, axisConfig);
+            return serviceGroup;
+        } catch (XMLStreamException e) {
+            throw new AxisFault(e);
+        }
     }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/ServiceBuilder.java Wed Oct 11 22:27:20 2006
@@ -118,6 +118,9 @@
                     service.setTargetNamespace(Java2WSDLConstants.DEFAULT_TARGET_NAMESPACE);
                 }
             }
+
+            
+
             //Processing service lifecycle attribute
             OMAttribute serviceLifeCycleClass = service_element.
                     getAttribute(new QName(TAG_CLASS_NAME));

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/WarBasedAxisConfigurator.java Wed Oct 11 22:27:20 2006
@@ -1,6 +1,7 @@
 package org.apache.axis2.deployment;
 
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.description.AxisServiceGroup;
 import org.apache.axis2.description.Parameter;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.engine.AxisConfigurator;
@@ -229,7 +230,7 @@
      */
     public void loadServices() {
         try {
-            String repository ;
+            String repository;
 
             repository = config.getInitParameter(PARAM_AXIS2_REPOSITORY_PATH);
             if (repository != null) {
@@ -244,7 +245,7 @@
                 log.debug("loaded services from URL: " + repository);
                 return;
             }
-
+            loadServicesFromWebInf();
             if (config.getServletContext().getRealPath("") != null) {
                 super.loadServices();
                 log.debug("loaded services from webapp");
@@ -264,5 +265,24 @@
     //To engage globally listed modules
     public void engageGlobalModules() throws AxisFault {
         engageModules();
+    }
+
+    /**
+     * This method will look inside the web-inf directory to find services.xml
+     * inside that , if it is there will load that and creat service group out
+     * of that and add into axisConfig. User can drop corresponding class files
+     * into class directory.
+     */
+    private void loadServicesFromWebInf() {
+        try {
+            InputStream servicexml = config.getServletContext().
+                    getResourceAsStream("/WEB-INF/services.xml");
+            AxisServiceGroup serviceGroup = DeploymentEngine.buildServiceGroup(servicexml,
+                    Thread.currentThread().getContextClassLoader(),
+                    "annonServiceGroup", axisConfig);
+            axisConfig.addServiceGroup(serviceGroup);
+        } catch (AxisFault axisFault) {
+            log.info(axisFault);
+        }
     }
 }

Modified: webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java?view=diff&rev=463134&r1=463133&r2=463134
==============================================================================
--- webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java (original)
+++ webservices/axis2/trunk/java/modules/kernel/src/org/apache/axis2/deployment/repository/util/ArchiveReader.java Wed Oct 11 22:27:20 2006
@@ -43,7 +43,7 @@
 public class ArchiveReader implements DeploymentConstants {
     private static final Log log = LogFactory.getLog(ArchiveReader.class);
 
-    private ArrayList buildServiceGroup(InputStream zin, ArchiveFileData currentFile,
+    public ArrayList buildServiceGroup(InputStream zin, ArchiveFileData currentFile,
                                         AxisServiceGroup axisServiceGroup, HashMap wsdlServices,
                                         AxisConfiguration axisConfig)
             throws XMLStreamException, AxisFault {



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