00001
00027 package org.objectweb.jonas.web.catalina50;
00028
00029 import java.net.URL;
00030
00031 import org.apache.catalina.LifecycleException;
00032 import org.apache.catalina.Valve;
00033 import org.apache.catalina.authenticator.AuthenticatorBase;
00034 import org.apache.catalina.core.StandardContext;
00035 import org.apache.catalina.deploy.ContextEnvironment;
00036 import org.apache.catalina.deploy.ContextResource;
00037
00038 import org.objectweb.jonas.common.Log;
00039 import org.objectweb.jonas.service.ServiceManager;
00040 import org.objectweb.jonas.web.wrapper.CatalinaJWebContainerService;
00041
00042 import org.objectweb.util.monolog.api.BasicLevel;
00043 import org.objectweb.util.monolog.api.Logger;
00044
00053 public final class JOnASStandardContext extends StandardContext {
00054
00058 private static CatalinaJWebContainerService catalinaService = null;
00059
00063 private static Logger logger = null;
00064
00068 private URL earURL = null;
00069
00073 private boolean inEarCase = false;
00074
00078 private boolean inServerXml = false;
00079
00083 private boolean java2DelegationModel = false;
00084
00088 private String jonasDeploymentDescriptor = null;
00089
00093 private boolean startedJStdx = false;
00094
00098 private URL warURL = null;
00099
00103 public JOnASStandardContext() {
00104 this(true, true, false);
00105 }
00106
00113 public JOnASStandardContext(boolean inServerXml, boolean java2DelegationModel, boolean inEarCase) {
00114 super();
00115 this.inServerXml = inServerXml;
00116 this.java2DelegationModel = java2DelegationModel;
00117 this.inEarCase = inEarCase;
00118 logger = Log.getLogger(Log.JONAS_WEB_PREFIX);
00119 try {
00120 catalinaService = (CatalinaJWebContainerService) ServiceManager.getInstance().getWebContainerService();
00121 } catch (Exception e) {
00122 if (logger.isLoggable(BasicLevel.ERROR)) {
00123 logger.log(BasicLevel.ERROR, "Cannot get Web container service");
00124 }
00125 }
00126 }
00127
00131 public URL getEarURL() {
00132 return earURL;
00133 }
00134
00139 public String getJonasDeploymentDescriptor() {
00140 return jonasDeploymentDescriptor;
00141 }
00142
00146 public URL getWarURL() {
00147 return warURL;
00148 }
00149
00153 public boolean isInEarCase() {
00154 return inEarCase;
00155 }
00156
00161 public boolean isInServerXml() {
00162 return inServerXml;
00163 }
00164
00168 public boolean isJava2DelegationModel() {
00169 return java2DelegationModel;
00170 }
00171
00175 protected void setEarURL(URL earURL) {
00176 this.earURL = earURL;
00177 }
00178
00182 protected void setInEarCase(boolean inEarCase) {
00183 this.inEarCase = inEarCase;
00184 }
00185
00189 protected void setJava2DelegationModel(boolean java2DelegationModel) {
00190 this.java2DelegationModel = java2DelegationModel;
00191 }
00192
00197 public void setJonasDeploymentDescriptor(String jonasDeploymentDescriptor) {
00198 this.jonasDeploymentDescriptor = jonasDeploymentDescriptor;
00199 }
00200
00204 protected void setWarURL(URL warURL) {
00205 this.warURL = warURL;
00206 }
00207
00212 public synchronized void start() throws LifecycleException {
00213 if (logger.isLoggable(BasicLevel.DEBUG)) {
00214 logger.log(BasicLevel.DEBUG, "");
00215 }
00216 if (catalinaService != null && catalinaService.isTomcatStarted()) {
00217 if (logger.isLoggable(BasicLevel.DEBUG)) {
00218 logger.log(BasicLevel.DEBUG, "Tomcat in Web container service is started, starting the context...");
00219 }
00220 startedJStdx = true;
00221 super.start();
00222 }
00223
00224 }
00225
00230 public synchronized void stop() throws LifecycleException {
00231 if (logger.isLoggable(BasicLevel.DEBUG)) {
00232 logger.log(BasicLevel.DEBUG, "");
00233 }
00234 if (startedJStdx) {
00235 startedJStdx = false;
00236 super.stop();
00237 }
00238
00239 }
00240
00244 public void unsetAuthenticationCaching() {
00245 Valve[] valves = getValves();
00246 for (int i = 0; i < valves.length; i++) {
00247 Valve valve = valves[i];
00248 if (valve instanceof AuthenticatorBase) {
00249 AuthenticatorBase authBase = (AuthenticatorBase) valve;
00250 authBase.setCache(false);
00251 }
00252 }
00253 }
00254
00260 public void addResource(ContextResource resource) {
00261 }
00262
00268 public void addEnvironment(ContextEnvironment environment) {
00269 }
00270 }