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
commit fd064450fe93c31057816d4a2923a12a7ab59056 Author: Mark Thomas <ma...@apache.org> AuthorDate: Fri Mar 29 16:49:46 2024 +0000 Add support for running tests in parallel --- .../tomcat/tck/jsp/TomcatJspTckConfiguration.java | 66 ++++++++++++++++++++++ ...org.jboss.arquillian.core.spi.LoadableExtension | 1 + jsp-tck/src/test/resources/arquillian.xml | 11 ++++ 3 files changed, 78 insertions(+) diff --git a/jsp-tck/src/test/java/org/apache/tomcat/tck/jsp/TomcatJspTckConfiguration.java b/jsp-tck/src/test/java/org/apache/tomcat/tck/jsp/TomcatJspTckConfiguration.java new file mode 100644 index 0000000..f7dbb38 --- /dev/null +++ b/jsp-tck/src/test/java/org/apache/tomcat/tck/jsp/TomcatJspTckConfiguration.java @@ -0,0 +1,66 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.tomcat.tck.jsp; + +import java.lang.reflect.Field; +import java.net.URL; + +import org.apache.catalina.Host; +import org.apache.catalina.connector.Connector; +import org.apache.catalina.startup.Tomcat; +import org.apache.tomcat.util.net.SSLHostConfig; +import org.apache.tomcat.util.net.SSLHostConfigCertificate; +import org.apache.tomcat.util.net.SSLHostConfigCertificate.Type; +import org.apache.tomcat.util.scan.StandardJarScanner; +import org.jboss.arquillian.container.spi.event.container.BeforeDeploy; +import org.jboss.arquillian.core.api.annotation.Observes; +import org.jboss.arquillian.core.spi.LoadableExtension; +import org.jboss.arquillian.container.tomcat.embedded.EmbeddedContextConfig; +import org.jboss.arquillian.container.tomcat.embedded.Tomcat10EmbeddedContainer; + +public class TomcatJspTckConfiguration implements LoadableExtension { + + @Override + public void register(ExtensionBuilder builder) { + builder.observer(JspObserver.class); + } + + public static class JspObserver { + + public void configureContext(@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); + Connector connectorHttp = tomcat.getConnector(); + int localPort = connectorHttp.getLocalPort(); + + // Update Arquillian configuration with port being used by Tomcat + 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)); + } catch (ReflectiveOperationException e) { + throw new RuntimeException(e); + } + } + } +} diff --git a/jsp-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension b/jsp-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension new file mode 100644 index 0000000..9a04876 --- /dev/null +++ b/jsp-tck/src/test/resources/META-INF/services/org.jboss.arquillian.core.spi.LoadableExtension @@ -0,0 +1 @@ +org.apache.tomcat.tck.jsp.TomcatJspTckConfiguration \ No newline at end of file diff --git a/jsp-tck/src/test/resources/arquillian.xml b/jsp-tck/src/test/resources/arquillian.xml new file mode 100644 index 0000000..9367c9f --- /dev/null +++ b/jsp-tck/src/test/resources/arquillian.xml @@ -0,0 +1,11 @@ +<?xml version="1.0"?> +<arquillian xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns="http://jboss.org/schema/arquillian" + xsi:schemaLocation="http://jboss.org/schema/arquillian http://www.jboss.org/schema/arquillian/arquillian_1_0.xsd"> + + <container qualifier="http" default="true"> + <configuration> + <property name="bindHttpPort">0</property> + </configuration> + </container> +</arquillian> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org