@Override public boolean contains(final Class<?> aClass) throws IllegalArgumentException { return war.contains(new BasicPath(PATH_CLASSES, AssetUtil.getFullPathForClassResource(aClass))); }
@Override public void classFound(String className, Asset asset) { ArchivePath classNamePath = AssetUtil.getFullPathForClassResource(className); if (!filter.include(classNamePath)) { return; } //Asset asset = new ClassLoaderAsset(classNamePath.get().substring(1), classLoader); ArchivePath location = new BasicPath(getClassesPath(), classNamePath); add(asset, location); } };
@Override public void classFound(String className, Asset asset) { ArchivePath classNamePath = AssetUtil.getFullPathForClassResource(className); if (!filter.include(classNamePath)) { return; } ArchivePath location = new BasicPath(getClassesPath(), classNamePath); delete(location); } };
@Override public void classFound(String className, Asset asset) { ArchivePath classNamePath = AssetUtil.getFullPathForClassResource(className); if (!filter.include(classNamePath)) { return; } ArchivePath location = new BasicPath(getClassesPath(), classNamePath); delete(location); } };
@Test public void shouldBeAbleToGetFullPathForClassResoruce() throws Exception { ArchivePath foundClassResourcePath = AssetUtil.getFullPathForClassResource(this.getClass()); Assert.assertEquals("The class resource should have a / delimiter and a .class extension", new BasicPath( "/org/jboss/shrinkwrap/impl/base/asset/AssetUtilTestCase.class"), foundClassResourcePath); } }
@Override public void classFound(String className, Asset asset) { ArchivePath classNamePath = AssetUtil.getFullPathForClassResource(className); if (!filter.include(classNamePath)) { return; } //Asset asset = new ClassLoaderAsset(classNamePath.get().substring(1), classLoader); ArchivePath location = new BasicPath(getClassesPath(), classNamePath); add(asset, location); } };
private ArchivePath getArchivePathFromClass(Class<?> clazz) { return new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(clazz)); }
@Override public T deleteClass(String fullyQualifiedClassName) throws IllegalArgumentException { Validate.notNull(fullyQualifiedClassName, "Class name must be specified"); ArchivePath path = new BasicPath(getClassesPath(), AssetUtil.getFullPathForClassResource(fullyQualifiedClassName)); getArchive().delete(path); return covarientReturn(); }
@Override public T deleteClass(String fullyQualifiedClassName) throws IllegalArgumentException { Validate.notNull(fullyQualifiedClassName, "Class name must be specified"); ArchivePath path = new BasicPath(getClassesPath(), AssetUtil.getFullPathForClassResource(fullyQualifiedClassName)); getArchive().delete(path); return covarientReturn(); }
@Override public T deleteClasses(Class<?>... classes) throws IllegalArgumentException { Validate.notNullAndNoNullValues(classes, "Classes must be specified and cannot contain null values"); for (Class<?> clazz : classes) { final ArchivePath path = new BasicPath(getClassesPath(), AssetUtil.getFullPathForClassResource(clazz)); // We need to remove all the inner classes as well (if present). for (ArchivePath innerPath : getInnerClasses(path)) { getArchive().delete(innerPath); } // Remove the class itself. getArchive().delete(path); } return covarientReturn(); }
/** * Ensure a package as a String can be added to a container * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddPackageAsString() throws Exception { getClassContainer().addPackage(DummyClassA.class.getPackage().getName()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(DummyClassA.class)); assertContainsClass(expectedPath); }
@Override public T deleteClasses(Class<?>... classes) throws IllegalArgumentException { Validate.notNullAndNoNullValues(classes, "Classes must be specified and cannot contain null values"); for (Class<?> clazz : classes) { final ArchivePath path = new BasicPath(getClassesPath(), AssetUtil.getFullPathForClassResource(clazz)); // We need to remove all the inner classes as well (if present). for (ArchivePath innerPath : getInnerClasses(path)) { getArchive().delete(innerPath); } // Remove the class itself. getArchive().delete(path); } return covarientReturn(); }
/** * Ensure classes can be added to containers by name using a classloader * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddClassesByFqnAndTccl() throws Exception { final Class<?> classToAdd = DummyClassA.class; getClassContainer().addClass(classToAdd.getName(), classToAdd.getClassLoader()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(classToAdd)); assertContainsClass(expectedPath); }
/** * Ensure a package as a String can be added to a container * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddPackageAsStringNonRecursive() throws Exception { getClassContainer().addPackages(false, DummyClassA.class.getPackage().getName()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(DummyClassA.class)); assertContainsClass(expectedPath); }
@Test @ArchiveType(ClassContainer.class) public void shouldIncludeOnlySelectedClasses() throws Exception { getClassContainer().addPackages(true, Filters.include(DynamicContainerTestBase.class, ArchiveType.class), DynamicContainerTestBase.class.getPackage().getName()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(DynamicContainerTestBase.class)); ArchivePath expectedPath2 = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(ArchiveType.class)); Assert.assertEquals("Should only include selected classes", 2, numAssets(getArchive())); assertContainsClass(expectedPath); assertContainsClass(expectedPath2); }
@Test @ArchiveType(ClassContainer.class) public void shouldExcludeOnlySelectedClasses() throws Exception { getClassContainer().addPackages(true, Filters.exclude(DynamicContainerTestBase.class, ArchiveType.class), DynamicContainerTestBase.class.getPackage().getName()); ArchivePath notExpectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(DynamicContainerTestBase.class)); ArchivePath notExpectedPath2 = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(ArchiveType.class)); Assert.assertFalse("Archive should not contain " + notExpectedPath.get(), getArchive() .contains(notExpectedPath)); Assert.assertFalse("Archive should not contain " + notExpectedPath2.get(), getArchive().contains(notExpectedPath2)); }
/** * Ensure classes can be added to containers by name * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddClassesByFqn() throws Exception { final Class<?> classToAdd = DummyClassA.class; getClassContainer().addClass(classToAdd.getName()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(classToAdd)); assertContainsClass(expectedPath); }
/** * Ensure a package can be added to a container * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddPackage() throws Exception { getClassContainer().addPackage(DummyClassA.class.getPackage()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(DummyClassA.class)); assertContainsClass(expectedPath); }
/** * Ensure packages can be added to containers * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddPackageNonRecursive() throws Exception { getClassContainer().addPackages(false, DummyClassA.class.getPackage()); ArchivePath expectedPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(DummyClassA.class)); assertContainsClass(expectedPath); }
@Test @ArchiveType(ServiceProviderContainer.class) public void testAddServiceProviderWithClasses() throws Exception { getServiceProviderContainer().addAsServiceProviderAndClasses(DummyInterfaceForTest.class, DummyClassForTest.class); ArchivePath testPath = new BasicPath(getManifestPath(), "services/" + DummyInterfaceForTest.class.getName()); Assert.assertTrue("Archive should contain " + testPath, getArchive().contains(testPath)); Class<?>[] expectedResources = { DummyInterfaceForTest.class, DummyClassForTest.class }; for (Class<?> expectedResource : expectedResources) { ArchivePath expectedClassPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(expectedResource)); assertContainsClass(expectedClassPath); } }