You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by vi...@apache.org on 2014/02/04 21:18:36 UTC
svn commit: r1564461 - in /tomcat/trunk:
java/org/apache/tomcat/util/descriptor/web/
test/org/apache/catalina/startup/ test/webapp-fragments/WEB-INF/
webapps/docs/
Author: violetagg
Date: Tue Feb 4 20:18:35 2014
New Revision: 1564461
URL: http://svn.apache.org/r1564461
Log:
According to JavaEE specification (EE.5.4.1.3) when an env entry is specified in the web deployment descriptor and with annotation then the definition in the web deployment descriptor is with priority.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java
tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java
tomcat/trunk/test/webapp-fragments/WEB-INF/web.xml
tomcat/trunk/webapps/docs/changelog.xml
Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java?rev=1564461&r1=1564460&r2=1564461&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/WebRuleSet.java Tue Feb 4 20:18:35 2014
@@ -526,6 +526,7 @@ public class WebRuleSet extends RuleSetB
digester.addSetNext(fullPrefix + "/env-entry",
"addEnvEntry",
"org.apache.tomcat.util.descriptor.web.ContextEnvironment");
+ digester.addRule(fullPrefix + "/env-entry", new SetOverrideRule());
digester.addCallMethod(fullPrefix + "/env-entry/description",
"setDescription", 0);
digester.addCallMethod(fullPrefix + "/env-entry/env-entry-name",
@@ -1350,3 +1351,19 @@ final class LifecycleCallbackRule extend
super.end(namespace, name);
}
}
+
+final class SetOverrideRule extends Rule {
+
+ public SetOverrideRule() {
+ // no-op
+ }
+
+ @Override
+ public void begin(String namespace, String name, Attributes attributes) throws Exception {
+ ContextEnvironment envEntry = (ContextEnvironment) digester.peek();
+ envEntry.setOverride(false);
+ if (digester.getLogger().isDebugEnabled()) {
+ digester.getLogger().debug(envEntry.getClass().getName() + ".setOverride(false)");
+ }
+ }
+}
Modified: tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java?rev=1564461&r1=1564460&r2=1564461&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TestContextConfig.java Tue Feb 4 20:18:35 2014
@@ -143,7 +143,7 @@ public class TestContextConfig extends T
tomcat.start();
assertPageContains("/test/testServlet",
- "envEntry1: 1 envEntry2: 2 envEntry3: 33 envEntry4: 4");
+ "envEntry1: 1 envEntry2: 2 envEntry3: 33 envEntry4: 4 envEntry5: 55 envEntry6: 66");
}
@Test
Modified: tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java?rev=1564461&r1=1564460&r2=1564461&view=diff
==============================================================================
--- tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java (original)
+++ tomcat/trunk/test/org/apache/catalina/startup/TesterServletWithAnnotations.java Tue Feb 4 20:18:35 2014
@@ -38,6 +38,11 @@ public class TesterServletWithAnnotation
private int envEntry4;
+ @Resource(name = "envEntry5", mappedName = "5")
+ private int envEntry5;
+
+ private int envEntry6;
+
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
@@ -46,6 +51,8 @@ public class TesterServletWithAnnotation
resp.getWriter().print(" envEntry2: " + envEntry2);
resp.getWriter().print(" envEntry3: " + envEntry3);
resp.getWriter().print(" envEntry4: " + envEntry4);
+ resp.getWriter().print(" envEntry5: " + envEntry5);
+ resp.getWriter().print(" envEntry6: " + envEntry6);
}
public void setEnvEntry2(int envEntry2) {
@@ -61,4 +68,9 @@ public class TesterServletWithAnnotation
public void setEnvEntry4(int envEntry4) {
this.envEntry4 = envEntry4;
}
+
+ @Resource(name = "envEntry6", mappedName = "6")
+ public void setEnvEntry6(int envEntry6) {
+ this.envEntry6 = envEntry6;
+ }
}
\ No newline at end of file
Modified: tomcat/trunk/test/webapp-fragments/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/test/webapp-fragments/WEB-INF/web.xml?rev=1564461&r1=1564460&r2=1564461&view=diff
==============================================================================
--- tomcat/trunk/test/webapp-fragments/WEB-INF/web.xml (original)
+++ tomcat/trunk/test/webapp-fragments/WEB-INF/web.xml Tue Feb 4 20:18:35 2014
@@ -76,4 +76,14 @@
<injection-target-name>envEntry3</injection-target-name>
</injection-target>
</env-entry>
+ <env-entry>
+ <env-entry-name>envEntry5</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>55</env-entry-value>
+ </env-entry>
+ <env-entry>
+ <env-entry-name>envEntry6</env-entry-name>
+ <env-entry-type>java.lang.Integer</env-entry-type>
+ <env-entry-value>66</env-entry-value>
+ </env-entry>
</web-app>
\ No newline at end of file
Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1564461&r1=1564460&r2=1564461&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Tue Feb 4 20:18:35 2014
@@ -69,6 +69,11 @@
constructing the address of a JMX API connector server. Patch is
provided by Jim Talbut. (violetagg)
</fix>
+ <fix>
+ When environment entry with one and the same name is defined in the web
+ deployment descriptor and with annotation then the one specified in the
+ web deployment descriptor is with priority. (violetagg)
+ </fix>
</changelog>
</subsection>
<subsection name="Coyote">
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org