You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2012/07/04 23:23:00 UTC
svn commit: r1357414 - in /tomcat/trunk/java/org/apache/catalina:
Manager.java ha/session/ClusterManagerBase.java
ha/session/DeltaManager.java session/LocalStrings.properties
session/ManagerBase.java session/StandardManager.java
Author: markt
Date: Wed Jul 4 21:23:00 2012
New Revision: 1357414
URL: http://svn.apache.org/viewvc?rev=1357414&view=rev
Log:
Refactor Manager to retain reference to Context rather than Container
Modified:
tomcat/trunk/java/org/apache/catalina/Manager.java
tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java
tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties
tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
tomcat/trunk/java/org/apache/catalina/session/StandardManager.java
Modified: tomcat/trunk/java/org/apache/catalina/Manager.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/Manager.java?rev=1357414&r1=1357413&r2=1357414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/Manager.java (original)
+++ tomcat/trunk/java/org/apache/catalina/Manager.java Wed Jul 4 21:23:00 2012
@@ -51,7 +51,11 @@ public interface Manager {
/**
* Return the Container with which this Manager is associated.
+ *
+ * @deprecated Use {@link #getContext()}. This method will be removed in
+ * Tomcat 9 onwards.
*/
+ @Deprecated
public Container getContainer();
@@ -59,11 +63,29 @@ public interface Manager {
* Set the Container with which this Manager is associated.
*
* @param container The newly associated Container
+ *
+ * @deprecated Use {@link #setContext()}. This method will be removed in
+ * Tomcat 9 onwards.
*/
+ @Deprecated
public void setContainer(Container container);
/**
+ * Return the Context with which this Manager is associated.
+ */
+ public Context getContext();
+
+
+ /**
+ * Set the Container with which this Manager is associated.
+ *
+ * @param container The newly associated Context
+ */
+ public void setContext(Context context);
+
+
+ /**
* Return the distributable flag for the sessions supported by
* this Manager.
*/
Modified: tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java?rev=1357414&r1=1357413&r2=1357414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/ClusterManagerBase.java Wed Jul 4 21:23:00 2012
@@ -144,7 +144,7 @@ public abstract class ClusterManagerBase
public ClassLoader[] getClassLoaders() {
- return getClassLoaders(container);
+ return getClassLoaders(getContext());
}
/**
Modified: tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java?rev=1357414&r1=1357413&r2=1357414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java (original)
+++ tomcat/trunk/java/org/apache/catalina/ha/session/DeltaManager.java Wed Jul 4 21:23:00 2012
@@ -849,7 +849,9 @@ public class DeltaManager extends Cluste
*/
protected void registerSessionAtReplicationValve(DeltaSession session) {
if(replicationValve == null) {
- if(container instanceof StandardContext && ((StandardContext)container).getCrossContext()) {
+ Context context = getContext();
+ if(context instanceof StandardContext &&
+ ((StandardContext)context).getCrossContext()) {
CatalinaCluster cluster = getCluster() ;
if(cluster != null) {
Valve[] valves = cluster.getValves();
Modified: tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties?rev=1357414&r1=1357413&r2=1357414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties (original)
+++ tomcat/trunk/java/org/apache/catalina/session/LocalStrings.properties Wed Jul 4 21:23:00 2012
@@ -30,6 +30,7 @@ JDBCStore.checkConnectionClassNotFoundEx
JDBCStore.wrongDataSource=Cannot open JNDI DataSource [{0}]
JDBCStore.missingDataSourceName=No valid JNDI name was given.
JDBCStore.commitSQLException=SQLException committing connection before closing
+managerBase.container.noop=Managers added to containers other than Contexts will never be used
managerBase.createSession.ise=createSession: Too many active sessions
managerBase.sessionTimeout=Invalid session timeout setting {0}
standardManager.loading=Loading persisted sessions from {0}
Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=1357414&r1=1357413&r2=1357414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Wed Jul 4 21:23:00 2012
@@ -63,9 +63,9 @@ public abstract class ManagerBase extend
// ----------------------------------------------------- Instance Variables
/**
- * The Container with which this Manager is associated.
+ * The Context with which this Manager is associated.
*/
- protected Container container;
+ private Context context;
/**
@@ -208,40 +208,49 @@ public abstract class ManagerBase extend
// ------------------------------------------------------------- Properties
- /**
- * Return the Container with which this Manager is associated.
- */
@Override
+ @Deprecated
public Container getContainer() {
+ return getContext();
+ }
- return (this.container);
+ @Override
+ @Deprecated
+ public void setContainer(Container container) {
+
+ if (container instanceof Context || container == null) {
+ setContext((Context) container);
+ } else {
+ log.warn(sm.getString("managerBase.container.noop"));
+ }
}
- /**
- * Set the Container with which this Manager is associated.
- *
- * @param container The newly associated Container
- */
@Override
- public void setContainer(Container container) {
+ public Context getContext() {
+ return context;
+ }
+
- // De-register from the old Container (if any)
- if ((this.container != null) && (this.container instanceof Context))
- ((Context) this.container).removePropertyChangeListener(this);
-
- Container oldContainer = this.container;
- this.container = container;
- support.firePropertyChange("container", oldContainer, this.container);
-
- // Register with the new Container (if any)
- if ((this.container != null) && (this.container instanceof Context)) {
- setMaxInactiveInterval
- ( ((Context) this.container).getSessionTimeout()*60 );
- ((Context) this.container).addPropertyChangeListener(this);
+ @Override
+ public void setContext(Context context) {
+ // De-register from the old Context (if any)
+ if (this.context != null) {
+ this.context.removePropertyChangeListener(this);
}
+ Context oldContext = this.context;
+ this.context = context;
+ support.firePropertyChange("context", oldContext, this.context);
+ // TODO - delete the line below in Tomcat 9 onwards
+ support.firePropertyChange("container", oldContext, this.context);
+
+ // Register with the new Context (if any)
+ if (this.context != null) {
+ setMaxInactiveInterval(this.context.getSessionTimeout() * 60);
+ this.context.addPropertyChangeListener(this);
+ }
}
@@ -751,7 +760,7 @@ public abstract class ManagerBase extend
String oldId = session.getIdInternal();
session.setId(generateSessionId(), false);
String newId = session.getIdInternal();
- container.fireContainerEvent(Context.CHANGE_SESSION_ID_EVENT,
+ context.fireContainerEvent(Context.CHANGE_SESSION_ID_EVENT,
new String[] {oldId, newId});
}
@@ -1220,10 +1229,10 @@ public abstract class ManagerBase extend
public String toString() {
StringBuilder sb = new StringBuilder(this.getClass().getName());
sb.append('[');
- if (container == null) {
- sb.append("Container is null");
+ if (context == null) {
+ sb.append("Context is null");
} else {
- sb.append(container.getName());
+ sb.append(context.getName());
}
sb.append(']');
return sb.toString();
@@ -1236,29 +1245,22 @@ public abstract class ManagerBase extend
StringBuilder name = new StringBuilder("type=Manager");
- if (container instanceof Context) {
- name.append(",context=");
- String contextName = container.getName();
- if (!contextName.startsWith("/")) {
- name.append('/');
- }
- name.append(contextName);
-
- Context context = (Context) container;
- name.append(",host=");
- name.append(context.getParent().getName());
- } else {
- // Unlikely / impossible? Handle it to be safe
- name.append(",container=");
- name.append(container.getName());
+ name.append(",context=");
+ String contextName = context.getName();
+ if (!contextName.startsWith("/")) {
+ name.append('/');
}
+ name.append(contextName);
+
+ name.append(",host=");
+ name.append(context.getParent().getName());
return name.toString();
}
@Override
public String getDomainInternal() {
- return container.getDomain();
+ return context.getDomain();
}
// ----------------------------------------- PropertyChangeListener Methods
Modified: tomcat/trunk/java/org/apache/catalina/session/StandardManager.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StandardManager.java?rev=1357414&r1=1357413&r2=1357414&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/session/StandardManager.java (original)
+++ tomcat/trunk/java/org/apache/catalina/session/StandardManager.java Wed Jul 4 21:23:00 2012
@@ -215,8 +215,9 @@ public class StandardManager extends Man
try {
fis = new FileInputStream(file.getAbsolutePath());
bis = new BufferedInputStream(fis);
- if (container instanceof Context)
- loader = ((Context) container).getLoader();
+ Context c = getContext();
+ if (c != null)
+ loader = c.getLoader();
if (loader != null)
classLoader = loader.getClassLoader();
if (classLoader != null) {
@@ -535,9 +536,9 @@ public class StandardManager extends Man
return (null);
File file = new File(pathname);
if (!file.isAbsolute()) {
- if (container instanceof Context) {
- ServletContext servletContext =
- ((Context) container).getServletContext();
+ Context context = getContext();
+ if (context != null) {
+ ServletContext servletContext = context.getServletContext();
File tempdir = (File)
servletContext.getAttribute(ServletContext.TEMPDIR);
if (tempdir != null)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org