Author: markt Date: Wed Jun 12 20:41:33 2013 New Revision: 1492415 URL: http://svn.apache.org/r1492415 Log: Fix API compatibility issues with r1492331
Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/WebAnnotationSet.java tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java?rev=1492415&r1=1492414&r2=1492415&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/Context.java Wed Jun 12 20:41:33 2013 @@ -725,6 +725,18 @@ public interface Context extends Contain /** + * Add a new Listener class name to the set of Listeners + * configured for this application. + * + * @param listener Java class name of a listener class + * + * @deprecated Use {@link #addApplicationListener(ApplicationListener)} + */ + @Deprecated + public void addApplicationListener(String listener); + + + /** * Add a new application parameter for this application. * * @param parameter The new application parameter @@ -898,8 +910,12 @@ public interface Context extends Contain /** * Return the set of application listener class names configured * for this application. + * + * @deprecated The return type of this method will be changing to + * {@link ApplicationListener}[] in Tomcat 8 */ - public ApplicationListener[] findApplicationListeners(); + @Deprecated + public String[] findApplicationListeners(); /** Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java?rev=1492415&r1=1492414&r2=1492415&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/core/StandardContext.java Wed Jun 12 20:41:33 2013 @@ -2780,6 +2780,12 @@ public class StandardContext extends Con // -------------------------------------------------------- Context Methods + @Override + public void addApplicationListener(String listener) { + addApplicationListener(new ApplicationListener(listener, false)); + } + + /** * Add a new Listener class name to the set of Listeners * configured for this application. @@ -3423,9 +3429,15 @@ public class StandardContext extends Con * for this application. */ @Override - public ApplicationListener[] findApplicationListeners() { + public String[] findApplicationListeners() { - return (applicationListeners); + ArrayList<String> list = + new ArrayList<String>(applicationListeners.length); + for (ApplicationListener applicationListener: applicationListeners) { + list.add(applicationListener.getClassName()); + } + + return list.toArray(new String[list.size()]); } @@ -4824,7 +4836,7 @@ public class StandardContext extends Con log.debug("Configuring application event listeners"); // Instantiate the required listeners - ApplicationListener listeners[] = findApplicationListeners(); + ApplicationListener listeners[] = applicationListeners; Object results[] = new Object[listeners.length]; boolean ok = true; Set<Object> tldListeners = new HashSet<Object>(); Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java?rev=1492415&r1=1492414&r2=1492415&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/FailedContext.java Wed Jun 12 20:41:33 2013 @@ -450,7 +450,9 @@ public class FailedContext extends Lifec @Override public void addApplicationListener(ApplicationListener listener) { /* NO-OP */ } @Override - public ApplicationListener[] findApplicationListeners() { return null; } + public void addApplicationListener(String listener) { /* NO-OP */ } + @Override + public String[] findApplicationListeners() { return null; } @Override public void removeApplicationListener(String listener) { /* NO-OP */ } Modified: tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/WebAnnotationSet.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/WebAnnotationSet.java?rev=1492415&r1=1492414&r2=1492415&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/WebAnnotationSet.java (original) +++ tomcat/tc7.0.x/trunk/java/org/apache/catalina/startup/WebAnnotationSet.java Wed Jun 12 20:41:33 2013 @@ -27,7 +27,6 @@ import javax.annotation.security.RunAs; import org.apache.catalina.Container; import org.apache.catalina.Context; import org.apache.catalina.Wrapper; -import org.apache.catalina.deploy.ApplicationListener; import org.apache.catalina.deploy.ContextEnvironment; import org.apache.catalina.deploy.ContextResource; import org.apache.catalina.deploy.ContextResourceEnvRef; @@ -79,11 +78,12 @@ public class WebAnnotationSet { */ protected static void loadApplicationListenerAnnotations(Context context) { Class<?> classClass = null; - ApplicationListener[] applicationListeners = + @SuppressWarnings("deprecation") + String[] applicationListeners = context.findApplicationListeners(); for (int i = 0; i < applicationListeners.length; i++) { classClass = Introspection.loadClass(context, - applicationListeners[i].getClassName()); + applicationListeners[i]); if (classClass == null) { continue; } Modified: tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java?rev=1492415&r1=1492414&r2=1492415&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java (original) +++ tomcat/tc7.0.x/trunk/test/org/apache/catalina/core/TesterContext.java Wed Jun 12 20:41:33 2013 @@ -630,6 +630,11 @@ public class TesterContext implements Co } @Override + public void addApplicationListener(String listener) { + // NO-OP + } + + @Override public void addApplicationParameter(ApplicationParameter parameter) { // NO-OP } @@ -726,7 +731,7 @@ public class TesterContext implements Co } @Override - public ApplicationListener[] findApplicationListeners() { + public String[] findApplicationListeners() { return null; } Modified: tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml?rev=1492415&r1=1492414&r2=1492415&view=diff ============================================================================== --- tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml (original) +++ tomcat/tc7.0.x/trunk/webapps/docs/changelog.xml Wed Jun 12 20:41:33 2013 @@ -56,6 +56,16 @@ issues to not "pop up" wrt. others). --> <section name="Tomcat 7.0.42 (markt)"> + <subsection name="Catalina"> + <changelog> + <fix> + Enforce the restriction described in section 4.4 of the Servlet 3.0 + specification that requires the new pluggability methods only to be + available to <code>ServletContextListener</code>s defined in one of the + specified ways. (markt) + </fix> + </changelog> + </subsection> <subsection name="Cluster"> <changelog> <fix> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org