cloudstack-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From nlivens <...@git.apache.org>
Subject [GitHub] cloudstack pull request: CLOUDSTACK-8832 : Update Nuage VSP plugin...
Date Tue, 27 Oct 2015 10:34:27 GMT
Github user nlivens commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/801#discussion_r43104880
  
    --- Diff: plugins/network-elements/nuage-vsp/src/net/nuage/vsp/acs/NuageVspPluginClientLoader.java
---
    @@ -19,28 +19,101 @@
     
     package net.nuage.vsp.acs;
     
    +import net.nuage.vsp.acs.client.NuageVspApiClient;
    +import net.nuage.vsp.acs.client.NuageVspElementClient;
    +import net.nuage.vsp.acs.client.NuageVspGuruClient;
    +import net.nuage.vsp.acs.client.NuageVspManagerClient;
    +import net.nuage.vsp.acs.client.NuageVspSyncClient;
    +import org.apache.log4j.Logger;
    +
    +import javax.naming.ConfigurationException;
     import java.net.MalformedURLException;
     import java.net.URL;
     import java.net.URLClassLoader;
     
     public class NuageVspPluginClientLoader {
     
    -    private static NuageVspPluginClientLoader nuageVspPluginClientClassloader;
    -    private ClassLoader loader = null;
    +    private ClassLoader _loader = null;
    +    private static final Logger s_logger = Logger.getLogger(NuageVspPluginClientLoader.class);
    +
    +    private NuageVspApiClient _nuageVspApiClient;
    +    private NuageVspElementClient _nuageVspElementClient;
    +    private NuageVspGuruClient _nuageVspGuruClient;
    +    private NuageVspManagerClient _nuageVspManagerClient;
    +    private NuageVspSyncClient _nuageVspSyncClient;
    +
    +    private static final String NUAGE_PLUGIN_CLIENT_JAR_FILE = "/usr/share/nuagevsp/lib/nuage-vsp-acs-client.jar";
    +    private static final String NUAGE_VSP_API_CLIENT_IMPL = "net.nuage.vsp.acs.client.impl.NuageVspApiClientImpl";
    +    private static final String NUAGE_VSP_SYNC_CLIENT_IMPL = "net.nuage.vsp.acs.client.impl.NuageVspSyncClientImpl";
    +    private static final String NUAGE_VSP_ELEMENT_CLIENT_IMPL = "net.nuage.vsp.acs.client.impl.NuageVspElementClientImpl";
    +    private static final String NUAGE_VSP_GURU_CLIENT_IMPL = "net.nuage.vsp.acs.client.impl.NuageVspGuruClientImpl";
    +    private static final String NUAGE_VSP_MANAGER_CLIENT_IMPL = "net.nuage.vsp.acs.client.impl.NuageVspManagerClientImpl";
     
         private NuageVspPluginClientLoader(String nuagePluginClientJarLocation) {
             try {
    -            loader = URLClassLoader.newInstance(new URL[] {new URL("jar:file:" + nuagePluginClientJarLocation
+ "!/")},
    +            _loader = URLClassLoader.newInstance(new URL[] {new URL("jar:file:" + nuagePluginClientJarLocation
+ "!/")},
                         getClass().getClassLoader());
             } catch (MalformedURLException e) {
    -            e.printStackTrace();
    +            throw new IllegalArgumentException(e);
             }
         }
     
    -    public static ClassLoader getClassLoader(String nuagePluginClientJarLocation) {
    -        if (nuageVspPluginClientClassloader == null) {
    -            nuageVspPluginClientClassloader = new NuageVspPluginClientLoader(nuagePluginClientJarLocation);
    +    public static NuageVspPluginClientLoader getClientLoader(String relativePath, String[]
cmsUserInfo, int numRetries, int retryInterval,
    +            String nuageVspCmsId) throws ConfigurationException {
    +        NuageVspPluginClientLoader nuageVspPluginClientClassloader = new NuageVspPluginClientLoader(NUAGE_PLUGIN_CLIENT_JAR_FILE);
    +        nuageVspPluginClientClassloader.loadClasses(relativePath, cmsUserInfo, numRetries,
retryInterval, nuageVspCmsId);
    +        return nuageVspPluginClientClassloader;
    +    }
    +
    +    private void loadClasses(String relativePath, String[] cmsUserInfo, int numRetries,
int retryInterval, String nuageVspCmsId) throws ConfigurationException {
    +        try {
    +            Class<?> nuageVspApiClientClass = Class.forName(NUAGE_VSP_API_CLIENT_IMPL,
true, _loader);
    +            Class<?> nuageVspSyncClientClass = Class.forName(NUAGE_VSP_SYNC_CLIENT_IMPL,
true, _loader);
    +            Class<?> nuageVspGuruClientClass = Class.forName(NUAGE_VSP_GURU_CLIENT_IMPL,
true, _loader);
    +            Class<?> nuageVspElementClientClass = Class.forName(NUAGE_VSP_ELEMENT_CLIENT_IMPL,
true, _loader);
    +            Class<?> nuageVspManagerClientClass = Class.forName(NUAGE_VSP_MANAGER_CLIENT_IMPL,
true, _loader);
    +
    +            //Instantiate the instances
    +            _nuageVspApiClient = (NuageVspApiClient)nuageVspApiClientClass.newInstance();
    +            _nuageVspApiClient.setNuageVspHost(relativePath, cmsUserInfo, numRetries,
retryInterval, nuageVspCmsId);
    +            _nuageVspSyncClient = (NuageVspSyncClient)nuageVspSyncClientClass.newInstance();
    +            _nuageVspSyncClient.setNuageVspApiClient(_nuageVspApiClient);
    +            _nuageVspGuruClient = (NuageVspGuruClient)nuageVspGuruClientClass.newInstance();
    +            _nuageVspGuruClient.setNuageVspApiClient(_nuageVspApiClient);
    +            _nuageVspElementClient = (NuageVspElementClient)nuageVspElementClientClass.newInstance();
    +            _nuageVspElementClient.setNuageVspApiClient(_nuageVspApiClient);
    +            _nuageVspManagerClient = (NuageVspManagerClient)nuageVspManagerClientClass.newInstance();
    +            _nuageVspManagerClient.setNuageVspApiClient(_nuageVspApiClient);
    +        } catch (ClassNotFoundException cnfe) {
    +            s_logger.error("Error while loading classes of Nuage VSP client", cnfe);
    +            throw new ConfigurationException("Error while loading classes of Nuage VSP
client");
    +        } catch (InstantiationException ie) {
    +            s_logger.error("Error while initializing classes of Nuage VSP client", ie);
    +            throw new ConfigurationException("Error while initializing classes of Nuage
VSP client");
    --- End diff --
    
    <code>ConfigurationException</code> doesn't have a constructor which accepts
another exception.


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

Mime
View raw message