Author: rezan
Date: Wed Mar 26 20:45:06 2014
New Revision: 1582049
URL: http://svn.apache.org/r1582049
Log:
loaders from Gopal Kalyanaraman
Added:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/LoaderFactory.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/NOOPLoader.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/ResourceLoader.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/URLLoader.java
Modified:
incubator/devicemap/trunk/devicemap/java/classifier/pom.xml
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/DeviceMapClient.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/Main.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/FileLoader.java
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/JarLoader.java
incubator/devicemap/trunk/devicemap/java/classifier/test.sh
Modified: incubator/devicemap/trunk/devicemap/java/classifier/pom.xml
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/pom.xml?rev=1582049&r1=1582048&r2=1582049&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/pom.xml (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/pom.xml Wed Mar 26
20:45:06 2014
@@ -19,13 +19,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">
<modelVersion>4.0.0</modelVersion>
+<!-- circular dependance error
<parent>
<groupId>org.apache.devicemap</groupId>
<artifactId>devicemap-parent</artifactId>
<version>0.9.9-SNAPSHOT</version>
<relativePath/>
</parent>
+-->
+ <version>0.9.9-SNAPSHOT</version>
<groupId>org.apache.devicemap</groupId>
<artifactId>org.apache.devicemap.classifier</artifactId>
<packaging>jar</packaging>
@@ -38,6 +41,11 @@
<developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/devicemap/trunk/devicemapjava</developerConnection>
<url>http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemapjava</url>
</scm>
+
+ <properties>
+
<devicemap.device.data.folder>/home/rezan/Code/devicemap/trunk/data/device-data/src/main/resources/devicedata</devicemap.device.data.folder>
+
<devicemap.test.data.file>/home/rezan/Code/devicemap/trunk/data/test-data/src/main/resources/test-data/dmap_20130522.txt</devicemap.test.data.file>
+ </properties>
<dependencies>
<dependency>
Modified:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/DeviceMapClient.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/DeviceMapClient.java?rev=1582049&r1=1582048&r2=1582049&view=diff
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/DeviceMapClient.java
(original)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/DeviceMapClient.java
Wed Mar 26 20:45:06 2014
@@ -21,6 +21,7 @@ package org.apache.devicemap.client;
import org.apache.devicemap.client.data.Device;
import org.apache.devicemap.client.loaders.FileLoader;
+import org.apache.devicemap.client.loaders.LoaderFactory;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
@@ -42,10 +43,15 @@ public class DeviceMapClient {
devices=new HashMap<String,Device>();
patterns=new HashMap<String,List<Device>>();
}
+
+ public void loadFromResource(String option, String res) throws IOException{
+ devices = LoaderFactory.getLoader(option).getData(res);
+ createIndex();
+ }
//load DDR indexes from a folder
public void loadFromFolder(String folder) throws IOException {
- devices=FileLoader.dataFolder(folder);
+ devices=LoaderFactory.getLoader("-l").getData(folder);
createIndex();
}
Modified:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/Main.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/Main.java?rev=1582049&r1=1582048&r2=1582049&view=diff
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/Main.java
(original)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/Main.java
Wed Mar 26 20:45:06 2014
@@ -38,15 +38,19 @@ public class Main {
String resourceFolder=null;
String parameter=null;
+ String option=null;
for(int i=0;i<args.length;i++)
{
//-l [resource folder]
- if(args[i].equals("-l") && args.length>(++i)) {
+ if((args[i].equals("-l") || args[i].equals("-j") ||
args[i].equals("-u")) && args.length>(++i)) {
resourceFolder=args[i];
+ option=args[i-1];
} else if(args[i].startsWith("-h") || args[i].startsWith("--h")) {
System.out.println("Usage: "+Main.class.getName()+" [OPTIONS]
[FILE|STRING]\n");
System.out.println(" -l <path> load Device Map
resouces from folder");
+ System.out.println(" -j <file> load Device Map
resouces from jar file");
+ System.out.println(" -u <url> load Device Map
resouces from URL");
System.out.println(" FILE text file of
strings");
System.out.println(" STRING test string");
@@ -63,7 +67,7 @@ public class Main {
if(resourceFolder!=null && !resourceFolder.isEmpty()) {
long start=System.currentTimeMillis();
- client.loadFromFolder(resourceFolder);
+ client.loadFromResource(option,resourceFolder);
long diff=System.currentTimeMillis()-start;
Modified:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/FileLoader.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/FileLoader.java?rev=1582049&r1=1582048&r2=1582049&view=diff
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/FileLoader.java
(original)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/FileLoader.java
Wed Mar 26 20:45:06 2014
@@ -34,7 +34,14 @@ import org.apache.devicemap.client.Util;
*
* @author Reza Naghibi
*/
-public class FileLoader {
+public class FileLoader implements ResourceLoader{
+
+ private final Loader loader;
+
+
+ public FileLoader(Loader loader){
+ this.loader = loader;
+ }
/**
*
@@ -42,8 +49,8 @@ public class FileLoader {
* @return map of devices
* @throws IOException
*/
- public static Map<String,Device> dataFolder(String folder) throws
IOException {
- Loader loader=new Loader();
+ public Map<String,Device> getData(String folder) throws IOException {
+
String ddpath=folder+File.separatorChar+"DeviceDataSource.xml";
String ddppath=folder+File.separatorChar+"DeviceDataSourcePatch.xml";
Modified:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/JarLoader.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/JarLoader.java?rev=1582049&r1=1582048&r2=1582049&view=diff
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/JarLoader.java
(original)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/JarLoader.java
Wed Mar 26 20:45:06 2014
@@ -19,11 +19,87 @@
package org.apache.devicemap.client.loaders;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.util.Map;
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+
+import org.apache.devicemap.client.Util;
+import org.apache.devicemap.client.data.Device;
+
/**
*
- * @author Reza Naghibi
+ * @author kalyanar
*/
-public class JarLoader {
+public class JarLoader implements ResourceLoader {
+ private final Loader loader;
+
+
+ public JarLoader(Loader loader){
+ this.loader = loader;
+ }
+
+
+ @Override
+ public Map<String, Device> getData(String path) throws IOException {
+
+ String ddpath="devicedata/DeviceDataSource.xml";
+ String ddppath="devicedata/DeviceDataSourcePatch.xml";
+ String bpath="devicedata/BuilderDataSource.xml";
+ String bppath="devicedata/BuilderDataSourcePatch.xml";
+ JarFile jar = new JarFile(path);
+
+ long start=System.currentTimeMillis();
+ BufferedReader ddin=new BufferedReader(new
InputStreamReader(jar.getInputStream(jar.getJarEntry(ddpath)), "UTF-8"));
+ loader.loadDeviceData(ddin);
+ ddin.close();
+
+ long diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+ddpath+" in "+diff+"ms");
+ try {
+ start=System.currentTimeMillis();
+
+ BufferedReader ddpin=new BufferedReader(new
InputStreamReader(jar.getInputStream(jar.getJarEntry(ddppath)), "UTF-8"));
+ loader.loadDeviceData(ddpin);
+ ddpin.close();
+
+ diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+ddppath+" in "+diff+"ms");
+ } catch(FileNotFoundException ex) {
+ Util.debugLog("WARNING: file not found "+ddppath+":
"+ex.toString());
+ }
+
+ loader.setParentAttributes();
+
+ start=System.currentTimeMillis();
+
+ BufferedReader bin=new BufferedReader(new
InputStreamReader(jar.getInputStream(jar.getJarEntry(bpath)), "UTF-8"));
+ loader.loadDevicePatterns(bin);
+ bin.close();
+
+ diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+bpath+" in "+diff+"ms");
+
+ try {
+ start=System.currentTimeMillis();
+
+ BufferedReader bpin=new BufferedReader(new
InputStreamReader(jar.getInputStream(jar.getJarEntry(bppath)), "UTF-8"));
+ loader.loadDevicePatterns(bpin);
+ bpin.close();
+
+ diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+bppath+" in "+diff+"ms");
+ } catch(FileNotFoundException ex) {
+ Util.debugLog("WARNING: file not found "+bppath+": "+ex.toString());
+ }
+
+ return loader.getDevices();
+ }
//TODO load resources from jar
Added:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/LoaderFactory.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/LoaderFactory.java?rev=1582049&view=auto
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/LoaderFactory.java
(added)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/LoaderFactory.java
Wed Mar 26 20:45:06 2014
@@ -0,0 +1,42 @@
+package org.apache.devicemap.client.loaders;
+
+public class LoaderFactory {
+ private static enum LoaderOption{
+ JAR("-j"),FOLDER("-l"),URL("-u"),NOOP("-n");
+ private String loaderType;
+ LoaderOption(String loaderType){
+ this.loaderType = loaderType;
+ }
+ String type(){
+ return this.loaderType;
+ }
+ };
+
+
+public static final ResourceLoader getLoader(String option){
+ LoaderOption lOption = getLoaderOption(option);
+ switch(lOption){
+ case JAR:{
+ return new JarLoader(new Loader());
+ }
+ case FOLDER:{
+ return new FileLoader(new Loader());
+ }
+ case URL:{
+ return new URLLoader(new Loader());
+ }
+ case NOOP:{
+ return new NOOPLoader();
+ }
+ }
+ return new NOOPLoader();
+}
+private static LoaderOption getLoaderOption(String option){
+ for(LoaderOption lOption:LoaderOption.values()){
+ if(lOption.type().equals(option)){
+ return lOption;
+ }
+ }
+ return LoaderOption.NOOP;
+}
+}
Added:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/NOOPLoader.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/NOOPLoader.java?rev=1582049&view=auto
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/NOOPLoader.java
(added)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/NOOPLoader.java
Wed Mar 26 20:45:06 2014
@@ -0,0 +1,17 @@
+package org.apache.devicemap.client.loaders;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.devicemap.client.data.Device;
+
+public class NOOPLoader implements ResourceLoader {
+
+ @Override
+ public Map<String, Device> getData(String path) throws IOException {
+
+ return Collections.emptyMap();
+ }
+
+}
Added:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/ResourceLoader.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/ResourceLoader.java?rev=1582049&view=auto
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/ResourceLoader.java
(added)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/ResourceLoader.java
Wed Mar 26 20:45:06 2014
@@ -0,0 +1,10 @@
+package org.apache.devicemap.client.loaders;
+
+import java.io.IOException;
+import java.util.Map;
+
+import org.apache.devicemap.client.data.Device;
+
+public interface ResourceLoader {
+ public Map<String,Device> getData(String path) throws IOException ;
+}
Added:
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/URLLoader.java
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/URLLoader.java?rev=1582049&view=auto
==============================================================================
---
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/URLLoader.java
(added)
+++
incubator/devicemap/trunk/devicemap/java/classifier/src/main/java/org/apache/devicemap/client/loaders/URLLoader.java
Wed Mar 26 20:45:06 2014
@@ -0,0 +1,83 @@
+package org.apache.devicemap.client.loaders;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.util.Map;
+
+import org.apache.devicemap.client.Util;
+import org.apache.devicemap.client.data.Device;
+/**
+ *
+ * @author kalyanar
+ *
+ */
+public class URLLoader implements ResourceLoader {
+ private final Loader loader;
+
+
+ public URLLoader(Loader loader){
+ this.loader = loader;
+ }
+
+ @Override
+ public Map<String, Device> getData(String path) throws IOException {
+ String ddpath=path+"/"+"DeviceDataSource.xml";
+ String ddppath=path+"/"+"DeviceDataSourcePatch.xml";
+ String bpath=path+"/"+"BuilderDataSource.xml";
+ String bppath=path+"/"+"BuilderDataSourcePatch.xml";
+ long start=System.currentTimeMillis();
+
+ BufferedReader ddin=new BufferedReader(new InputStreamReader(new
URL(ddpath).openStream(), "UTF-8"));
+ loader.loadDeviceData(ddin);
+ ddin.close();
+
+ long diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+ddpath+" in "+diff+"ms");
+
+ try {
+ start=System.currentTimeMillis();
+
+ BufferedReader ddpin=new BufferedReader(new InputStreamReader(new
URL(ddppath).openStream(), "UTF-8"));
+ loader.loadDeviceData(ddpin);
+ ddpin.close();
+
+ diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+ddppath+" in "+diff+"ms");
+ } catch(FileNotFoundException ex) {
+ Util.debugLog("WARNING: file not found "+ddppath+":
"+ex.toString());
+ }
+
+ loader.setParentAttributes();
+
+ start=System.currentTimeMillis();
+
+ BufferedReader bin=new BufferedReader(new InputStreamReader(new
URL(bpath).openStream(), "UTF-8"));
+ loader.loadDevicePatterns(bin);
+ bin.close();
+
+ diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+bpath+" in "+diff+"ms");
+
+ try {
+ start=System.currentTimeMillis();
+
+ BufferedReader bpin=new BufferedReader(new InputStreamReader(new
URL(bppath).openStream(), "UTF-8"));
+ loader.loadDevicePatterns(bpin);
+ bpin.close();
+
+ diff=System.currentTimeMillis()-start;
+ Util.debugLog("Loaded "+bppath+" in "+diff+"ms");
+ } catch(FileNotFoundException ex) {
+ Util.debugLog("WARNING: file not found "+bppath+":
"+ex.toString());
+ }
+
+ return loader.getDevices();
+
+ }
+
+}
Modified: incubator/devicemap/trunk/devicemap/java/classifier/test.sh
URL:
http://svn.apache.org/viewvc/incubator/devicemap/trunk/devicemap/java/classifier/test.sh?rev=1582049&r1=1582048&r2=1582049&view=diff
==============================================================================
--- incubator/devicemap/trunk/devicemap/java/classifier/test.sh (original)
+++ incubator/devicemap/trunk/devicemap/java/classifier/test.sh Wed Mar 26
20:45:06 2014
@@ -1,4 +1,4 @@
#!/bin/bash
-java -cp "target/devicemapclient.jar" org.apache.devicemap.client.Main $@
+java -cp "target/org.apache.devicemap.classifier-0.9.9-SNAPSHOT.jar"
org.apache.devicemap.client.Main $@