use of org.jboss.jandex.Index in project wildfly by wildfly.
the class AnnotationsTestCase method testProcessAuthenticationMechanism.
/**
* Process: AuthenticationMechanism -- verification of the
* processAuthenticationMechanism method
*
* @throws Throwable throwable exception
*/
@Test
public void testProcessAuthenticationMechanism() throws Throwable {
try {
URI uri = getURI("/ra16annoauthmech.rar");
final VirtualFile virtualFile = VFS.getChild(uri);
final Indexer indexer = new Indexer();
final List<VirtualFile> classChildren = virtualFile.getChildren(new SuffixMatchFilter(".class", VisitorAttributes.RECURSE_LEAVES_ONLY));
for (VirtualFile classFile : classChildren) {
InputStream inputStream = null;
try {
inputStream = classFile.openStream();
indexer.index(inputStream);
} finally {
VFSUtils.safeClose(inputStream);
}
}
final Index index = indexer.complete();
AnnotationRepository ar = new JandexAnnotationRepositoryImpl(index, Thread.currentThread().getContextClassLoader());
annotations.process(ar, null, Thread.currentThread().getContextClassLoader());
} catch (Throwable t) {
fail(t.getMessage());
}
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class AnnotationsTestCase method testProcessAdministeredObject.
/**
* Process: AdministeredObject -- verification of the
* processAdministeredObject method
*
* @throws Throwable throwable exception
*/
@Test
public void testProcessAdministeredObject() throws Throwable {
try {
URI uri = getURI("/ra16annoadminobj.rar");
final VirtualFile virtualFile = VFS.getChild(uri);
final Indexer indexer = new Indexer();
final List<VirtualFile> classChildren = virtualFile.getChildren(new SuffixMatchFilter(".class", VisitorAttributes.RECURSE_LEAVES_ONLY));
for (VirtualFile classFile : classChildren) {
InputStream inputStream = null;
try {
inputStream = classFile.openStream();
indexer.index(inputStream);
} finally {
VFSUtils.safeClose(inputStream);
}
}
final Index index = indexer.complete();
AnnotationRepository ar = new JandexAnnotationRepositoryImpl(index, Thread.currentThread().getContextClassLoader());
annotations.process(ar, null, Thread.currentThread().getContextClassLoader());
} catch (Throwable t) {
fail(t.getMessage());
}
}
use of org.jboss.jandex.Index in project drools by kiegroup.
the class KieDMNModelJandexTest method testReflectConfigJSON.
@Test
public void testReflectConfigJSON() throws Exception {
Indexer indexer = new Indexer();
InputStream stream = getClass().getClassLoader().getResourceAsStream("org/kie/dmn/model/api/DMNModelInstrumentedBase.class");
indexer.index(stream);
stream.close();
scanFile(new File("./target/classes"), indexer);
Index index = indexer.complete();
Set<ClassInfo> founds = index.getAllKnownImplementors(DotName.createSimple(DMNModelInstrumentedBase.class.getCanonicalName()));
LOG.debug("founds: \n{}", founds);
Jsonb jsonb = JsonbBuilder.create(new JsonbConfig().withFormatting(true));
List<Object> results = new ArrayList<>();
for (ClassInfo found : founds.stream().sorted(Comparator.comparing(ClassInfo::name)).collect(Collectors.toList())) {
results.add(toReflectConfigMap(found));
}
LOG.debug("results: \n{}", results);
String json = jsonb.toJson(results);
LOG.debug("Expected reflect-config.json: \n{}", json);
@SuppressWarnings("unchecked") List<Map<String, Object>> fromJson = jsonb.fromJson(new FileReader("src/main/resources/META-INF/native-image/org.kie/" + moduleName + "/reflect-config.json"), List.class);
List<DotName> dotNamesInJSON = fromJson.stream().map(m -> DotName.createSimple((String) m.get("name"))).collect(Collectors.toList());
Set<DotName> foundsViaJandex = founds.stream().map(ClassInfo::name).collect(Collectors.toSet());
Set<DotName> foundsViaJSON = dotNamesInJSON.stream().collect(Collectors.toSet());
Assertions.assertThat(foundsViaJandex).as("List of classes found via Jandex during test and listed in JSON file must be same.").isEqualTo(foundsViaJSON);
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class WeldModuleDeploymentTestCase method createTestModule.
private static void createTestModule(File testModuleRoot) throws IOException {
if (testModuleRoot.exists()) {
throw new IllegalArgumentException(testModuleRoot + " already exists");
}
File file = new File(testModuleRoot, "main");
if (!file.mkdirs()) {
throw new IllegalArgumentException("Could not create " + file);
}
URL url = WeldModuleDeploymentTestCase.class.getResource("module.xml");
if (url == null) {
throw new IllegalStateException("Could not find module.xml");
}
copyFile(new File(file, "module.xml"), url.openStream());
JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "weldTest.jar");
jar.addClasses(SimpleBean.class, ModuleEjb.class);
jar.addAsManifestResource(new StringAsset("<beans bean-discovery-mode=\"all\"></beans>"), "beans.xml");
Indexer indexer = new Indexer();
try (InputStream resource = ModuleEjb.class.getResourceAsStream(ModuleEjb.class.getSimpleName() + ".class")) {
indexer.index(resource);
}
Index index = indexer.complete();
ByteArrayOutputStream data = new ByteArrayOutputStream();
IndexWriter writer = new IndexWriter(data);
writer.write(index);
jar.addAsManifestResource(new ByteArrayAsset(data.toByteArray()), "jandex.idx");
FileOutputStream jarFile = new FileOutputStream(new File(file, "weldTest.jar"));
try {
jar.as(ZipExporter.class).exportTo(jarFile);
} finally {
jarFile.flush();
jarFile.close();
}
}
use of org.jboss.jandex.Index in project wildfly by wildfly.
the class WebModuleDeploymentTestCase method createTestModule.
private static void createTestModule(File testModuleRoot) throws IOException {
if (testModuleRoot.exists()) {
throw new IllegalArgumentException(testModuleRoot + " already exists");
}
File file = new File(testModuleRoot, "main");
if (!file.mkdirs()) {
throw new IllegalArgumentException("Could not create " + file);
}
URL url = WebModuleDeploymentTestCase.class.getResource("module.xml");
if (url == null) {
throw new IllegalStateException("Could not find module.xml");
}
copyFile(new File(file, "module.xml"), url.openStream());
JavaArchive jar = ShrinkWrap.create(JavaArchive.class, "webTest.jar");
jar.addClasses(ModuleServlet.class);
Indexer indexer = new Indexer();
try (InputStream resource = ModuleServlet.class.getResourceAsStream(ModuleServlet.class.getSimpleName() + ".class")) {
indexer.index(resource);
}
Index index = indexer.complete();
ByteArrayOutputStream data = new ByteArrayOutputStream();
IndexWriter writer = new IndexWriter(data);
writer.write(index);
jar.addAsManifestResource(new ByteArrayAsset(data.toByteArray()), "jandex.idx");
FileOutputStream jarFile = new FileOutputStream(new File(file, "webTest.jar"));
try {
jar.as(ZipExporter.class).exportTo(jarFile);
} finally {
jarFile.flush();
jarFile.close();
}
}
Aggregations