You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by rd...@apache.org on 2011/04/26 13:07:08 UTC

svn commit: r1096723 - in /james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic: BayesianAnalysis.java BayesianAnalysisFeeder.java JDBCBayesianAnalyzer.java SystemContext.java

Author: rdonkin
Date: Tue Apr 26 11:07:07 2011
New Revision: 1096723

URL: http://svn.apache.org/viewvc?rev=1096723&view=rev
Log:
JAMES-1228 Decouple FileSystem dependency using mediary interface.

Added:
    james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/SystemContext.java   (with props)
Modified:
    james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
    james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
    james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java

Modified: james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java
URL: http://svn.apache.org/viewvc/james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java?rev=1096723&r1=1096722&r2=1096723&view=diff
==============================================================================
--- james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java (original)
+++ james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysis.java Tue Apr 26 11:07:07 2011
@@ -32,7 +32,6 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.sql.DataSource;
 
-import org.apache.james.filesystem.api.FileSystem;
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailAddress;
 import org.apache.mailet.base.GenericMailet;
@@ -169,7 +168,7 @@ public class BayesianAnalysis extends Ge
      */
     private long lastCorpusLoadTime;
 
-    private FileSystem fs;
+    private SystemContext fs;
 
     /**
      * Getter for property maxSize.
@@ -208,7 +207,7 @@ public class BayesianAnalysis extends Ge
     }
 
     @Resource(name = "filesystem")
-    public void setFileSystem(FileSystem fs) {
+    public void setFileSystem(SystemContext fs) {
         this.fs = fs;
     }
 
@@ -265,7 +264,7 @@ public class BayesianAnalysis extends Ge
     private void initDb() throws MessagingException {
 
         try {
-            analyzer.initSqlQueries(datasource.getConnection(), fs.getFile("file://conf/sqlResources.xml"));
+            analyzer.initSqlQueries(datasource.getConnection(), fs.readXml("sqlResources.xml"));
         } catch (Exception e) {
             throw new MessagingException("Exception initializing queries", e);
         }

Modified: james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java
URL: http://svn.apache.org/viewvc/james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java?rev=1096723&r1=1096722&r2=1096723&view=diff
==============================================================================
--- james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java (original)
+++ james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/BayesianAnalysisFeeder.java Tue Apr 26 11:07:07 2011
@@ -31,7 +31,6 @@ import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 import javax.sql.DataSource;
 
-import org.apache.james.filesystem.api.FileSystem;
 import org.apache.mailet.Mail;
 import org.apache.mailet.base.GenericMailet;
 
@@ -163,7 +162,7 @@ public class BayesianAnalysisFeeder exte
      */
     private int maxSize = 100000;
 
-    private FileSystem fs;
+    private SystemContext fs;
 
     /**
      * Getter for property maxSize.
@@ -192,7 +191,7 @@ public class BayesianAnalysisFeeder exte
     }
 
     @Resource(name = "filesystem")
-    public void setFileSystem(FileSystem fs) {
+    public void setFileSystem(SystemContext fs) {
         this.fs = fs;
     }
 
@@ -227,7 +226,7 @@ public class BayesianAnalysisFeeder exte
     private void initDb() throws MessagingException {
 
         try {
-            analyzer.initSqlQueries(datasource.getConnection(), fs.getFile("file://conf/sqlResources.xml"));
+            analyzer.initSqlQueries(datasource.getConnection(), fs.readXml("sqlResources.xml"));
         } catch (Exception e) {
             throw new MessagingException("Exception initializing queries", e);
         }

Modified: james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java
URL: http://svn.apache.org/viewvc/james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java?rev=1096723&r1=1096722&r2=1096723&view=diff
==============================================================================
--- james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java (original)
+++ james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/JDBCBayesianAnalyzer.java Tue Apr 26 11:07:07 2011
@@ -20,16 +20,15 @@
 package org.apache.james.ai.classic;
 
 
-import java.util.HashMap;
-import java.util.Map;
-
-import java.io.File;
-
 import java.sql.Connection;
+import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.SQLException;
-import java.sql.DatabaseMetaData;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.w3c.dom.Document;
 
 /**
  * Manages the persistence of the spam bayesian analysis corpus using a JDBC
@@ -358,13 +357,13 @@ abstract public class JDBCBayesianAnalyz
      * @throws Exception
      *             If any error occurs
      */
-    public void initSqlQueries(Connection conn, File sqlFile) throws Exception {
+    public void initSqlQueries(Connection conn, Document sqlConfiguration) throws Exception {
         try {
             if (conn.getAutoCommit()) {
                 conn.setAutoCommit(false);
             }
 
-            sqlQueries.init(sqlFile, JDBCBayesianAnalyzer.class.getName(), conn, getSqlParameters());
+            sqlQueries.init(sqlConfiguration, JDBCBayesianAnalyzer.class.getName(), conn, getSqlParameters());
 
             checkTables(conn);
         } finally {

Added: james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/SystemContext.java
URL: http://svn.apache.org/viewvc/james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/SystemContext.java?rev=1096723&view=auto
==============================================================================
--- james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/SystemContext.java (added)
+++ james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/SystemContext.java Tue Apr 26 11:07:07 2011
@@ -0,0 +1,32 @@
+/****************************************************************
+ * 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.james.ai.classic;
+
+import java.io.IOException;
+
+import org.w3c.dom.Document;
+
+/**
+ * Lightweight, read only filesystem access.
+ */
+public interface SystemContext {
+
+	public Document readXml(final String name)  throws IOException;
+}

Propchange: james/mailet/ai/trunk/classic/src/main/java/org/apache/james/ai/classic/SystemContext.java
------------------------------------------------------------------------------
    svn:eol-style = native



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org