1 23 24 package com.sun.enterprise.config.serverbeans.validation.tests; 25 26 import java.util.Locale ; 27 28 import com.sun.enterprise.config.serverbeans.validation.GenericValidator; 29 import com.sun.enterprise.config.serverbeans.validation.ValidationDescriptor; 30 import com.sun.enterprise.config.serverbeans.validation.tests.StaticTest; 31 import com.sun.enterprise.config.serverbeans.validation.Result; 32 33 import com.sun.enterprise.config.ConfigBean; 34 import com.sun.enterprise.config.ConfigContextEvent; 35 import com.sun.enterprise.config.ConfigContext; 36 import com.sun.enterprise.config.ConfigException; 37 38 import com.sun.enterprise.config.serverbeans.Config; 39 import com.sun.enterprise.config.serverbeans.HttpListener; 40 import com.sun.enterprise.config.serverbeans.HttpService; 41 import com.sun.enterprise.config.serverbeans.VirtualServer; 42 import com.sun.enterprise.admin.common.ObjectNames; 43 44 import java.util.StringTokenizer ; 45 import java.util.logging.Level ; 46 47 48 54 55 public class HttpListenerTest extends GenericValidator { 56 57 private static final String DELIMITER=","; 58 59 public HttpListenerTest(ValidationDescriptor desc) { 60 super(desc); 61 } 62 63 public Result validate(ConfigContextEvent cce) { 64 Result result = super.validate(cce); String choice = cce.getChoice(); 66 67 if(choice.equals(StaticTest.ADD) || choice.equals(StaticTest.VALIDATE)) { 68 final HttpListener h = (HttpListener)cce.getObject(); 69 String vsId = h.getDefaultVirtualServer(); 70 try { 71 Config config = (Config) ((HttpService) cce.getClassObject()).parent(); 72 if( config!=null ) { 73 boolean exists = checkVSExists(vsId, config); 74 if(!exists) { 75 result.failed(smh.getLocalString(getClass().getName() + ".virtualserverNotFound", 76 "Attribute(default-virtual-server={0}) : Virtual Server not found", new Object []{vsId})); 77 } else if (h.isEnabled()){ 78 if (! isVirtualServerOn(h, config, result)){ 81 result.failed(smh.getLocalString(getClass().getName() + ".cannotAddVsNotOn", 82 "Cannot add this HttpListener \"{0}\" because it is enabled but its virtual server \"{1}\" has a state other than \"on\" ({2})", 83 new Object []{h.getId(), vsId, getDefaultVirtualServer(vsId, config).getState()})); 84 } 85 } 86 } 87 88 } 89 catch(Exception e){ 90 _logger.log(Level.FINE, "domainxmlverifier.error", e); 91 92 } 93 } else if (choice.equals(StaticTest.UPDATE)) { 94 if (cce.getName().equals("enabled") && ConfigBean.toBoolean((String ) cce.getObject())){ 95 final HttpListener h = (HttpListener) cce.getClassObject(); 96 final Config c = (Config) ((HttpService) h.parent()).parent(); 97 final VirtualServer vs = getDefaultVirtualServer(h.getDefaultVirtualServer(), c); 98 if (null != vs && !vs.getState().equals("on")){ 99 result.failed(smh.getLocalString(getClass().getName() + ".cannotUpdateVSNotOn", 100 "Cannot enable this HttpListener \"{0}\" because its virtual server \"{1}\" has a state other than \"on\" ({2})", 101 new Object []{h.getId(), vs.getId(), vs.getState()})); 102 103 } 104 } 105 } else { 106 _logger.log(Level.SEVERE, "domainxmlverifier.unknownchoice", choice); 107 } 108 109 return result; 110 } 111 112 private final boolean isVirtualServerOn(final HttpListener h, final Config c, final Result result){ 113 final VirtualServer vs = getDefaultVirtualServer(h.getDefaultVirtualServer(), c); 114 return (null != vs && vs.getState().equals("on")); 115 } 116 117 118 128 private boolean checkVSExists(String vsID, Config config) { 129 return getDefaultVirtualServer(vsID, config) != null; 130 } 131 132 140 private final VirtualServer getDefaultVirtualServer(final String vsID, final Config config){ 141 final VirtualServer[] virtualServer = config.getHttpService().getVirtualServer(); 142 for(int i = 0 ; i < virtualServer.length ; i++) { 143 if(vsID.equals(virtualServer[i].getId())) { 144 return virtualServer[i]; 145 } 146 } 147 return null; 148 } 149 150 151 } 152 | Popular Tags |