metadata-complete="false"
version="3.0">
+ <!--
<servlet>
<servlet-name>Hatch</servlet-name>
<servlet-class>org.evergreen_ils.hatch.HatchServlet</servlet-class>
<servlet-name>Hatch</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
+ -->
+
+ <display-name>Hatch</display-name>
+ <servlet>
+ <servlet-name>hatch</servlet-name>
+ <servlet-class>org.evergreen_ils.hatch.HatchWebSocketServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>hatch</servlet-name>
+ <url-pattern>/*</url-pattern>
+ </servlet-mapping>
<context-param>
<description>
if [ $OPT_COMPILE -eq 1 ]; then
echo "Compiling..."
cd $BASE_DIR/src;
- javac -Xlint:unchecked -d ../WEB-INF/classes/ -cp "../$JETTY_DIR/lib/*" org/evergreen_ils/hatch/*.java;
+ javac -Xlint:unchecked -d ../WEB-INF/classes/ -cp "../$JETTY_DIR/lib/*:../$JETTY_DIR/lib/websocket/*" org/evergreen_ils/hatch/*.java;
fi;
if [ $OPT_RUN -eq 1 ]; then
static String trustedDomainsString;
static String[] trustedDomains;
static String profileDirectory;
- private static final Logger logger = Log.getLogger("HatchetServlet");
+ private static final Logger logger = Log.getLogger("HatchServlet");
@Override
public void init(ServletConfig config) throws ServletException {
--- /dev/null
+package org.evergreen_ils.hatch;
+
+
+import org.eclipse.jetty.util.FutureCallback;
+
+import java.io.IOException;
+import org.eclipse.jetty.websocket.api.Session;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketClose;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketConnect;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketError;
+import org.eclipse.jetty.websocket.api.annotations.OnWebSocketMessage;
+import org.eclipse.jetty.websocket.api.annotations.WebSocket;
+
+@WebSocket
+public class HatchSocket {
+
+ private Session session;
+
+ @OnWebSocketConnect
+ public void onConnect(Session session) {
+ System.out.println("Connect: " + session.getRemoteAddress().getAddress());
+ this.session = session;
+ }
+
+ @OnWebSocketClose
+ public void onClose(int statusCode, String reason) {
+ System.out.println("Close: statusCode=" + statusCode + ", reason=" + reason);
+ this.session = null;
+ }
+
+ @OnWebSocketMessage
+ public void onMessage(String message) {
+ System.out.println("Message: " + message);
+ try {
+ session.getRemote().sendString("hello : " + message);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+}
--- /dev/null
+package org.evergreen_ils.hatch;
+
+import javax.servlet.annotation.WebServlet;
+import org.eclipse.jetty.websocket.servlet.WebSocketServlet;
+import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory;
+
+@SuppressWarnings("serial")
+//@WebServlet(name = "Hatch WebSocket Servlet", urlPatterns = { "/ws" })
+
+public class HatchWebSocketServlet extends WebSocketServlet {
+ @Override
+ public void configure(WebSocketServletFactory factory) {
+ factory.register(HatchSocket.class);
+ }
+}