public void testNoReExport() throws Exception
{
ClassLoadingMetaDataFactory factory = ClassLoadingMetaDataFactory.getInstance();
VFSClassLoaderFactory a = new VFSClassLoaderFactory("a");
a.getRoots().add(getRoot(A.class));
a.setIncludedPackages(A.class.getPackage().getName());
a.getCapabilities().addCapability(factory.createModule("a"));
a.getCapabilities().addCapability(factory.createPackage(A.class.getPackage().getName()));
KernelDeployment depA = install(a);
try
{
ClassLoader clA = assertClassLoader(a);
assertLoadClass(A.class, clA);
assertLoadClassFail(B.class, clA);
assertLoadClassFail(C.class, clA);
VFSClassLoaderFactory b = new VFSClassLoaderFactory("b");
b.getRoots().add(getRoot(B.class));
b.setIncludedPackages(B.class.getPackage().getName());
b.getCapabilities().addCapability(factory.createModule("b"));
b.getCapabilities().addCapability(factory.createPackage(B.class.getPackage().getName()));
b.getRequirements().addRequirement(factory.createReExportModule("a"));
KernelDeployment depB = install(b);
try
{
assertLoadClass(A.class, clA);
assertLoadClassFail(B.class, clA);
assertLoadClassFail(C.class, clA);
ClassLoader clB = assertClassLoader(b);
assertLoadClass(A.class, clB, clA);
assertLoadClass(B.class, clB);
assertLoadClassFail(C.class, clB);
VFSClassLoaderFactory c = new VFSClassLoaderFactory("c");
c.getRoots().add(getRoot(C.class));
c.setIncludedPackages(C.class.getPackage().getName());
c.getRequirements().addRequirement(factory.createRequirePackage(B.class.getPackage().getName()));
KernelDeployment depC = install(c);
try
{
assertLoadClass(A.class, clA);
assertLoadClassFail(B.class, clA);