public void testEarScan() throws Exception { File ear = File.createTempFile("helloworld", ".ear"); JavaArchive jarArchive = ShrinkWrap.create(JavaArchive.class, "my-lib-1.0.jar") .addClass(FunAnnotatedClientClass2.class); WebArchive warArchive = ShrinkWrap.create(WebArchive.class, "helloworld.war") .addClasses(FunAnnotatedClientClass.class) .addAsLibrary(jarArchive); EnterpriseArchive earArchive = ShrinkWrap.create(EnterpriseArchive.class).addAsModule(warArchive); earArchive.as(ZipExporter.class).exportTo(ear, true); URL earUrl = new URL(ear.toURI() + "/helloworld.war!/WEB-INF/classes"); URL libUrl = new URL(ear.toURI() + "/helloworld.war!/WEB-INF/lib/my-lib-1.0.jar"); List<URL> urlList = new ArrayList<URL>(); urlList.add(earUrl); urlList.add(libUrl); MetaDataScanner scanner = createScanner(urlList); // nested in ear/war/WEB-INF/classes assertTrue( "Didn't find @Local annotated class FunAnnotatedClientClass in ear-war nesting", scanner .getStore() .getTypesAnnotatedWith(Local.class.getName()) .contains("org.jboss.errai.bus.client.tests.support.FunAnnotatedClientClass")); // nested in ear/war/WEB-INF/lib assertTrue( "Didn't find @Service annotated class FunAnnotatedClientClass2 in ear-war-jar nesting", scanner .getStore() .getTypesAnnotatedWith(Service.class.getName()) .contains("org.jboss.errai.bus.client.tests.support.FunAnnotatedClientClass2")); }
public void testWarScan() throws Exception { final File war = File.createTempFile("test", ".war"); WebArchive archive = ShrinkWrap.create(WebArchive.class).addClasses(FunAnnotatedClientClass.class); archive.as(ZipExporter.class).exportTo(war, true); assertTrue(war.exists()); URL warUrl = war.toURI().toURL(); List<URL> urlList = new ArrayList<URL>(); urlList.add(warUrl); MetaDataScanner scanner = createScanner(urlList); String annotationToSearchFor = Local.class.getName(); Set<String> annotated = scanner.getStore().getTypesAnnotatedWith(annotationToSearchFor); assertFalse("Cannot find " + annotationToSearchFor + " in " + war, annotated.isEmpty()); war.delete(); }
public void testExplodedWarScan() throws Exception { final File warParentDir = Files.createTempDir(); assertTrue(warParentDir.isDirectory()); WebArchive archive = ShrinkWrap.create(WebArchive.class, "explode-me").addClasses(FunAnnotatedClientClass.class); archive.as(ExplodedExporter.class).exportExploded(warParentDir); File warBaseDir = new File(warParentDir, "explode-me"); assertTrue( "Missing exploded war at " + warBaseDir, new File(warBaseDir, "WEB-INF").isDirectory()); URL warUrl = new URL(warBaseDir.toURI().toURL() + "/WEB-INF/classes"); List<URL> urlList = new ArrayList<URL>(); urlList.add(warUrl); MetaDataScanner scanner = createScanner(urlList); String annotationToSearchFor = Local.class.getName(); Set<String> annotated = scanner.getStore().getTypesAnnotatedWith(annotationToSearchFor); assertFalse("Cannot find " + annotationToSearchFor + " in " + warBaseDir, annotated.isEmpty()); FileUtils.deleteDirectory(warParentDir); warParentDir.delete(); }