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/27 22:52:56 UTC

svn commit: r1613841 - in /incubator/devicemap/trunk/devicemap/java/classifier/src: main/java/org/apache/devicemap/ test/java/org/apache/devicemap/

Author: rezan
Date: Sun Jul 27 20:52:56 2014
New Revision: 1613841

URL: http://svn.apache.org/r1613841
Log:
client factory

Added:
    incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapFactory.java
Modified:
    incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientFileTestOptional.java
    incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java
    incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java
    incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUrlTestOptional.java

Added: incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapFactory.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapFactory.java?rev=1613841&view=auto
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapFactory.java (added)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/DeviceMapFactory.java Sun Jul 27 20:52:56 2014
@@ -0,0 +1,58 @@
+/*
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements.  See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership.  The ASF licenses this file
+ to you 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.
+ */
+package org.apache.devicemap;
+
+import java.io.IOException;
+import org.apache.devicemap.loader.LoaderOption;
+
+public class DeviceMapFactory {
+
+    private static DeviceMapClient client = null;
+    private static volatile boolean initialized = false;
+
+    private static final LoaderOption DEFAULT = LoaderOption.JAR;
+
+    private DeviceMapFactory() {
+    }
+
+    public static DeviceMapClient getInstance() {
+        return getInstance(DEFAULT, null);
+    }
+
+    public static DeviceMapClient getInstance(LoaderOption option) {
+        return getInstance(option, null);
+    }
+
+    public static DeviceMapClient getInstance(LoaderOption option, String path) {
+        if (!initialized) {
+            synchronized (DeviceMapFactory.class) {
+                if (!initialized) {
+                    client = new DeviceMapClient();
+                    try {
+                        client.initDeviceData(option, path);
+                    } catch (IOException ex) {
+                        throw new RuntimeException(ex);
+                    }
+                    initialized = true;
+                }
+            }
+        }
+        return client;
+    }
+}

Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientFileTestOptional.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientFileTestOptional.java?rev=1613841&r1=1613840&r2=1613841&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientFileTestOptional.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientFileTestOptional.java Sun Jul 27 20:52:56 2014
@@ -53,4 +53,17 @@ public class DeviceMapClientFileTestOpti
             Assert.fail("FileNotFoundException expected with invalid folder path, got: "+ex.toString());
         }
     }
+    
+    @Test
+    public void DeviceMapFactoryFileTest() throws Exception {
+        String test = "Mozilla/5.0 (Linux; U; Android 2.2; en; HTC Aria A6380 Build/ERE27) AppleWebKit/540.13+ (KHTML, like Gecko) Version/3.1 Mobile Safari/524.15.0";
+
+        Device device = DeviceMapFactory.getInstance(LoaderOption.FOLDER, "../../../data/device-data/src/main/resources/devicedata").classifyDevice(test);
+
+        Assert.assertEquals("test ua not htc aria", "HTC Aria", device.getId());
+        
+        device = DeviceMapFactory.getInstance(LoaderOption.FOLDER, "../../../data/device-data/src/main/resources/devicedata").classifyDevice(test);
+        
+        Assert.assertEquals("2nd test ua not htc aria", "HTC Aria", device.getId());
+    }
 }

Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java?rev=1613841&r1=1613840&r2=1613841&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientJarTest.java Sun Jul 27 20:52:56 2014
@@ -53,4 +53,17 @@ public class DeviceMapClientJarTest {
             Assert.fail("FileNotFoundException expected with invalid JAR path, got: "+ex.toString());
         }
     }
+    
+    @Test
+    public void DeviceMapFactoryJarTest() throws Exception {
+        String test = "Mozilla/5.0 (Linux; U; Android 2.2; en; HTC Aria A6380 Build/ERE27) AppleWebKit/540.13+ (KHTML, like Gecko) Version/3.1 Mobile Safari/524.15.0";
+
+        Device device = DeviceMapFactory.getInstance(LoaderOption.JAR).classifyDevice(test);
+
+        Assert.assertEquals("test ua not htc aria", "HTC Aria", device.getId());
+        
+        device = DeviceMapFactory.getInstance(LoaderOption.JAR).classifyDevice(test);
+        
+        Assert.assertEquals("2nd test ua not htc aria", "HTC Aria", device.getId());
+    }
 }

Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java?rev=1613841&r1=1613840&r2=1613841&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUnitTest.java Sun Jul 27 20:52:56 2014
@@ -25,15 +25,6 @@ import org.apache.devicemap.loader.Loade
 import org.junit.BeforeClass;
 
 public class DeviceMapClientUnitTest {
-
-    private static DeviceMapClient client;
-
-    @BeforeClass
-    public static void setupDeviceMapClient() throws Exception {
-        client = new DeviceMapClient();
-        client.initDeviceData(LoaderOption.JAR);
-    }
-
     @Test
     public void DeviceMapClientUninitializedTest() throws Exception {
         DeviceMapClient uninit = new DeviceMapClient();
@@ -50,11 +41,11 @@ public class DeviceMapClientUnitTest {
 
     @Test
     public void DeviceMapClientUnknownTest() throws Exception {
-        Device device = client.classifyDevice("");
+        Device device = DeviceMapFactory.getInstance().classifyDevice("");
 
         Assert.assertEquals("test ua not unknown", Device.UNKNOWN_ID, device.getId());
 
-        device = client.classifyDevice(null);
+        device = DeviceMapFactory.getInstance().classifyDevice(null);
 
         Assert.assertEquals("test ua not unknown", Device.UNKNOWN_ID, device.getId());
     }
@@ -63,7 +54,7 @@ public class DeviceMapClientUnitTest {
     public void DeviceMapClientMutateTest() throws Exception {
         String test = "Mozilla/5.0 (Linux; U; Android 2.2; en; HTC Aria A6380 Build/ERE27) AppleWebKit/540.13+ (KHTML, like Gecko) Version/3.1 Mobile Safari/524.15.0";
 
-        Device device = client.classifyDevice(test);
+        Device device = DeviceMapFactory.getInstance().classifyDevice(test);
 
         Assert.assertEquals("test ua not htc aria", "HTC Aria", device.getId());
 
@@ -79,7 +70,7 @@ public class DeviceMapClientUnitTest {
 
     @Test
     public void DeviceMapClientMutateUnknownTest() throws Exception {
-        Device device = client.classifyDevice("unknown");
+        Device device = DeviceMapFactory.getInstance().classifyDevice("unknown");
 
         Assert.assertEquals("test ua not unknown", Device.UNKNOWN_ID, device.getId());
 

Modified: incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUrlTestOptional.java
URL: http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUrlTestOptional.java?rev=1613841&r1=1613840&r2=1613841&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUrlTestOptional.java (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/src/test/java/org/apache/devicemap/DeviceMapClientUrlTestOptional.java Sun Jul 27 20:52:56 2014
@@ -66,4 +66,17 @@ public class DeviceMapClientUrlTestOptio
             Assert.fail("FileNotFoundException expected with invalid URL path, got: "+ex.toString());
         }
     }
+    
+    @Test
+    public void DeviceMapFactoryUrlTest() throws Exception {
+        String test = "Mozilla/5.0 (Linux; U; Android 2.2; en; HTC Aria A6380 Build/ERE27) AppleWebKit/540.13+ (KHTML, like Gecko) Version/3.1 Mobile Safari/524.15.0";
+
+        Device device = DeviceMapFactory.getInstance(LoaderOption.URL).classifyDevice(test);
+
+        Assert.assertEquals("test ua not htc aria", "HTC Aria", device.getId());
+        
+        device = DeviceMapFactory.getInstance(LoaderOption.URL).classifyDevice(test);
+        
+        Assert.assertEquals("2nd test ua not htc aria", "HTC Aria", device.getId());
+    }
 }