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 2020/04/03 20:07:34 UTC
[tomcat] branch master updated: Remove reloadable attribute from
Loader (it is duplicated on Context)
This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/master by this push:
new f6d471f Remove reloadable attribute from Loader (it is duplicated on Context)
f6d471f is described below
commit f6d471f6ff69a5f3da00cd8f8216b4c513ca069f
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Fri Apr 3 20:56:48 2020 +0100
Remove reloadable attribute from Loader (it is duplicated on Context)
---
java/org/apache/catalina/Loader.java | 14 ----
java/org/apache/catalina/loader/WebappLoader.java | 95 +++-------------------
.../apache/catalina/loader/mbeans-descriptors.xml | 4 -
.../startup/TestContextConfigAnnotation.java | 4 -
webapps/docs/changelog.xml | 5 ++
webapps/docs/config/loader.xml | 17 ----
6 files changed, 15 insertions(+), 124 deletions(-)
diff --git a/java/org/apache/catalina/Loader.java b/java/org/apache/catalina/Loader.java
index dfe2461..66c080d 100644
--- a/java/org/apache/catalina/Loader.java
+++ b/java/org/apache/catalina/Loader.java
@@ -95,20 +95,6 @@ public interface Loader {
/**
- * @return the reloadable flag for this Loader.
- */
- public boolean getReloadable();
-
-
- /**
- * Set the reloadable flag for this Loader.
- *
- * @param reloadable The new reloadable flag
- */
- public void setReloadable(boolean reloadable);
-
-
- /**
* Add a property change listener to this component.
*
* @param listener The listener to add
diff --git a/java/org/apache/catalina/loader/WebappLoader.java b/java/org/apache/catalina/loader/WebappLoader.java
index 2727a31..03c738b 100644
--- a/java/org/apache/catalina/loader/WebappLoader.java
+++ b/java/org/apache/catalina/loader/WebappLoader.java
@@ -16,7 +16,6 @@
*/
package org.apache.catalina.loader;
-import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.File;
@@ -62,8 +61,7 @@ import org.apache.tomcat.util.res.StringManager;
* @author Craig R. McClanahan
* @author Remy Maucherat
*/
-public class WebappLoader extends LifecycleMBeanBase
- implements Loader, PropertyChangeListener {
+public class WebappLoader extends LifecycleMBeanBase implements Loader{
private static final Log log = LogFactory.getLog(WebappLoader.class);
@@ -97,12 +95,6 @@ public class WebappLoader extends LifecycleMBeanBase
/**
- * The reloadable flag for this Loader.
- */
- private boolean reloadable = false;
-
-
- /**
* The string manager for this package.
*/
protected static final StringManager sm = StringManager.getManager(WebappLoader.class);
@@ -145,25 +137,13 @@ public class WebappLoader extends LifecycleMBeanBase
}
if (getState().isAvailable()) {
- throw new IllegalStateException(
- sm.getString("webappLoader.setContext.ise"));
- }
-
- // Deregister from the old Context (if any)
- if (this.context != null) {
- this.context.removePropertyChangeListener(this);
+ throw new IllegalStateException(sm.getString("webappLoader.setContext.ise"));
}
// Process this property change
Context oldContext = this.context;
this.context = context;
support.firePropertyChange("context", oldContext, this.context);
-
- // Register with the new Container (if any)
- if (this.context != null) {
- setReloadable(this.context.getReloadable());
- this.context.addPropertyChangeListener(this);
- }
}
@@ -210,31 +190,6 @@ public class WebappLoader extends LifecycleMBeanBase
}
- /**
- * Return the reloadable flag for this Loader.
- */
- @Override
- public boolean getReloadable() {
- return this.reloadable;
- }
-
-
- /**
- * Set the reloadable flag for this Loader.
- *
- * @param reloadable The new reloadable flag
- */
- @Override
- public void setReloadable(boolean reloadable) {
- // Process this property change
- boolean oldReloadable = this.reloadable;
- this.reloadable = reloadable;
- support.firePropertyChange("reloadable",
- Boolean.valueOf(oldReloadable),
- Boolean.valueOf(this.reloadable));
- }
-
-
// --------------------------------------------------------- Public Methods
/**
@@ -257,17 +212,15 @@ public class WebappLoader extends LifecycleMBeanBase
*/
@Override
public void backgroundProcess() {
- if (reloadable && modified()) {
- try {
- Thread.currentThread().setContextClassLoader
- (WebappLoader.class.getClassLoader());
- if (context != null) {
+ Context context = getContext();
+ if (context != null) {
+ if (context.getReloadable() && modified()) {
+ ClassLoader originalTccl = Thread.currentThread().getContextClassLoader();
+ try {
+ Thread.currentThread().setContextClassLoader(WebappLoader.class.getClassLoader());
context.reload();
- }
- } finally {
- if (context != null && context.getLoader() != null) {
- Thread.currentThread().setContextClassLoader
- (context.getLoader().getClassLoader());
+ } finally {
+ Thread.currentThread().setContextClassLoader(originalTccl);
}
}
}
@@ -437,34 +390,6 @@ public class WebappLoader extends LifecycleMBeanBase
}
- // ----------------------------------------- PropertyChangeListener Methods
-
-
- /**
- * Process property change events from our associated Context.
- *
- * @param event The property change event that has occurred
- */
- @Override
- public void propertyChange(PropertyChangeEvent event) {
-
- // Validate the source of this event
- if (!(event.getSource() instanceof Context))
- return;
-
- // Process a relevant property change
- if (event.getPropertyName().equals("reloadable")) {
- try {
- setReloadable
- ( ((Boolean) event.getNewValue()).booleanValue() );
- } catch (NumberFormatException e) {
- log.error(sm.getString("webappLoader.reloadable",
- event.getNewValue().toString()));
- }
- }
- }
-
-
// ------------------------------------------------------- Private Methods
/**
diff --git a/java/org/apache/catalina/loader/mbeans-descriptors.xml b/java/org/apache/catalina/loader/mbeans-descriptors.xml
index 597ea51..c93596f 100644
--- a/java/org/apache/catalina/loader/mbeans-descriptors.xml
+++ b/java/org/apache/catalina/loader/mbeans-descriptors.xml
@@ -32,10 +32,6 @@
description="The 'follow standard delegation model' flag that will be used to configure our ClassLoader"
type="boolean"/>
- <attribute name="reloadable"
- description="The reloadable flag for this Loader"
- type="boolean"/>
-
<attribute name="stateName"
description="The name of the LifecycleState that this component is currently in"
type="java.lang.String"
diff --git a/test/org/apache/catalina/startup/TestContextConfigAnnotation.java b/test/org/apache/catalina/startup/TestContextConfigAnnotation.java
index 8e4f2b6..d20af63 100644
--- a/test/org/apache/catalina/startup/TestContextConfigAnnotation.java
+++ b/test/org/apache/catalina/startup/TestContextConfigAnnotation.java
@@ -343,10 +343,6 @@ public class TestContextConfigAnnotation {
@Override
public void setDelegate(boolean delegate) {}
@Override
- public boolean getReloadable() { return false; }
- @Override
- public void setReloadable(boolean reloadable) {}
- @Override
public void addPropertyChangeListener(PropertyChangeListener l) {
}
@Override
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index cb70a71..8f2bf49 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -57,6 +57,11 @@
it does not contain a charset. Also remove the outdated workaround for
the buggy Adobe Reader 9 plug-in for IE. (markt)
</fix>
+ <scode>
+ Remove the <code>reloadable</code> attribute from the
+ <code>Loader</code> interface as it is duplicated on the
+ <code>Context</code> interface. (markt)
+ </scode>
</changelog>
</subsection>
</section>
diff --git a/webapps/docs/config/loader.xml b/webapps/docs/config/loader.xml
index b8ad79b..16cb521 100644
--- a/webapps/docs/config/loader.xml
+++ b/webapps/docs/config/loader.xml
@@ -89,23 +89,6 @@
parent class loaders to find requested classes or resources.</p>
</attribute>
- <attribute name="reloadable" required="false">
- <p>Set to <code>true</code> if you want Catalina to monitor classes in
- <code>/WEB-INF/classes/</code> and <code>/WEB-INF/lib</code> for
- changes, and automatically reload the web application if a change
- is detected. This feature is very useful during application
- development, but it requires significant runtime overhead and is
- not recommended for use on deployed production applications. You
- can use the <a href="../manager-howto.html">Manager</a> web
- application, however, to trigger reloads of deployed applications
- on demand.</p>
-
- <p><strong>NOTE</strong> - The value for this property will be
- inherited from the <code>reloadable</code> attribute you set on
- the surrounding <a href="context.html">Context</a> component,
- and any value you explicitly set here will be replaced.</p>
- </attribute>
-
</attributes>
</subsection>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org