use of aQute.bnd.osgi.Clazz in project bnd by bndtools.
the class ClazzTest method testDynamicInstr.
/**
* Complaint from Groovy that the dynamic instruction fails.
*
* <pre>
* [bndwrap]
* java.lang.ArrayIndexOutOfBoundsException: 15 [bndwrap] at
* aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:387) [bndwrap] at
* aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:308) [bndwrap] at
* aQute.bnd.osgi.Clazz.parseClassFileWithCollector(Clazz.java:297)
* [bndwrap] at aQute.bnd.osgi.Clazz.parseClassFile(Clazz.java:286)
* [bndwrap] at aQute.bnd.osgi.Analyzer.analyzeJar(Analyzer.java:1489)
* [bndwrap] at
* aQute.bnd.osgi.Analyzer.analyzeBundleClasspath(Analyzer.java:1387)
* [bndwrap] Invalid class file:
* groovy/inspect/swingui/AstNodeToScriptVisitor.class [bndwrap] Exception:
* 15
* </pre>
*/
public void testDynamicInstr() throws Exception {
try (Analyzer a = new Analyzer()) {
Clazz c = new Clazz(a, "", null);
c.parseClassFile(new FileInputStream("jar/AstNodeToScriptVisitor.jclass"), new ClassDataCollector() {
});
Set<PackageRef> referred = c.getReferred();
Descriptors d = new Descriptors();
assertFalse(referred.contains(d.getPackageRef("")));
System.out.println(referred);
}
}
use of aQute.bnd.osgi.Clazz in project bnd by bndtools.
the class CalltreeTest method testCalltree.
@SuppressWarnings("restriction")
public static void testCalltree() throws Exception {
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
Builder b = new Builder();
b.addClasspath(new File("bin"));
b.setProperty("Private-Package", "test");
b.build();
Collection<Clazz> clazzes = b.getClassspace().values();
assertTrue(clazzes.size() > 10);
CalltreeResource.writeCalltree(pw, clazzes);
pw.close();
System.err.println(sw.toString());
}
use of aQute.bnd.osgi.Clazz in project bnd by bndtools.
the class ClazzTest method testClassForNameFalsePickup.
/**
* Check if the class is not picking up false references when the
* CLass.forName name is constructed. The DeploymentAdminPermission.1.jclass
* turned out to use Class.forName with a name that was prefixed with a
* package from a property. bnd discovered the suffix
* (.DeploymentAdminPermission) but this ended up in the default package. So
* now the clazz parser tests that the name guessed for Class.forName must
* actually resemble a class name.
*/
public void testClassForNameFalsePickup() throws Exception {
try (Analyzer a = new Analyzer()) {
Clazz c = new Clazz(a, "", null);
c.parseClassFile(new FileInputStream("jar/DeploymentAdminPermission.1.jclass"), new ClassDataCollector() {
});
Set<PackageRef> referred = c.getReferred();
Descriptors d = new Descriptors();
assertFalse(referred.contains(d.getPackageRef("")));
System.out.println(referred);
}
}
use of aQute.bnd.osgi.Clazz in project bnd by bndtools.
the class ClazzTest method testNoClassBound.
public void testNoClassBound() throws Exception {
try (Analyzer a = new Analyzer()) {
Clazz c = new Clazz(a, "", null);
// From aQute.lib.collections.SortedList.fromIterator()
c.parseDescriptor("<T::Ljava/lang/Comparable<*>;>(Ljava/util/Iterator<TT;>;)LaQute/lib/collections/SortedList<TT;>;", Modifier.PUBLIC);
}
}
use of aQute.bnd.osgi.Clazz in project bnd by bndtools.
the class ClazzTest method testCaughtExceptions.
public void testCaughtExceptions() throws Exception {
try (Analyzer a = new Analyzer()) {
Clazz c = new Clazz(a, "", null);
c.parseClassFile(new FileInputStream("bin/test/ClazzTest$Catching.class"), new ClassDataCollector() {
});
assertTrue(c.getReferred().toString().contains("org.xml.sax"));
}
}
Aggregations