Servlets
diff --git a/apps/fpcagent/BUCK b/apps/fpcagent/BUCK
index c4f1565..b9dfc95 100644
--- a/apps/fpcagent/BUCK
+++ b/apps/fpcagent/BUCK
@@ -14,11 +14,10 @@
'//models/fpcagent:onos-models-fpcagent',
'//models/common:onos-models-common',
':jetty-servlet',
- ':jetty-annotations',
- ':jetty-server-new',
- ':jetty-io-new',
- ':jetty-http-new',
- ':jetty-util-new',
+ ':jetty-server',
+ ':jetty-io',
+ ':jetty-http',
+ ':jetty-util',
'//lib:javax.servlet-api',
':zeromq',
':json',
@@ -35,10 +34,11 @@
'//lib:httpcore-osgi',
'//lib:org.apache.httpcomponents.httpasyncclient-osgi',
'//lib:javax.servlet-api',
- ':jetty-server-new',
- ':jetty-io-new',
- ':jetty-http-new',
- ':jetty-util-new',
+ ':jetty-servlet',
+ ':jetty-server',
+ ':jetty-io',
+ ':jetty-http',
+ ':jetty-util',
]
EXCLUDED_BUNDLES = [
@@ -90,11 +90,20 @@
)
remote_jar (
- name = 'jetty-annotations',
- out = 'jetty-annotations-8.1.19.v20160209.jar',
- url = 'mvn:org.eclipse.jetty:jetty-annotations:jar:8.1.19.v20160209',
- sha1 = '649592e66a01b01956c19b80d87c03c8052413ee',
- maven_coords = 'org.eclipse.jetty:jetty-annotations:8.1.19.v20160209',
+ name = 'jetty-util',
+ out = 'jetty-util-8.1.19.v20160209.jar',
+ url = 'mvn:org.eclipse.jetty:jetty-util:jar:8.1.19.v20160209',
+ sha1 = 'c88071e72998e6355d719d35ff001d9c327a971a',
+ maven_coords = 'org.eclipse.jetty:jetty-util:8.1.19.v20160209',
+ visibility = [ 'PUBLIC' ],
+)
+
+remote_jar (
+ name = 'jetty-server',
+ out = 'jetty-server-8.1.19.v20160209.jar',
+ url = 'mvn:org.eclipse.jetty:jetty-server:jar:8.1.19.v20160209',
+ sha1 = 'e4100696c994e26148fd0b62c8a866a606be1540',
+ maven_coords = 'org.eclipse.jetty:jetty-server:8.1.19.v20160209',
visibility = [ 'PUBLIC' ],
)
@@ -108,37 +117,20 @@
)
remote_jar (
- name = 'jetty-server-new',
- out = 'jetty-server-9.4.8.v20171121.jar',
- url = 'mvn:org.eclipse.jetty:jetty-server:jar:9.4.8.v20171121',
- sha1 = '34614bd9a29de57ef28ca31f1f2b49a412af196d',
- maven_coords = 'org.eclipse.jetty:jetty-server:9.4.8.v20171121',
+ name = 'jetty-http',
+ out = 'jetty-http-8.1.19.v20160209.jar',
+ url = 'mvn:org.eclipse.jetty:jetty-http:jar:8.1.19.v20160209',
+ sha1 = 'f08c189eab9a45810644ec35440f1a0c8aa0c4e0',
+ maven_coords = 'org.eclipse.jetty:jetty-http:8.1.19.v20160209',
visibility = [ 'PUBLIC' ],
)
remote_jar (
- name = 'jetty-io-new',
- out = 'jetty-io-9.4.8.v20171121.jar',
- url = 'mvn:org.eclipse.jetty:jetty-io:jar:9.4.8.v20171121',
- sha1 = 'd3fe2dfa62f52ee91ff07cb359f63387e0e30b40',
- maven_coords = 'org.eclipse.jetty:jetty-io:9.4.8.v20171121',
+ name = 'jetty-io',
+ out = 'jetty-io-8.1.19.v20160209.jar',
+ url = 'mvn:org.eclipse.jetty:jetty-io:jar:8.1.19.v20160209',
+ sha1 = 'c35e77e419169b4c8ad5fa3429865f2c8541e972',
+ maven_coords = 'org.eclipse.jetty:jetty-io:8.1.19.v20160209',
visibility = [ 'PUBLIC' ],
)
-remote_jar (
- name = 'jetty-http-new',
- out = 'jetty-http-9.4.8.v20171121.jar',
- url = 'mvn:org.eclipse.jetty:jetty-http:jar:9.4.8.v20171121',
- sha1 = '9879d6c4e37400bf43f0cd4b3c6e34a3ba409864',
- maven_coords = 'org.eclipse.jetty:jetty-http:9.4.8.v20171121',
- visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
- name = 'jetty-util-new',
- out = 'jetty-util-9.4.8.v20171121.jar',
- url = 'mvn:org.eclipse.jetty:jetty-util:jar:9.4.8.v20171121',
- sha1 = 'd6ec1a1613c7fa72aa6bf5d8c204750afbc3df3b',
- maven_coords = 'org.eclipse.jetty:jetty-util:9.4.8.v20171121',
- visibility = [ 'PUBLIC' ],
-)
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java
index ddb7426..32b64cd 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java
@@ -8,6 +8,7 @@
package org.onosproject.fpcagent.util.eventStream;
import org.apache.commons.lang.exception.ExceptionUtils;
+import org.eclipse.jetty.servlet.DefaultServlet;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -15,7 +16,6 @@
import javax.servlet.AsyncContext;
import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@@ -28,7 +28,7 @@
/**
* A Http Servlet to server response streams
*/
-public class EventServer extends HttpServlet {
+public class EventServer extends DefaultServlet {
private static final Logger log = LoggerFactory.getLogger(EventServer.class);
private static ArrayList<String> clientUriList = new ArrayList<String>();
@@ -65,18 +65,20 @@
}
}
+ @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
- log.info("here doPost");
+ log.info("here doPost");
try {
String clientUri = null;
StringBuffer jsonStringBuilder = new StringBuffer();
String line = null;
try {
BufferedReader br = request.getReader();
- while ((line = br.readLine()) != null)
+ while ((line = br.readLine()) != null) {
jsonStringBuilder.append(line);
+ }
} catch (Exception e) {
- log.error(ExceptionUtils.getFullStackTrace(e));
+ log.error(ExceptionUtils.getFullStackTrace(e));
}
try {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java
index 03c610e..cf4e0ae 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/JettyServer.java
@@ -9,7 +9,9 @@
import org.apache.commons.lang.exception.ExceptionUtils;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletContextHandler;
+import org.eclipse.jetty.servlet.ServletHolder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -20,7 +22,7 @@
* SSE Server implementation
*/
public class JettyServer implements AutoCloseable {
- private static final Logger log = LoggerFactory.getLogger(JettyServer.class);
+ private static final Logger log = LoggerFactory.getLogger(JettyServer.class);
private static JettyServer _instance;
private Server server;
@@ -34,38 +36,40 @@
public static JettyServer getInstance() {
return _instance;
}
- /**
- * Method used to initialize and start the SSE server
- */
- public void open() {
- ExecutorService executorService = Executors.newSingleThreadExecutor();
- executorService.submit(() -> {
- ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
- context.setContextPath("/");
- server = new Server(8070);
-// log.info("a");
- server.setHandler(context);
+ /**
+ * Method used to initialize and start the SSE server
+ */
+ public void open() {
+ ExecutorService executorService = Executors.newSingleThreadExecutor();
+ executorService.submit(() -> {
+ try {
+ server = new Server(8070);
+ ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
+ context.setContextPath("/");
-// log.info("a");
- context.addServlet(EventServer.class, "/response");
- context.addServlet(NotificationServer.class, "/notification");
-
-// log.info("a");
- context.addEventListener(new ConfigureService());
- context.addEventListener(new NotificationService());
+ context.addServlet(new ServletHolder(EventServer.class), "/response");
+ context.addServlet(new ServletHolder(NotificationServer.class), "/notification");
- try {
- server.start();
- log.info("Jetty-Server Started");
- server.join();
- } catch (Exception e) {
- log.error(ExceptionUtils.getFullStackTrace(e));
- } finally {
- server.destroy();
- }
- });
- }
+ server.setHandler(context);
+
+ context.addEventListener(new ConfigureService());
+ context.addEventListener(new NotificationService());
+
+ try {
+ server.start();
+ log.info("Jetty-Server Started");
+ server.join();
+ } catch (Exception e) {
+ log.error(ExceptionUtils.getFullStackTrace(e));
+ } finally {
+ server.destroy();
+ }
+ } catch (Exception e) {
+ log.error(ExceptionUtils.getFullStackTrace(e));
+ }
+ });
+ }
@Override
public void close() {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
index e859cbf..8c150e4 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/NotificationServer.java
@@ -8,6 +8,7 @@
package org.onosproject.fpcagent.util.eventStream;
import org.apache.commons.lang.exception.ExceptionUtils;
+import org.eclipse.jetty.servlet.DefaultServlet;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
@@ -15,7 +16,6 @@
import javax.servlet.AsyncContext;
import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@@ -27,45 +27,49 @@
/**
* A HTTP servlet that handles requests for notification streams
*/
-public class NotificationServer extends HttpServlet {
- private static final Logger log = LoggerFactory.getLogger(EventServer.class);
+public class NotificationServer extends DefaultServlet {
+ private static final Logger log = LoggerFactory.getLogger(EventServer.class);
- protected void doPost( HttpServletRequest request, HttpServletResponse response){
- log.info("Notification stream Inititated");
- String clientId = null;
- StringBuffer jsonStringBuilder = new StringBuffer();
- String line = null;
- try {
- BufferedReader br = request.getReader();
- while ((line = br.readLine()) != null)
- jsonStringBuilder.append(line);
- } catch (Exception e) { e.printStackTrace(); }
+ @Override
+ protected void doPost(HttpServletRequest request, HttpServletResponse response) {
+ log.info("Notification stream Inititated");
+ String clientId = null;
+ StringBuffer jsonStringBuilder = new StringBuffer();
+ String line = null;
+ try {
+ BufferedReader br = request.getReader();
+ while ((line = br.readLine()) != null) {
+ jsonStringBuilder.append(line);
+ }
+ } catch (Exception e) {
+ log.error(ExceptionUtils.getFullStackTrace(e));
+ }
- try {
- if(jsonStringBuilder.length() > 0){
- JSONObject jsonObj = new JSONObject(jsonStringBuilder.toString());
- clientId = jsonObj.getString("client-id");
- jsonStringBuilder.setLength(0);
- HttpSession session = request.getSession();
- session.setMaxInactiveInterval(72*60*60);
- response.setHeader("Content-Type", "text/event-stream");
- response.setHeader("Cache-Control", "no-cache, no-store");
- response.setHeader("Connection", "keep-alive");
- AsyncContext asyncContext = request.startAsync(request,response);
- asyncContext.setTimeout(72*60*60*1000);
- asyncContext.getResponse().setBufferSize(1200);
- try {
- asyncContext.getResponse().flushBuffer();
- } catch (IOException e) {
- log.error(ExceptionUtils.getFullStackTrace(e));
- }
- ServletContext servletContext = request.getServletContext();
- Map<String,AsyncContext> notificationStreams = (ConcurrentHashMap<String,AsyncContext>) servletContext.getAttribute("notificationStreams");
- notificationStreams.put(clientId,asyncContext);
- log.info("Client Id received in the notification stream request: "+clientId);
- }
- } catch (JSONException e) {
- log.error(ExceptionUtils.getFullStackTrace(e));
- }
- }
+ try {
+ if (jsonStringBuilder.length() > 0) {
+ JSONObject jsonObj = new JSONObject(jsonStringBuilder.toString());
+ clientId = jsonObj.getString("client-id");
+ jsonStringBuilder.setLength(0);
+ HttpSession session = request.getSession();
+ session.setMaxInactiveInterval(72 * 60 * 60);
+ response.setHeader("Content-Type", "text/event-stream");
+ response.setHeader("Cache-Control", "no-cache, no-store");
+ response.setHeader("Connection", "keep-alive");
+ AsyncContext asyncContext = request.startAsync(request, response);
+ asyncContext.setTimeout(72 * 60 * 60 * 1000);
+ asyncContext.getResponse().setBufferSize(1200);
+ try {
+ asyncContext.getResponse().flushBuffer();
+ } catch (IOException e) {
+ log.error(ExceptionUtils.getFullStackTrace(e));
+ }
+ ServletContext servletContext = request.getServletContext();
+ Map<String, AsyncContext> notificationStreams = (ConcurrentHashMap<String, AsyncContext>) servletContext.getAttribute("notificationStreams");
+ notificationStreams.put(clientId, asyncContext);
+ log.info("Client Id received in the notification stream request: " + clientId);
+ }
+ } catch (JSONException e) {
+ log.error(ExceptionUtils.getFullStackTrace(e));
+ }
+ }
}