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/07/30 21:56:55 UTC

svn commit: r1614752 - in /incubator/devicemap/trunk/examples/ddr-filter/src/main/java: ./ org/ org/apache/ org/apache/devicemap/ org/apache/devicemap/example/ org/apache/devicemap/example/ddrfilter/

Author: wkeil
Date: Wed Jul 30 19:56:54 2014
New Revision: 1614752

URL: http://svn.apache.org/r1614752
Log:
DMAP-35: Refactor Simple DDR 
Adding simple DDR filter example
Task-Url: https://issues.apache.org/jira/browse/DMAP-35

Added:
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/DDRFilter.java
    incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/package-info.java

Added: incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/DDRFilter.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/DDRFilter.java?rev=1614752&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/DDRFilter.java (added)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/DDRFilter.java Wed Jul 30 19:56:54 2014
@@ -0,0 +1,131 @@
+package org.apache.devicemap.example.ddrfilter;
+
+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.simpleddr.ODDRService;
+import org.apache.devicemap.simpleddr.model.ODDRHTTPEvidence;
+
+/**
+ * Servlet Filter implementation class DDRFilter
+ */
+public class DDRFilter implements Filter {
+	private Service identificationService = null;
+
+	/**
+	 * Default constructor.
+	 */
+	public DDRFilter() {
+	}
+
+	/**
+	 * @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/classes/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 {
+		PropertyRef vendorRef;
+		PropertyRef modelRef;
+		PropertyRef displayWidthRef;
+		PropertyRef displayHeightRef;
+		System.out.println("Do Filter");
+		try {
+			vendorRef = identificationService.newPropertyRef("vendor");
+			modelRef = identificationService.newPropertyRef("model");
+			displayWidthRef = identificationService
+					.newPropertyRef("displayWidth");
+			displayHeightRef = identificationService
+					.newPropertyRef("displayHeight");
+//		   System.out.println("Got Stuff");
+		} catch (NameException ex) {
+			System.err.println("Filter Error");
+			throw new RuntimeException(ex);
+		}
+
+		PropertyRef[] propertyRefs = new PropertyRef[] { vendorRef, modelRef,
+				displayWidthRef, displayHeightRef };
+		Evidence e = new ODDRHTTPEvidence();
+		e.put("User-Agent",
+				((HttpServletRequest) request).getHeader("User-Agent"));
+		System.out.println("Put UA");
+		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.println("Setting values...");
+			if (vendor.exists() && model.exists() && displayWidth.exists()
+					&& displayHeight.exists()) {
+				((HttpServletRequest) request).setAttribute("vendor",
+						vendor.getString());
+				((HttpServletRequest) request).setAttribute("model",
+						model.getString());
+				((HttpServletRequest) request).setAttribute("displayWidth",
+						displayWidth.getInteger());
+				((HttpServletRequest) request).setAttribute("displayHeight",
+						displayHeight.getInteger());
+				
+				((HttpServletRequest) request).setAttribute("vendor",
+						"dummy vendor");
+				
+			} else {
+				System.out.println("No vendor or model found");
+			}
+
+		} catch (Exception ex) {
+			System.out.println("Error");
+			throw new RuntimeException(ex);
+		}
+
+		chain.doFilter(request, response);
+	}
+
+}

Added: incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/package-info.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/package-info.java?rev=1614752&view=auto
==============================================================================
--- incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/package-info.java (added)
+++ incubator/devicemap/trunk/examples/ddr-filter/src/main/java/org/apache/devicemap/example/ddrfilter/package-info.java Wed Jul 30 19:56:54 2014
@@ -0,0 +1,8 @@
+/**
+ * 
+ */
+/**
+ * @author Werner
+ *
+ */
+package org.apache.devicemap.example.ddrfilter;
\ No newline at end of file