1 23 package com.sun.enterprise.tools.verifier.tests.web; 24 25 import com.sun.enterprise.tools.verifier.Result; 26 import com.sun.enterprise.tools.verifier.Context; 27 import com.sun.enterprise.tools.verifier.TagLibDescriptor; 28 import com.sun.enterprise.tools.verifier.web.*; 29 import com.sun.enterprise.tools.verifier.web.TagDescriptor; 30 import com.sun.enterprise.tools.verifier.tests.ComponentNameConstructor; 31 import com.sun.enterprise.deployment.WebBundleDescriptor; 32 33 39 40 public class TagClassExtendsValidInterface extends WebTest implements WebCheck { 41 public Result check(WebBundleDescriptor descriptor) { 42 43 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 44 Context context = getVerifierContext(); 45 Result result = loadWarFile(descriptor); 46 TagLibDescriptor tlds[] = context.getTagLibDescriptors(); 47 boolean failed=false; 48 boolean oneFailed = false; 49 50 if (tlds == null) { 51 addGoodDetails(result, compName); 52 result.passed(smh.getLocalString 53 (getClass().getName() + ".passed", 54 "No tag lib files are specified")); 55 return result; 56 57 } 58 for(TagLibDescriptor tld : tlds) { 59 TagDescriptor[] tagDesc = tld.getTagDescriptors(); 60 for(TagDescriptor td : tagDesc) { 61 String tagclass = td.getTagClass(); 62 Class c = loadClass(result, tagclass); 63 if (c!=null) { 64 if (tld.getSpecVersion().trim().equalsIgnoreCase("2.0")) { 65 failed = !javax.servlet.jsp.tagext.JspTag .class.isAssignableFrom(c); 66 } else { 67 failed = !javax.servlet.jsp.tagext.Tag .class.isAssignableFrom(c); 68 } 69 if(failed) { 70 oneFailed = true; 71 addErrorDetails(result, compName); 72 result.addErrorDetails(smh.getLocalString(getClass().getName() + ".failed", 73 "Error: tag class [ {0} ] in [ {1} ] does not implements valid interface", 74 new Object [] {c.getName(), tld.getUri()})); 75 } else { 76 addGoodDetails(result, compName); 77 result.addGoodDetails(smh.getLocalString 78 (getClass().getName() + ".passed1", 79 "tag class [ {0} ] in [ {1} ] implements valid interface", 80 new Object [] {c.getName(), tld.getUri()})); 81 } 82 } 83 } } 85 if(oneFailed) 86 result.setStatus(Result.FAILED); 87 else 88 result.setStatus(Result.PASSED); 89 90 return result; 91 } 92 } 93 | Popular Tags |