/** * The ejb element specifies the URI of a ejb-jar, relative to the top level of the application * package. * * @param descriptor the Application deployment descriptor * @return <code>Result</code> the results for this assertion */ public Result check(Application descriptor) { Result result = getInitializedResult(); if (descriptor.getBundleDescriptors(EjbBundleDescriptor.class).size() > 0) { boolean oneFailed = false; for (Iterator itr = descriptor.getBundleDescriptors(EjbBundleDescriptor.class).iterator(); itr.hasNext(); ) { EjbBundleDescriptor ejbd = (EjbBundleDescriptor) itr.next(); // not sure what we can do to test this string? if (ejbd.getModuleDescriptor().getArchiveUri().endsWith(".jar")) { result.passed( smh.getLocalString( getClass().getName() + ".passed", "[ {0} ] specifies the URI [ {1} ] of an ejb-jar, relative to the top level of the application package [ {2} ].", new Object[] { ejbd.getName(), ejbd.getModuleDescriptor().getArchiveUri(), descriptor.getName() })); } else { if (!oneFailed) { oneFailed = true; } result.addErrorDetails( smh.getLocalString( getClass().getName() + ".failed", "Error: [ {0} ] does not specify the URI [ {1} ] of an ejb-jar, relative to the top level of the application package [ {2} ], or does not end with \".jar\"", new Object[] { ejbd.getName(), ejbd.getModuleDescriptor().getArchiveUri(), descriptor.getName() })); } } if (oneFailed) { result.setStatus(Result.FAILED); } 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; }
/** * The alt-dd element specifies a URI to the post-assembly deployment descriptor relative to the * root of the application * * @param descriptor the Application deployment descriptor * @return <code>Result</code> the results for this assertion */ public Result check(Application descriptor) { 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; }