4 Replies Latest reply on Mar 18, 2010 4:55 PM by flavia.rainone

    jboss-classpool-jbosscl.jar on AS bootstrap classpath

    flavia.rainone

      I'm having problems with this jar on the bootstrap classpath.

      Whenever I install aop (trunk compiled version) on as-trunk and try to start the server, I get thousands of CNF exceptions such as the one below:

       

      org.jboss.deployers.spi.DeploymentException: Error during deploy: vfs:///home/fla/Development/projects/jbossas-trunkLATEST/build/target/jboss-6.0.0-SNAPSHOT/server/all/conf/bindingservice.beans
           at org.jboss.deployers.spi.DeploymentException.rethrowAsDeploymentException(DeploymentException.java:49)
           at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:185)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1857)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1575)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1516)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:377)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2042)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1081)
           at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1320)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1244)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1137)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:937)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:652)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.change(DeployersImpl.java:2008)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:1101)
           at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:679)
           at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
           at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
           at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
           at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:403)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:377)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:2042)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:1081)
           at org.jboss.dependency.plugins.AbstractController.executeOrIncrementStateDirectly(AbstractController.java:1320)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1244)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1137)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:892)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:639)
           at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:97)
           at org.jboss.bootstrap.impl.base.server.AbstractServer.startBootstraps(AbstractServer.java:827)
           at org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:417)
           at java.lang.Thread.run(Thread.java:619)
      Caused by: java.lang.NoClassDefFoundError: org/jboss/deployers/plugins/classloading/AbstractDeploymentClassLoaderPolicyModule
           at org.jboss.classpool.plugins.jbosscl.VFSClassLoaderDomainRegistry.findParentUnitLoader(VFSClassLoaderDomainRegistry.java:237)
           at org.jboss.classpool.plugins.jbosscl.VFSClassLoaderDomainRegistry.initMapsForModule(VFSClassLoaderDomainRegistry.java:110)
           at org.jboss.classpool.plugins.jbosscl.RegisterModuleCallback.registerModule(RegisterModuleCallback.java:87)
           at org.jboss.classpool.plugins.jbosscl.JBossClDelegatingClassPoolFactory.create(JBossClDelegatingClassPoolFactory.java:83)
           at org.jboss.classpool.plugins.jbosscl.JBossClDelegatingClassPoolFactory.create(JBossClDelegatingClassPoolFactory.java:50)
           at org.jboss.aop.asintegration.jboss5.JBoss5Integration.create(JBoss5Integration.java:158)
           at org.jboss.classpool.scoped.ScopedClassPoolRepositoryImpl.createScopedClassPool(ScopedClassPoolRepositoryImpl.java:93)
           at org.jboss.classpool.scoped.ScopedClassPoolRepositoryImpl.registerClassLoader(ScopedClassPoolRepositoryImpl.java:125)
           at org.jboss.classpool.spi.ClassPoolRepository.registerClassLoader(ClassPoolRepository.java:138)
           at org.jboss.aop.AspectManager.registerClassLoader(AspectManager.java:900)
           at org.jboss.aop.asintegration.jboss5.VFSClassLoaderScopingPolicy.registerClassLoader(VFSClassLoaderScopingPolicy.java:57)
           at org.jboss.aop.asintegration.jboss5.AOPClassLoaderInitializer.registerLoaders(AOPClassLoaderInitializer.java:84)
           at org.jboss.aop.asintegration.jboss5.AOPClassLoaderInitializer.initializeForUnit(AOPClassLoaderInitializer.java:41)
           at org.jboss.aop.asintegration.jboss5.AOPClassLoaderDeployer.internalDeploy(AOPClassLoaderDeployer.java:65)
           at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)
           at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)
           ... 32 more
      Caused by: java.lang.ClassNotFoundException: org.jboss.deployers.plugins.classloading.AbstractDeploymentClassLoaderPolicyModule
           at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
           at java.security.AccessController.doPrivileged(Native Method)
           at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
           at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
           at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
           ... 48 more
      

      Can that jar be removed from the classpath, or is there a particular reason to keep it that way?

        • 1. Re: jboss-classpool-jbosscl.jar on AS bootstrap classpath
          alesj

          Can that jar be removed from the classpath, or is there a particular reason to keep it that way?

          It looks like we need to split this part out.

           

          With moving Reflect on Javasist impl, we will need Classpool at bootstrap phase.

          Which means we'll need jboss-classpool-jbosscl there as well.

          But at that time the Module that kicks in won't be depoyers based Module -- AbstractDeploymentClassLoaderPolicyModule.

           

          Since VFSClassLoaderDomainRegistry only kicks in after -- in aop.xml,

          the split to jboss-classpool-deployers (currently this is the only class that would get in) would do it --> adding this jar to aop-classloader.

          • 2. Re: jboss-classpool-jbosscl.jar on AS bootstrap classpath
            flavia.rainone

            alesj wrote:

             

            Can that jar be removed from the classpath, or is there a particular reason to keep it that way?

            It looks like we need to split this part out.

             

            With moving Reflect on Javasist impl, we will need Classpool at bootstrap phase.

            Which means we'll need jboss-classpool-jbosscl there as well.

            But will we need jboss-classpool-jbosscl at bootstrap even though jboss reflect doesn't have a dependency on that jar?

            Currently, jboss-reflection has only a dependency on jboss-classpool-scoped module.

            • 3. Re: jboss-classpool-jbosscl.jar on AS bootstrap classpath
              alesj

              But will we need jboss-classpool-jbosscl at bootstrap even though jboss reflect doesn't have a dependency on that jar?

              Currently, jboss-reflection has only a dependency on jboss-classpool-scoped module.

              If you're saying we actually don't need jboss-classpool-jbosscl for the bootstrap services to work correctly on Javasist+Reflect,

              then simply move its declaration to aop.xml.

              e.g. there is no JBossCL usage in bootstrap phase -- no BaseClassLoader / ClassLoaderPolicy

              • 4. Re: jboss-classpool-jbosscl.jar on AS bootstrap classpath
                flavia.rainone

                alesj wrote:

                 


                If you're saying we actually don't need jboss-classpool-jbosscl for the bootstrap services to work correctly on Javasist+Reflect,

                then simply move its declaration to aop.xml.

                e.g. there is no JBossCL usage in bootstrap phase -- no BaseClassLoader / ClassLoaderPolicy

                Yes, currently we don't need. I cannot give a 100% garantee that we won't need until all this is finished, but I'm 99.99% sure we won't

                 

                The jboss-classpool-jbosscl.jar is already referenced in my version of the aop.xml file. I cannot commit it to trunk because we don't have a JBoss AOP release with the classpool refactoring yet. In the meantime, this file is part of the installation script of JBoss AOP and can be found here: jboss-60-install-aop.xml

                 

                For now, I'll commit a version of Main.java without the dependency, if that's ok.