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());
+ }
}