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 no...@apache.org on 2006/09/08 00:26:32 UTC
svn commit: r441263 - in /james/server/trunk/src: conf/
java/org/apache/james/management/ java/org/apache/james/remotemanager/
java/org/apache/james/services/ java/org/apache/james/util/
Author: norman
Date: Thu Sep 7 15:26:31 2006
New Revision: 441263
URL: http://svn.apache.org/viewvc?view=rev&rev=441263
Log:
Add functionality of reseting the trained data of BayesianAnalysis. JAMES-608
Modified:
james/server/trunk/src/conf/sqlResources.xml
james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagement.java
james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagementMBean.java
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
james/server/trunk/src/java/org/apache/james/services/BayesianAnalyzerManagementService.java
james/server/trunk/src/java/org/apache/james/util/JDBCBayesianAnalyzer.java
Modified: james/server/trunk/src/conf/sqlResources.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/src/conf/sqlResources.xml?view=diff&rev=441263&r1=441262&r2=441263
==============================================================================
--- james/server/trunk/src/conf/sqlResources.xml (original)
+++ james/server/trunk/src/conf/sqlResources.xml Thu Sep 7 15:26:31 2006
@@ -674,6 +674,16 @@
<!-- Statements used to update the spam token counts. -->
<sql name="updateSpamToken">UPDATE bayesiananalysis_spam SET OCCURRENCES=(OCCURRENCES + ?) WHERE (TOKEN=?)</sql>
+ <!-- Statements used to delete ham tokens. -->
+ <sql name="deleteHamTokens">DELETE FROM bayesiananalysis_ham</sql>
+
+ <!-- Statements used to delete spam tokens. -->
+ <sql name="deleteSpamTokens">DELETE FROM bayesiananalysis_spam</sql>
+
+ <!-- Statements used to delete message counts. -->
+ <sql name="deleteMessageCounts">DELETE FROM bayesiananalysis_messagecounts</sql>
+
+
<!-- Statements used to create the "ham" table (the 'token' field must be case sensitive). -->
<sql name="createHamTable" db="mysql">
CREATE TABLE bayesiananalysis_ham (
Modified: james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagement.java?view=diff&rev=441263&r1=441262&r2=441263
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagement.java (original)
+++ james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagement.java Thu Sep 7 15:26:31 2006
@@ -369,7 +369,22 @@
protected void delegatedLog(String logString) {
// no logging
}
- };
+ };
+
+
+ /**
+ * @see org.apache.james.services.BayesianAnalyzerManagementService#resetData()
+ */
+ public void resetData() throws BayesianAnalyzerManagementException {
+ synchronized(JDBCBayesianAnalyzer.DATABASE_LOCK) {
+ try {
+ analyzer.resetData(component.getConnection());
+ } catch (SQLException e) {
+ throw new BayesianAnalyzerManagementException(e.getMessage());
+ }
+ }
+
+ }
/**
* Inner class to represent the data in an xml file
@@ -404,4 +419,5 @@
}
}
+
}
Modified: james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagementMBean.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagementMBean.java?view=diff&rev=441263&r1=441262&r2=441263
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagementMBean.java (original)
+++ james/server/trunk/src/java/org/apache/james/management/BayesianAnalyzerManagementMBean.java Thu Sep 7 15:26:31 2006
@@ -103,4 +103,14 @@
* @throws BayesianAnalyzerManagementException
*/
void importData(String file) throws BayesianAnalyzerManagementException;
+
+ /**
+ * reset trained data
+ *
+ * @phoenix:mx-operation
+ * @phoenix:mx-description reset trained data
+ *
+ * @throws BayesianAnalyzerManagementException
+ */
+ void resetData() throws BayesianAnalyzerManagementException;
}
Modified: james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java?view=diff&rev=441263&r1=441262&r2=441263
==============================================================================
--- james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java (original)
+++ james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java Thu Sep 7 15:26:31 2006
@@ -159,6 +159,8 @@
private static final String COMMAND_IMPORTBAYESIANDATA = "IMPORTBAYESIANDATA";
+ private static final String COMMAND_RESETBAYESIANDATA = "RESETBAYESIANDATA";
+
/**
* The text string for the QUIT command
*/
@@ -353,6 +355,8 @@
return doEXPORTBAYESIANDATA(argument);
} else if (command.equals(COMMAND_IMPORTBAYESIANDATA)) {
return doIMPORTBAYESIANDATA(argument);
+ } else if (command.equals(COMMAND_RESETBAYESIANDATA)) {
+ return doRESETBAYESIANDATA(argument);
} else if (command.equals(COMMAND_MEMSTAT)) {
return doMEMSTAT(argument);
} else if (command.equals(COMMAND_QUIT)) {
@@ -618,7 +622,8 @@
out.println("addham dir/mbox [directory/mbox] feed the BayesianAnalysisFeeder with the content of the directory or mbox file as HAM");
out.println("addspam dir/mbox [directory/mbox] feed the BayesianAnalysisFeeder with the content of the directory or mbox file as SPAM");
out.println("exportbayesiandata [file] export the BayesianAnalysis data to a xml file");
- out.println("importbayesiandata [file] import the BayesianAnalysis data from a xml file");
+ out.println("resetbayesiandata reset trained BayesianAnalysis data");
+ out.println("memstat ([-gc]) shows memory usage. When called with -gc the garbage collector get called");
out.println("memstat ([-gc]) shows memory usage. When called with -gc the garbage collector get called");
out.println("shutdown kills the current JVM (convenient when James is run as a daemon)");
out.println("quit close connection");
@@ -1256,7 +1261,7 @@
getLogger().error("Error on exporting BayesianAnalysis data: " + e);
out.println("Error on exporting BayesianAnalysis data: " + e);
out.flush();
- return false;
+ return true;
} finally {
theWatchdog.start();
}
@@ -1285,7 +1290,29 @@
getLogger().error("Error on importing BayesianAnalysis data: " + e);
out.println("Error on importing BayesianAnalysis data: " + e);
out.flush();
- return false;
+ return true;
+ } finally {
+ theWatchdog.start();
+ }
+
+ return true;
+ }
+
+ private boolean doRESETBAYESIANDATA(String argument) {
+
+ try {
+ // stop watchdog cause feeding can take some time
+ theWatchdog.stop();
+
+ theConfigData.getBayesianAnalyzerManagement().resetData();
+ out.println("Reseted the BayesianAnalysis data");
+ out.flush();
+
+ } catch (BayesianAnalyzerManagementException e) {
+ getLogger().error("Error on reseting BayesianAnalysis data: " + e);
+ out.println("Error on reseting BayesianAnalysis data: " + e);
+ out.flush();
+ return true;
} finally {
theWatchdog.start();
}
Modified: james/server/trunk/src/java/org/apache/james/services/BayesianAnalyzerManagementService.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/services/BayesianAnalyzerManagementService.java?view=diff&rev=441263&r1=441262&r2=441263
==============================================================================
--- james/server/trunk/src/java/org/apache/james/services/BayesianAnalyzerManagementService.java (original)
+++ james/server/trunk/src/java/org/apache/james/services/BayesianAnalyzerManagementService.java Thu Sep 7 15:26:31 2006
@@ -103,4 +103,11 @@
* @throws SQLException
*/
public void importData(String file) throws BayesianAnalyzerManagementException;
+
+ /**
+ * Reset the trained data
+ *
+ * @throws BayesianAnalyzerManagementException
+ */
+ public void resetData() throws BayesianAnalyzerManagementException;
}
Modified: james/server/trunk/src/java/org/apache/james/util/JDBCBayesianAnalyzer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/util/JDBCBayesianAnalyzer.java?view=diff&rev=441263&r1=441262&r2=441263
==============================================================================
--- james/server/trunk/src/java/org/apache/james/util/JDBCBayesianAnalyzer.java (original)
+++ james/server/trunk/src/java/org/apache/james/util/JDBCBayesianAnalyzer.java Thu Sep 7 15:26:31 2006
@@ -259,6 +259,18 @@
setMessageCount(conn, sqlQueries.getSqlString("updateSpamMessageCounts", true), getSpamMessageCount());
}
+ /**
+ * Reset all trained data
+ *
+ * @param conn The connection for accessing the database
+ * @throws SQLException If a dtabase error occours
+ */
+ public void resetData(Connection conn) throws SQLException {
+ deleteData(conn,sqlQueries.getSqlString("deleteHamTokens",true));
+ deleteData(conn,sqlQueries.getSqlString("deleteSpamTokens",true));
+ deleteData(conn,sqlQueries.getSqlString("deleteMessageCounts",true));
+ }
+
private void setMessageCount(Connection conn, String sqlStatement, int count)
throws java.sql.SQLException {
PreparedStatement init = null;
@@ -420,4 +432,22 @@
return true;
}
+ private void deleteData(Connection conn, String deleteSqlStatement) throws SQLException {
+ PreparedStatement delete = null;
+
+ try {
+ //Used to delete ham tokens
+ delete = conn.prepareStatement(deleteSqlStatement);
+ delete.executeUpdate();
+ } finally {
+ if (delete != null) {
+ try {
+ delete.close();
+ } catch (java.sql.SQLException ignore) {
+ }
+
+ delete = null;
+ }
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org