FileDocCategorySizeDatePackage
ModulesExistEjb.javaAPI DocGlassfish v2 API7169Fri May 04 22:33:28 BST 2007com.sun.enterprise.tools.verifier.tests.app

ModulesExistEjb

public class ModulesExistEjb extends com.sun.enterprise.tools.verifier.tests.app.ApplicationTest implements AppCheck
Application's listed J2EE modules exist in the Enterprise archive The J2EE module element contains an ejb, java, or web element, which indicates

Fields Summary
Constructors Summary
Methods Summary
public Resultcheck(Application descriptor)
Application's listed J2EE modules exist in the Enterprise archive The J2EE module element contains an ejb, java, or web element, which indicates the module type and contains a path to the module file

param
descriptor the Application deployment descriptor
return
Result the results for this assertion


	Result result = getInitializedResult();

  

	if (descriptor.getEjbBundleDescriptors().size() > 0) {
	    boolean oneFailed = false;
	    for (Iterator itr = descriptor.getEjbBundleDescriptors().iterator(); itr.hasNext();) {
		EjbBundleDescriptor ejbd = (EjbBundleDescriptor) itr.next();

		if (!(ejbd.getModuleDescriptor().getArchiveUri().equals(""))) {
		    JarFile jarFile = null;
                    InputStream deploymentEntry=null;
                    boolean moduleDirExists = false;
 
//		    try {
//			File applicationJarFile = null;
//                        if (Verifier.getEarFile() != null) {
//			   applicationJarFile = new File(Verifier.getEarFile());
//                        }
             
//                        if (applicationJarFile == null) {
//                            try {
                              String archBase = 
                                 getAbstractArchiveUri(descriptor);
                              String moduleName =
			         ejbd.getModuleDescriptor().getArchiveUri();
                              String moduleDir = FileUtils.makeFriendlyFileName(moduleName);
                              File f = new File(archBase + File.separator
                                           + moduleDir);
                              moduleDirExists = f.isDirectory();
//                            }catch (Exception e) { throw new IOException(e.getMessage());}
//                        }
//                        else {
//			   jarFile = new JarFile(applicationJarFile);
//			   ZipEntry deploymentEntry1 = jarFile.getEntry(
//                                ejbd.getModuleDescriptor().getArchiveUri());
//                           deploymentEntry = jarFile.getInputStream(
//                                             deploymentEntry1);
//                        }
        
			if ((deploymentEntry != null) || (moduleDirExists)) {
			    result.addGoodDetails(smh.getLocalString
						  (getClass().getName() + ".passed",
						   "J2EE EJB module [ {0} ] exists within [ {1} ]",
						   new Object[] {ejbd.getModuleDescriptor().getArchiveUri(),descriptor.getName()}));
			} else { 
                            if (!oneFailed) {
                                oneFailed = true;
                            }
			    result.addErrorDetails(smh.getLocalString
						   (getClass().getName() + ".failed",
						    "Error: J2EE EJB module [ {0} ] does not exist within [ {1} ].",
						    new Object[] {ejbd.getModuleDescriptor().getArchiveUri(),descriptor.getName()}));
			}
        
//		    } catch (FileNotFoundException ex) {
//			Verifier.debug(ex);
//                        if (!oneFailed) {
//                            oneFailed = true;
//                        }
//			
//			result.failed(smh.getLocalString
//				      (getClass().getName() + ".failedException",
//				       "Error: File not found trying to read J2EE module file [ {0} ] within [ {1} ]",
//				       new Object[] {ejbd.getModuleDescriptor().getArchiveUri(), descriptor.getName()}));
//		    } catch (IOException ex) {
//			Verifier.debug(ex);
//                        if (!oneFailed) {
//                            oneFailed = true;
//                        }
//			
//			result.failed(smh.getLocalString
//				      (getClass().getName() + ".failedException1",
//				       "Error: IO Error trying to read J2EE module file [ {0} ] within [ {1} ]",
//				       new Object[] {ejbd.getModuleDescriptor().getArchiveUri(), descriptor.getName()}));
//	            } finally {
                        try {
                          if (jarFile != null)
                              jarFile.close();
                          if (deploymentEntry != null)
                              deploymentEntry.close();
                        } catch (Exception x) {}
//                    }

		}

	    }
            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;