public ArchiveBuilder addClasses(Class<?>... classes) { ClassContainer<?> container = (ClassContainer<?>) archive; container.addClasses(classes); return this; }
public ArchiveBuilder addClasses(RuntimeType target, Class<?>... classes) { if (getTargetContainer() == target) { ClassContainer<?> container = (ClassContainer<?>) archive; container.addClasses(classes); } return this; }
private void addCustomColumnFilters(Archive<?> applicationArchive, TestClass testClass) { final AnnotationInspector<CustomColumnFilter> inspector = new AnnotationInspector<CustomColumnFilter>(testClass, CustomColumnFilter.class); final Collection<CustomColumnFilter> allCustomAnnotations = inspector.fetchAll(); if (allCustomAnnotations.isEmpty()) { return; } if (applicationArchive instanceof EnterpriseArchive) { final JavaArchive customFiltersArchive = ShrinkWrap.create(JavaArchive.class, "arquillian-persistence-dbunit-custom-filters.jar"); for (CustomColumnFilter filter : allCustomAnnotations) { customFiltersArchive.addClasses(filter.value()); EnterpriseArchive.class.cast(applicationArchive).addAsLibrary(customFiltersArchive); } } else if (applicationArchive instanceof ClassContainer) { for (CustomColumnFilter filter : allCustomAnnotations) { (ClassContainer.class.cast(applicationArchive)).addClasses(filter.value()); } } }
private void addCustomColumnFilters(Archive<?> applicationArchive, TestClass testClass) { final AnnotationInspector<CustomColumnFilter> inspector = new AnnotationInspector<CustomColumnFilter>(testClass, CustomColumnFilter.class); final Collection<CustomColumnFilter> allCustomAnnotations = inspector.fetchAll(); if (allCustomAnnotations.isEmpty()) { return; } if (applicationArchive instanceof EnterpriseArchive) { final JavaArchive customFiltersArchive = ShrinkWrap.create(JavaArchive.class, "arquillian-persistence-dbunit-custom-filters.jar"); for (CustomColumnFilter filter : allCustomAnnotations) { customFiltersArchive.addClasses(filter.value()); EnterpriseArchive.class.cast(applicationArchive).addAsLibrary(customFiltersArchive); } } else if (applicationArchive instanceof ClassContainer) { for (CustomColumnFilter filter : allCustomAnnotations) { (ClassContainer.class.cast(applicationArchive)).addClasses(filter.value()); } } }
private void addCustomColumnFilters(Archive<?> applicationArchive, TestClass testClass) { final AnnotationInspector<CustomColumnFilter> inspector = new AnnotationInspector<CustomColumnFilter>(testClass, CustomColumnFilter.class); final Collection<CustomColumnFilter> allCustomAnnotations = inspector.fetchAll(); if (allCustomAnnotations.isEmpty()) { return; } if (applicationArchive instanceof EnterpriseArchive) { final JavaArchive customFiltersArchive = ShrinkWrap.create(JavaArchive.class, "arquillian-persistence-dbunit-custom-filters.jar"); for (CustomColumnFilter filter : allCustomAnnotations) { customFiltersArchive.addClasses(filter.value()); EnterpriseArchive.class.cast(applicationArchive).addAsLibrary(customFiltersArchive); } } else if (applicationArchive instanceof ClassContainer) { for (CustomColumnFilter filter : allCustomAnnotations) { (ClassContainer.class.cast(applicationArchive)).addClasses(filter.value()); } } }
((ClassContainer<?>) archive).addClasses(types.toArray(new Class[types.size()])); } catch (UnsupportedOperationException e) {
/** * Ensure classes can be added to containers * * @throws Exception */ @Test @ArchiveType(ClassContainer.class) public void testAddClasses() throws Exception { getClassContainer().addClasses(DummyClassA.class); this.ensureClassesAdded(); }
@Test @ArchiveType(ClassContainer.class) public void testAddClassesFromCustomClassloader() throws Exception { ClassLoader emptyClassLoader = new ClassLoader(null) { }; ClassLoader originalClassLoader = SecurityActions.getThreadContextClassLoader(); ClassLoaderTester myClassLoader = new ClassLoaderTester("cl-test.jar"); try { Thread.currentThread().setContextClassLoader(emptyClassLoader); Class<?> dummyClass = myClassLoader.loadClass("test.classloader.DummyClass"); Class<?> dummyInnerClass = myClassLoader.loadClass("test.classloader.DummyClass$DummyInnerClass"); getClassContainer().addClasses(dummyClass, dummyInnerClass); } finally { Thread.currentThread().setContextClassLoader(originalClassLoader); } Assert.assertTrue("Classloader not used to load inner class", myClassLoader.isUsedForInnerClasses()); String[] expetedResources = { "/test/classloader/DummyClass", "/test/classloader/DummyClass$DummyInnerClass" }; for (String expectedResource : expetedResources) { ArchivePath expectedClassPath = new BasicPath(getClassPath(), AssetUtil.getFullPathForClassResource(expectedResource)); assertContainsClass(expectedClassPath); } }