[jboss-dev-forums] [Design the new POJO MicroContainer] - Re: Generated Classes not found if they do not match any of

kabir.khan@jboss.com do-not-reply at jboss.com
Wed Mar 11 13:29:33 EDT 2009


Here is the first problem, when running with importAll=false


  |    public void testExplicitImportGenerateClassInExistingPackage() throws Exception
  |    {
  |       runExplicitImportGenerateClass(EXISTING_PACKAGE, true);
  |    }
  |    
  |    private void runExplicitImportGenerateClass(GeneratedClassInfo info, boolean expectSuccess) throws Exception
  |    {
  |       ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();
  |       String dynamicClassRoot = getDynamicClassRoot();
  |       VFSClassLoaderFactory a = new VFSClassLoaderFactory("a");
  |       a.getRoots().add(getRoot(A.class));
  |       a.getCapabilities().addCapability(factory.createPackage(A.class.getPackage().getName()));
  |       KernelDeployment depA = install(a);
  | 
  |       VFSClassLoaderFactory b = new VFSClassLoaderFactory("b");
  |       b.getRoots().add(getRoot(B.class));
  |       b.getRoots().add(dynamicClassRoot);
  |       b.getCapabilities().addCapability(factory.createPackage(B.class.getPackage().getName()));
  |       b.getRequirements().addRequirement(factory.createRequirePackage(A.class.getPackage().getName()));
  |       KernelDeployment depB = install(b);
  | 
  |       ...
  |    }
  | 

When deploying this, I get the following error

  | 1218 ERROR [AbstractKernelController] Error resolving dependencies for Installed: name=b:0.0.0$MODULE state=Start
  | java.lang.IllegalStateException: VFSClassLoaderPolicyModule b:0.0.0 cannot be added because it is exports package newpackage which conflicts
  |  with VFSClassLoaderPolicyModule a:0.0.0
  | 	at org.jboss.classloading.spi.dependency.ClassLoadingSpace.join(ClassLoadingSpace.java:223)
  | 	at org.jboss.classloading.spi.dependency.ClassLoadingSpace.joinAndResolve(ClassLoadingSpace.java:120)
  | 	at org.jboss.classloading.spi.dependency.ClassLoadingSpace.joinAndResolve(ClassLoadingSpace.java:169)
  | 	at org.jboss.classloading.spi.dependency.ClassLoadingSpace.resolve(ClassLoadingSpace.java:326)
  | 	at org.jboss.classloading.spi.dependency.Module.resolveModule(Module.java:909)
  | 	at org.jboss.classloading.spi.dependency.RequirementDependencyItem.resolve(RequirementDependencyItem.java:91)
  | 	at org.jboss.dependency.plugins.AbstractDependencyInfo.resolveDependencies(AbstractDependencyInfo.java:138)
  | 	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1103)
  | 	at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1039)
  | 	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:319)
  | 	at org.jboss.kernel.plugins.deployment.AbstractKernelDeployer.deployBeans(AbstractKernelDeployer.java:297)
  | 	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.test.kernel.junit.MicrocontainerTestDelegate.deploy(MicrocontainerTestDelegate.java:358)
  | 	at org.jboss.test.kernel.junit.MicrocontainerTest.deploy(MicrocontainerTest.java:368)
  | 	at org.jboss.test.classloading.vfs.metadata.VFSClassLoadingMicrocontainerTest.install(VFSClassLoadingMicrocontainerTest.java:208)
  | 	at org.jboss.test.classloading.vfs.metadata.test.GeneratedClassesUnitTestCase.runExplicitImportGenerateClass(GeneratedClassesUnitTestCase.j
  | ava:171)
  | 	at org.jboss.test.classloading.vfs.metadata.test.GeneratedClassesUnitTestCase.testExplicitImportGenerateClassInExistingPackage(GeneratedCla
  | ssesUnitTestCase.java:88)
  |         ...
  | 
I was not really expecting problems at this stage, I was writing this test to investigate if we would need a GlobalRequirementsProvider. The package "newpackage", mentioned in the trace, is one of the global capabilities. Can really 2 loaders with importAll=false not export the same package, or have I done something wrong?


View the original post : http://www.jboss.org/index.html?module=bb&op=viewtopic&p=4217096#4217096

Reply to the post : http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=4217096



More information about the jboss-dev-forums mailing list