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]