Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/AxisConfigBuilder.java
 Sun Dec 17 22:34:08 2017
@@ -95,7 +95,7 @@ public class AxisConfigBuilder extends D
             }
             // processing Parameters
             // Processing service level parameters
-            Iterator itr = config_element.getChildrenWithName(new 
QName(TAG_PARAMETER));
+            Iterator<OMElement> itr = config_element.getChildrenWithName(new 
QName(TAG_PARAMETER));
 
             processParameters(itr, axisConfig, axisConfig);
 
@@ -111,19 +111,19 @@ public class AxisConfigBuilder extends D
                 }
             }
             // Process Module refs
-            Iterator moduleitr =
+            Iterator<OMElement> moduleitr =
                     config_element.getChildrenWithName(new 
QName(DeploymentConstants.TAG_MODULE));
 
             processModuleRefs(moduleitr, axisConfig);
 
             // Processing Transport Senders
-            Iterator trs_senders =
+            Iterator<OMElement> trs_senders =
                     config_element.getChildrenWithName(new 
QName(TAG_TRANSPORT_SENDER));
 
             processTransportSenders(trs_senders);
 
             // Processing Transport Receivers
-            Iterator trs_Reivers =
+            Iterator<OMElement> trs_Reivers =
                     config_element.getChildrenWithName(new 
QName(TAG_TRANSPORT_RECEIVER));
 
             processTransportReceivers(trs_Reivers);
@@ -139,22 +139,22 @@ public class AxisConfigBuilder extends D
             processThreadContextMigrators(axisConfig, threadContextMigrators);
 
             // Process Observers
-            Iterator obs_ittr = config_element.getChildrenWithName(new 
QName(TAG_LISTENER));
+            Iterator<OMElement> obs_ittr = 
config_element.getChildrenWithName(new QName(TAG_LISTENER));
 
             processObservers(obs_ittr);
 
             // Processing Phase orders
-            Iterator phaseorders = config_element.getChildrenWithName(new 
QName(TAG_PHASE_ORDER));
+            Iterator<OMElement> phaseorders = 
config_element.getChildrenWithName(new QName(TAG_PHASE_ORDER));
 
             processPhaseOrders(phaseorders);
 
-            Iterator moduleConfigs =
+            Iterator<OMElement> moduleConfigs =
                     config_element.getChildrenWithName(new 
QName(TAG_MODULE_CONFIG));
 
             processModuleConfig(moduleConfigs, axisConfig, axisConfig);
 
             // processing <wsp:Policy> .. </..> elements
-            Iterator policyElements = 
PolicyUtil.getPolicyChildren(config_element);
+            Iterator<OMElement> policyElements = 
PolicyUtil.getPolicyChildren(config_element);
 
             if (policyElements != null && policyElements.hasNext()) {
                 processPolicyElements(policyElements,
@@ -162,7 +162,7 @@ public class AxisConfigBuilder extends D
             }
 
             // processing <wsp:PolicyReference> .. </..> elements
-            Iterator policyRefElements = 
PolicyUtil.getPolicyRefChildren(config_element);
+            Iterator<OMElement> policyRefElements = 
PolicyUtil.getPolicyRefChildren(config_element);
 
             if (policyRefElements != null && policyRefElements.hasNext()) {
                 processPolicyRefElements(policyElements,
@@ -187,7 +187,7 @@ public class AxisConfigBuilder extends D
             OMElement transactionElement = 
config_element.getFirstChildWithName(new QName(TAG_TRANSACTION));
             if (transactionElement != null) {
                 ParameterInclude transactionParameters = new 
ParameterIncludeImpl();
-                Iterator parameters = 
transactionElement.getChildrenWithName(new QName(TAG_PARAMETER));
+                Iterator<OMElement> parameters = 
transactionElement.getChildrenWithName(new QName(TAG_PARAMETER));
                 processParameters(parameters, transactionParameters, null);
 
                 TransactionConfiguration txcfg = null;
@@ -270,7 +270,7 @@ public class AxisConfigBuilder extends D
                 }
             }
             //Processing deployers.
-            Iterator deployerItr = config_element.getChildrenWithName(new 
QName(DEPLOYER));
+            Iterator<OMElement> deployerItr = 
config_element.getChildrenWithName(new QName(DEPLOYER));
             if (deployerItr != null) {
                 processDeployers(deployerItr);
             }
@@ -290,9 +290,9 @@ public class AxisConfigBuilder extends D
 
     private void processTargetResolvers(AxisConfiguration axisConfig, 
OMElement targetResolvers) {
         if (targetResolvers != null) {
-            Iterator iterator = targetResolvers.getChildrenWithName(new 
QName(TAG_TARGET_RESOLVER));
+            Iterator<OMElement> iterator = 
targetResolvers.getChildrenWithName(new QName(TAG_TARGET_RESOLVER));
             while (iterator.hasNext()) {
-                OMElement targetResolver = (OMElement) iterator.next();
+                OMElement targetResolver = iterator.next();
                 OMAttribute classNameAttribute =
                         targetResolver.getAttribute(new QName(TAG_CLASS_NAME));
                 String className = classNameAttribute.getAttributeValue();
@@ -313,9 +313,9 @@ public class AxisConfigBuilder extends D
 
     private void processThreadContextMigrators(AxisConfiguration axisConfig, 
OMElement targetResolvers) {
         if (targetResolvers != null) {
-            Iterator iterator = targetResolvers.getChildrenWithName(new 
QName(TAG_THREAD_CONTEXT_MIGRATOR));
+            Iterator<OMElement> iterator = 
targetResolvers.getChildrenWithName(new QName(TAG_THREAD_CONTEXT_MIGRATOR));
             while (iterator.hasNext()) {
-                OMElement threadContextMigrator = (OMElement) iterator.next();
+                OMElement threadContextMigrator = iterator.next();
                 OMAttribute listIdAttribute =
                     threadContextMigrator.getAttribute(new QName(TAG_LIST_ID));
                 String listId = listIdAttribute.getAttributeValue();
@@ -358,9 +358,9 @@ public class AxisConfigBuilder extends D
        if (soaproleconfigElement != null) {
                final boolean isUltimateReceiever = 
JavaUtils.isTrue(soaproleconfigElement.getAttributeValue(new 
QName(Constants.SOAP_ROLE_IS_ULTIMATE_RECEIVER_ATTRIBUTE)), true);
                ArrayList roles = new ArrayList();
-               Iterator iterator = 
soaproleconfigElement.getChildrenWithName(new 
QName(Constants.SOAP_ROLE_ELEMENT));
+               Iterator<OMElement> iterator = 
soaproleconfigElement.getChildrenWithName(new 
QName(Constants.SOAP_ROLE_ELEMENT));
                while (iterator.hasNext()) {
-                       OMElement roleElement = (OMElement) iterator.next();
+                       OMElement roleElement = iterator.next();
                        roles.add(roleElement.getText());
                }
                final List unmodifiableRoles = 
Collections.unmodifiableList(roles);
@@ -421,9 +421,9 @@ public class AxisConfigBuilder extends D
             deployer.setDirectory(directory);
             deployer.setExtension(extension);
             
-            for (Iterator<?> itr = element.getChildrenWithName(new QName(
+            for (Iterator<OMElement> itr = element.getChildrenWithName(new 
QName(
                     TAG_SERVICE_BUILDER_EXTENSION)); itr.hasNext();) {
-                OMElement serviceBuilderEle = (OMElement) itr.next();
+                OMElement serviceBuilderEle = itr.next();
                 String serviceBuilderClass = 
serviceBuilderEle.getAttributeValue(new QName(
                         TAG_CLASS_NAME));
                 String serviceBuilderName = 
serviceBuilderEle.getAttributeValue(new QName(
@@ -476,7 +476,7 @@ public class AxisConfigBuilder extends D
                 String module = moduleName_att.getAttributeValue();
                 ModuleConfiguration moduleConfiguration =
                         new ModuleConfiguration(module, parent);
-                Iterator parameters = moduleConfig.getChildrenWithName(new 
QName(TAG_PARAMETER));
+                Iterator<OMElement> parameters = 
moduleConfig.getChildrenWithName(new QName(TAG_PARAMETER));
 
                 processParameters(parameters, moduleConfiguration, parent);
                 config.addModuleConfig(moduleConfiguration);
@@ -527,7 +527,7 @@ public class AxisConfigBuilder extends D
                 observer = (AxisObserver) observerclass.newInstance();
                 // processing Parameters
                 // Processing service level parameters
-                Iterator itr = observerelement.getChildrenWithName(new 
QName(TAG_PARAMETER));
+                Iterator<OMElement> itr = 
observerelement.getChildrenWithName(new QName(TAG_PARAMETER));
                 processParameters(itr, observer, axisConfig);
                 // initialization
                 try {
@@ -546,10 +546,10 @@ public class AxisConfigBuilder extends D
 
     private ArrayList processPhaseList(OMElement phaseOrders) throws 
DeploymentException {
         ArrayList phaselist = new ArrayList();
-        Iterator phases = phaseOrders.getChildrenWithName(new 
QName(TAG_PHASE));
+        Iterator<OMElement> phases = phaseOrders.getChildrenWithName(new 
QName(TAG_PHASE));
 
         while (phases.hasNext()) {
-            OMElement phaseelement = (OMElement) phases.next();
+            OMElement phaseelement = phases.next();
             String phaseName =
                     phaseelement.getAttribute(new 
QName(ATTRIBUTE_NAME)).getAttributeValue();
             String phaseClass = phaseelement.getAttributeValue(new 
QName(TAG_CLASS_NAME));
@@ -564,10 +564,10 @@ public class AxisConfigBuilder extends D
 
             phase.setName(phaseName);
 
-            Iterator handlers = phaseelement.getChildrenWithName(new 
QName(TAG_HANDLER));
+            Iterator<OMElement> handlers = 
phaseelement.getChildrenWithName(new QName(TAG_HANDLER));
 
             while (handlers.hasNext()) {
-                OMElement omElement = (OMElement) handlers.next();
+                OMElement omElement = handlers.next();
                 HandlerDescription handler = processHandler(omElement, 
axisConfig, phaseName);
 
                 handler.getRules().setPhaseName(phaseName);
@@ -616,9 +616,9 @@ public class AxisConfigBuilder extends D
 
     private void processDefaultModuleVersions(OMElement defaultVersions)
             throws DeploymentException {
-        Iterator moduleVersions = defaultVersions.getChildrenWithName(new 
QName(TAG_MODULE));
+        Iterator<OMElement> moduleVersions = 
defaultVersions.getChildrenWithName(new QName(TAG_MODULE));
         while (moduleVersions.hasNext()) {
-            OMElement omElement = (OMElement) moduleVersions.next();
+            OMElement omElement = moduleVersions.next();
             String name = omElement.getAttributeValue(new 
QName(ATTRIBUTE_NAME));
             if (name == null) {
                 throw new 
DeploymentException(Messages.getMessage("modulenamecannotbenull"));
@@ -670,7 +670,7 @@ public class AxisConfigBuilder extends D
                     }
                 }
                 try {
-                    Iterator itr = transport.getChildrenWithName(new 
QName(TAG_PARAMETER));
+                    Iterator<OMElement> itr = 
transport.getChildrenWithName(new QName(TAG_PARAMETER));
                     processParameters(itr, transportIN, axisConfig);
                     // adding to axis2 config
                     axisConfig.addTransportIn(transportIN);
@@ -717,7 +717,7 @@ public class AxisConfigBuilder extends D
                     // process Parameters
                     // processing Parameters
                     // Processing service level parameters
-                    Iterator itr = transport.getChildrenWithName(new 
QName(TAG_PARAMETER));
+                    Iterator<OMElement> itr = 
transport.getChildrenWithName(new QName(TAG_PARAMETER));
 
                     processParameters(itr, transportout, axisConfig);
                     // adding to axis2 config
@@ -760,11 +760,11 @@ public class AxisConfigBuilder extends D
             axisConfig.addDataLocatorClassNames(DRConstants.GLOBAL_LEVEL,
                                                 className);
         }
-        Iterator iterator = dataLocatorElement.getChildrenWithName(new QName(
+        Iterator<OMElement> iterator = 
dataLocatorElement.getChildrenWithName(new QName(
                 DRConstants.DIALECT_LOCATOR_ELEMENT));
 
         while (iterator.hasNext()) {
-            OMElement locatorElement = (OMElement) iterator.next();
+            OMElement locatorElement = iterator.next();
             OMAttribute dialect = locatorElement.getAttribute(new QName(
                     DRConstants.DIALECT_ATTRIBUTE));
             OMAttribute dialectclass = locatorElement.getAttribute(new QName(

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ClusterBuilder.java
 Sun Dec 17 22:34:08 2017
@@ -130,9 +130,9 @@ public class ClusterBuilder extends Desc
                 return;
             }
 
-            for (Iterator iter = lbEle.getChildrenWithName(new 
QName("applicationDomain"));
+            for (Iterator<OMElement> iter = lbEle.getChildrenWithName(new 
QName("applicationDomain"));
                  iter.hasNext();) {
-                OMElement omElement = (OMElement) iter.next();
+                OMElement omElement = iter.next();
                 String domainName = omElement.getAttributeValue(new 
QName("name")).trim();
                 String handlerClass = omElement.getAttributeValue(new 
QName("agent")).trim();
                 String descAttrib = omElement.getAttributeValue(new 
QName("description"));
@@ -265,9 +265,9 @@ public class ClusterBuilder extends Desc
                         replicationEle.getFirstChildWithName(new 
QName(TAG_DEFAULTS));
                 if (defaultsEle != null) {
                     List<String> defaults = new ArrayList<String>();
-                    for (Iterator iter = defaultsEle.getChildrenWithName(new 
QName(TAG_EXCLUDE));
+                    for (Iterator<OMElement> iter = 
defaultsEle.getChildrenWithName(new QName(TAG_EXCLUDE));
                          iter.hasNext();) {
-                        OMElement excludeEle = (OMElement) iter.next();
+                        OMElement excludeEle = iter.next();
                         OMAttribute nameAtt = excludeEle.getAttribute(new 
QName(ATTRIBUTE_NAME));
                         defaults.add(nameAtt.getAttributeValue());
                     }
@@ -275,15 +275,15 @@ public class ClusterBuilder extends Desc
                 }
 
                 // Process specifics
-                for (Iterator iter = replicationEle.getChildrenWithName(new 
QName(TAG_CONTEXT));
+                for (Iterator<OMElement> iter = 
replicationEle.getChildrenWithName(new QName(TAG_CONTEXT));
                      iter.hasNext();) {
-                    OMElement contextEle = (OMElement) iter.next();
+                    OMElement contextEle = iter.next();
                     String ctxClassName =
                             contextEle.getAttribute(new 
QName(ATTRIBUTE_CLASS)).getAttributeValue();
                     List<String> excludes = new ArrayList<String>();
-                    for (Iterator iter2 = contextEle.getChildrenWithName(new 
QName(TAG_EXCLUDE));
+                    for (Iterator<OMElement> iter2 = 
contextEle.getChildrenWithName(new QName(TAG_EXCLUDE));
                          iter2.hasNext();) {
-                        OMElement excludeEle = (OMElement) iter2.next();
+                        OMElement excludeEle = iter2.next();
                         OMAttribute nameAtt = excludeEle.getAttribute(new 
QName(ATTRIBUTE_NAME));
                         excludes.add(nameAtt.getAttributeValue());
                     }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentClassLoader.java
 Sun Dec 17 22:34:08 2017
@@ -21,241 +21,30 @@ package org.apache.axis2.deployment;
 
 import org.apache.axis2.classloader.BeanInfoCache;
 import org.apache.axis2.classloader.BeanInfoCachingClassLoader;
-import org.apache.commons.io.IOUtils;
 
-import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.net.URL;
 import java.net.URLClassLoader;
-import java.net.URLConnection;
-import java.net.URLStreamHandler;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.List;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipInputStream;
 
 public class DeploymentClassLoader extends URLClassLoader implements 
BeanInfoCachingClassLoader {
-    // List of URL's
-    private URL[] urls = null;
-
-    // List of jar files inside the jars in the original url
-    private List embedded_jars;
-
     private boolean isChildFirstClassLoading;
 
     private final BeanInfoCache beanInfoCache = new BeanInfoCache();
     
     /**
-     * DeploymentClassLoader is extended from URLClassLoader. The constructor
-     * does not override the super constructor, but takes in an addition list 
of
-     * jar files inside /lib directory.
+     * Constructor.
      *
      * @param urls   <code>URL</code>s
      * @param parent parent classloader <code>ClassLoader</code>
      */
     public DeploymentClassLoader(URL[] urls,
-                                 List embedded_jars,
                                  ClassLoader parent,
                                  boolean isChildFirstClassLoading) {
         super(urls, parent);
-        this.urls = urls;
-        this.embedded_jars = embedded_jars;
         this.isChildFirstClassLoading = isChildFirstClassLoading;
     }
 
-    /**
-     * Finds and loads the class with the specified name from the URL search
-     * path. Any URLs referring to JAR files are loaded and opened as needed
-     * until the class is found.
-     *
-     * @param name the name of the class
-     * @return the resulting class
-     * @exception ClassNotFoundException if the class could not be found
-     */
-    protected Class findClass(String name) throws ClassNotFoundException {
-        Class clazz;
-        try {
-            clazz = super.findClass(name);
-        } catch (ClassNotFoundException e) {
-            byte raw[] = null;
-            try {
-                String completeFileName = name;
-                /**
-                 * Replacing org.apache. -> org/apache/...
-                 */
-                completeFileName = completeFileName.replace('.', 
'/').concat(".class");
-                raw = getBytes(completeFileName);
-            } catch (Exception ex) {
-                // Fall through
-            }
-            if (raw == null) {
-                throw new ClassNotFoundException("Class Not found : " + name);
-            }
-            clazz = defineClass(name, raw, 0, raw.length);
-        }
-        return clazz;
-    }
-
-
-    /**
-     * Finds the resource with the specified name on the URL search path.
-     *
-     * @param resource the name of the resource
-     * @return a <code>URL</code> for the resource, or <code>null</code>
-     * if the resource could not be found.
-     */
-    public URL findResource(String resource) {
-        URL url = super.findResource(resource);
-        if (url == null) {
-            for (int i = 0; embedded_jars != null && i < embedded_jars.size(); 
i++) {
-                String libjar_name = (String) embedded_jars.get(i);
-                try {
-                    InputStream in = getJarAsStream(libjar_name);
-                    ZipInputStream zin = new ZipInputStream(in);
-                    ZipEntry entry;
-                    String entryName;
-                    while ((entry = zin.getNextEntry()) != null) {
-                        entryName = entry.getName();
-                        if (entryName != null &&
-                                entryName.endsWith(resource)) {
-                            byte[] raw = IOUtils.toByteArray(zin);
-                            return new URL("jar", "", -1, urls[0] + "!/" + 
libjar_name + "!/" + entryName,
-                                    new ByteUrlStreamHandler(raw));
-                        }
-                    }
-                } catch (Exception e) {
-                    throw new RuntimeException(e);
-                }
-            }
-        }
-        return url;
-    }
-
-    /**
-     * Returns an Enumeration of URLs representing all of the resources
-     * on the URL search path having the specified name.
-     *
-     * @param resource the resource name
-     * @exception IOException if an I/O exception occurs
-     * @return an <code>Enumeration</code> of <code>URL</code>s
-     */
-    public Enumeration findResources(String resource) throws IOException {
-        ArrayList resources = new ArrayList();
-        Enumeration e = super.findResources(resource);
-        while (e.hasMoreElements()) {
-            resources.add(e.nextElement());
-        }
-        for (int i = 0; embedded_jars != null && i < embedded_jars.size(); 
i++) {
-            String libjar_name = (String) embedded_jars.get(i);
-            try {
-            InputStream in = getJarAsStream(libjar_name);
-            ZipInputStream zin = new ZipInputStream(in);
-            ZipEntry entry;
-            String entryName;
-                while ((entry = zin.getNextEntry()) != null) {
-                    entryName = entry.getName();
-                    if (entryName != null &&
-                            entryName.endsWith(resource)) {
-                        byte[] raw = IOUtils.toByteArray(zin);
-                        resources.add(new URL("jar", "", -1, urls[0] + "!/" + 
libjar_name + "!/" + entryName,
-                                new ByteUrlStreamHandler(raw)));
-                    }
-                }
-            } catch (Exception ex) {
-                throw new RuntimeException(ex);
-            }
-        }
-        return Collections.enumeration(resources);
-    }
-
-    /**
-     * Access the jars file (/lib) one by one , then for each one create a 
<code>ZipInputStream</code>
-     * and check to see whether there is any entry eith given name. if it is 
found then
-     * return the byte array for that
-     *
-     * @param resource <code>String</code>  Name of the file to be found
-     * @return byte[]
-     * @throws java.io.IOException <code>Exception</code>
-     */
-    private byte[] getBytes(String resource) throws Exception {
-        for (int i = 0; embedded_jars != null && i < embedded_jars.size(); 
i++) {
-            String libjar_name = (String) embedded_jars.get(i);
-            InputStream in = getJarAsStream(libjar_name);
-            byte[] bytes = getBytes(in, resource);
-            if(bytes != null) {
-                return bytes;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get a specific entry's content as a byte array
-     * 
-     * @param in
-     * @param resource
-     * @return
-     * @throws Exception
-     */
-    private byte[] getBytes(InputStream in, String resource) throws Exception {
-        ZipInputStream zin = new ZipInputStream(in);
-        ZipEntry entry;
-        String entryName;
-        while ((entry = zin.getNextEntry()) != null) {
-            entryName = entry.getName();
-            if (entryName != null &&
-                    entryName.endsWith(resource)) {
-                byte[] raw = IOUtils.toByteArray(zin);
-                zin.close();
-                return raw;
-            }
-        }
-        return null;
-    }
-
-    /**
-     * Get the specified embedded jar from the main jar 
-     *
-     * @param libjar_name
-     * @return
-     * @throws Exception
-     */
-    private InputStream getJarAsStream(String libjar_name) throws Exception {
-        return new ByteArrayInputStream(getBytes(urls[0].openStream(), 
libjar_name));
-    }
-
-    public static class ByteUrlStreamHandler extends URLStreamHandler {
-        private byte[] bytes;
-
-        public ByteUrlStreamHandler(byte[] bytes) {
-            this.bytes = bytes;
-        }
-
-        protected URLConnection openConnection(URL u) throws IOException {
-            return new ByteURLConnection(u, bytes);
-        }
-    }
-
-    public static class ByteURLConnection extends URLConnection {
-        protected byte[] bytes;
-
-        public ByteURLConnection(URL url, byte[] bytes) {
-            super(url);
-            this.bytes = bytes;
-        }
-
-        public void connect() {
-        }
-
-        public InputStream getInputStream() {
-            return new ByteArrayInputStream(bytes);
-        }
-    }
-
     public InputStream getResourceAsStream(String name) {
         URL url = findResource(name);
         if(url == null) {
@@ -272,7 +61,7 @@ public class DeploymentClassLoader exten
     }
 
     protected synchronized Class<?> loadClass(String name, boolean resolve) 
throws ClassNotFoundException {
-        Class c = null;
+        Class<?> c = null;
         if (!isChildFirstClassLoading) {
             c = super.loadClass(name, resolve);
         } else {

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentConstants.java
 Sun Dec 17 22:34:08 2017
@@ -95,7 +95,9 @@ public interface DeploymentConstants {
     String TAG_EXTRACT_SERVICE_ARCHIVE = "extractServiceArchive";
     String TAG_DISPATCH_ORDER = "dispatchOrder";
     String TAG_DISPATCHER = "dispatcher";
-    String TAG_DESCRIPTION = "Description";
+    String TAG_DESCRIPTION = "description";
+    // Alternate description tag; see AXIS2-5884
+    String TAG_DESCRIPTION_ALT = "Description";
     String TAG_CLASS_NAME = "class";
     String TAG_LIST_ID = "listId";
     String TAG_EXCLUDE_PROPERTIES= "excludeProperties";

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DeploymentEngine.java
 Sun Dec 17 22:34:08 2017
@@ -22,7 +22,6 @@ package org.apache.axis2.deployment;
 
 import org.apache.axis2.AxisFault;
 import org.apache.axis2.Constants;
-import org.apache.axis2.classloader.JarFileClassLoader;
 import org.apache.axis2.context.ConfigurationContext;
 import org.apache.axis2.deployment.repository.util.ArchiveReader;
 import org.apache.axis2.deployment.repository.util.DeploymentFileData;
@@ -800,11 +799,13 @@ public abstract class DeploymentEngine i
      * @throws DeploymentException if there's a problem
      */
     protected void setClassLoaders(String axis2repoURI) throws 
DeploymentException {
-        ClassLoader sysClassLoader =
-                
Utils.getClassLoader(Thread.currentThread().getContextClassLoader(), 
axis2repoURI,
-                        axisConfig.isChildFirstClassLoading());
-
-        axisConfig.setSystemClassLoader(sysClassLoader);
+        if (axisConfig.getSystemClassLoader() == null) {
+            ClassLoader sysClassLoader =
+                    
Utils.getClassLoader(Thread.currentThread().getContextClassLoader(), 
axis2repoURI,
+                            axisConfig.isChildFirstClassLoading());
+    
+            axisConfig.setSystemClassLoader(sysClassLoader);
+        }
         if (servicesDir.exists()) {
             axisConfig.setServiceClassLoader(
                     Utils.getClassLoader(axisConfig.getSystemClassLoader(), 
servicesDir,
@@ -1154,19 +1155,23 @@ public abstract class DeploymentEngine i
         return (extensionMap != null) ? extensionMap.get(extension) : null;
     }
 
+    private static void destroyClassLoader(ClassLoader classLoader) {
+        if (classLoader instanceof DeploymentClassLoader) {
+            try {
+                ((DeploymentClassLoader)classLoader).close();
+            } catch (IOException ex) {
+                log.warn("Failed to destroy class loader " + classLoader, ex);
+            }
+        }
+    }
+
     /**
      * Clean up the mess
      */
     public void cleanup() {
-        if (axisConfig.getModuleClassLoader() instanceof JarFileClassLoader) {
-            ((JarFileClassLoader) axisConfig.getModuleClassLoader()).destroy();
-        }
-        if (axisConfig.getServiceClassLoader() instanceof JarFileClassLoader) {
-            ((JarFileClassLoader) 
axisConfig.getServiceClassLoader()).destroy();
-        }
-        if (axisConfig.getSystemClassLoader() instanceof JarFileClassLoader) {
-            ((JarFileClassLoader) axisConfig.getSystemClassLoader()).destroy();
-        }
+        destroyClassLoader(axisConfig.getModuleClassLoader());
+        destroyClassLoader(axisConfig.getServiceClassLoader());
+        destroyClassLoader(axisConfig.getSystemClassLoader());
         if (scheduler != null) {
             scheduler.cleanup(schedulerTask);
         }

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/DescriptionBuilder.java
 Sun Dec 17 22:34:08 2017
@@ -131,10 +131,10 @@ public class DescriptionBuilder implemen
     protected HashMap<String,MessageReceiver> 
processMessageReceivers(OMElement messageReceivers)
             throws DeploymentException {
         HashMap<String,MessageReceiver> mr_mep = new 
HashMap<String,MessageReceiver>();
-        Iterator msgReceivers = messageReceivers.getChildrenWithName(new QName(
+        Iterator<OMElement> msgReceivers = 
messageReceivers.getChildrenWithName(new QName(
                 TAG_MESSAGE_RECEIVER));
         while (msgReceivers.hasNext()) {
-            OMElement msgReceiver = (OMElement) msgReceivers.next();
+            OMElement msgReceiver = msgReceivers.next();
             final OMElement tempMsgReceiver = msgReceiver;
             MessageReceiver receiver = null;
             try {
@@ -164,10 +164,10 @@ public class DescriptionBuilder implemen
     protected HashMap<String,MessageReceiver> 
processMessageReceivers(ClassLoader loader,
                                               OMElement element) throws 
DeploymentException {
         HashMap<String,MessageReceiver> meps = new 
HashMap<String,MessageReceiver>();
-        Iterator iterator = element.getChildrenWithName(new QName(
+        Iterator<OMElement> iterator = element.getChildrenWithName(new QName(
                 TAG_MESSAGE_RECEIVER));
         while (iterator.hasNext()) {
-            OMElement receiverElement = (OMElement) iterator.next();
+            OMElement receiverElement = iterator.next();
             MessageReceiver receiver = loadMessageReceiver(loader,
                                                            receiverElement);
             OMAttribute mepAtt = receiverElement
@@ -216,10 +216,10 @@ public class DescriptionBuilder implemen
     protected HashMap processMessageBuilders(OMElement messageBuildersElement)
             throws DeploymentException {
         HashMap builderSelector = new HashMap();
-        Iterator msgBuilders = messageBuildersElement
+        Iterator<OMElement> msgBuilders = messageBuildersElement
                 .getChildrenWithName(new QName(TAG_MESSAGE_BUILDER));
         while (msgBuilders.hasNext()) {
-            OMElement msgBuilderElement = (OMElement) msgBuilders.next();
+            OMElement msgBuilderElement = msgBuilders.next();
             OMAttribute builderName = msgBuilderElement.getAttribute(new 
QName(TAG_CLASS_NAME));
             String className = builderName.getAttributeValue();
             Class builderClass = null;
@@ -254,10 +254,10 @@ public class DescriptionBuilder implemen
     protected HashMap processMessageFormatters(OMElement 
messageFormattersElement)
             throws DeploymentException {
         HashMap messageFormatters = new HashMap();
-        Iterator msgFormatters = messageFormattersElement
+        Iterator<OMElement> msgFormatters = messageFormattersElement
                 .getChildrenWithName(new QName(TAG_MESSAGE_FORMATTER));
         while (msgFormatters.hasNext()) {
-            OMElement msgFormatterElement = (OMElement) msgFormatters.next();
+            OMElement msgFormatterElement = msgFormatters.next();
             OMElement tempMsgFormatter = msgFormatterElement;
             OMAttribute formatterName = tempMsgFormatter.getAttribute(new 
QName(TAG_CLASS_NAME));
             String className = formatterName.getAttributeValue();
@@ -327,11 +327,11 @@ public class DescriptionBuilder implemen
             return flow;
         }
 
-        Iterator handlers = flowelement.getChildrenWithName(new QName(
+        Iterator<OMElement> handlers = flowelement.getChildrenWithName(new 
QName(
                 TAG_HANDLER));
 
         while (handlers.hasNext()) {
-            OMElement handlerElement = (OMElement) handlers.next();
+            OMElement handlerElement = handlers.next();
 
             flow.addHandler(processHandler(handlerElement, parent));
         }
@@ -459,7 +459,7 @@ public class DescriptionBuilder implemen
                 }
             }
 
-            Iterator parameters = handler_element
+            Iterator<OMElement> parameters = handler_element
                     .getChildrenWithName(new QName(TAG_PARAMETER));
 
             try {
@@ -586,11 +586,11 @@ public class DescriptionBuilder implemen
      */
     protected void processActionMappings(OMElement operation,
                                          AxisOperation op_descrip) {
-        Iterator mappingIterator = operation.getChildrenWithName(new QName(
+        Iterator<OMElement> mappingIterator = 
operation.getChildrenWithName(new QName(
                 Constants.ACTION_MAPPING));
         ArrayList mappingList = new ArrayList();
         while (mappingIterator.hasNext()) {
-            OMElement mappingElement = (OMElement) mappingIterator.next();
+            OMElement mappingElement = mappingIterator.next();
             String inputActionString = mappingElement.getText().trim();
             if (log.isTraceEnabled()) {
                 log.trace("Input Action Mapping found: " + inputActionString);
@@ -614,10 +614,10 @@ public class DescriptionBuilder implemen
             }
             op_descrip.setOutputAction(outputActionString);
         }
-        Iterator faultActionsIterator = operation
+        Iterator<OMElement> faultActionsIterator = operation
                 .getChildrenWithName(new 
QName(Constants.FAULT_ACTION_MAPPING));
         while (faultActionsIterator.hasNext()) {
-            OMElement faultMappingElement = (OMElement) faultActionsIterator
+            OMElement faultMappingElement = faultActionsIterator
                     .next();
             String faultActionString = faultMappingElement.getText().trim();
             String faultActionName = faultMappingElement

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleBuilder.java
 Sun Dec 17 22:34:08 2017
@@ -105,7 +105,7 @@ public class ModuleBuilder extends Descr
             OMAttribute moduleClassAtt = moduleElement.getAttribute(new 
QName(TAG_CLASS_NAME));
             // processing Parameters
             // Processing service level parameters
-            Iterator<?> itr = moduleElement.getChildrenWithName(new 
QName(TAG_PARAMETER));
+            Iterator<OMElement> itr = moduleElement.getChildrenWithName(new 
QName(TAG_PARAMETER));
 
             processParameters(itr, module, module.getParent());
 
@@ -148,7 +148,9 @@ public class ModuleBuilder extends Descr
             // Process service description
             OMElement descriptionElement =
                     moduleElement.getFirstChildWithName(new 
QName(TAG_DESCRIPTION));
-
+            if (descriptionElement == null) {
+                descriptionElement = moduleElement.getFirstChildWithName(new 
QName(TAG_DESCRIPTION_ALT));
+            }
             if (descriptionElement != null) {
                 OMElement descriptionValue = 
descriptionElement.getFirstElement();
 
@@ -222,7 +224,7 @@ public class ModuleBuilder extends Descr
             }
 
             // processing Operations
-            Iterator<?> op_itr = moduleElement.getChildrenWithName(new 
QName(TAG_OPERATION));
+            Iterator<OMElement> op_itr = moduleElement.getChildrenWithName(new 
QName(TAG_OPERATION));
             List<AxisOperation> operations = processOperations(op_itr);
 
             for (AxisOperation op : operations) {

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/ModuleDeployer.java
 Sun Dec 17 22:34:08 2017
@@ -197,21 +197,14 @@ public class ModuleDeployer extends Abst
         }
 
         try {
-            ClassLoader deploymentClassLoader = Utils.createClassLoader(new 
URL[] { fileUrl },
-                    axisConfig.getModuleClassLoader(), true,
+            ClassLoader deploymentClassLoader = 
Utils.createClassLoader(fileUrl, null,
+                    axisConfig.getModuleClassLoader(),
                     (File) 
axisConfig.getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),
                     axisConfig.isChildFirstClassLoading());
             AxisModule module = new AxisModule();
             module.setModuleClassLoader(deploymentClassLoader);
             module.setParent(axisConfig);
-            int index = fileUrl.getPath().lastIndexOf(File.separator);
-            String moduleFile;
-            if(index > 0){
-                moduleFile = fileUrl.getPath().substring(index);               
 
-            } else {
-                moduleFile = fileUrl.getPath();                
-            }            
-            module.setArchiveName(moduleFile);
+            
module.setArchiveName(DescriptionBuilder.getShortFileName(deploymentFileData.getName()));
             populateModule(module, fileUrl);
             module.setFileName(fileUrl);
             DeploymentEngine.addNewModule(module, axisConfig);

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/POJODeployer.java
 Sun Dec 17 22:34:08 2017
@@ -105,17 +105,16 @@ public class POJODeployer extends Abstra
                 List<String> classList = 
Utils.getListOfClasses(deploymentFileData);
                 ArrayList<AxisService> axisServiceList = new 
ArrayList<AxisService>();
                 for (String className : classList) {
-                    ArrayList<URL> urls = new ArrayList<URL>();
-                    urls.add(deploymentFileData.getFile().toURI().toURL());
-                    urls.add(configCtx.getAxisConfiguration().getRepository());
+                    List<URL> extraUrls = new ArrayList<>();
+                    
extraUrls.add(configCtx.getAxisConfiguration().getRepository());
                     String webLocation = 
DeploymentEngine.getWebLocationString();
                     if (webLocation != null) {
-                        urls.add(new File(webLocation).toURI().toURL());
+                        extraUrls.add(new File(webLocation).toURI().toURL());
                     }
                     ClassLoader classLoader = Utils.createClassLoader(
-                            urls,
+                            deploymentFileData.getFile().toURI().toURL(),
+                            extraUrls.toArray(new URL[extraUrls.size()]),
                             
configCtx.getAxisConfiguration().getSystemClassLoader(),
-                            true,
                             (File)configCtx.getAxisConfiguration().
                                     
getParameterValue(Constants.Configuration.ARTIFACTS_TEMP_DIR),
                             
configCtx.getAxisConfiguration().isChildFirstClassLoading());

Modified: 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
URL: 
http://svn.apache.org/viewvc/axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java?rev=1818518&r1=1818517&r2=1818518&view=diff
==============================================================================
--- 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
 (original)
+++ 
axis/axis2/java/core/branches/AXIS2-4091/modules/kernel/src/org/apache/axis2/deployment/RepositoryListener.java
 Sun Dec 17 22:34:08 2017
@@ -167,7 +167,13 @@ public class RepositoryListener implemen
             classPath = ".";
         }
         File root = new File(classPath);
-        File[] files = root.listFiles();
+        File[] files;
+        try {
+            files = root.listFiles();
+        } catch (SecurityException ex) {
+            // Ignore
+            files = null;
+        }
         if (files != null) {
             for (int i = 0; i < files.length; i++) {
                 File file = files[i];


Reply via email to