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 2016/08/21 17:35:32 UTC
svn commit: r1757070 - in /devicemap/trunk/clients/1.0/java:
client/src/main/java/org/apache/devicemap/
console/src/main/java/org/apache/devicemap/console/
Author: wkeil
Date: Sun Aug 21 17:35:32 2016
New Revision: 1757070
URL: http://svn.apache.org/viewvc?rev=1757070&view=rev
Log:
DMAP-196: Deploy Snapshots to Apache Snapshot repo
Task-Url: https://issues.apache.org/jira/browse/DMAP-196
Modified:
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapFactory.java
devicemap/trunk/clients/1.0/java/console/src/main/java/org/apache/devicemap/console/DeviceMapConsole.java
Modified: devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java?rev=1757070&r1=1757069&r2=1757070&view=diff
==============================================================================
--- devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java (original)
+++ devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceFixer.java Sun Aug 21 17:35:32 2016
@@ -24,15 +24,12 @@ import static org.apache.devicemap.data.
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
import org.apache.devicemap.data.DeviceType;
import org.apache.devicemap.data.UserAgent;
/**
* @author Werner Keil
- * @version 0.2
+ * @version 1.0
*/
abstract class DeviceFixer {
private static final Logger LOG = Logger.getLogger(DeviceFixer.class
@@ -48,7 +45,7 @@ abstract class DeviceFixer {
private static final String CHROME_VERSION_REGEXP = "Chrome.([0-9a-z\\.b]+).*";
private static final String SAFARI_REGEXP = ".*Safari/([0-9\\.]+).*?";
-
+
private static final String BROWSER = "mobile_browser";
private static final String BROWSER_VERSION = "mobile_browser_version";
@@ -63,7 +60,7 @@ abstract class DeviceFixer {
} else {
attributes = device.getAttributes();
}
-
+
// OS
String pattern = userAgent.getPatternElementsInside();
if (pattern != null && pattern.contains(";")) {
@@ -151,22 +148,21 @@ abstract class DeviceFixer {
String parts = pattern.substring(pattern.indexOf(CHROME));
String version = parts.substring(CHROME.length() + 1,
parts.indexOf(" "));
-// System.out.println(version);
+ // System.out.println(version);
// Matcher chromeVersionMatcher =
// chromeVersionPattern.matcher(pattern);
// System.out.println(chromeVersionMatcher);
- final String versionExisting = attributes
- .get(BROWSER_VERSION);
+ final String versionExisting = attributes.get(BROWSER_VERSION);
if (!version.equals(versionExisting)) {
- LOG.fine("Fixing '" + versionExisting + "' to '"
- + version + "'");
+ LOG.fine("Fixing '" + versionExisting + "' to '" + version
+ + "'");
attributes.put(BROWSER_VERSION, version);
}
}
// Pattern safariPattern = Pattern.compile(SAFARI_REGEXP);
}
-
+
device.setAttributes(attributes);
// logger.info("Device: " + device.getId() + " - " +
Modified: devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java?rev=1757070&r1=1757069&r2=1757070&view=diff
==============================================================================
--- devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java (original)
+++ devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceHints.java Sun Aug 21 17:35:32 2016
@@ -20,47 +20,51 @@ package org.apache.devicemap;
/**
* @author Werner Keil
- * @version 0.2
+ * @version 0.3
*/
abstract class DeviceHints {
- static enum WindowsVersion {
- WIN_81("Windows NT 6.3" ,"Windows 8.1", "8.1"),
- WIN_8("Windows NT 6.2", "Windows 8", "8.0"),
- WIN_7("Windows NT 6.1", "Windows 7", "7.0"),
- VISTA("Windows NT 6.0", "Windows Vista", "6.0"),
- WIN_2003("Windows NT 5.2", "Windows Server 2003; Windows XP x64 Edition", "2003"),
- WIN_XP("Windows NT 5.1", "Windows XP", "5.1"),
- WIN_2000_SP1("Windows NT 5.01", "Windows 2000, Service Pack 1 (SP1)", "5.01"),
- WIN_2000("Windows NT 5.0", "Windows 2000", "2000"),
- WIN_NT_4("Windows NT 4.0", "Microsoft Windows NT 4.0", "4.0"),
- WIN_ME("Windows 98; Win 9x 4.90", "Windows Millennium Edition (Windows Me)", "4.90"),
- WIN_98("Windows 98", "Windows 98", "98"),
- WIN_95("Windows 95", "Windows 95", "95"),
- WIN_CE("Windows CE", "Windows CE", "CE"); // TODO version nr?
-
- private final String token;
- private final String description;
- private final String version;
-
- private WindowsVersion(String t, String d, String v) {
- token = t;
- description = d;
- version = v;
- }
-
- String getDescription() {
- return description;
- }
-
- String getVersion() {
- return version;
- }
-
- static final WindowsVersion ofToken(String token) {
- for (WindowsVersion version : values()) {
- if (version.token.equalsIgnoreCase(token)) return version;
- }
- return null;
- }
+ static enum WindowsVersion {
+ WIN_81("Windows NT 6.3", "Windows 8.1", "8.1"), //
+ WIN_8("Windows NT 6.2", "Windows 8", "8.0"), //
+ WIN_7("Windows NT 6.1", "Windows 7", "7.0"), //
+ VISTA("Windows NT 6.0", "Windows Vista", "6.0"), //
+ WIN_2003("Windows NT 5.2",
+ "Windows Server 2003; Windows XP x64 Edition", "2003"), //
+ WIN_XP("Windows NT 5.1", "Windows XP", "5.1"), //
+ WIN_2000_SP1("Windows NT 5.01", "Windows 2000, Service Pack 1 (SP1)",
+ "5.01"), //
+ WIN_2000("Windows NT 5.0", "Windows 2000", "2000"), //
+ WIN_NT_4("Windows NT 4.0", "Microsoft Windows NT 4.0", "4.0"), //
+ WIN_ME("Windows 98; Win 9x 4.90",
+ "Windows Millennium Edition (Windows Me)", "4.90"), //
+ WIN_98("Windows 98", "Windows 98", "98"), //
+ WIN_95("Windows 95", "Windows 95", "95"), //
+ WIN_CE("Windows CE", "Windows CE", "CE"); // TODO version nr?
+
+ private final String token;
+ private final String description;
+ private final String version;
+
+ private WindowsVersion(String t, String d, String v) {
+ token = t;
+ description = d;
+ version = v;
+ }
+
+ String getDescription() {
+ return description;
+ }
+
+ String getVersion() {
+ return version;
+ }
+
+ static final WindowsVersion ofToken(String token) {
+ for (WindowsVersion version : values()) {
+ if (version.token.equalsIgnoreCase(token))
+ return version;
+ }
+ return null;
}
+ }
}
Modified: devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java?rev=1757070&r1=1757069&r2=1757070&view=diff
==============================================================================
--- devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java (original)
+++ devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapClient.java Sun Aug 21 17:35:32 2016
@@ -34,10 +34,11 @@ import org.apache.devicemap.loader.Loade
/**
* @author Werner Keil
- * @version 1.1
+ * @version 1.2
*/
public class DeviceMapClient {
- private static final Logger LOG = Logger.getLogger(DeviceMapClient.class.getName());
+ private static final Logger LOG = Logger.getLogger(DeviceMapClient.class
+ .getName());
private static final java.util.regex.Pattern TEXT_SPLIT_PATTERN = java.util.regex.Pattern
.compile(" |-|_|/|\\\\|\\[|\\]|\\(|\\)|;");
@@ -57,12 +58,13 @@ public class DeviceMapClient {
uAttributes = Collections.unmodifiableMap(uAttributes);
unknown = new Device(Device.UNKNOWN_ID, uAttributes);
}
-
+
public void initDeviceData(LoaderOption option) throws IOException {
initDeviceData(option, null);
}
- public synchronized void initDeviceData(LoaderOption option, String path) throws IOException {
+ public synchronized void initDeviceData(LoaderOption option, String path)
+ throws IOException {
devices = LoaderFactory.getLoader(option, path).getData();
initCount++;
@@ -215,4 +217,4 @@ public class DeviceMapClient {
Map<String, DeviceType> getDevices() {
return devices;
}
-}
+}
\ No newline at end of file
Modified: devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapFactory.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapFactory.java?rev=1757070&r1=1757069&r2=1757070&view=diff
==============================================================================
--- devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapFactory.java (original)
+++ devicemap/trunk/clients/1.0/java/client/src/main/java/org/apache/devicemap/DeviceMapFactory.java Sun Aug 21 17:35:32 2016
@@ -23,43 +23,43 @@ import org.apache.devicemap.loader.Loade
/**
* @author Werner Keil
- * @version 1.1.1
+ * @version 1.2
*/
public final 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 getClient() {
- return getClient(DEFAULT, null);
+ return getClient(DEFAULT, null);
}
public static DeviceMapClient getClient(LoaderOption option) {
- return getClient(option, null);
+ return getClient(option, null);
}
public static DeviceMapClient getClient(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;
+ 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;
}
public static void resetClient() {
- initialized = false;
+ initialized = false;
}
}
Modified: devicemap/trunk/clients/1.0/java/console/src/main/java/org/apache/devicemap/console/DeviceMapConsole.java
URL: http://svn.apache.org/viewvc/devicemap/trunk/clients/1.0/java/console/src/main/java/org/apache/devicemap/console/DeviceMapConsole.java?rev=1757070&r1=1757069&r2=1757070&view=diff
==============================================================================
--- devicemap/trunk/clients/1.0/java/console/src/main/java/org/apache/devicemap/console/DeviceMapConsole.java (original)
+++ devicemap/trunk/clients/1.0/java/console/src/main/java/org/apache/devicemap/console/DeviceMapConsole.java Sun Aug 21 17:35:32 2016
@@ -48,212 +48,221 @@ import org.apache.devicemap.loader.impl.
* @version 1.2
*/
public class DeviceMapConsole {
- private static final String APP_NAME = "DeviceMap Java Console";
- private static final String CLASS_NAME = DeviceMapConsole.class.getName();
- private static final Logger LOG = Logger.getLogger(CLASS_NAME);
- private static final String CONFIG_FILE = "app.properties";
- private static final String CONFIG_PROP_CONNECT = "connectionString";
-
- public static void main(String[] args) throws Exception {
- System.out.println(APP_NAME
- + " " + DeviceMapConsole.class.getPackage()
- .getImplementationVersion());
-
- final Configurations configs = new Configurations();
- // Read data from this file
- final File propertiesFile = new File(CONFIG_FILE);
- final PropertiesConfiguration config = configs.properties(propertiesFile);
-
- @SuppressWarnings("unused")
- boolean debug = false;
- String loaderPath = null;
- LoaderOption option = LoaderOption.UNINITIALIZED;
- String parameter = null;
- Level debugLevel = Level.OFF;
-
- CommandLine lvCmd = null;
- final HelpFormatter lvFormater = new HelpFormatter();
- final CommandLineParser lvParser = new DefaultParser();
- final Options lvOptions = new Options();
-
- final Option lvHelp = new Option("h", "help", false, "Show Help.");
- final Option lverbose = new Option("v", "verbose", false,
- "Verbose mode.");
-
- lvOptions.addOption(lvHelp);
- lvOptions.addOption(lverbose);
- lvOptions.addOption(new Option("o", "json", false, "Output as JSON."));
-
- lvOptions.addOption(Option.builder("d").longOpt("device").argName("UA")
- .desc("User Agent of device to test").hasArg()
- .optionalArg(true).build());
-
- lvOptions.addOption(Option.builder("u").longOpt("url").argName("url")
- .desc("Load DeviceMap resouces from URL or \"default\"")
- .hasArg().optionalArg(true).build());
-
- lvOptions.addOption(Option.builder("f").longOpt("folder")
- .argName("path")
- .desc("Load DeviceMap resouces from folder or \"default\"")
- .hasArg().optionalArg(true).build());
-
- lvOptions.addOption(Option.builder("j")
- .longOpt("jar")
- .argName("jar")
- .desc("Load DeviceMap resouces from JAR file in classpath or \"default\"")
- .hasArg().optionalArg(true).build());
-
- try {
- lvCmd = lvParser.parse(lvOptions, args);
-
- if (lvCmd.hasOption('h')) {
- lvFormater.printHelp(CLASS_NAME, lvOptions);
- return;
- }
-
- if (lvCmd.hasOption('v')) {
- debug = true;
- debugLevel = Level.ALL;
- LOG.setLevel(debugLevel);
- Logger.getLogger(DeviceMapClient.class.getName()).setLevel(
- debugLevel);
- Logger.getLogger(DDRLoader.class.getName())
- .setLevel(debugLevel);
- for (Handler h : Logger
- .getLogger(DeviceMapClient.class.getName()).getParent()
- .getHandlers()) {
- if (h instanceof ConsoleHandler) {
- h.setLevel(debugLevel);
- }
- }
- }
-
- if (lvCmd.hasOption('f')) {
- option = LoaderOption.FOLDER;
- loaderPath = lvCmd.getOptionValue('f');
- }
-
- if (lvCmd.hasOption('j')) {
- LOG.fine("JAR: " + lvCmd.getOptionObject('j'));
- option = LoaderOption.JAR;
- }
-
- if (lvCmd.hasOption('u')) {
- option = LoaderOption.URL;
- loaderPath = lvCmd.getOptionValue('u');
- LOG.fine("URL: " + lvCmd.getOptionObject('u'));
- }
+ private static final String APP_NAME = "DeviceMap Java Console";
+ private static final String CLASS_NAME = DeviceMapConsole.class.getName();
+ private static final Logger LOG = Logger.getLogger(CLASS_NAME);
+ private static final String CONFIG_FILE = "app.properties";
+ private static final String CONFIG_PROP_CONNECT = "connectionString";
+
+ public static void main(String[] args) throws Exception {
+ System.out.println(APP_NAME
+ + " "
+ + DeviceMapConsole.class.getPackage()
+ .getImplementationVersion());
+
+ final Configurations configs = new Configurations();
+ // Read data from this file
+ final File propertiesFile = new File(CONFIG_FILE);
+ final PropertiesConfiguration config = configs
+ .properties(propertiesFile);
+
+ @SuppressWarnings("unused")
+ boolean debug = false;
+ String loaderPath = null;
+ LoaderOption option = LoaderOption.UNINITIALIZED;
+ String parameter = null;
+ Level debugLevel = Level.OFF;
+
+ CommandLine lvCmd = null;
+ final HelpFormatter lvFormater = new HelpFormatter();
+ final CommandLineParser lvParser = new DefaultParser();
+ final Options lvOptions = new Options();
+
+ final Option lvHelp = new Option("h", "help", false, "Show Help.");
+ final Option lverbose = new Option("v", "verbose", false,
+ "Verbose mode.");
+
+ lvOptions.addOption(lvHelp);
+ lvOptions.addOption(lverbose);
+ lvOptions.addOption(new Option("o", "json", false, "Output as JSON."));
+
+ lvOptions.addOption(Option.builder("d").longOpt("device").argName("UA")
+ .desc("User Agent of device to test").hasArg()
+ .optionalArg(true).build());
+
+ lvOptions.addOption(Option.builder("u").longOpt("url").argName("url")
+ .desc("Load DeviceMap resouces from URL or \"default\"")
+ .hasArg().optionalArg(true).build());
+
+ lvOptions.addOption(Option.builder("f").longOpt("folder")
+ .argName("path")
+ .desc("Load DeviceMap resouces from folder or \"default\"")
+ .hasArg().optionalArg(true).build());
+
+ lvOptions
+ .addOption(Option
+ .builder("j")
+ .longOpt("jar")
+ .argName("jar")
+ .desc("Load DeviceMap resouces from JAR file in classpath or \"default\"")
+ .hasArg().optionalArg(true).build());
+
+ try {
+ lvCmd = lvParser.parse(lvOptions, args);
+
+ if (lvCmd.hasOption('h')) {
+ lvFormater.printHelp(CLASS_NAME, lvOptions);
+ return;
+ }
+
+ if (lvCmd.hasOption('v')) {
+ debug = true;
+ debugLevel = Level.ALL;
+ LOG.setLevel(debugLevel);
+ Logger.getLogger(DeviceMapClient.class.getName()).setLevel(
+ debugLevel);
+ Logger.getLogger(DDRLoader.class.getName())
+ .setLevel(debugLevel);
+ for (Handler h : Logger
+ .getLogger(DeviceMapClient.class.getName()).getParent()
+ .getHandlers()) {
+ if (h instanceof ConsoleHandler) {
+ h.setLevel(debugLevel);
+ }
+ }
+ }
- if (lvCmd.hasOption('d')) {
- parameter = lvCmd.getOptionValue('d');
- LOG.fine("UA: " + lvCmd.getOptionObject('d'));
- }
+ if (lvCmd.hasOption('f')) {
+ option = LoaderOption.FOLDER;
+ loaderPath = lvCmd.getOptionValue('f');
+ }
+
+ if (lvCmd.hasOption('j')) {
+ LOG.fine("JAR: " + lvCmd.getOptionObject('j'));
+ option = LoaderOption.JAR;
+ }
+
+ if (lvCmd.hasOption('u')) {
+ option = LoaderOption.URL;
+ loaderPath = lvCmd.getOptionValue('u');
+ LOG.fine("URL: " + lvCmd.getOptionObject('u'));
+ }
+
+ if (lvCmd.hasOption('d')) {
+ parameter = lvCmd.getOptionValue('d');
+ LOG.fine("UA: " + lvCmd.getOptionObject('d'));
+ }
+
+ if ("default".equals(loaderPath)) {
+ loaderPath = config.getString(CONFIG_PROP_CONNECT);
+ }
+
+ if (LoaderOption.UNINITIALIZED.equals(option)) {
+ option = LoaderOption.URL;
+ }
+ final DeviceMapClient client = new DeviceMapClient();
+ final long start = System.currentTimeMillis();
+ client.initDeviceData(option, loaderPath);
+ long diff = System.currentTimeMillis() - start;
+
+ System.out.println("Loaded " + client.getDeviceCount()
+ + " devices with " + client.getPatternCount()
+ + " patterns and " + client.getNodeCount() + " nodes in "
+ + diff + " ms");
+
+ System.out.println("Cold run");
+ long startn = System.nanoTime();
+ final long startm = System.currentTimeMillis();
+ map(client,
+ "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");
+ map(client,
+ "Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8L1");
+ map(client,
+ "Mozilla/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.261 Mobile Safari/534.11+");
+ map(client,
+ "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X; en-us) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.91 Mobile/10A403 Safari/8536.25");
+ // long diffn = (System.nanoTime() - startn) / 1000;
+ final long diffm = System.currentTimeMillis() - startm;
+ System.out.println("End cold run : " + diffm + " ms");
+
+ long diffn;
+ if (parameter == null) {
+ } else if ((new File(parameter)).exists()) {
+ System.out.println("Text file: " + parameter);
+ int count = 0;
+ int total = 0;
+
+ BufferedReader in = new BufferedReader(
+ new FileReader(parameter));
+ String line;
+ Device device;
+ while ((line = in.readLine()) != null) {
+ System.out.println("Text: '" + line + "'");
+ startn = System.nanoTime();
+ device = client.classifyDevice(line);
+ diffn = System.nanoTime() - startn;
+ total += diffn;
+ count++;
+
+ System.out.println("Text lookup " + count + ": '"
+ + device.getId() + "' time: " + (diffn / 1000)
+ + "usec");
+ }
- if ("default".equals(loaderPath)) {
- loaderPath = config.getString(CONFIG_PROP_CONNECT);
- }
+ in.close();
- if (LoaderOption.UNINITIALIZED.equals(option)) {
- option = LoaderOption.URL;
- }
- final DeviceMapClient client = new DeviceMapClient();
- final long start = System.currentTimeMillis();
- client.initDeviceData(option, loaderPath);
- long diff = System.currentTimeMillis() - start;
-
- System.out.println("Loaded " + client.getDeviceCount()
- + " devices with " + client.getPatternCount()
- + " patterns and " + client.getNodeCount() + " nodes in "
- + diff + " ms");
-
- System.out.println("Cold run");
- long startn = System.nanoTime();
- final long startm = System.currentTimeMillis();
- map(client, "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");
- map(client, "Mozilla/5.0 (iPad; U; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Mobile/8L1");
- map(client, "Mozilla/5.0 (BlackBerry; U; BlackBerry 9810; en-US) AppleWebKit/534.11+ (KHTML, like Gecko) Version/7.0.0.261 Mobile Safari/534.11+");
- map(client, "Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X; en-us) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.91 Mobile/10A403 Safari/8536.25");
- //long diffn = (System.nanoTime() - startn) / 1000;
- final long diffm = System.currentTimeMillis() - startm;
- System.out.println("End cold run : " + diffm + " ms");
-
- long diffn;
- if (parameter == null) {
- } else if ((new File(parameter)).exists()) {
- System.out.println("Text file: " + parameter);
- int count = 0;
- int total = 0;
-
- BufferedReader in = new BufferedReader(
- new FileReader(parameter));
- String line;
- Device device;
- while ((line = in.readLine()) != null) {
- System.out.println("Text: '" + line + "'");
- startn = System.nanoTime();
- device = client.classifyDevice(line);
- diffn = System.nanoTime() - startn;
- total += diffn;
- count++;
-
- System.out.println("Text lookup " + count + ": '"
- + device.getId() + "' time: " + (diffn / 1000)
- + "usec");
- }
-
- in.close();
-
- if (count == 0) {
- count = 1;
- }
- total /= count;
-
- System.out.println("TOTAL lookups: " + count
- + ", average time: " + (total / 1000) + "usec");
- } else {
- System.out.println("UA: '" + parameter + "'");
- startn = System.nanoTime();
- final Device device = client.classifyDevice(parameter);
- diffn = System.nanoTime() - startn;
- System.out.println("UA lookup: '" + device.getId() + "' time: "
- + (diffn / 1000) + "usec");
- if (lvCmd.hasOption('o')) {
- System.out.println("DeviceMap JSON => " + device.toString());
- } else {
- Map<String, String> m = device.getAttributes();
- // iterate thru the attributes
- if (m != null
- && (m.keySet() != null && m.keySet().size() > 0)) {
- System.out.println("=== ATTRIBUTES ===");
- for (String attr : m.keySet()) {
- System.out.println(attr + ": " + m.get(attr));
- }
- } else {
- System.out.println("No attributes found for '"
- + parameter + "'.");
- }
- }
- }
+ if (count == 0) {
+ count = 1;
+ }
+ total /= count;
- return;
- } catch (ParseException pvException) {
- lvFormater.printHelp(CLASS_NAME, lvOptions);
- System.out.println("Parse Error:" + pvException.getMessage());
- return;
+ System.out.println("TOTAL lookups: " + count
+ + ", average time: " + (total / 1000) + "usec");
+ } else {
+ System.out.println("UA: '" + parameter + "'");
+ startn = System.nanoTime();
+ final Device device = client.classifyDevice(parameter);
+ diffn = System.nanoTime() - startn;
+ System.out.println("UA lookup: '" + device.getId() + "' time: "
+ + (diffn / 1000) + "usec");
+ if (lvCmd.hasOption('o')) {
+ System.out
+ .println("DeviceMap JSON => " + device.toString());
+ } else {
+ Map<String, String> m = device.getAttributes();
+ // iterate thru the attributes
+ if (m != null
+ && (m.keySet() != null && m.keySet().size() > 0)) {
+ System.out.println("=== ATTRIBUTES ===");
+ for (String attr : m.keySet()) {
+ System.out.println(attr + ": " + m.get(attr));
+ }
+ } else {
+ System.out.println("No attributes found for '"
+ + parameter + "'.");
+ }
}
+ }
+
+ return;
+ } catch (ParseException pvException) {
+ lvFormater.printHelp(CLASS_NAME, lvOptions);
+ System.out.println("Parse Error:" + pvException.getMessage());
+ return;
}
+ }
- private static void map(DeviceMapClient client, String text) {
- StopWatch stopWatch = new StopWatch();
- stopWatch.start();
-
- Device device = client.classifyDevice(text);
- stopWatch.stop();
- String deviceId = "unknown";
- if (device != null) {
- deviceId = device.getId();
- }
- System.out.println("Result: " + deviceId + " took "
- + stopWatch.getTime() + " ms");
+ private static void map(DeviceMapClient client, String text) {
+ StopWatch stopWatch = new StopWatch();
+ stopWatch.start();
+
+ Device device = client.classifyDevice(text);
+ stopWatch.stop();
+ String deviceId = "unknown";
+ if (device != null) {
+ deviceId = device.getId();
}
+ System.out.println("Result: " + deviceId + " took "
+ + stopWatch.getTime() + " ms");
+ }
}