Skip to content

Commit

Permalink
project: upgrade Jetty to 12
Browse files Browse the repository at this point in the history
  • Loading branch information
ibodrov committed Jan 5, 2024
1 parent 98a618f commit 792c422
Show file tree
Hide file tree
Showing 20 changed files with 156 additions and 73 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,25 @@
package com.walmartlabs.concord.runtime.v2.runner.context;

/*-
* *****
* Concord
* -----
* Copyright (C) 2017 - 2024 Walmart Inc.
* -----
* Licensed 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.
* =====
*/

import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Test;

Expand Down
24 changes: 18 additions & 6 deletions server/impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -134,8 +134,12 @@
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<groupId>org.eclipse.jetty.ee8</groupId>
<artifactId>jetty-ee8-servlets</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee8</groupId>
<artifactId>jetty-ee8-servlet</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
Expand Down Expand Up @@ -281,15 +285,23 @@
<!-- websockets -->
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-api</artifactId>
<artifactId>jetty-websocket-jetty-api</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-server</artifactId>
<artifactId>jetty-websocket-jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-servlet</artifactId>
<groupId>org.eclipse.jetty.ee8.websocket</groupId>
<artifactId>jetty-ee8-websocket-servlet</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee8.websocket</groupId>
<artifactId>jetty-ee8-websocket-jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee8.websocket</groupId>
<artifactId>jetty-ee8-websocket-javax-server</artifactId>
</dependency>
<dependency>
<groupId>com.walmartlabs.concord.server</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
import com.walmartlabs.concord.server.websocket.ConcordWebSocketServlet;
import org.apache.shiro.mgt.SecurityManager;
import org.apache.shiro.web.mgt.WebSecurityManager;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.ee8.servlet.FilterHolder;

import javax.servlet.ServletContextListener;
import javax.servlet.http.HttpServlet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
import com.walmartlabs.concord.server.sdk.ScheduledTask;
import com.walmartlabs.concord.server.sdk.rest.Component;
import com.walmartlabs.concord.server.sdk.rest.Resource;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.ee8.servlet.ServletHolder;

import javax.servlet.Filter;
import javax.ws.rs.ext.ExceptionMapper;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
* Licensed 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.
Expand All @@ -20,10 +20,11 @@
* =====
*/

import org.eclipse.jetty.ee8.nested.ErrorHandler;
import org.eclipse.jetty.ee8.nested.Request;
import org.eclipse.jetty.http.HttpHeader;
import org.eclipse.jetty.server.Request;
import org.eclipse.jetty.server.handler.ErrorHandler;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
Expand All @@ -38,7 +39,7 @@ public CustomErrorHandler(Set<RequestErrorHandler> handlers) {
}

@Override
public void doError(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException {
public void handle(String target, Request baseRequest, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
for (RequestErrorHandler h : handlers) {
if (h.handle(request, response)) {
// automatically set the correct Cache-Control headers
Expand All @@ -50,6 +51,6 @@ public void doError(String target, Request baseRequest, HttpServletRequest reque
}
}

super.doError(target, baseRequest, request, response);
super.handle(target, baseRequest, request, response);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,14 +21,15 @@
*/

import com.walmartlabs.concord.server.cfg.ServerConfiguration;
import org.eclipse.jetty.ee8.nested.SessionHandler;
import org.eclipse.jetty.ee8.servlet.FilterHolder;
import org.eclipse.jetty.ee8.servlet.ServletContextHandler;
import org.eclipse.jetty.ee8.servlet.ServletHolder;
import org.eclipse.jetty.ee8.websocket.server.config.JettyWebSocketServletContainerInitializer;
import org.eclipse.jetty.jmx.MBeanContainer;
import org.eclipse.jetty.server.*;
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.StatisticsHandler;
import org.eclipse.jetty.server.session.SessionHandler;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -87,6 +88,7 @@ public HttpServer(ServerConfiguration cfg,
contextHandler.setContextPath("/");

// custom 404s and other error handlers
// TODO
contextHandler.setErrorHandler(new CustomErrorHandler(requestErrorHandlers));

// session timeout
Expand Down Expand Up @@ -165,6 +167,8 @@ public HttpServer(ServerConfiguration cfg,
}
});

JettyWebSocketServletContainerInitializer.configure(contextHandler, null);

ContextHandlerCollection contextHandlerCollection = new ContextHandlerCollection();
contextHandlerCollection.addHandler(contextHandler);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
*/

import org.apache.shiro.web.servlet.ShiroFilter;
import org.eclipse.jetty.servlet.FilterHolder;
import org.eclipse.jetty.ee8.servlet.FilterHolder;

import javax.servlet.annotation.WebFilter;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
* =====
*/

import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.ee8.servlet.ServletHolder;
import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;

import javax.servlet.annotation.WebServlet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
*/

import com.walmartlabs.concord.server.cfg.CustomFormConfiguration;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.ee8.servlet.DefaultServlet;
import org.eclipse.jetty.ee8.servlet.ServletHolder;

import javax.inject.Inject;
import javax.servlet.annotation.WebServlet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
* Licensed 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.
Expand All @@ -25,6 +25,7 @@
import org.eclipse.jetty.server.handler.ContextHandlerCollection;
import org.eclipse.jetty.server.handler.ResourceHandler;
import org.eclipse.jetty.util.resource.Resource;
import org.eclipse.jetty.util.resource.ResourceFactory;

/**
* Configures Jetty's {@link org.eclipse.jetty.server.Handler} to serve Concord's static resources.
Expand All @@ -40,9 +41,9 @@ private static ContextHandler classpathResourceHandler(String context, String pa
ContextHandler handler = new ContextHandler();

ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setDirectoriesListed(false);
resourceHandler.setDirAllowed(false);

Resource resource = Resource.newClassPathResource(path);
Resource resource = ResourceFactory.root().newClassLoaderResource(path);
handler.setBaseResource(resource);
handler.setHandler(resourceHandler);
handler.setContextPath(context);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@
*/

import com.walmartlabs.concord.server.cfg.ServerConfiguration;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.ee8.servlet.DefaultServlet;
import org.eclipse.jetty.ee8.servlet.ServletHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
*/

import io.prometheus.client.exporter.MetricsServlet;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.ee8.servlet.ServletHolder;

import javax.inject.Singleton;
import javax.servlet.annotation.WebServlet;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@
* Licensed 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.
Expand All @@ -21,14 +21,15 @@
*/

import com.walmartlabs.concord.server.security.apikey.ApiKeyDao;
import org.eclipse.jetty.websocket.servlet.WebSocketServlet;
import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
import org.eclipse.jetty.ee8.websocket.server.JettyWebSocketServlet;
import org.eclipse.jetty.ee8.websocket.server.JettyWebSocketServletFactory;


import javax.inject.Inject;
import javax.servlet.annotation.WebServlet;

@WebServlet("/websocket")
public class ConcordWebSocketServlet extends WebSocketServlet {
public class ConcordWebSocketServlet extends JettyWebSocketServlet {

private static final long serialVersionUID = 1L;

Expand All @@ -42,7 +43,7 @@ public ConcordWebSocketServlet(WebSocketChannelManager channelManager, ApiKeyDao
}

@Override
public void configure(WebSocketServletFactory factory) {
public void configure(JettyWebSocketServletFactory factory) {
factory.setCreator(new WebSocketCreator(channelManager, apiKeyDao));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import com.walmartlabs.concord.server.queueclient.MessageSerializer;
import com.walmartlabs.concord.server.queueclient.message.Message;
import com.walmartlabs.concord.server.queueclient.message.MessageType;
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.ee8.websocket.api.Session;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,9 @@
import com.walmartlabs.concord.server.queueclient.QueueClient;
import com.walmartlabs.concord.server.security.apikey.ApiKeyDao;
import com.walmartlabs.concord.server.security.apikey.ApiKeyEntry;
import org.eclipse.jetty.websocket.servlet.ServletUpgradeRequest;
import org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse;
import org.eclipse.jetty.ee8.websocket.server.JettyServerUpgradeRequest;
import org.eclipse.jetty.ee8.websocket.server.JettyServerUpgradeResponse;
import org.eclipse.jetty.ee8.websocket.server.JettyWebSocketCreator;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand All @@ -34,7 +35,7 @@
import java.util.Base64;
import java.util.UUID;

public class WebSocketCreator implements org.eclipse.jetty.websocket.servlet.WebSocketCreator {
public class WebSocketCreator implements JettyWebSocketCreator {

private static final Logger log = LoggerFactory.getLogger(WebSocketCreator.class);

Expand All @@ -47,7 +48,7 @@ public WebSocketCreator(WebSocketChannelManager channelManager, ApiKeyDao apiKey
}

@Override
public Object createWebSocket(ServletUpgradeRequest req, ServletUpgradeResponse resp) {
public Object createWebSocket(JettyServerUpgradeRequest req, JettyServerUpgradeResponse resp) {
if (channelManager.isShutdown()) {
sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE, "Server is in the maintenance mode", resp);
return null;
Expand Down Expand Up @@ -85,7 +86,7 @@ private static boolean invalidApiKey(String s) {
}
}

private void sendError(int statusCode, String message, ServletUpgradeResponse resp) {
private void sendError(int statusCode, String message, JettyServerUpgradeResponse resp) {
try {
resp.sendError(statusCode, message);
} catch (IOException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,15 @@
*/

import com.walmartlabs.concord.server.queueclient.MessageSerializer;
import org.eclipse.jetty.websocket.api.Session;
import org.eclipse.jetty.websocket.api.WebSocketPingPongListener;
import org.eclipse.jetty.ee8.websocket.api.Session;
import org.eclipse.jetty.ee8.websocket.api.WebSocketPingPongListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.nio.ByteBuffer;
import java.util.UUID;

public class WebSocketListener implements org.eclipse.jetty.websocket.api.WebSocketListener, WebSocketPingPongListener {
public class WebSocketListener implements org.eclipse.jetty.ee8.websocket.api.WebSocketListener, WebSocketPingPongListener {

private static final Logger log = LoggerFactory.getLogger(WebSocketListener.class);

Expand Down
4 changes: 2 additions & 2 deletions server/plugins/noderoster/impl/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@
<artifactId>jetty-server</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-servlet</artifactId>
<groupId>org.eclipse.jetty.ee8</groupId>
<artifactId>jetty-ee8-servlets</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
Expand Down
10 changes: 7 additions & 3 deletions server/queue-client/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,19 @@
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-client</artifactId>
<artifactId>jetty-websocket-jetty-client</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee8.websocket</groupId>
<artifactId>jetty-ee8-websocket-jetty-client</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-api</artifactId>
<artifactId>jetty-websocket-jetty-api</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.websocket</groupId>
<artifactId>websocket-common</artifactId>
<artifactId>jetty-websocket-jetty-common</artifactId>
</dependency>
<dependency>
<groupId>org.eclipse.jetty</groupId>
Expand Down
Loading

0 comments on commit 792c422

Please sign in to comment.