Return-Path: X-Original-To: apmail-tomcat-dev-archive@www.apache.org Delivered-To: apmail-tomcat-dev-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id CC82E9FEF for ; Wed, 4 Jul 2012 21:22:30 +0000 (UTC) Received: (qmail 13069 invoked by uid 500); 4 Jul 2012 21:22:30 -0000 Delivered-To: apmail-tomcat-dev-archive@tomcat.apache.org Received: (qmail 13003 invoked by uid 500); 4 Jul 2012 21:22:30 -0000 Mailing-List: contact dev-help@tomcat.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Tomcat Developers List" Delivered-To: mailing list dev@tomcat.apache.org Received: (qmail 12992 invoked by uid 99); 4 Jul 2012 21:22:30 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jul 2012 21:22:30 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 04 Jul 2012 21:22:26 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 0A81223888D2 for ; Wed, 4 Jul 2012 21:22:05 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1357413 - in /tomcat/trunk: java/org/apache/catalina/ java/org/apache/catalina/core/ java/org/apache/catalina/mbeans/ test/org/apache/catalina/startup/ Date: Wed, 04 Jul 2012 21:22:04 -0000 To: dev@tomcat.apache.org From: markt@apache.org X-Mailer: svnmailer-1.0.8-patched Message-Id: <20120704212205.0A81223888D2@eris.apache.org> Author: markt Date: Wed Jul 4 21:22:03 2012 New Revision: 1357413 URL: http://svn.apache.org/viewvc?rev=1357413&view=rev Log: Move Manager from Container to Context Modified: tomcat/trunk/java/org/apache/catalina/Container.java tomcat/trunk/java/org/apache/catalina/Context.java tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/core/LocalStrings_es.properties tomcat/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/trunk/java/org/apache/catalina/mbeans/LocalStrings.properties tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java Modified: tomcat/trunk/java/org/apache/catalina/Container.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Container.java?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Container.java (original) +++ tomcat/trunk/java/org/apache/catalina/Container.java Wed Jul 4 21:22:03 2012 @@ -122,22 +122,6 @@ public interface Container extends Lifec /** - * Return the Manager with which this Container is associated. If there is - * no associated Manager, return the Manager associated with our parent - * Container (if any); otherwise return null. - */ - public Manager getManager(); - - - /** - * Set the Manager with which this Container is associated. - * - * @param manager The newly associated Manager - */ - public void setManager(Manager manager); - - - /** * Return the JMX name associated with this container. */ public ObjectName getObjectName(); Modified: tomcat/trunk/java/org/apache/catalina/Context.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Context.java?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/Context.java (original) +++ tomcat/trunk/java/org/apache/catalina/Context.java Wed Jul 4 21:22:03 2012 @@ -1412,5 +1412,19 @@ public interface Context extends Contain * @param resources The newly associated Resources */ public void setResources(DirContext resources); + + /** + * Return the Manager with which this Context is associated. If there is + * no associated Manager, return null. + */ + public Manager getManager(); + + + /** + * Set the Manager with which this Context is associated. + * + * @param manager The newly associated Manager + */ + public void setManager(Manager manager); } Modified: tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/ContainerBase.java Wed Jul 4 21:22:03 2012 @@ -16,7 +16,6 @@ */ package org.apache.catalina.core; - import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.io.File; @@ -53,7 +52,6 @@ import org.apache.catalina.Host; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleState; -import org.apache.catalina.Manager; import org.apache.catalina.Pipeline; import org.apache.catalina.Realm; import org.apache.catalina.Valve; @@ -196,12 +194,6 @@ public abstract class ContainerBase exte /** - * The Manager implementation with which this Container is associated. - */ - protected Manager manager = null; - - - /** * The cluster with which this Container is associated. */ protected Cluster cluster = null; @@ -374,65 +366,6 @@ public abstract class ContainerBase exte /** - * Return the Manager with which this Container is associated. If there is - * no associated Manager, return the Manager associated with our parent - * Container (if any); otherwise return null. - */ - @Override - public Manager getManager() { - - if (manager != null) - return (manager); - if (parent != null) - return (parent.getManager()); - return (null); - - } - - - /** - * Set the Manager with which this Container is associated. - * - * @param manager The newly associated Manager - */ - @Override - public synchronized void setManager(Manager manager) { - - // Change components if necessary - Manager oldManager = this.manager; - if (oldManager == manager) - return; - this.manager = manager; - - // Stop the old component if necessary - if (getState().isAvailable() && (oldManager != null) && - (oldManager instanceof Lifecycle)) { - try { - ((Lifecycle) oldManager).stop(); - } catch (LifecycleException e) { - log.error("ContainerBase.setManager: stop: ", e); - } - } - - // Start the new component if necessary - if (manager != null) - manager.setContainer(this); - if (getState().isAvailable() && (manager != null) && - (manager instanceof Lifecycle)) { - try { - ((Lifecycle) manager).start(); - } catch (LifecycleException e) { - log.error("ContainerBase.setManager: start: ", e); - } - } - - // Report this property change to interested listeners - support.firePropertyChange("manager", oldManager, this.manager); - - } - - - /** * Return the Cluster with which this Container is associated. If there is * no associated Cluster, return the Cluster associated with our parent * Container (if any); otherwise return null. @@ -938,8 +871,6 @@ public abstract class ContainerBase exte // Start our subordinate components, if any logger = null; getLogger(); - if ((manager != null) && (manager instanceof Lifecycle)) - ((Lifecycle) manager).start(); if ((cluster != null) && (cluster instanceof Lifecycle)) ((Lifecycle) cluster).start(); Realm realm = getRealmInternal(); @@ -1031,18 +962,11 @@ public abstract class ContainerBase exte if ((cluster != null) && (cluster instanceof Lifecycle)) { ((Lifecycle) cluster).stop(); } - if ((manager != null) && (manager instanceof Lifecycle) && - ((Lifecycle) manager).getState().isAvailable() ) { - ((Lifecycle) manager).stop(); - } } @Override protected void destroyInternal() throws LifecycleException { - if ((manager != null) && (manager instanceof Lifecycle)) { - ((Lifecycle) manager).destroy(); - } Realm realm = getRealmInternal(); if ((realm != null) && (realm instanceof Lifecycle)) { ((Lifecycle) realm).destroy(); @@ -1167,13 +1091,6 @@ public abstract class ContainerBase exte log.warn(sm.getString("containerBase.backgroundProcess.cluster", cluster), e); } } - if (manager != null) { - try { - manager.backgroundProcess(); - } catch (Exception e) { - log.warn(sm.getString("containerBase.backgroundProcess.manager", manager), e); - } - } Realm realm = getRealmInternal(); if (realm != null) { try { Modified: tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings.properties Wed Jul 4 21:22:03 2012 @@ -64,7 +64,6 @@ asyncContextImpl.requestEnded=The reques containerBase.threadedStartFailed=A child container failed during start containerBase.threadedStopFailed=A child container failed during stop containerBase.backgroundProcess.cluster=Exception processing cluster {0} background process -containerBase.backgroundProcess.manager=Exception processing manager {0} background process containerBase.backgroundProcess.realm=Exception processing realm {0} background process containerBase.backgroundProcess.valve=Exception processing valve {0} background process defaultInstanceManager.invalidInjection=Invalid method resource injection annotation @@ -87,6 +86,7 @@ standardContext.invalidWrapperClass={0} standardContext.applicationListener=Error configuring application listener of class {0} standardContext.applicationSkipped=Skipped installing application listeners due to previous error(s) standardContext.backgroundProcess.loader=Exception processing loader {0} background process +standardContext.backgroundProcess.manager=Exception processing manager {0} background process standardContext.cluster.noManager=No manager found. Checking if cluster manager should be used. Cluster configured: [{0}], Application distributable: [{1}] standardContext.duplicateListener=The listener "{0}" is already configured for this context. The duplicate definition has been ignored. standardContext.errorPage.error=Error page location {0} must start with a ''/'' Modified: tomcat/trunk/java/org/apache/catalina/core/LocalStrings_es.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/LocalStrings_es.properties?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/LocalStrings_es.properties (original) +++ tomcat/trunk/java/org/apache/catalina/core/LocalStrings_es.properties Wed Jul 4 21:22:03 2012 @@ -54,8 +54,6 @@ aprListener.flags = Capacidades APR\: IP aprListener.initializedOpenSSL=OpenSSL inicializado correctamente ({0}) asyncContextImpl.requestEnded = El requerimiento asociado con AsyncContext ya ha completado su procesamiento. containerBase.backgroundProcess.cluster = Excepci\u00F3n al procesar cl\u00FAster {0} de proceso en segundo plano -containerBase.backgroundProcess.loader = Excepci\u00F3n al procesar cargador {0} de proceso en segundo plano -containerBase.backgroundProcess.manager = Excepci\u00F3n al procesar gestor {0} de proceso en segundo plano containerBase.backgroundProcess.realm = Excepci\u00F3n al procesar reino {0} de proceso en segundo plano containerBase.backgroundProcess.valve = Excepci\u00F3n al procesar v\u00E1lvula {0} de proceso en segundo plano filterChain.filter = La ejecuci\u00F3n del Filtro lanz\u00F3 una excepci\u00F3n @@ -75,6 +73,8 @@ naming.namingContextCreationFailed = Fal standardContext.invalidWrapperClass = {0} no es una subclase de StandardWrapper standardContext.applicationListener = Error configurando escuchador de aplicaci\u00F3n de clase {0} standardContext.applicationSkipped = Se ha saltado la instalaci\u00F3n de escuchadores de aplicaci\u00F3n debido a error(es) previo(s) +standardContext.backgroundProcess.loader = Excepci\u00F3n al procesar cargador {0} de proceso en segundo plano +standardContext.backgroundProcess.manager = Excepci\u00F3n al procesar gestor {0} de proceso en segundo plano standardContext.cluster.noManager = No se ha hallado el gestor. Revisando si hay que usar el gestor de cl\u00FAster. Cl\u00FAster configurado\: [{0}], Aplicaci\u00F3n distribu\u00EDble\: [{1}] standardContext.duplicateListener = El escuchador "{0}" ya est\u00E1 configurado para este contexto. La definici\u00F3n duplicada ha sido ignorada. standardContext.errorPage.error = La localizaci\u00F3n de la p\u00E1gina de error 0} debe de comenzar con ''/'' Modified: tomcat/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardContext.java Wed Jul 4 21:22:03 2012 @@ -439,6 +439,12 @@ public class StandardContext extends Con /** + * The Manager implementation with which this Container is associated. + */ + protected Manager manager = null; + + + /** * The naming context listener for this web application. */ private NamingContextListener namingContextListener = null; @@ -1904,6 +1910,48 @@ public class StandardContext extends Con } + @Override + public Manager getManager() { + return manager; + } + + + @Override + public synchronized void setManager(Manager manager) { + + // Change components if necessary + Manager oldManager = this.manager; + if (oldManager == manager) + return; + this.manager = manager; + + // Stop the old component if necessary + if (getState().isAvailable() && (oldManager != null) && + (oldManager instanceof Lifecycle)) { + try { + ((Lifecycle) oldManager).stop(); + } catch (LifecycleException e) { + log.error("StandardContext.setManager: stop: ", e); + } + } + + // Start the new component if necessary + if (manager != null) + manager.setContainer(this); + if (getState().isAvailable() && (manager != null) && + (manager instanceof Lifecycle)) { + try { + ((Lifecycle) manager).start(); + } catch (LifecycleException e) { + log.error("StandardContext.setManager: start: ", e); + } + } + + // Report this property change to interested listeners + support.firePropertyChange("manager", oldManager, this.manager); + } + + /** * Return the boolean on the annotations parsing. */ @@ -5520,6 +5568,10 @@ public class StandardContext extends Con ((Lifecycle) loader).destroy(); } + if ((manager != null) && (manager instanceof Lifecycle)) { + ((Lifecycle) manager).destroy(); + } + super.destroyInternal(); } @@ -5534,6 +5586,15 @@ public class StandardContext extends Con "standardContext.backgroundProcess.loader", loader), e); } } + if (manager != null) { + try { + manager.backgroundProcess(); + } catch (Exception e) { + log.warn(sm.getString( + "standardContext.backgroundProcess.manager", manager), + e); + } + } super.backgroundProcess(); } Modified: tomcat/trunk/java/org/apache/catalina/mbeans/LocalStrings.properties URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mbeans/LocalStrings.properties?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/mbeans/LocalStrings.properties (original) +++ tomcat/trunk/java/org/apache/catalina/mbeans/LocalStrings.properties Wed Jul 4 21:22:03 2012 @@ -18,3 +18,5 @@ jmxRemoteLifecycleListener.createServerF jmxRemoteLifecycleListener.destroyServerFailed=The JMX connector server could not be stopped for the {0} server jmxRemoteLifecycleListener.invalidURL=The JMX Service URL requested for the {0} server, "{1}", was invalid jmxRemoteLifecycleListener.start=The JMX Remote Listener has configured the registry on port {0} and the server on port {1} for the {2} server + +mBeanFactory.managerContext=Manager components may only be added to Contexts. Modified: tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java (original) +++ tomcat/trunk/java/org/apache/catalina/mbeans/MBeanFactory.java Wed Jul 4 21:22:03 2012 @@ -44,6 +44,7 @@ import org.apache.catalina.realm.UserDat import org.apache.catalina.session.StandardManager; import org.apache.catalina.startup.ContextConfig; import org.apache.catalina.startup.HostConfig; +import org.apache.tomcat.util.res.StringManager; /** @@ -59,6 +60,9 @@ public class MBeanFactory { private static final org.apache.juli.logging.Log log = org.apache.juli.logging.LogFactory.getLog(MBeanFactory.class); + protected static final StringManager sm = + StringManager.getManager(Constants.Package); + /** * The MBeanServer for this application. */ @@ -615,8 +619,10 @@ public class MBeanFactory { // Add the new instance to its parent component ObjectName pname = new ObjectName(parent); Container container = getParentContainerFromParent(pname); - if (container != null) { - container.setManager(manager); + if (container instanceof Context) { + ((Context) container).setManager(manager); + } else { + throw new Exception(sm.getString("mBeanFactory.managerContext")); } ObjectName oname = manager.getObjectName(); if (oname != null) { @@ -870,8 +876,9 @@ public class MBeanFactory { ObjectName oname = new ObjectName(name); // Acquire a reference to the component to be removed Container container = getParentContainerFromChild(oname); - container.setManager(null); - + if (container instanceof Context) { + ((Context) container).setManager(null); + } } Modified: tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java?rev=1357413&r1=1357412&r2=1357413&view=diff ============================================================================== --- tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java (original) +++ tomcat/trunk/test/org/apache/catalina/startup/TomcatBaseTest.java Wed Jul 4 21:22:03 2012 @@ -39,6 +39,7 @@ import org.junit.After; import org.junit.Before; import org.apache.catalina.Container; +import org.apache.catalina.Context; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleState; import org.apache.catalina.Server; @@ -402,12 +403,13 @@ public abstract class TomcatBaseTest ext Container e = service.getContainer(); for (Container h : e.findChildren()) { for (Container c : h.findChildren()) { - StandardManager m = (StandardManager) c.getManager(); + StandardManager m = + (StandardManager) ((Context) c).getManager(); if (m == null) { m = new StandardManager(); m.setSecureRandomClass( "org.apache.catalina.startup.FastNonSecureRandom"); - c.setManager(m); + ((Context) c).setManager(m); } } } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org For additional commands, e-mail: dev-help@tomcat.apache.org