[prev in list] [next in list] [prev in thread] [next in thread] 

List:       axis-cvs
Subject:    svn commit: r373800 - in /webservices/axis2/trunk/java/modules/core:
From:       deepal () apache ! org
Date:       2006-01-31 12:13:19
Message-ID: 20060131121320.50772.qmail () minotaur ! apache ! org
[Download RAW message or body]

Author: deepal
Date: Tue Jan 31 04:13:00 2006
New Revision: 373800

URL: http://svn.apache.org/viewcvs?rev=373800&view=rev
Log:
- added a way to load modules from class path
(see the mail for more info)

Removed:
    webservices/axis2/trunk/java/modules/core/test-resources/deployment/outservice/META-INF/service.wsdl
 Modified:
    webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/DeploymentEngine.java
  webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java
  webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/repository/util/ArchiveFileData.java
  webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/build.xml


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/a \
pache/axis2/deployment/DeploymentEngine.java?rev=373800&r1=373799&r2=373800&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 \
Tue Jan 31 04:13:00 2006 @@ -335,36 +335,27 @@
         if (wsToDeploy.size() > 0) {
             for (int i = 0; i < wsToDeploy.size(); i++) {
                 currentArchiveFile = (ArchiveFileData) wsToDeploy.get(i);
-
                 boolean explodedDir = currentArchiveFile.getFile().isDirectory();
                 int type = currentArchiveFile.getType();
-
                 try {
                     ArchiveReader archiveReader;
                     StringWriter errorWriter = new StringWriter();
-
                     switch (type) {
                         case TYPE_SERVICE :
                             currentArchiveFile.setClassLoader(explodedDir,
                                     axisConfig.getServiceClassLoader());
                             archiveReader = new ArchiveReader();
-
                             String serviceStatus = "";
-
                             try {
                                 HashMap wsdlservice = \
archiveReader.processWSDLs(currentArchiveFile,  this);
-
                                 AxisServiceGroup sericeGroup = new \
                AxisServiceGroup(axisConfig);
-
                                 sericeGroup.setServiceGroupClassLoader(
                                         currentArchiveFile.getClassLoader());
-
                                 ArrayList serviceList = \
                archiveReader.processServiceGroup(
                                         currentArchiveFile.getAbsolutePath(), this,
                                         sericeGroup, explodedDir, wsdlservice,
                                         axisConfig);
-
                                 addServiceGroup(sericeGroup, serviceList);
                                 \
log.debug(Messages.getMessage(DeploymentErrorMsgs.DEPLOYING_WS,  \
currentArchiveFile.getName())); @@ -372,27 +363,21 @@
                                 \
log.info(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,  \
currentArchiveFile.getName(),  de.getMessage()));
-
                                 PrintWriter error_ptintWriter = new \
                PrintWriter(errorWriter);
-
                                 de.printStackTrace(error_ptintWriter);
                                 serviceStatus = "Error:\n" + errorWriter.toString();
                             } catch (AxisFault axisFault) {
                                 \
log.info(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,  \
currentArchiveFile.getName(),  axisFault.getMessage()));
-
                                 PrintWriter error_ptintWriter = new \
                PrintWriter(errorWriter);
-
                                 axisFault.printStackTrace(error_ptintWriter);
                                 serviceStatus = "Error:\n" + errorWriter.toString();
                             } catch (Exception e) {
                                 \
log.info(Messages.getMessage(DeploymentErrorMsgs.INVALID_SERVICE,  \
currentArchiveFile.getName(),  e.getMessage()));
-
                                 PrintWriter error_ptintWriter = new \
                PrintWriter(errorWriter);
-
                                 e.printStackTrace(error_ptintWriter);
                                 serviceStatus = "Error:\n" + errorWriter.toString();
                             } finally {
@@ -401,22 +386,16 @@
                                             \
getAxisServiceName(currentArchiveFile.getName()),  serviceStatus);
                                 }
-
                                 currentArchiveFile = null;
                             }
-
                             break;
-
                         case TYPE_MODULE :
                             currentArchiveFile.setClassLoader(explodedDir,
                                     axisConfig.getModuleClassLoader());
                             archiveReader = new ArchiveReader();
-
                             String moduleStatus = "";
-
                             try {
                                 AxisModule metaData = new AxisModule();
-
                                 \
metaData.setModuleClassLoader(currentArchiveFile.getClassLoader());  \
                metaData.setParent(axisConfig);
                                 \
archiveReader.readModuleArchive(currentArchiveFile.getAbsolutePath(), @@ -430,18 \
                +409,14 @@
                                 \
log.info(Messages.getMessage(DeploymentErrorMsgs.INVALID_MODULE,  \
currentArchiveFile.getName(),  e.getMessage()));
-
                                 PrintWriter error_ptintWriter = new \
                PrintWriter(errorWriter);
-
                                 e.printStackTrace(error_ptintWriter);
                                 moduleStatus = "Error:\n" + errorWriter.toString();
                             } catch (AxisFault axisFault) {
                                 \
log.info(Messages.getMessage(DeploymentErrorMsgs.INVALID_MODULE,  \
currentArchiveFile.getName(),  axisFault.getMessage()));
-
                                 PrintWriter error_ptintWriter = new \
                PrintWriter(errorWriter);
-
                                 axisFault.printStackTrace(error_ptintWriter);
                                 moduleStatus = "Error:\n" + errorWriter.toString();
                             } finally {
@@ -449,10 +424,8 @@
                                     axisConfig.getFaultyModules().put(
                                             \
getAxisServiceName(currentArchiveFile.getName()), moduleStatus);  }
-
                                 currentArchiveFile = null;
                             }
-
                             break;
                     }
                 } catch (AxisFault axisFault) {
@@ -483,6 +456,8 @@
             AxisConfigBuilder builder = new AxisConfigBuilder(in, this, axisConfig);
             builder.populateConfig();
             axisConfig.setPhasesinfo(phasesinfo);
+            //To load modules from the class path
+            new RepositoryListenerImpl(this);
             return axisConfig;
         } else if (axis2repository != null) {
             InputStream in;

Modified: webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java
                
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/src/org/a \
pache/axis2/deployment/listener/RepositoryListenerImpl.java?rev=373800&r1=373799&r2=373800&view=diff
 ==============================================================================
--- webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java \
                (original)
+++ webservices/axis2/trunk/java/modules/core/src/org/apache/axis2/deployment/listener/RepositoryListenerImpl.java \
Tue Jan 31 04:13:00 2006 @@ -45,7 +45,7 @@
      * First, it initializes the system, by loading all the modules in the /modules \
                directory
      * and then creates a WSInfoList to store information about available modules \
                and services.
      *
-     * @param folderName    path to parent directory that the listener should listen \
to +     * @param folderName       path to parent directory that the listener should \
                listen to
      * @param deploymentEngine reference to engine registry for updates
      */
     public RepositoryListenerImpl(String folderName, DeploymentEngine \
deploymentEngine) { @@ -53,6 +53,13 @@
         wsInfoList = new WSInfoList(deploymentEngine);
         this.deploymentEngine = deploymentEngine;
         init();
+        loadClassPathModules();
+    }
+
+    //The constructor , which loads moduls from class path
+    public RepositoryListenerImpl(DeploymentEngine deploymentEngine) {
+        this.deploymentEngine = deploymentEngine;
+        loadClassPathModules();
     }
 
     /**
@@ -80,6 +87,58 @@
         }
     }
 
+    private void loadClassPathModules() {
+        String classPath = getLocation();
+        System.out.println("classpath1" + classPath);
+        int lstindex = classPath.lastIndexOf(File.separatorChar);
+        if (lstindex > 0) {
+            classPath = classPath.substring(0, lstindex);
+        } else {
+            classPath = ".";
+        }
+        System.out.println("classptah = " + classPath);
+        File root = new File(classPath);
+        File[] files = root.listFiles();
+        if (files != null) {
+            for (int i = 0; i < files.length; i++) {
+                File file = files[i];
+                if (!file.isDirectory()) {
+                    if (ArchiveFileData.isModuleArchiveFile(file.getName())) {
+                        //adding moduls in the class path
+                        wsInfoList.addWSInfoItem(file, TYPE_MODULE);
+                        System.out.println("added a module: " + file.getName());
+                    }
+                }
+            }
+        }
+        deploymentEngine.doDeploy();
+    }
+
+    /**
+     * To get the location of the Axis2.jar from that I can drive the location of \
class path +     *
+     * @return String (location of the axis2 jar)
+     */
+    private String getLocation() {
+        try {
+            Class clazz = Class.forName("org.apache.axis2.engine.AxisEngine");
+            java.net.URL url = \
clazz.getProtectionDomain().getCodeSource().getLocation(); +            String \
location = url.toString(); +            if (location.startsWith("jar")) {
+                url = ((java.net.JarURLConnection) \
url.openConnection()).getJarFileURL(); +                location = url.toString();
+            }
+            if (location.startsWith("file")) {
+                java.io.File file = new java.io.File(url.getFile());
+                return file.getAbsolutePath();
+            } else {
+                return url.toString();
+            }
+        } catch (Throwable t) {
+            return "an unknown location";
+        }
+    }
+
     /**
      * Finds a list of services in the folder and adds to wsInfoList.
      */
@@ -101,7 +160,7 @@
     }
 
     /**
-     * Searches a given folder for jar files and adds them to a list in the 
+     * Searches a given folder for jar files and adds them to a list in the
      * WSInfolist class.
      */
     private void findServicesInDirectory(String folderName) {

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/a \
pache/axis2/deployment/repository/util/ArchiveFileData.java?rev=373800&r1=373799&r2=373800&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 \
Tue Jan 31 04:13:00 2006 @@ -86,7 +86,7 @@
     }
 
     public static boolean isModuleArchiveFile(String filename) {
-        return ((filename.endsWith(".jar")) || (filename.endsWith(".mar")));
+        return (filename.endsWith(".mar"));
     }
 
     /**

Modified: webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/build.xml
                
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/build.xml?rev=373800&r1=373799&r2=373800&view=diff
 ==============================================================================
--- webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/build.xml \
                (original)
+++ webservices/axis2/trunk/java/modules/core/test-resources/deployment/module1/build.xml \
Tue Jan 31 04:13:00 2006 @@ -31,14 +31,14 @@
         </copy>
 
         <mkdir dir="${jar.dir}"/>
-        <jar jarfile="${jar.dir}/module1.jar" basedir="${build.classes}">
+        <jar jarfile="${jar.dir}/module1.mar" basedir="${build.classes}">
             <include name="**"/>
         </jar>
         <delete dir="${build}"/>
     </target>
 
     <target name="init">
-        <uptodate property="jars.uptodate" targetfile="${jar.dir}/module1.jar">
+        <uptodate property="jars.uptodate" targetfile="${jar.dir}/module1.mar">
             <srcfiles dir="${src}">
                 <include name="**/*.java"/>
                 <include name="**/*.xml"/>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic