You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by re...@apache.org on 2014/07/24 16:33:02 UTC

svn commit: r1613149 - in /incubator/devicemap/trunk/examples/servlet: ./ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/devicemap/ src/main/java/org/apache/devicemap/servlet/ src/main/resources/ src...

Author: rezan
Date: Thu Jul 24 14:33:01 2014
New Revision: 1613149

URL: http://svn.apache.org/r1613149
Log:
servlet example

Added:
    incubator/devicemap/trunk/examples/servlet/
    incubator/devicemap/trunk/examples/servlet/pom.xml
    incubator/devicemap/trunk/examples/servlet/src/
    incubator/devicemap/trunk/examples/servlet/src/main/
    incubator/devicemap/trunk/examples/servlet/src/main/java/
    incubator/devicemap/trunk/examples/servlet/src/main/java/org/
    incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/
    incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/
    incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/servlet/
    incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/servlet/Classify.java
    incubator/devicemap/trunk/examples/servlet/src/main/resources/
    incubator/devicemap/trunk/examples/servlet/src/main/webapp/
    incubator/devicemap/trunk/examples/servlet/src/main/webapp/WEB-INF/
    incubator/devicemap/trunk/examples/servlet/src/main/webapp/WEB-INF/web.xml
    incubator/devicemap/trunk/examples/servlet/src/main/webapp/index.jsp
    incubator/devicemap/trunk/examples/servlet/src/main/webapp/version.jsp
    incubator/devicemap/trunk/examples/servlet/src/test/
    incubator/devicemap/trunk/examples/servlet/src/test/java/

Added: incubator/devicemap/trunk/examples/servlet/pom.xml
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/servlet/pom.xml?rev=1613149&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/servlet/pom.xml (added)
+++ incubator/devicemap/trunk/examples/servlet/pom.xml Thu Jul 24 14:33:01 2014
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>org.apache.devicemap</groupId>
+    <artifactId>dmap-servlet</artifactId>
+    <packaging>war</packaging>
+    <version>1.0</version>
+    <name>devicemap-servlet-example</name>
+    <description>Apache DeviceMap Servlet Example</description>
+
+
+    <properties>
+        <build.date>${maven.build.timestamp}</build.date>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+        <maven.build.timestamp.format>yyyyMMdd_HHmm</maven.build.timestamp.format>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.apache.devicemap</groupId>
+            <artifactId>devicemap-client</artifactId>
+            <version>1.1.0-SNAPSHOT</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.devicemap</groupId>
+            <artifactId>devicemap-data</artifactId>
+            <version>1.0.0</version>
+        </dependency>
+        <dependency>
+            <groupId>javax.servlet</groupId>
+            <artifactId>servlet-api</artifactId>
+            <version>2.5</version>
+            <scope>provided</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <finalName>dmap-servlet</finalName>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-war-plugin</artifactId>
+                <version>2.3</version>
+                <configuration>
+                    <webResources>
+                        <resource>
+                            <directory>${basedir}/src/main/webapp</directory>
+                            <filtering>true</filtering>
+                            <includes>
+                                <include>**/*.xml</include>
+                                <include>**/*.html</include>
+                                <include>version.jsp</include>
+                                <include>index.jsp</include>
+                            </includes>
+                        </resource>
+                    </webResources>
+                </configuration>
+            </plugin>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-compiler-plugin</artifactId>
+                <version>3.0</version>
+                <configuration>
+                    <source>1.7</source>
+                    <target>1.7</target>
+                    <debug>true</debug>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

Added: incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/servlet/Classify.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/servlet/Classify.java?rev=1613149&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/servlet/Classify.java (added)
+++ incubator/devicemap/trunk/examples/servlet/src/main/java/org/apache/devicemap/servlet/Classify.java Thu Jul 24 14:33:01 2014
@@ -0,0 +1,51 @@
+package org.apache.devicemap.servlet;
+
+import java.io.IOException;
+import java.io.Writer;
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.devicemap.DeviceMapClient;
+import org.apache.devicemap.data.Device;
+import org.apache.devicemap.loader.LoaderOption;
+
+/**
+ *
+ * @author Reza Naghibi
+ */
+public class Classify extends HttpServlet {
+  
+  private DeviceMapClient client;
+
+  @Override
+  public void init() throws ServletException {
+    client = new DeviceMapClient();
+    try {
+      client.initDeviceData(LoaderOption.JAR);
+    } catch(IOException ex) {
+      throw new ServletException(ex);
+    }
+  }
+
+  @Override
+  protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    String ua = request.getParameter("ua");
+
+    if (ua == null || ua.isEmpty()) {
+      ua = request.getHeader("User-Agent");
+    }
+    
+    Device device = client.classifyDevice(ua);
+
+    StringBuilder sb = new StringBuilder();
+    sb.append("{\"success\":true,\"user-agent\":\"").append(ua).append("\",\"result\":").append(device.toString()).append("}");
+
+    response.setHeader("Content-Type", "application/json");
+
+    Writer writer = response.getWriter();
+    writer.write(sb.toString());
+    writer.flush();
+  }
+
+}

Added: incubator/devicemap/trunk/examples/servlet/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/servlet/src/main/webapp/WEB-INF/web.xml?rev=1613149&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/servlet/src/main/webapp/WEB-INF/web.xml (added)
+++ incubator/devicemap/trunk/examples/servlet/src/main/webapp/WEB-INF/web.xml Thu Jul 24 14:33:01 2014
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+    
+    <display-name>dmap-servlet</display-name>
+    <description>dmap-servlet</description>
+    
+    <welcome-file-list>
+        <welcome-file>index.jsp</welcome-file>
+    </welcome-file-list>
+    
+    <servlet>
+        <servlet-name>classify</servlet-name>
+        <servlet-class>org.apache.devicemap.servlet.Classify</servlet-class>
+    </servlet>
+    <servlet-mapping>
+        <servlet-name>classify</servlet-name>
+        <url-pattern>/classify</url-pattern>
+    </servlet-mapping>
+    
+</web-app>

Added: incubator/devicemap/trunk/examples/servlet/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/servlet/src/main/webapp/index.jsp?rev=1613149&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/servlet/src/main/webapp/index.jsp (added)
+++ incubator/devicemap/trunk/examples/servlet/src/main/webapp/index.jsp Thu Jul 24 14:33:01 2014
@@ -0,0 +1,25 @@
+<%@ page session="false" %>
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<title>DeviceMap Servlet Example</title>
+</head>
+<body>
+<pre>
+<h1>DeviceMap Servlet Example</h1>
+
+<a href="version.jsp">version</a>
+
+<b>classify</b>
+GET /classify
+Classify a device using a user-agent header or param
+-params: ua [optional]
+<form action="classify" method="GET">
+ua <input type="text" name="ua">
+<input type="submit" value="Submit">
+</form>
+
+</pre>
+</body>
+</html>
\ No newline at end of file

Added: incubator/devicemap/trunk/examples/servlet/src/main/webapp/version.jsp
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/servlet/src/main/webapp/version.jsp?rev=1613149&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/servlet/src/main/webapp/version.jsp (added)
+++ incubator/devicemap/trunk/examples/servlet/src/main/webapp/version.jsp Thu Jul 24 14:33:01 2014
@@ -0,0 +1,12 @@
+<%@ page session="false" %>
+<html>
+<head>
+<title>servlet</title>
+</head>
+<body>
+<h1>servlet</h1>
+Project name: ${project.name}<br>
+Project version: ${project.version}<br>
+Build date: ${build.date}<br>
+</body>
+</html>