From: <do...@hy...> - 2008-04-24 20:27:12
|
Author: dougm Date: 2008-04-24 13:27:08 -0700 (Thu, 24 Apr 2008) New Revision: 9159 URL: http://svn.hyperic.org/?view=rev&root=Hyperic+HQ&revision=9159 Modified: trunk/src/org/hyperic/hq/agent/server/AgentDaemon.java trunk/src/org/hyperic/hq/agent/server/ServerHandlerLoader.java Log: add ClassLoader for the AgentServerHandlers Modified: trunk/src/org/hyperic/hq/agent/server/AgentDaemon.java =================================================================== --- trunk/src/org/hyperic/hq/agent/server/AgentDaemon.java 2008-04-24 20:24:05 UTC (rev 9158) +++ trunk/src/org/hyperic/hq/agent/server/AgentDaemon.java 2008-04-24 20:27:08 UTC (rev 9159) @@ -54,6 +54,7 @@ import org.hyperic.hq.product.PluginManager; import org.hyperic.hq.product.ProductPluginManager; import org.hyperic.hq.transport.AgentTransport; +import org.hyperic.util.PluginLoader; import org.hyperic.util.security.SecurityUtil; /** @@ -80,6 +81,7 @@ private double startTime; private Log logger; private ServerHandlerLoader handlerLoader; + private PluginLoader handlerClassLoader; private CommandDispatcher dispatcher; private AgentStorageProvider storageProvider; private CommandListener listener; @@ -104,7 +106,10 @@ // See cleanup()/configure() for fields which can // be re-configured this.logger = LogFactory.getLog(AgentDaemon.class); - this.handlerLoader = new ServerHandlerLoader(); + this.handlerClassLoader = + PluginLoader.create("ServerHandlerLoader", + getClass().getClassLoader()); + this.handlerLoader = new ServerHandlerLoader(this.handlerClassLoader); this.running = false; this.startTime = System.currentTimeMillis(); @@ -385,6 +390,12 @@ " running"); } + //add lib/handlers/lib/*.jar classpath for handlers only + File handlersLib = new File("lib/handlers/lib"); + if (handlersLib.exists()) { + this.handlerClassLoader.addURL(handlersLib); + } + // Dispatcher this.dispatcher = new CommandDispatcher(); Modified: trunk/src/org/hyperic/hq/agent/server/ServerHandlerLoader.java =================================================================== --- trunk/src/org/hyperic/hq/agent/server/ServerHandlerLoader.java 2008-04-24 20:24:05 UTC (rev 9158) +++ trunk/src/org/hyperic/hq/agent/server/ServerHandlerLoader.java 2008-04-24 20:27:08 UTC (rev 9159) @@ -41,8 +41,11 @@ class ServerHandlerLoader { private Log logger; - ServerHandlerLoader(){ + private ClassLoader _loader; + + ServerHandlerLoader(ClassLoader loader){ this.logger = LogFactory.getLog(ServerHandlerLoader.class); + _loader = loader; } /** @@ -67,8 +70,8 @@ try { PluginLoader loader = - PluginLoader.create(jarPath, - this.getClass().getClassLoader()); + PluginLoader.create(jarPath, _loader); + PluginLoader.setClassLoader(loader); pluginClass = loader.loadPlugin(); |