[jboss-user] [Microcontainer] - Re: [VFS] Better way to scan for modifications
dazz_x
do-not-reply at jboss.com
Mon Nov 24 06:58:10 EST 2008
Hi alesj,
Thanks for your response, which was helpul to me.
I finally handled this case in a satisfactory way.
So, when I add/remove/modify a file under my hierarchy, i get a log that says "this file have been added, removed, modified" under the TRACE log level.
A the same time I log, I fire an EngineDeployment event to alert registered listeners that an event has happened.
Unfortunately, that doesn't work... I give you my deployment file :
| <bean name="ClassLoaderManager" class="com.mycompany.classloaders.MasterClassLoader">
| <constructor factoryMethod="getInstance"/>
| </bean>
|
| <bean name="Scanner" class="com.mycompany.deployers.scanner.Scanner">
| <install method="addListener">
| <parameter>
| <inject bean="ClassLoaderManager"/>
| </parameter>
| </install>
| <constructor>
| <parameter>/home/user/test/</parameter>
| </constructor>
| </bean>
|
With this xml portion, I want to add my ClassLoaderManager as a listener (simple addition to a CopyOnWriteArrayList in Scanner)
But it isn't registered... I see an error in the deployment of ClassLoaderManager at startup that is
| 12:52:17,886 ERROR [AbstractKernelController] Error installing to Instantiated: name=ClassLoaderManager state=Described
| org.jboss.joinpoint.spi.JoinpointException: Constructor not found com.mycompany.classloaders.MasterClassLoader[] in [ReflectConstructorInfoImpl at 1b66b06{[ReflectClassInfoImpl at 12c9557{name=java.lang.ClassLoader}]}, ReflectConstructorInfoImpl at 9f0d{[ReflectClassInfoImpl at 12c9557{name=java.lang.ClassLoader}, ReflectClassInfoImpl at ca3783{name=com.mycompany.classloaders.MasterClassLoader$1}]}]
| at org.jboss.joinpoint.plugins.Config.findConstructorInfo(Config.java:274)
| at org.jboss.kernel.plugins.config.Configurator.resolveConstructor(Configurator.java:289)
| at org.jboss.kernel.plugins.config.Configurator.findConstructor(Configurator.java:255)
| at org.jboss.kernel.plugins.config.Configurator.getConstructorJoinPoint(Configurator.java:198)
| at org.jboss.kernel.plugins.config.AbstractKernelConfigurator.getConstructorJoinPoint(AbstractKernelConfigurator.java:137)
| at org.jboss.kernel.plugins.dependency.InstantiateAction.installActionInternal(InstantiateAction.java:61)
| at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
| at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
| at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
| at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
| at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
| at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
| at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
| at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
| at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
| at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:774)
| at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:540)
| at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBean(AbstractKernelDeployer.java:331)
| at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:309)
| at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deploy(AbstractKernelDeployer.java:130)
| at org.jboss.kernel.plugins.deployment.BasicKernelDeployer.deploy(BasicKernelDeployer.java:76)
| at org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer.deploy(BasicXMLDeployer.java:88)
| at org.jboss.kernel.plugins.deployment.xml.BasicXMLDeployer.deploy(BasicXMLDeployer.java:158)
|
|
Here is the relevant part of the code for my MasterClassLoader class :
| public class MasterClassLoader extends ClassLoader implements EngineDeploymentListener{
|
| /**
| * Application Logger
| */
| private static final Logger log = Logger.getLogger(MasterClassLoader.class);
|
| private Map<File, EngineClassLoader> engineClassLoaders = new HashMap<File, EngineClassLoader>();
|
| private MasterClassLoader(ClassLoader parent) {
| super(parent);
| }
|
| @Override
| public void onDeploymentEvent(EngineDeploymentEvent e) {
| log.info("[********] Deployment Event : " + e.getType().toString());
| }
|
| /**
| * Static initializer to ensure Singleton
| * @return single instance of MasterClassLoader
| */
| public static MasterClassLoader getInstance() {
| return MasterClassLoaderHolder.instance;
| }
|
| private static class MasterClassLoaderHolder {
|
| public static MasterClassLoader instance = new MasterClassLoader(ClassLoader.getSystemClassLoader());
| }
| }
|
|
Why do you think my MasterClassLoader is not deployed ? My static factory method run well in standard call...
Thanks in advance
dazz_x
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4191701#4191701
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4191701
More information about the jboss-user
mailing list