Author: berndf
Date: Wed Aug 22 13:41:09 2007
New Revision: 568748

URL: http://svn.apache.org/viewvc?rev=568748&view=rev
Log:
load sqlResource file using FileSystem.getResource() instead .getFile(). This 
allows alternative implementations of FileSystem to fetch from classpath or 
elsewhere. (only JDBCBayesianAnalyzer is not refactored yet) see JAMES-803.
thanks to Zsombor for the initial patch

Modified:
    
james/server/trunk/core-library/src/main/java/org/apache/james/domain/JDBCDomainList.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/mailrepository/JDBCMailRepository.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/util/SqlResources.java
    
james/server/trunk/core-library/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
    
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
    
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerFactory.java

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/domain/JDBCDomainList.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/domain/JDBCDomainList.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/domain/JDBCDomainList.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/domain/JDBCDomainList.java
 Wed Aug 22 13:41:09 2007
@@ -22,6 +22,7 @@
 package org.apache.james.domain;
 
 import java.io.File;
+import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
@@ -164,9 +165,9 @@
         try {
             // Initialise the sql strings.
 
-            File sqlFile = null;
+            InputStream sqlFile = null;
             try {
-                sqlFile = fileSystem.getFile(sqlFileName);
+                sqlFile = fileSystem.getResource(sqlFileName);
                 sqlFileName = null;
             } catch (Exception e) {
                 getLogger().fatalError(e.getMessage(), e);
@@ -177,7 +178,7 @@
                 logBuffer =
                     new StringBuffer(128)
                             .append("Reading SQL resources from file: ")
-                            .append(sqlFile.getAbsolutePath())
+                            .append(sqlFileName)
                             .append(", section ")
                             .append(this.getClass().getName())
                             .append(".");

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/mailrepository/JDBCMailRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/mailrepository/JDBCMailRepository.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/mailrepository/JDBCMailRepository.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/mailrepository/JDBCMailRepository.java
 Wed Aug 22 13:41:09 2007
@@ -45,6 +45,7 @@
 import java.io.ByteArrayOutputStream;
 import java.io.File;
 import java.io.IOException;
+import java.io.InputStream;
 import java.io.ObjectOutputStream;
 import java.io.ObjectInputStream;
 import java.sql.Blob;
@@ -305,10 +306,9 @@
         try {
             // Initialise the sql strings.
 
-            File sqlFile = null;
+            InputStream sqlFile = null;
             try {
-                sqlFile = fileSystem.getFile(sqlFileName);
-                sqlFileName = null;
+                sqlFile = fileSystem.getResource(sqlFileName);
             } catch (Exception e) {
                 getLogger().fatalError(e.getMessage(), e);
                 throw e;
@@ -318,7 +318,7 @@
                 logBuffer =
                     new StringBuffer(128)
                             .append("Reading SQL resources from file: ")
-                            .append(sqlFile.getAbsolutePath())
+                            .append(sqlFileName)
                             .append(", section ")
                             .append(this.getClass().getName())
                             .append(".");

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/userrepository/AbstractJdbcUsersRepository.java
 Wed Aug 22 13:41:09 2007
@@ -34,6 +34,7 @@
 import org.apache.james.util.SqlResources;
 
 import java.io.File;
+import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
@@ -387,10 +388,10 @@
         try {
             DatabaseMetaData dbMetaData = conn.getMetaData();
 
-            File sqlFile = null;
+            InputStream sqlFile = null;
 
             try {
-                sqlFile = fileSystem.getFile(m_sqlFileName);
+                sqlFile = fileSystem.getResource(m_sqlFileName);
             } catch (Exception e) {
                 getLogger().fatalError(e.getMessage(), e);
                 throw e;
@@ -398,8 +399,8 @@
 
             if (getLogger().isDebugEnabled()) {
                 logBuffer = new StringBuffer(256).append(
-                        "Reading SQL resources from file: ").append(
-                        sqlFile.getAbsolutePath()).append(", section ").append(
+                        "Reading SQL resources from: ").append(
+                        m_sqlFileName).append(", section ").append(
                         this.getClass().getName()).append(".");
                 getLogger().debug(logBuffer.toString());
             }

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/util/SqlResources.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/util/SqlResources.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/util/SqlResources.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/util/SqlResources.java
 Wed Aug 22 13:41:09 2007
@@ -31,6 +31,7 @@
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
 import java.io.File;
+import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.HashMap;
@@ -94,7 +95,51 @@
         DocumentBuilder builder = factory.newDocumentBuilder();
         Document sqlDoc = builder.parse(sqlFile);
 
-        // First process the database matcher, to determine the
+        init(sqlDoc, sqlDefsSection, conn, configParameters);
+    }
+    
+    /**
+     * Configures a DbResources object to provide SQL statements from an 
InputStream.
+     * 
+     * SQL statements returned may be specific to the particular type
+     * and version of the connected database, as well as the database driver.
+     * 
+     * Parameters encoded as $(parameter} in the input file are
+     * replace by values from the parameters Map, if the named parameter 
exists.
+     * Parameter values may also be specified in the resourceSection element.
+     * 
+     * @param sqlFile    the input stream containing the xml
+     * @param sqlDefsSection
+     *                   the xml element containing the strings to be used
+     * @param conn the Jdbc DatabaseMetaData, taken from a database connection
+     * @param configParameters a map of parameters (name-value string pairs) 
which are
+     *                   replaced where found in the input strings
+     */
+    public void init(InputStream input, String sqlDefsSection,
+                     Connection conn, Map configParameters)
+        throws Exception
+    {
+        // Parse the InputStream as an XML document.
+        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+        DocumentBuilder builder = factory.newDocumentBuilder();
+        Document sqlDoc = builder.parse(input);
+
+        init(sqlDoc, sqlDefsSection, conn, configParameters);
+    }
+    
+
+    /**
+     * Configures a SqlResources object from an xml document.
+     * 
+     * @param sqlDoc
+     * @param sqlDefsSection
+     * @param conn
+     * @param configParameters
+     * @throws SQLException
+     */
+       protected void init(Document sqlDoc, String sqlDefsSection,
+                       Connection conn, Map configParameters) throws 
SQLException {
+               // First process the database matcher, to determine the
         //  sql statements to use.
         Element dbMatcherElement = 
             (Element)(sqlDoc.getElementsByTagName("dbMatchers").item(0));
@@ -223,7 +268,7 @@
         // Copy in default strings, then overwrite product-specific ones.
         m_sql.putAll(defaultSqlStatements);
         m_sql.putAll(dbProductSqlStatements);
-    }
+       }
 
     /**
      * Compares the DatabaseProductName value for a jdbc Connection

Modified: 
james/server/trunk/core-library/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/core-library/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/core-library/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
 (original)
+++ 
james/server/trunk/core-library/src/main/java/org/apache/james/vut/JDBCVirtualUserTable.java
 Wed Aug 22 13:41:09 2007
@@ -23,6 +23,7 @@
 package org.apache.james.vut;
 
 import java.io.File;
+import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
@@ -175,10 +176,9 @@
         try {
             // Initialise the sql strings.
 
-            File sqlFile = null;
+            InputStream sqlFile = null;
             try {
-                sqlFile = fileSystem.getFile(sqlFileName);
-                sqlFileName = null;
+                sqlFile = fileSystem.getResource(sqlFileName);
             } catch (Exception e) {
                 getLogger().fatalError(e.getMessage(), e);
                 throw e;
@@ -188,7 +188,7 @@
                 logBuffer =
                     new StringBuffer(128)
                             .append("Reading SQL resources from file: ")
-                            .append(sqlFile.getAbsolutePath())
+                            .append(sqlFileName)
                             .append(", section ")
                             .append(this.getClass().getName())
                             .append(".");

Modified: 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
 (original)
+++ 
james/server/trunk/smtpserver-function/src/main/java/org/apache/james/smtpserver/core/filter/fastfail/GreylistHandler.java
 Wed Aug 22 13:41:09 2007
@@ -20,6 +20,7 @@
 package org.apache.james.smtpserver.core.filter.fastfail;
 
 import java.io.File;
+import java.io.InputStream;
 import java.sql.Connection;
 import java.sql.DatabaseMetaData;
 import java.sql.PreparedStatement;
@@ -596,17 +597,17 @@
         throws Exception {
         try {
 
-            File sqlFile = null;
+            InputStream sqlFile = null;
     
             try {
-                sqlFile = fileSystem.getFile(sqlFileUrl);
+                sqlFile = fileSystem.getResource(sqlFileUrl);
                 sqlFileUrl = null;
             } catch (Exception e) {
                 getLogger().fatalError(e.getMessage(), e);
                 throw e;
             }
 
-            sqlQueries.init(sqlFile.getCanonicalFile(), "GreyList", conn, 
sqlParameters);
+            sqlQueries.init(sqlFile, "GreyList", conn, sqlParameters);
 
             selectQuery = sqlQueries.getSqlString("selectQuery", true);
             insertQuery = sqlQueries.getSqlString("insertQuery", true);

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerFactory.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerFactory.java?rev=568748&r1=568747&r2=568748&view=diff
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerFactory.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManagerFactory.java
 Wed Aug 22 13:41:09 2007
@@ -98,7 +98,7 @@
                 conn = Transaction.begin(MailboxRowPeer.DATABASE_NAME);
                 SqlResources sqlResources = new SqlResources();
                 sqlResources.init(fileSystem
-                        .getFile("file://conf/mailboxManagerSqlResources.xml"),
+                        
.getResource("file://conf/mailboxManagerSqlResources.xml"),
                         TorqueMailboxManagerFactory.class.getName(), conn,
                         new HashMap());
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to