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

ModulesExistAppClient

public class ModulesExistAppClient 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.getApplicationClientDescriptors().size() > 0) {
	    boolean oneFailed = false;
	    for (Iterator itr = descriptor.getApplicationClientDescriptors().iterator(); itr.hasNext();) {
		ApplicationClientDescriptor acd = (ApplicationClientDescriptor) itr.next();

		if (!(acd.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 =
			         acd.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(
//                             acd.getModuleDescriptor().getArchiveUri());
//                          deploymentEntry = jarFile.getInputStream(
//                                             deploymentEntry1);
//                        }
        
			if ((deploymentEntry != null) || (moduleDirExists)) {
			    result.addGoodDetails(smh.getLocalString
					  (getClass().getName() + ".passed",
					   "J2EE Application Client module [ {0} ] exists within [ {1} ].",
					   new Object[] {acd.getModuleDescriptor().getArchiveUri(), descriptor.getName()}));
			} else {
                            if (!oneFailed) {
                                oneFailed = true;
                            }
			    result.addErrorDetails(smh.getLocalString
					  (getClass().getName() + ".failed",
					   "Error: J2EE Application Client module [ {0} ] does not exist within [ {1} ].",
					   new Object[] {acd.getModuleDescriptor().getArchiveUri(), descriptor.getName()}));
			}
        
//		    } catch (FileNotFoundException ex) {
//            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 java application clients in application [ {0} ]",
				  new Object[] {descriptor.getName()}));
	}
	return result;