Methods Summary |
---|
public boolean | containsAnnotation(java.util.jar.JarFile jarFile, java.util.jar.JarEntry entry)
boolean result = false;
// check if it contains top level annotations...
ReadableByteChannel channel = null;
try {
channel = Channels.newChannel(jarFile.getInputStream(entry));
if (channel!=null) {
result = classFile.containsAnnotation(channel, entry.getSize());
}
return result;
} finally {
if (channel != null) {
channel.close();
}
}
|
public boolean | containsAnnotation(java.io.File file)
boolean result = false;
// check if it contains top level annotations...
InputStream is = null;
try {
is = new BufferedInputStream(new FileInputStream(file));
ReadableByteChannel channel = Channels.newChannel(is);
if (channel!=null) {
result = classFile.containsAnnotation(channel, file.length());
}
return result;
} finally {
if (is != null) {
is.close();
}
}
|
protected abstract com.sun.enterprise.deployment.annotation.introspection.CustomAnnotationScanner | createAnnotationScanner()Provides a new annotation scanner, tailored to the particular type of
annotation detector the concrete subclass implements.
|
public boolean | hasAnnotationInArchive(com.sun.enterprise.deployment.deploy.shared.AbstractArchive archive)
File file = new File(archive.getArchiveUri());
if (!file.exists()) {
throw new FileNotFoundException(archive.getArchiveUri());
}
//@@@ note that the two methods could probably be combined into one.
//The challenge is to find the size of each entry without having to
//read the entry twice, once for the inputstream, the other for size.
if (file.isDirectory()) {
return hasAnnotationInDirectory(archive);
} else {
return hasAnnotationInJar(archive);
}
|
private boolean | hasAnnotationInDirectory(com.sun.enterprise.deployment.deploy.shared.AbstractArchive archive)
Enumeration entriesEnum = archive.entries();
while(entriesEnum.hasMoreElements()) {
String entry = (String) entriesEnum.nextElement();
if (entry.endsWith(".class")) {
File file = null;
int ind = entry.lastIndexOf("/");
if (ind != -1) {
String entryName = entry.substring(ind + 1);
String parent = archive.getArchiveUri() + File.separatorChar +
entry.substring(0, ind);
file = new File(parent.replace('/", File.separatorChar), entryName);
} else {
file = new File(archive.getArchiveUri(), entry);
}
if (containsAnnotation(file)) {
return true;
}
}
}
return false;
|
private boolean | hasAnnotationInJar(com.sun.enterprise.deployment.deploy.shared.AbstractArchive archive)
JarFile jf = null;
try {
jf = new JarFile(new File(archive.getArchiveUri()));
Enumeration<JarEntry> entriesEnum = jf.entries();
while(entriesEnum.hasMoreElements()) {
JarEntry je = entriesEnum.nextElement();
if (je.getName().endsWith(".class")) {
if (containsAnnotation(jf, je)) {
return true;
}
}
}
} finally {
if (jf != null) {
jf.close();
}
}
return false;
|