thanks!

I have to admit that I don't understand what the fields
repositoryPath/repository are for.
This is a very generic name for a variable which is _required_ to be
configured and only used in a very limited functional domain (ham/spam
admin). Currently, "repository" is never read and could be removed, as
far as I can see.

Also, I don't like that spam administrative logic is put into the
RemoteManager which incorporates the RM to have exact knowledge how
the bayesian stuff is implemented (namely: SQL, JDBC). This is far
more insight than the RM should have und would better be found in a
separate component which hides the spam filter's implementation. Buzz
words often used in this context: high cohesion, low coupling.

This would have the advantages that the functionality is open to other
components as well (e.g. JMX), it can be found much easier by other
developers (when put near the bayesian code) and the RemoteManager
stays more 'clean'.

 Bernd

On 8/21/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Author: norman
Date: Mon Aug 21 05:39:58 2006
New Revision: 433238

URL: http://svn.apache.org/viewvc?rev=433238&view=rev
Log:
Fix junit test of RemoteManager which were broken after i commit the ADDHAM and 
ADDSPAM feature.
The feature is now disabled if no repositoryPath is configured in the config.xml

Modified:
    
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
    
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
    
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTest.java
    
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTestConfiguration.java

Modified: 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java?rev=433238&r1=433237&r2=433238&view=diff
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java 
(original)
+++ 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java 
Mon Aug 21 05:39:58 2006
@@ -164,10 +164,9 @@
             else if (!prompt.equals("") && !prompt.endsWith(" ")) prompt += " 
";

             Configuration reposConfiguration = 
handlerConfiguration.getChild("repositoryPath", false);
-            if (reposConfiguration == null) {
-                throw new ConfigurationException("Please configure the 
repositoryPath");
+            if (reposConfiguration != null) {
+                repositoryPath = reposConfiguration.getValue();
             }
-            repositoryPath = reposConfiguration.getValue();
         }
     }


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?rev=433238&r1=433237&r2=433238&view=diff
==============================================================================
--- 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManagerHandler.java
 Mon Aug 21 05:39:58 2006
@@ -190,6 +190,8 @@
     private String sqlFileUrl = "file://conf/sqlResources.xml";

     DataSourceComponent datasource;
+
+    String repository;

     /**
      * Set the configuration data for the handler.
@@ -1072,7 +1074,13 @@
      */
     private boolean doADDHAM(String argument) {
         String exception = null;
-
+
+        // check if the command is disabled
+        if (repository == null) {
+            writeLoggedFlushedResponse("Command disabled. Configure a 
repositoryPath to enable it");
+            return true;
+        }
+
         // check if the command was called correct
         if (argument == null || argument.trim().equals("")) {
             writeLoggedFlushedResponse("Usage: ADDHAM [hamdir]");
@@ -1114,6 +1122,12 @@
     private boolean doADDSPAM(String argument) {
         String exception = null;

+        // check if the command is disabled
+        if (repository == null) {
+            writeLoggedFlushedResponse("Command disabled. Configure a 
repositoryPath to enable it");
+            return true;
+        }
+
         // check if the command was called correct
         if (argument == null || argument.trim().equals("")) {
             writeLoggedFlushedResponse("Usage: ADDSPAM [spamdir]");
@@ -1220,9 +1234,13 @@
      * @see org.apache.avalon.framework.activity.Initializable#initialize()
      */
     public void initialize() throws Exception {
-        String repos = theConfigData.getRepositoryPath().substring(5);
-        datasource = (DataSourceComponent) 
theConfigData.getDataSourceSelector().select(repos);
-        File sqlFile = AvalonContextUtilities.getFile(context, sqlFileUrl);
-        analyzer.initSqlQueries(datasource.getConnection(), 
sqlFile.getAbsolutePath());
+        repository = theConfigData.getRepositoryPath();
+
+        if (repository != null) {
+            String repos = repository.substring(5);
+            datasource = (DataSourceComponent) 
theConfigData.getDataSourceSelector().select(repos);
+            File sqlFile = AvalonContextUtilities.getFile(context, sqlFileUrl);
+            analyzer.initSqlQueries(datasource.getConnection(), 
sqlFile.getAbsolutePath());
+        }
     }
 }

Modified: 
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTest.java?rev=433238&r1=433237&r2=433238&view=diff
==============================================================================
--- 
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTest.java
 (original)
+++ 
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTest.java
 Mon Aug 21 05:39:58 2006
@@ -29,6 +29,7 @@
 import org.apache.james.services.MailServer;
 import org.apache.james.services.UsersRepository;
 import org.apache.james.services.UsersStore;
+import org.apache.james.test.mock.avalon.MockContext;
 import org.apache.james.test.mock.avalon.MockLogger;
 import org.apache.james.test.mock.avalon.MockServiceManager;
 import org.apache.james.test.mock.avalon.MockSocketManager;
@@ -87,6 +88,7 @@
         try {
             ContainerUtil.configure(m_remoteManager, testConfiguration);
             ContainerUtil.initialize(m_remoteManager);
+            ContainerUtil.contextualize(m_remoteManager, new MockContext());
         } catch (Exception e) {
             throw new RuntimeException(e);
         }

Modified: 
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTestConfiguration.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTestConfiguration.java?rev=433238&r1=433237&r2=433238&view=diff
==============================================================================
--- 
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTestConfiguration.java
 (original)
+++ 
james/server/trunk/src/test/org/apache/james/remotemanager/RemoteManagerTestConfiguration.java
 Mon Aug 21 05:39:58 2006
@@ -67,7 +67,7 @@
         DefaultConfiguration handlerConfig = new 
DefaultConfiguration("handler");
         handlerConfig.addChild(Util.getValuedConfiguration("helloName", 
"myMailServer"));
         handlerConfig.addChild(Util.getValuedConfiguration("connectiontimeout", 
"360000"));
-
+
         DefaultConfiguration adminAccounts = new 
DefaultConfiguration("administrator_accounts");

         DefaultConfiguration account = new DefaultConfiguration("account");



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



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

Reply via email to