exceptionHandler) {
-
- super(requestTypeClass, responseTypeClass, requestReader, responseWriter, securityContextWriter, exceptionHandler);
- Timer.start(TIMER_STRUTS_CONTAINER_CONSTRUCTOR);
- this.initialized = false;
- Timer.stop(TIMER_STRUTS_CONTAINER_CONSTRUCTOR);
- }
-
- @Override
- protected AwsHttpServletResponse getContainerResponse(HttpServletRequest request, CountDownLatch latch) {
- return new AwsHttpServletResponse(request, latch);
- }
-
- @Override
- protected void handleRequest(HttpServletRequest httpServletRequest,
- AwsHttpServletResponse httpServletResponse,
- Context lambdaContext) throws Exception {
- Timer.start(TIMER_STRUTS_HANDLE_REQUEST);
- if (!this.initialized) {
- initialize();
- }
-
- if (AwsHttpServletRequest.class.isAssignableFrom(httpServletRequest.getClass())) {
- ((AwsHttpServletRequest)httpServletRequest).setServletContext(this.getServletContext());
- }
- this.doFilter(httpServletRequest, httpServletResponse, null);
- String responseStatusCode = httpServletResponse.getHeader(HEADER_STRUTS_STATUS_CODE);
- if (responseStatusCode != null) {
- httpServletResponse.setStatus(Integer.parseInt(responseStatusCode));
- }
- Timer.stop(TIMER_STRUTS_HANDLE_REQUEST);
- }
-
- @Override
- public void initialize() throws ContainerInitializationException {
- log.info("Initialize Struts Lambda Application ...");
- Timer.start(TIMER_STRUTS_COLD_START_INIT);
- try {
- if (this.startupHandler != null) {
- this.startupHandler.onStartup(this.getServletContext());
- }
- StrutsPrepareAndExecuteFilter filter = new StrutsPrepareAndExecuteFilter();
- FilterRegistration.Dynamic filterRegistration = this.getServletContext()
- .addFilter(STRUTS_FILTER_NAME, filter);
- filterRegistration.addMappingForUrlPatterns(
- EnumSet.of(DispatcherType.REQUEST, DispatcherType.ASYNC, DispatcherType.INCLUDE, DispatcherType.FORWARD),
- true, "/*");
- } catch (Exception e) {
- throw new ContainerInitializationException("Could not initialize Struts container", e);
- }
-
- this.initialized = true;
- Timer.stop(TIMER_STRUTS_COLD_START_INIT);
- log.info("... initialize of Struts Lambda Application completed!");
- }
-
- public Servlet getServlet() {
- return null;
- }
-}
diff --git a/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java b/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java
deleted file mode 100644
index 0e1ccfa17..000000000
--- a/aws-serverless-java-container-struts/src/main/java/com/amazonaws/serverless/proxy/struts/StrutsLambdaHandler.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Copyright 2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file 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 com.amazonaws.serverless.proxy.struts;
-
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.amazonaws.services.lambda.runtime.RequestStreamHandler;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * The lambda handler to handle the requests.
- *
- *
- * com.amazonaws.serverless.proxy.struts.StrutsLambdaHandler::handleRequest
- *
- */
-public class StrutsLambdaHandler implements RequestStreamHandler {
-
- private final StrutsLambdaContainerHandler handler = StrutsLambdaContainerHandler
- .getAwsProxyHandler();
-
- @Override
- public void handleRequest(InputStream inputStream, OutputStream outputStream, Context context)
- throws IOException {
- handler.proxyStream(inputStream, outputStream, context);
- }
-}
diff --git a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java b/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java
deleted file mode 100644
index 6d7e2a37f..000000000
--- a/aws-serverless-java-container-struts/src/test/java/com/amazonaws/serverless/proxy/struts/StrutsAwsProxyTest.java
+++ /dev/null
@@ -1,378 +0,0 @@
-/*
- * Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
- *
- * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance
- * with the License. A copy of the License is located at
- *
- * http://aws.amazon.com/apache2.0/
- *
- * or in the "license" file accompanying this file. This file 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 com.amazonaws.serverless.proxy.struts;
-
-
-import com.amazonaws.serverless.proxy.internal.testutils.AwsProxyRequestBuilder;
-import com.amazonaws.serverless.proxy.internal.testutils.MockLambdaContext;
-import com.amazonaws.serverless.proxy.model.AwsProxyRequest;
-import com.amazonaws.serverless.proxy.model.AwsProxyResponse;
-import com.amazonaws.serverless.proxy.model.HttpApiV2ProxyRequest;
-import com.amazonaws.serverless.proxy.struts.echoapp.EchoAction;
-import com.amazonaws.services.lambda.runtime.Context;
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.core.type.TypeReference;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.struts2.junit.StrutsRestTestCase;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.MethodSource;
-
-import jakarta.ws.rs.core.Response;
-import java.io.IOException;
-import java.io.UnsupportedEncodingException;
-import java.net.URLDecoder;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.UUID;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.junit.jupiter.api.Assumptions.assumeTrue;
-
-/**
- * Unit test class for the Struts2 AWS_PROXY default implementation
- */
-public class StrutsAwsProxyTest extends StrutsRestTestCase {
- private static final String CUSTOM_HEADER_KEY = "x-custom-header";
- private static final String CUSTOM_HEADER_VALUE = "my-custom-value";
- private static final String AUTHORIZER_PRINCIPAL_ID = "test-principal-" + UUID.randomUUID().toString();
- private static final String HTTP_METHOD_GET = "GET";
- private static final String QUERY_STRING_MODE = "mode";
- private static final String QUERY_STRING_KEY = "message";
- private static final String QUERY_STRING_ENCODED_VALUE = "Hello Struts2";
- private static final String USER_PRINCIPAL = "user1";
- private static final String CONTENT_TYPE_APPLICATION_JSON = "application/json; charset=UTF-8";
-
-
- private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();
- private final StrutsLambdaContainerHandler handler = StrutsLambdaContainerHandler
- .getAwsProxyHandler();
- private final StrutsLambdaContainerHandler httpApiHandler = StrutsLambdaContainerHandler
- .getHttpApiV2ProxyHandler();
- private final Context lambdaContext = new MockLambdaContext();
- private String type;
-
- public void initStrutsAwsProxyTest(String reqType) {
- type = reqType;
- }
-
- public static Collection