You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devicemap.apache.org by wk...@apache.org on 2014/11/12 22:43:11 UTC
svn commit: r1639075 - in /incubator/devicemap/trunk/examples/ddr-filter: ./
src/main/java/org/apache/devicemap/example/ddrfilter/
src/main/java/org/apache/devicemap/example/webfilter/ src/main/resources/
src/main/webapp/ src/main/webapp/WEB-INF/
Author: wkeil
Date: Wed Nov 12 21:43:11 2014
New Revision: 1639075
URL: http://svn.apache.org/r1639075
Log:
DMAP-53: This is an epic for tasks or issues related to examples
Task-Url: https://issues.apache.org/jira/browse/DMAP-53
Added:
incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/
incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/IdentificationFilter.java
incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/package-info.java
incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/oddr.properties
Removed:
incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/
incubator/devicemap/trunk/examples/ddr-filter/src/main/resources/oddr.properties
Modified:
incubator/devicemap/trunk/examples/ddr-filter/pom.xml
incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/web.xml
incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/index.jsp
Modified: incubator/devicemap/trunk/examples/ddr-filter/pom.xml
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/pom.xml?rev=1639075&r1=1639074&r2=1639075&view=diff
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/pom.xml (original)
+++ incubator/devicemap/trunk/examples/ddr-filter/pom.xml Wed Nov 12 21:43:11 2014
@@ -1,17 +1,16 @@
-<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">
+<?xml version="1.0"?>
+<project
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+ xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
- <artifactId>dmap-ddr-filter</artifactId>
- <packaging>war</packaging>
- <name>DeviceMap DDR Simple Filter Example</name>
<parent>
<groupId>org.apache.devicemap.examples</groupId>
<artifactId>examples-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
</parent>
- <properties>
- <devicemap.ddr.version>1.0.0</devicemap.ddr.version>
- </properties>
+ <artifactId>ddr-filter</artifactId>
+ <packaging>war</packaging>
+ <name>Apache DeviceMap DDR Filter</name>
<dependencies>
<dependency>
<groupId>javax.servlet</groupId>
@@ -24,11 +23,11 @@
<artifactId>devicemap-simpleddr</artifactId>
<version>${devicemap.ddr.version}</version>
</dependency>
- <dependency>
- <groupId>commons-logging</groupId>
- <artifactId>commons-logging</artifactId>
- <version>1.1.1</version>
- </dependency>
+ <!-- <dependency>
+ <groupId>org.w3c</groupId>
+ <artifactId>ddr-simple</artifactId>
+ <version>${w3cddr.version}</version>
+ </dependency> -->
<dependency>
<groupId>org.apache.devicemap</groupId>
<artifactId>devicemap-data</artifactId>
@@ -47,4 +46,18 @@
<scope>test</scope>
</dependency>
</dependencies>
+ <build>
+ <finalName>ddr-filter</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>${java.version}</source>
+ <target>${java.version}</target>
+ <debug>true</debug>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
</project>
Added: incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/IdentificationFilter.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/IdentificationFilter.java?rev=1639075&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/IdentificationFilter.java (added)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/IdentificationFilter.java Wed Nov 12 21:43:11 2014
@@ -0,0 +1,120 @@
+package org.apache.devicemap.example.webfilter;
+
+import java.io.IOException;
+import java.util.Properties;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletContext;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import org.w3c.ddr.simple.Evidence;
+import org.w3c.ddr.simple.PropertyRef;
+import org.w3c.ddr.simple.PropertyValue;
+import org.w3c.ddr.simple.PropertyValues;
+import org.w3c.ddr.simple.Service;
+import org.w3c.ddr.simple.ServiceFactory;
+import org.w3c.ddr.simple.exception.NameException;
+//import org.apache.devicemap.client.DeviceMapClient;
+import org.apache.devicemap.simpleddr.ODDRService;
+import org.apache.devicemap.simpleddr.model.ODDRHTTPEvidence;
+
+/**
+ * Servlet Filter implementation class ClassificationFilter
+ */
+public class IdentificationFilter implements Filter {
+ private Service identificationService = null;
+
+ /**
+ * Default constructor.
+ */
+ public IdentificationFilter() {
+ }
+
+ /**
+ * @see Filter#init(FilterConfig)
+ */
+ public void init(FilterConfig filterConfig) throws ServletException {
+ System.out.println("Initialize filter");
+ Properties initializationProperties = new Properties();
+ ServletContext context = filterConfig.getServletContext();
+
+ try {
+ initializationProperties.load(context.getResourceAsStream("/WEB-INF/oddr.properties"));
+ identificationService = ServiceFactory.newService("org.apache.devicemap.simpleddr.ODDRService", initializationProperties.getProperty(ODDRService.ODDR_VOCABULARY_IRI), initializationProperties);
+
+ } catch (Exception ex) {
+ throw new RuntimeException(ex);
+ }
+ }
+ /**
+ * @see Filter#destroy()
+ */
+ public void destroy() {
+ System.out.println("Destroy Filter");
+ }
+
+ /**
+ * @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)
+ */
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ System.out.println("Do filter");
+ PropertyRef vendorRef;
+ PropertyRef modelRef;
+ PropertyRef displayWidthRef;
+ PropertyRef displayHeightRef;
+
+ try {
+ vendorRef = identificationService.newPropertyRef("vendor");
+ modelRef = identificationService.newPropertyRef("model");
+ displayWidthRef = identificationService.newPropertyRef("displayWidth");
+ displayHeightRef = identificationService.newPropertyRef("displayHeight");
+
+ } catch (NameException ex) {
+ System.err.println(ex.getLocalizedMessage());
+ throw new RuntimeException(ex);
+ }
+
+ PropertyRef[] propertyRefs = new PropertyRef[] {vendorRef, modelRef, displayWidthRef, displayHeightRef};
+ Evidence e = new ODDRHTTPEvidence(); //FIXME
+ e.put("User-Agent", ((HttpServletRequest)request).getHeader("User-Agent"));
+
+ try {
+ PropertyValues propertyValues = identificationService.getPropertyValues(e, propertyRefs);
+ PropertyValue vendor = propertyValues.getValue(vendorRef);
+ PropertyValue model = propertyValues.getValue(modelRef);
+ PropertyValue displayWidth = propertyValues.getValue(displayWidthRef);
+ PropertyValue displayHeight = propertyValues.getValue(displayHeightRef);
+
+ System.out.print("Vendor: " + vendor + "(" + vendor.exists() + ")");
+ System.out.print(" ;");
+ System.out.println("Model: " + model + "(" + model.exists() + ")");
+
+ if (vendor.exists())
+ ((HttpServletRequest)request).setAttribute("vendor", vendor.getString());
+ if (model.exists())
+ ((HttpServletRequest)request).setAttribute("model", model.getString());
+ if (displayWidth.exists()) {
+ System.out.println("W: " + displayWidth + "(" + displayWidth.exists() + ")");
+ request.setAttribute("displayWidth", displayWidth.getInteger());
+ }
+ if (displayHeight.exists()) {
+ System.out.println("H: " + displayHeight + "(" + displayHeight.exists() + ")");
+ request.setAttribute("displayHeight", displayHeight.getInteger());
+ }
+
+ request.setAttribute("vendor",
+ "dummy vendor");
+ } catch (Exception ex) {
+ System.err.println(ex.getLocalizedMessage());
+ throw new RuntimeException(ex);
+ }
+
+ chain.doFilter(request, response);
+ }
+
+}
Added: incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/package-info.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/package-info.java?rev=1639075&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/package-info.java (added)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/webfilter/package-info.java Wed Nov 12 21:43:11 2014
@@ -0,0 +1,8 @@
+/**
+ *
+ */
+/**
+ * @author Werner
+ *
+ */
+package org.apache.devicemap.example.webfilter;
\ No newline at end of file
Added: incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/oddr.properties
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/oddr.properties?rev=1639075&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/oddr.properties (added)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/oddr.properties Wed Nov 12 21:43:11 2014
@@ -0,0 +1,11 @@
+oddr.ua.device.builder.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/BuilderDataSource.xml
+oddr.ua.device.datasource.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/DeviceDataSource.xml
+oddr.ua.device.builder.patch.paths=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/BuilderDataSourcePatch.xml
+oddr.ua.device.datasource.patch.paths=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/DeviceDataSourcePatch.xml
+oddr.ua.browser.datasource.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/BrowserDataSource.xml
+oddr.ua.operatingSystem.datasource.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/OperatingSystemDataSource.xml
+ddr.vocabulary.core.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/coreVocabulary.xml
+oddr.vocabulary.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/oddrVocabulary.xml
+oddr.limited.vocabulary.path=C:/Users/Werner/workspace/jds7/mobile/devicemap/device-data/src/main/resources/devicedata/oddrLimitedVocabulary.xml
+oddr.vocabulary.device=http://www.openddr.org/oddr-vocabulary
+oddr.threshold=70
Modified: incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/web.xml?rev=1639075&r1=1639074&r2=1639075&view=diff
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/web.xml (original)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/WEB-INF/web.xml Wed Nov 12 21:43:11 2014
@@ -1,11 +1,15 @@
-<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="WebApp_ID" version="2.5">
- <display-name>DeviceMap DDR Sample WebApp</display-name>
- <filter>
- <filter-name>DDRFilter</filter-name>
- <filter-class> org.apache.devicemap.example.ddrfilter.DDRFilter</filter-class>
+<!DOCTYPE web-app PUBLIC
+ "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
+ "http://java.sun.com/dtd/web-app_2_3.dtd" >
+
+<web-app>
+ <display-name>DeviceMap DDR Web Application</display-name>
+ <filter>
+ <filter-name>IdentificationFilter</filter-name>
+ <filter-class>org.apache.devicemap.example.webfilter.IdentificationFilter</filter-class>
</filter>
<filter-mapping>
- <filter-name>DDRFilter</filter-name>
+ <filter-name>IdentificationFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<session-config>
Modified: incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/index.jsp
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/index.jsp?rev=1639075&r1=1639074&r2=1639075&view=diff
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/index.jsp (original)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/webapp/index.jsp Wed Nov 12 21:43:11 2014
@@ -8,6 +8,6 @@
<title>DeviceMap Simple DDR Sample</title>
</head>
<body>
- <h1>${vendor} ${model} resolution: ${displayWidth} x ${displayHeight}</h1>
+ <h1>${vendor} ${model} resolution: <%= request.getAttribute("displayWidth") %> x <%= request.getAttribute("displayHeight") %></h1>
</body>
</html>
\ No newline at end of file