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 $@
 


Reply via email to