web.xml and renaming
diff --git a/apps/fpcagent/BUCK b/apps/fpcagent/BUCK
index b9dfc95..0d12c11 100644
--- a/apps/fpcagent/BUCK
+++ b/apps/fpcagent/BUCK
@@ -13,11 +13,12 @@
'//apps/restconf/api:onos-apps-restconf-api',
'//models/fpcagent:onos-models-fpcagent',
'//models/common:onos-models-common',
- ':jetty-servlet',
- ':jetty-server',
- ':jetty-io',
- ':jetty-http',
- ':jetty-util',
+ '//lib:jetty-servlet',
+ '//lib:jetty-server',
+ '//lib:jetty-security',
+ '//lib:jetty-io',
+ '//lib:jetty-http',
+ '//lib:jetty-util',
'//lib:javax.servlet-api',
':zeromq',
':json',
@@ -34,11 +35,12 @@
'//lib:httpcore-osgi',
'//lib:org.apache.httpcomponents.httpasyncclient-osgi',
'//lib:javax.servlet-api',
- ':jetty-servlet',
- ':jetty-server',
- ':jetty-io',
- ':jetty-http',
- ':jetty-util',
+ '//lib:jetty-servlet',
+ '//lib:jetty-security',
+ '//lib:jetty-server',
+ '//lib:jetty-io',
+ '//lib:jetty-http',
+ '//lib:jetty-util',
]
EXCLUDED_BUNDLES = [
@@ -69,6 +71,7 @@
required_apps = APPS,
included_bundles = BUNDLES,
excluded_bundles = EXCLUDED_BUNDLES,
+ web_context = '/',
)
remote_jar (
@@ -89,48 +92,3 @@
visibility = [ 'PUBLIC' ],
)
-remote_jar (
- 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' ],
-)
-
-remote_jar (
- name = 'jetty-servlet',
- out = 'jetty-servlet-8.1.19.v20160209.jar',
- url = 'mvn:org.eclipse.jetty:jetty-servlet:jar:8.1.19.v20160209',
- sha1 = '6872c3fc289de8f26a43b101741b33af36590cb4',
- maven_coords = 'org.eclipse.jetty:jetty-servlet:8.1.19.v20160209',
- visibility = [ 'PUBLIC' ],
-)
-
-remote_jar (
- 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',
- 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' ],
-)
-
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 cf4e0ae..e6d11d1 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,6 @@
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;
@@ -48,7 +47,7 @@
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
- context.addServlet(new ServletHolder(EventServer.class), "/response");
+ context.addServlet(new ServletHolder(ResponseServer.class), "/response");
context.addServlet(new ServletHolder(NotificationServer.class), "/notification");
server.setHandler(context);
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 a67eb41..6dde315 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
@@ -16,8 +16,7 @@
import javax.servlet.AsyncContext;
import javax.servlet.ServletContext;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
+import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@@ -29,8 +28,14 @@
/**
* A HTTP servlet that handles requests for notification streams
*/
-public class NotificationServer extends HttpServlet {
- private static final Logger log = LoggerFactory.getLogger(EventServer.class);
+@WebServlet(name = "notification", urlPatterns = {"/notification"})
+public class NotificationServer extends DefaultServlet {
+ private static final Logger log = LoggerFactory.getLogger(ResponseServer.class);
+
+ public NotificationServer() {
+ super();
+ log.info("Notification Server Initialized");
+ }
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) {
diff --git a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventClient.java b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
similarity index 96%
rename from apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventClient.java
rename to apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
index 88b0201..76762d8 100644
--- a/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventClient.java
+++ b/apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseClient.java
@@ -26,8 +26,8 @@
/**
* A HTTP client that sends a request to a FPC Client to initiate the request stream.
*/
-public class EventClient {
- private static final Logger log = LoggerFactory.getLogger(EventClient.class);
+public class ResponseClient {
+ private static final Logger log = LoggerFactory.getLogger(ResponseClient.class);
private static final CloseableHttpAsyncClient client = HttpAsyncClients.createDefault();
private static ArrayList<String> clientUriList = new ArrayList<String>();
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/ResponseServer.java
similarity index 91%
rename from apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/EventServer.java
rename to apps/fpcagent/src/main/java/org/onosproject/fpcagent/util/eventStream/ResponseServer.java
index 611c8dd..cea0e76 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/ResponseServer.java
@@ -16,8 +16,7 @@
import javax.servlet.AsyncContext;
import javax.servlet.ServletContext;
-import javax.servlet.ServletOutputStream;
-import javax.servlet.http.HttpServlet;
+import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
@@ -30,10 +29,16 @@
/**
* A Http Servlet to server response streams
*/
-public class EventServer extends HttpServlet {
- private static final Logger log = LoggerFactory.getLogger(EventServer.class);
+@WebServlet(name = "response", urlPatterns = {"/response"})
+public class ResponseServer extends DefaultServlet {
+ private static final Logger log = LoggerFactory.getLogger(ResponseServer.class);
private static ArrayList<String> clientUriList = new ArrayList<String>();
+ public ResponseServer() {
+ super();
+ log.info("Response Server Initialized");
+ }
+
/**
* Method for stream initialization
*
@@ -46,7 +51,7 @@
try {
HttpSession session = request.getSession();
session.setMaxInactiveInterval(72 * 60 * 60);
- EventClient client = new EventClient();
+ ResponseClient client = new ResponseClient();
client.connectToClient(clientUri);
response.setHeader("Content-Type", "text/event-stream");
response.setHeader("Cache-Control", "no-cache, no-store");
diff --git a/apps/fpcagent/src/main/webapp/WEB-INF/web.xml b/apps/fpcagent/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..0798925
--- /dev/null
+++ b/apps/fpcagent/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2015-present Open Networking Foundation
+ ~ Originally created by Pengfei Lu, Network and Cloud Computing Laboratory, Dalian University of Technology, China
+ ~ Advisers: Keqiu Li and Heng Qi
+ ~ This work is supported by the State Key Program of National Natural Science of China(Grant No. 61432002)
+ ~ and Prospective Research Project on Future Networks in Jiangsu Future Networks Innovation Institute.
+ ~
+ ~ 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.
+ -->
+<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
+ xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
+ id="ONOS" version="2.5">
+ <display-name>FPC Agent API</display-name>
+
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>Secured</web-resource-name>
+ <url-pattern>/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>admin</role-name>
+ </auth-constraint>
+ </security-constraint>
+
+ <security-role>
+ <role-name>admin</role-name>
+ </security-role>
+
+ <login-config>
+ <auth-method>BASIC</auth-method>
+ <realm-name>karaf</realm-name>
+ </login-config>
+
+ <servlet>
+ <servlet-name>Notification Service</servlet-name>
+ <servlet-class>org.eclipse.jetty.server.</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Notification Service</servlet-name>
+ <url-pattern>/notification</url-pattern>
+ </servlet-mapping>
+
+ <servlet>
+ <servlet-name>Response Service</servlet-name>
+ <servlet-class>org.onosproject.fpcagent.util.eventStream.ResponseServer</servlet-class>
+ <load-on-startup>2</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>Response Service</servlet-name>
+ <url-pattern>/response</url-pattern>
+ </servlet-mapping>
+
+</web-app>