The alt-dd element specifies a URI to the post-assembly deployment descriptor
relative to the root of the application
Result result = getInitializedResult();
if (descriptor.getEjbBundleDescriptors().size() > 0) {
boolean oneFailed = false;
int na = 0;
for (Iterator itr = descriptor.getEjbBundleDescriptors().iterator(); itr.hasNext();) {
EjbBundleDescriptor ejbd = (EjbBundleDescriptor) itr.next();
if (ejbd.getModuleDescriptor().getAlternateDescriptor()!=null) {
if (!(ejbd.getModuleDescriptor().getAlternateDescriptor().equals(""))) {
JarFile jarFile = null;
InputStream deploymentEntry=null;
// File f = null;
// if (Verifier.getEarFile() != null)
// f = new File(Verifier.getEarFile());
try {
// if (f==null){
String uri = getAbstractArchiveUri(descriptor);
// try {
FileArchive arch = new FileArchive();
arch.open(uri);
deploymentEntry = arch.getEntry(ejbd.getModuleDescriptor().getAlternateDescriptor());
// }catch (Exception e) { }
// }else{
//
// jarFile = new JarFile(f);
// ZipEntry deploymentEntry1 = jarFile.getEntry(ejbd.getModuleDescriptor().getAlternateDescriptor());
// if (deploymentEntry1 != null){
// deploymentEntry = jarFile.getInputStream(deploymentEntry1);
// }
// }
if (deploymentEntry != null) {
result.addGoodDetails(smh.getLocalString
(getClass().getName() + ".passed",
"Found alternate EJB deployment descriptor URI file [ {0} ] within [ {1} ]",
new Object[] {ejbd.getModuleDescriptor().getAlternateDescriptor(),ejbd.getName()}));
} else {
if (!oneFailed) {
oneFailed = true;
}
result.addErrorDetails(smh.getLocalString
(getClass().getName() + ".failed",
"Error: No alternate EJB deployment descriptor URI file found, looking for [ {0} ] within [ {1} ]",
new Object[] {ejbd.getModuleDescriptor().getAlternateDescriptor(),ejbd.getName()}));
}
//jarFile.close();
} catch (FileNotFoundException ex) {
Verifier.debug(ex);
if (!oneFailed) {
oneFailed = true;
}
result.failed(smh.getLocalString
(getClass().getName() + ".failedException",
"Error: File not found trying to read deployment descriptor file [ {0} ] within [ {1} ]",
new Object[] {ejbd.getModuleDescriptor().getAlternateDescriptor(), ejbd.getName()}));
} catch (IOException ex) {
Verifier.debug(ex);
if (!oneFailed) {
oneFailed = true;
}
result.failed(smh.getLocalString
(getClass().getName() + ".failedException1",
"Error: IO Error trying to read deployment descriptor file [ {0} ] within [ {1} ]",
new Object[] {ejbd.getModuleDescriptor().getAlternateDescriptor(), ejbd.getName()}));
} finally {
try {
if (deploymentEntry != null)
deploymentEntry.close();
} catch (Exception x) {}
}
}
} else {
na++;
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable1",
"There is no java EJB alternative deployment descriptor in [ {0} ]",
new Object[] {ejbd.getName()}));
}
}
if (oneFailed) {
result.setStatus(Result.FAILED);
} else if (na == descriptor.getEjbBundleDescriptors().size()) {
result.setStatus(Result.NOT_APPLICABLE);
} else {
result.setStatus(Result.PASSED);
}
} else {
result.notApplicable(smh.getLocalString
(getClass().getName() + ".notApplicable",
"There are no EJB components in application [ {0} ]",
new Object[] {descriptor.getName()}));
}
return result;