java/src/org/openantivirus/engine WriteableScanConfiguration.java,1.1,1.2 ScanConfiguration.java,1.2,1.3 DefaultScanConfiguration.java,1.3,1.4 ScanEngine.java,1.7,1.8

Kurt Huwig <[email protected]> Wed, 26 May 2004 20:19:55 +0000
Newsgroups gmane.comp.security.virus.openantivirus.cvs
Message-ID <[email protected]>
Update of /cvsroot/openantivirus/java/src/org/openantivirus/engine
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16773/src/org/openantivirus/engine

Modified Files:
	WriteableScanConfiguration.java ScanConfiguration.java 
	DefaultScanConfiguration.java ScanEngine.java 
Log Message:
More flexible handling of configuration

Index: WriteableScanConfiguration.java
===================================================================
RCS file: /cvsroot/openantivirus/java/src/org/openantivirus/engine/WriteableScanConfiguration.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- WriteableScanConfiguration.java	14 Dec 2003 11:08:26 -0000	1.1
+++ WriteableScanConfiguration.java	26 May 2004 20:19:52 -0000	1.2
@@ -26,6 +26,7 @@
 
 package org.openantivirus.engine;
 
+import java.io.*;
 import java.util.*;
 
 /**
@@ -38,6 +39,24 @@
  */
 public class WriteableScanConfiguration implements ScanConfiguration {
 
+    private static final Collection BOOLEAN_SETTINGS = Arrays.asList(
+            new String[] {
+                    "engine.halt-on-malware-found",
+                    "engine.use-trie",
+                    "vfs.follow-symlinks"
+            });
+    
+    private static final Collection INT_SETTINGS = Arrays.asList(
+            new String[] {
+                    "credo.level"
+            });
+    
+    private static final Collection STRING_SETTINGS = Arrays.asList(
+            new String[] {
+                    "credo.directory",
+                    "engine.tempdirectory"
+            });
+    
     private Map properties = new HashMap();
 
     private final ScanConfiguration parent;
@@ -94,5 +113,30 @@
     public void putInt(String key, int value) {
         putObject(key, new Integer(value));
     }
+    
+    public void putAny(String key, String value) {
+        // guess the type
+        if (BOOLEAN_SETTINGS.contains(key)) {
+            putBoolean(key, "yes".equals(value));
+        } else if (INT_SETTINGS.contains(key)) {
+            putInt(key, Integer.parseInt(value));
+        } else if (STRING_SETTINGS.contains(key)){
+            putString(key, value);
+        } else {
+            System.err.println("Unknown key: " + key);
+        }
+    }
+    
+    public void loadFile(String filename) throws IOException {
+        final Properties settings = new Properties();
+        settings.load(new FileInputStream(filename));
+        
+        for (Iterator it = settings.entrySet().iterator();
+             it.hasNext(); ) {
+            
+            Map.Entry setting = (Map.Entry) it.next();
+            putAny((String) setting.getKey(), (String) setting.getValue());
+        }
+    }
 
 }

Index: ScanConfiguration.java
===================================================================
RCS file: /cvsroot/openantivirus/java/src/org/openantivirus/engine/ScanConfiguration.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- ScanConfiguration.java	25 May 2004 06:49:09 -0000	1.2
+++ ScanConfiguration.java	26 May 2004 20:19:52 -0000	1.3
@@ -34,8 +34,6 @@
  * @version $Revision$
  */
 public interface ScanConfiguration {
-    String HALT_ON_MALWARE_FOUND = "engine.halt-on-malware-found";
-    
     boolean getBoolean(String key);
     String getString(String key);
     int getInt(String key);

Index: ScanEngine.java
===================================================================
RCS file: /cvsroot/openantivirus/java/src/org/openantivirus/engine/ScanEngine.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- ScanEngine.java	25 May 2004 06:49:09 -0000	1.7
+++ ScanEngine.java	26 May 2004 20:19:52 -0000	1.8
@@ -133,7 +133,7 @@
                 } catch (MalwareFoundException mfe) {
                     notifyMalwareFound(mfe);
                     if (conf.getBoolean(
-                            ScanConfiguration.HALT_ON_MALWARE_FOUND)) {
+                            "engine.halt-on-malware-found")) {
                         throw mfe;
                     }
                 } catch (Exception e) {

Index: DefaultScanConfiguration.java
===================================================================
RCS file: /cvsroot/openantivirus/java/src/org/openantivirus/engine/DefaultScanConfiguration.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- DefaultScanConfiguration.java	25 May 2004 06:49:09 -0000	1.3
+++ DefaultScanConfiguration.java	26 May 2004 20:19:52 -0000	1.4
@@ -36,9 +36,9 @@
 public class DefaultScanConfiguration extends WriteableScanConfiguration {
 
     public DefaultScanConfiguration() {
-        putBoolean(HALT_ON_MALWARE_FOUND, true);
+        putBoolean("engine.halt-on-malware-found", true);
         putBoolean("engine.use-trie", false);
-        putBoolean("engine.follow-symlinks", false);
+        putBoolean("vfs.follow-symlinks", false);
         putString("credo.directory", "credo");
         putInt("credo.level", 3);
         putString("engine.tempdirectory", "temp");



-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id=3149&alloc_id=8166&op=click