diff --git a/ejb30/pom.xml b/ejb30/pom.xml
index d12fa5da91..933ca2781a 100644
--- a/ejb30/pom.xml
+++ b/ejb30/pom.xml
@@ -45,10 +45,6 @@
${project.groupId}
common
-
- ${project.groupId}
- servlet
-
org.apache.commons
commons-lang3
@@ -102,6 +98,18 @@
jakarta.servlet.jsp-api
+
+ org.jboss.shrinkwrap
+ shrinkwrap-impl-base
+
+
+ org.jboss.arquillian.junit5
+ arquillian-junit5-core
+
+
+ org.jboss.arquillian.container
+ arquillian-container-test-api
+
jakarta.tck.arquillian
arquillian-protocol-common
diff --git a/ejb30/src/main/java/com/sun/ts/tests/servlet/common/servlets/HttpTCKServlet.java b/ejb30/src/main/java/com/sun/ts/tests/servlet/common/servlets/HttpTCKServlet.java
new file mode 100644
index 0000000000..bc2d28633b
--- /dev/null
+++ b/ejb30/src/main/java/com/sun/ts/tests/servlet/common/servlets/HttpTCKServlet.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2007, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.servlet.common.servlets;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import java.lang.System.Logger;
+
+/**
+ * GenericTCKServlet.java
+ *
+ * Any test that would normally extend GenericServlet will instead extend this class. This will provide a simple
+ * framework from invoking various tests defined as methods within the servlet that extends this class.
+ *
+ * Created: Wed Jul 31 20:57:16 2002
+ *
+ * @version %I%
+ */
+public abstract class HttpTCKServlet extends HttpServlet {
+
+ private static final String TEXT_PLAIN = "text/plain";
+
+ protected static final Logger logger = System.getLogger(HttpTCKServlet.class.getName());
+
+ /**
+ * TEST_HEADER
is the constant for the testname
header.
+ */
+ private static final String TEST_HEADER = "testname";
+
+ /**
+ * TEST_ARGS
is an array of Classes used during reflection.
+ */
+ private static final Class[] TEST_ARGS = { HttpServletRequest.class, HttpServletResponse.class };
+
+ /**
+ * init
initializes the servlet.
+ *
+ * @param config - ServletConfig
+ */
+ public void init(ServletConfig config) throws ServletException {
+ super.init(config);
+ }
+
+ /**
+ * invokeTest
uses reflection to invoke test methods in child classes of this particular class.
+ *
+ * @param req - HttpServletRequest
+ * @param res - HttpServletResponse
+ * @exception ServletException if an error occurs
+ */
+ protected void invokeTest(HttpServletRequest req, HttpServletResponse res) throws ServletException {
+ res.setContentType(TEXT_PLAIN);
+ char[] temp = req.getParameter(TEST_HEADER).toCharArray();
+ temp[0] = Character.toLowerCase(temp[0]);
+ String test = new String(temp);
+
+ try {
+ Method method = this.getClass().getMethod(test, TEST_ARGS);
+ method.invoke(this, new Object[] { req, res });
+ } catch (InvocationTargetException ite) {
+ throw new ServletException(ite.getTargetException());
+ } catch (NoSuchMethodException nsme) {
+ throw new ServletException("Test: " + test + " does not exist");
+ } catch (Throwable t) {
+ throw new ServletException("Error executing test: " + test, t);
+ }
+ }
+
+ /**
+ * A basic implementation of the doGet
method which will call invokeTest.
+ *
+ * @param req - HttpServletRequest
+ * @param res - HttpServletResponse
+ * @exception ServletException if an error occurs
+ * @exception IOException if an IO error occurs
+ */
+ public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
+ invokeTest(req, res);
+ }
+
+ /**
+ * A basic implementation of the doPost
method which will call invokeTest.
+ *
+ * @param req - HttpServletRequest
+ * @param res - HttpServletResponse
+ * @exception ServletException if an error occurs
+ * @exception IOException if an IO error occurs
+ */
+ public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
+ invokeTest(req, res);
+ }
+
+}
diff --git a/javaee/pom.xml b/javaee/pom.xml
index aed9648a76..ce4e9aae99 100644
--- a/javaee/pom.xml
+++ b/javaee/pom.xml
@@ -42,8 +42,7 @@
${project.groupId}
- servlet
- 11.0.0-SNAPSHOT
+ common
jakarta.inject
diff --git a/javaee/src/main/java/com/sun/ts/tests/servlet/common/servlets/HttpTCKServlet.java b/javaee/src/main/java/com/sun/ts/tests/servlet/common/servlets/HttpTCKServlet.java
new file mode 100644
index 0000000000..bc2d28633b
--- /dev/null
+++ b/javaee/src/main/java/com/sun/ts/tests/servlet/common/servlets/HttpTCKServlet.java
@@ -0,0 +1,114 @@
+/*
+ * Copyright (c) 2007, 2020 Oracle and/or its affiliates. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v. 2.0, which is available at
+ * http://www.eclipse.org/legal/epl-2.0.
+ *
+ * This Source Code may also be made available under the following Secondary
+ * Licenses when the conditions for such availability set forth in the
+ * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
+ * version 2 with the GNU Classpath Exception, which is available at
+ * https://www.gnu.org/software/classpath/license.html.
+ *
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
+ */
+
+package com.sun.ts.tests.servlet.common.servlets;
+
+import java.io.IOException;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+
+import jakarta.servlet.ServletConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.http.HttpServlet;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletResponse;
+import java.lang.System.Logger;
+
+/**
+ * GenericTCKServlet.java
+ *
+ * Any test that would normally extend GenericServlet will instead extend this class. This will provide a simple
+ * framework from invoking various tests defined as methods within the servlet that extends this class.
+ *
+ * Created: Wed Jul 31 20:57:16 2002
+ *
+ * @version %I%
+ */
+public abstract class HttpTCKServlet extends HttpServlet {
+
+ private static final String TEXT_PLAIN = "text/plain";
+
+ protected static final Logger logger = System.getLogger(HttpTCKServlet.class.getName());
+
+ /**
+ * TEST_HEADER
is the constant for the testname
header.
+ */
+ private static final String TEST_HEADER = "testname";
+
+ /**
+ * TEST_ARGS
is an array of Classes used during reflection.
+ */
+ private static final Class[] TEST_ARGS = { HttpServletRequest.class, HttpServletResponse.class };
+
+ /**
+ * init
initializes the servlet.
+ *
+ * @param config - ServletConfig
+ */
+ public void init(ServletConfig config) throws ServletException {
+ super.init(config);
+ }
+
+ /**
+ * invokeTest
uses reflection to invoke test methods in child classes of this particular class.
+ *
+ * @param req - HttpServletRequest
+ * @param res - HttpServletResponse
+ * @exception ServletException if an error occurs
+ */
+ protected void invokeTest(HttpServletRequest req, HttpServletResponse res) throws ServletException {
+ res.setContentType(TEXT_PLAIN);
+ char[] temp = req.getParameter(TEST_HEADER).toCharArray();
+ temp[0] = Character.toLowerCase(temp[0]);
+ String test = new String(temp);
+
+ try {
+ Method method = this.getClass().getMethod(test, TEST_ARGS);
+ method.invoke(this, new Object[] { req, res });
+ } catch (InvocationTargetException ite) {
+ throw new ServletException(ite.getTargetException());
+ } catch (NoSuchMethodException nsme) {
+ throw new ServletException("Test: " + test + " does not exist");
+ } catch (Throwable t) {
+ throw new ServletException("Error executing test: " + test, t);
+ }
+ }
+
+ /**
+ * A basic implementation of the doGet
method which will call invokeTest.
+ *
+ * @param req - HttpServletRequest
+ * @param res - HttpServletResponse
+ * @exception ServletException if an error occurs
+ * @exception IOException if an IO error occurs
+ */
+ public void doGet(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
+ invokeTest(req, res);
+ }
+
+ /**
+ * A basic implementation of the doPost
method which will call invokeTest.
+ *
+ * @param req - HttpServletRequest
+ * @param res - HttpServletResponse
+ * @exception ServletException if an error occurs
+ * @exception IOException if an IO error occurs
+ */
+ public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException {
+ invokeTest(req, res);
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index 68bddd3a7f..a1a0029cd9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -291,12 +291,6 @@
${project.version}
-
- ${project.groupId}
- servlet
- ${project.version}
-
-
${project.groupId}
signaturetest