This is an automated email from the ASF dual-hosted git repository.
markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat-tck.git
The following commit(s) were added to refs/heads/main by this push:
new c1abb58 Add some configuration required for tests to pass
c1abb58 is described below
commit c1abb58917de0890d12a47e86ab4c361f2a5d44f
Author: Mark Thomas <[email protected]>
AuthorDate: Mon Mar 18 15:38:16 2024 +0000
Add some configuration required for tests to pass
---
.../tck/servlet/TomcatServletTckConfiguration.java | 47 ++++++++++++++++++++--
1 file changed, 44 insertions(+), 3 deletions(-)
diff --git
a/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
b/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
index 4cbe69a..afd9bfb 100644
---
a/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
+++
b/servlet-tck/src/test/java/org/apache/tomcat/tck/servlet/TomcatServletTckConfiguration.java
@@ -18,7 +18,12 @@ package org.apache.tomcat.tck.servlet;
import java.lang.reflect.Field;
+import org.apache.catalina.Container;
+import org.apache.catalina.Context;
+import org.apache.catalina.connector.Connector;
+import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
+import org.jboss.arquillian.container.spi.event.container.AfterDeploy;
import org.jboss.arquillian.container.spi.event.container.BeforeDeploy;
import org.jboss.arquillian.core.api.annotation.Observes;
import org.jboss.arquillian.core.spi.LoadableExtension;
@@ -33,22 +38,58 @@ public class TomcatServletTckConfiguration implements
LoadableExtension {
public static class ServletObserver {
- public void configurePorts(@Observes final BeforeDeploy beforeDeploy) {
+ public void configureTomcat(@Observes final BeforeDeploy beforeDeploy)
{
Tomcat10EmbeddedContainer container = (Tomcat10EmbeddedContainer)
beforeDeploy.getDeployableContainer();
try {
+ // Obtain reference to Tomcat instance
Field tomcatField =
Tomcat10EmbeddedContainer.class.getDeclaredField("tomcat");
tomcatField.setAccessible(true);
Tomcat tomcat = (Tomcat) tomcatField.get(container);
- int localPort = tomcat.getConnector().getLocalPort();
+ // Update Arquillian configuration with port being used by
Tomcat
+ Connector connector = tomcat.getConnector();
+ int localPort = connector.getLocalPort();
Field configurationField =
Tomcat10EmbeddedContainer.class.getDeclaredField("configuration");
configurationField.setAccessible(true);
Object configuration = configurationField.get(container);
-
Field portField =
container.getConfigurationClass().getDeclaredField("bindHttpPort");
portField.setAccessible(true);
portField.set(configuration, Integer.valueOf(localPort));
+ // Add trailer headers used in TCK to allow list
+ connector.setProperty("allowedTrailerHeaders",
"myTrailer,myTrailer2");
+
+ // Add expected users
+ tomcat.addUser("j2ee", "j2ee");
+ tomcat.addRole("j2ee", "Administrator");
+ tomcat.addRole("j2ee", "Employee");
+ tomcat.addUser("javajoe", "javajoe");
+ tomcat.addRole("javajoe", "VP");
+ tomcat.addRole("javajoe", "Manager");
+ } catch (ReflectiveOperationException e) {
+ throw new RuntimeException(e);
+ }
+ }
+
+ public void configureContext(@Observes final AfterDeploy afterDeploy) {
+ Tomcat10EmbeddedContainer container = (Tomcat10EmbeddedContainer)
afterDeploy.getDeployableContainer();
+ try {
+ // Obtain reference to Tomcat instance
+ Field tomcatField =
Tomcat10EmbeddedContainer.class.getDeclaredField("tomcat");
+ tomcatField.setAccessible(true);
+ Tomcat tomcat = (Tomcat) tomcatField.get(container);
+
+ // Obtain reference to web application(s)
+ Container contexts[] = tomcat.getHost().findChildren();
+ for (Container context : contexts) {
+
+ // Configure expected encoding mapping
+ StandardContext stdContext = (StandardContext) context;
+ stdContext.addLocaleEncodingMappingParameter("ja",
"Shift_JIS");
+
+ // Enable cross-context dispatches
+ stdContext.setCrossContext(true);
+ }
} catch (ReflectiveOperationException e) {
throw new RuntimeException(e);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]