void terminate() { if (tomcat.getServer().getState().isAvailable()) { try { tomcat.stop(); tomcat.destroy(); } catch (Exception e) { Loggers.get(EmbeddedTomcat.class).error("Fail to stop web server", e); } } deleteQuietly(tomcatBasedir()); }
@Override public boolean getAvailable(Context context) { return context.getState().isAvailable(); }
@Override protected ModelAndView handleContext(String contextName, Context context, HttpServletRequest request, HttpServletResponse response) throws Exception { if (context != null && !request.getContextPath().equals(contextName)) { try { // Logging action Authentication auth = SecurityContextHolder.getContext().getAuthentication(); // get username logger String name = auth.getName(); if (context.getState().isAvailable()) { logger.info("{} requested STOP of {}", request.getRemoteAddr(), contextName); getContainerWrapper().getTomcatContainer().stop(contextName); logger.info(getMessageSourceAccessor().getMessage("probe.src.log.stop"), name, contextName); } else { logger.info("{} requested START of {}", request.getRemoteAddr(), contextName); getContainerWrapper().getTomcatContainer().start(contextName); logger.info(getMessageSourceAccessor().getMessage("probe.src.log.start"), name, contextName); } } catch (Exception e) { logger.error("Error during ajax request to START/STOP of '{}'", contextName, e); } } return new ModelAndView(getViewName(), "available", context != null && getContainerWrapper().getTomcatContainer().getAvailable(context)); }
/** * Return the application available flag for this Context. */ @Override public boolean getAvailable() { // TODO Remove this method entirely return getState().isAvailable(); }
private Stream<Context> findContexts(final Host host) { return Stream.of(host.findChildren()) .filter(Context.class::isInstance) .map(Context.class::cast) .filter(ctx -> ctx.getState().isAvailable()); }
protected void checkStateForResourceLoading(String resource) throws IllegalStateException { // It is not permitted to load resources once the web application has // been stopped. if (!state.isAvailable()) { String msg = sm.getString("webappClassLoader.stopped", resource); IllegalStateException ise = new IllegalStateException(msg); log.info(msg, ise); throw ise; } }
@Override public void run() { if (getState().isAvailable()) { threadStart(); } } }
/** * Set the work directory for this Context. * * @param workDir The new work directory */ public void setWorkDir(String workDir) { this.workDir = workDir; if (getState().isAvailable()) { postWorkDirectory(); } }
@Override public Void call() throws LifecycleException { if (child.getState().isAvailable()) { child.stop(); } return null; } }
@Override public Void call() throws LifecycleException { if (child.getState().isAvailable()) { child.stop(); } return null; } }
@Override public void setAttribute(String name, Object value) { if ( (!getParent().getState().isAvailable()) || "org.apache.jasper.runtime.JspApplicationContextImpl".equals(name) ){ tomcatAttributes.put(name,value); } else super.setAttribute(name,value); }
/** * Set the work directory for this Context. * * @param workDir The new work directory */ public void setWorkDir(String workDir) { this.workDir = workDir; if (getState().isAvailable()) { postWorkDirectory(); } }
@Override public ClusterMessage requestCompleted(String sessionId) { if (!getState().isAvailable()) return null; LazyReplicatedMap map = (LazyReplicatedMap)sessions; map.replicate(sessionId,false); return null; }
@Override public ClusterMessage requestCompleted(String sessionId) { if (!getState().isAvailable()) return null; LazyReplicatedMap<String,Session> map = (LazyReplicatedMap<String,Session>)sessions; map.replicate(sessionId,false); return null; }
@Override public ClusterMessage requestCompleted(String sessionId) { if (!getState().isAvailable()) return null; LazyReplicatedMap<String,Session> map = (LazyReplicatedMap<String,Session>)sessions; map.replicate(sessionId,false); return null; }
/** * Set the work directory for this Context. * * @param workDir The new work directory */ public void setWorkDir(String workDir) { this.workDir = workDir; if (getState().isAvailable()) { postWorkDirectory(); } }
/** * Set the work directory for this Context. * * @param workDir The new work directory */ public void setWorkDir(String workDir) { this.workDir = workDir; if (getState().isAvailable()) { postWorkDirectory(); } }
/** * Set the work directory for this Context. * * @param workDir The new work directory */ public void setWorkDir(String workDir) { this.workDir = workDir; if (getState().isAvailable()) { postWorkDirectory(); } }
@Override public void setCacheObjectMaxSize(int cacheObjectMaxSize) { cache.setObjectMaxSize(cacheObjectMaxSize); // Don't enforce the limit when not running as attributes may get set in // any order. if (getState().isAvailable()) { cache.enforceObjectMaxSizeLimit(); } }
@Override public void setCacheObjectMaxSize(int cacheObjectMaxSize) { cache.setObjectMaxSize(cacheObjectMaxSize); // Don't enforce the limit when not running as attributes may get set in // any order. if (getState().isAvailable()) { cache.enforceObjectMaxSizeLimit(); } }