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 2009/11/19 17:02:36 UTC

svn commit: r882184 - in /james/server/trunk: management-library/ management-library/src/main/java/org/apache/james/management/ management-library/src/main/java/org/apache/james/management/impl/ management-library/src/main/resources/org/apache/james/ma...

Author: norman
Date: Thu Nov 19 16:02:35 2009
New Revision: 882184

URL: http://svn.apache.org/viewvc?rev=882184&view=rev
Log:
More decoupling of Avalon to move to Guice (JAMES-893)

Added:
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonBayesianAnalyzerManagement.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonDomainListManagement.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonProcessorManagement.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonSpoolManagement.java
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/AvalonBayesianAnalyzerManagement.xinfo
      - copied unchanged from r829946, james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/BayesianAnalyzerManagement.xinfo
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/AvalonDomainListManagement.xinfo
      - copied unchanged from r829946, james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/DomainListManagement.xinfo
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/AvalonProcessorManagement.xinfo
      - copied unchanged from r829946, james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/ProcessorManagement.xinfo
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/AvalonSpoolManagement.xinfo
      - copied unchanged from r829946, james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/SpoolManagement.xinfo
Removed:
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/BayesianAnalyzerManagement.xinfo
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/DomainListManagement.xinfo
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/ProcessorManagement.xinfo
    james/server/trunk/management-library/src/main/resources/org/apache/james/management/impl/SpoolManagement.xinfo
Modified:
    james/server/trunk/management-library/pom.xml
    james/server/trunk/management-library/src/main/java/org/apache/james/management/DomainListManagementService.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolFilter.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/BayesianAnalyzerManagement.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/DomainListManagement.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/ProcessorManagement.java
    james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/SpoolManagement.java
    james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml

Modified: james/server/trunk/management-library/pom.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/pom.xml?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/pom.xml (original)
+++ james/server/trunk/management-library/pom.xml Thu Nov 19 16:02:35 2009
@@ -100,5 +100,22 @@
       <groupId>mx4j</groupId>
       <artifactId>mx4j-jmx</artifactId>
     </dependency>
+      <dependency>
+      <groupId>org.apache.james</groupId>
+      <artifactId>james-server-avalon-guice-bridge-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>com.google.code.guice</groupId>
+      <artifactId>guice</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.guiceyfruit</groupId>
+      <artifactId>guiceyfruit-core</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>spring-aopalliance</groupId>
+      <artifactId>spring-aopalliance</artifactId>
+      <scope>runtime</scope>
+    </dependency>
   </dependencies>
 </project>

Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/DomainListManagementService.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/DomainListManagementService.java?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/DomainListManagementService.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/DomainListManagementService.java Thu Nov 19 16:02:35 2009
@@ -52,7 +52,7 @@
      * 
      * @return domains
      */
-    public List getDomains();
+    public List<String> getDomains();
     
     /**
      * Return true if the domain exists in the service 

Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolFilter.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolFilter.java?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolFilter.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/SpoolFilter.java Thu Nov 19 16:02:35 2009
@@ -47,12 +47,12 @@
     /**
      * Map<String headerName, String headerValueRegex>
      */
-    private final Map headerFilters = new HashMap();
+    private final Map<String,String> headerFilters = new HashMap<String,String>();
 
     /**
      * Map<String headerName, Pattern>
      */
-    private final Map headerFiltersCompiled = new HashMap();
+    private final Map<String,Pattern> headerFiltersCompiled = new HashMap<String,Pattern>();
 
     /**
      * Construct the SpoolFilter
@@ -92,7 +92,7 @@
      * @param state the message state on which message the filter should be used
      * @param headerFilters a Map which contains filters to use
      */
-    public SpoolFilter(String state, Map headerFilters) {
+    public SpoolFilter(String state, Map <String,String>headerFilters) {
         this.state = state;
         this.headerFilters.putAll(headerFilters);
         this.headerFilters.remove(null); // NULL is not acceptable here
@@ -134,7 +134,7 @@
      * 
      * @return headers an Iterator which contains all headers which should be filtered
      */
-    public Iterator getHeaders() {
+    public Iterator<String> getHeaders() {
         return headerFilters.keySet().iterator();
     }
 

Added: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonBayesianAnalyzerManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonBayesianAnalyzerManagement.java?rev=882184&view=auto
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonBayesianAnalyzerManagement.java (added)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonBayesianAnalyzerManagement.java Thu Nov 19 16:02:35 2009
@@ -0,0 +1,120 @@
+/****************************************************************
+ * 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.management.impl;
+
+import org.apache.avalon.cornerstone.services.datasources.DataSourceSelector;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.impl.AvalonLogger;
+import org.apache.james.management.BayesianAnalyzerManagementException;
+import org.apache.james.management.BayesianAnalyzerManagementMBean;
+import org.apache.james.management.BayesianAnalyzerManagementService;
+import org.apache.james.services.FileSystem;
+import org.apache.james.util.ConfigurationAdapter;
+import org.apache.james.bridge.GuiceInjected;
+
+import org.guiceyfruit.jsr250.Jsr250Module;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.name.Names;
+
+public class AvalonBayesianAnalyzerManagement implements GuiceInjected, BayesianAnalyzerManagementMBean, BayesianAnalyzerManagementService, Serviceable, Initializable, Configurable, LogEnabled{
+
+    private BayesianAnalyzerManagement mgmt;
+    private ConfigurationAdapter config;
+    private AvalonLogger logger;
+    private DataSourceSelector selector;
+    private FileSystem fs;
+    
+    public void service(ServiceManager manager) throws ServiceException {
+        selector = (DataSourceSelector) manager.lookup(DataSourceSelector.ROLE);
+        fs = (FileSystem) manager.lookup(FileSystem.ROLE);
+    }
+
+    public void initialize() throws Exception {
+        mgmt = Guice.createInjector(new Jsr250Module(), new AbstractModule() {
+
+            @Override
+            protected void configure() {
+                bind(org.apache.commons.configuration.HierarchicalConfiguration.class).annotatedWith(Names.named("org.apache.commons.configuration.Configuration")).toInstance(config);
+                bind(Log.class).annotatedWith(Names.named("org.apache.commons.logging.Log")).toInstance(logger);
+                bind(FileSystem.class).annotatedWith(Names.named("org.apache.james.services.FileSystem")).toInstance(fs);     
+                bind(DataSourceSelector.class).annotatedWith(Names.named("org.apache.avalon.cornerstone.services.datasources.DataSourceSelector")).toInstance(selector);
+
+            }
+            
+        }).getInstance(BayesianAnalyzerManagement.class);
+    }
+
+
+    /**
+     * @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
+     */
+    public void configure(Configuration config) throws ConfigurationException {
+        try {
+            this.config = new ConfigurationAdapter(config);
+        } catch (org.apache.commons.configuration.ConfigurationException e) {
+            throw new ConfigurationException("Unable to convert configuration", e);
+        }
+    }
+
+    public void enableLogging(Logger logger) {
+        this.logger = new AvalonLogger(logger);        
+    }
+
+    public int addHamFromDir(String dir) throws BayesianAnalyzerManagementException {
+        return mgmt.addHamFromDir(dir);
+    }
+
+    public int addHamFromMbox(String file) throws BayesianAnalyzerManagementException {
+        return mgmt.addHamFromMbox(file);
+    }
+
+    public int addSpamFromDir(String dir) throws BayesianAnalyzerManagementException {
+        return mgmt.addSpamFromDir(dir);
+    }
+
+    public int addSpamFromMbox(String file) throws BayesianAnalyzerManagementException {
+        return mgmt.addSpamFromMbox(file);
+    }
+
+    public void exportData(String file) throws BayesianAnalyzerManagementException {
+        mgmt.exportData(file);
+    }
+
+    public void importData(String file) throws BayesianAnalyzerManagementException {
+        mgmt.importData(file);
+    }
+
+    public void resetData() throws BayesianAnalyzerManagementException {
+        mgmt.resetData();
+    }
+
+}

Added: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonDomainListManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonDomainListManagement.java?rev=882184&view=auto
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonDomainListManagement.java (added)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonDomainListManagement.java Thu Nov 19 16:02:35 2009
@@ -0,0 +1,81 @@
+/****************************************************************
+ * 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.management.impl;
+
+import java.util.List;
+
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.configuration.Configurable;
+import org.apache.avalon.framework.configuration.Configuration;
+import org.apache.avalon.framework.configuration.ConfigurationException;
+import org.apache.avalon.framework.logger.LogEnabled;
+import org.apache.avalon.framework.logger.Logger;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.api.domainlist.DomainList;
+import org.apache.james.management.DomainListManagementException;
+import org.apache.james.management.DomainListManagementMBean;
+import org.apache.james.management.DomainListManagementService;
+import org.apache.james.bridge.GuiceInjected;
+
+import org.guiceyfruit.jsr250.Jsr250Module;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.name.Named;
+import com.google.inject.name.Names;
+
+public class AvalonDomainListManagement implements GuiceInjected, DomainListManagementService,DomainListManagementMBean, Serviceable, Initializable {
+    private DomainList dList;
+    private DomainListManagement mgmt;
+    public void service(ServiceManager manager) throws ServiceException {
+        dList = (DomainList) manager.lookup(DomainList.ROLE);
+    }
+
+    public void initialize() throws Exception {
+        mgmt = Guice.createInjector(new Jsr250Module(), new AbstractModule() {
+
+            @Override
+            protected void configure() {
+                bind(DomainList.class).annotatedWith(Names.named("org.apache.james.api.domainlist.DomainList")).toInstance(dList);
+            }
+            
+        }).getInstance(DomainListManagement.class);
+    }
+
+    public boolean addDomain(String domain) throws DomainListManagementException {
+        return mgmt.addDomain(domain);
+    }
+
+    public boolean containsDomain(String domain) {
+        return mgmt.containsDomain(domain);
+    }
+
+    public List<String> getDomains() {
+        return mgmt.getDomains();
+    }
+
+    public boolean removeDomain(String domain) throws DomainListManagementException {
+        return mgmt.removeDomain(domain);
+    }
+
+}

Added: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonProcessorManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonProcessorManagement.java?rev=882184&view=auto
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonProcessorManagement.java (added)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonProcessorManagement.java Thu Nov 19 16:02:35 2009
@@ -0,0 +1,77 @@
+/****************************************************************
+ * 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.management.impl;
+
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.management.ProcessorManagementMBean;
+import org.apache.james.management.ProcessorManagementService;
+import org.apache.james.services.SpoolManager;
+import org.apache.james.bridge.GuiceInjected;
+
+import org.guiceyfruit.jsr250.Jsr250Module;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.name.Names;
+
+public class AvalonProcessorManagement implements GuiceInjected, Serviceable, Initializable, ProcessorManagementService, ProcessorManagementMBean {
+
+    private ProcessorManagement mgmt;
+    private SpoolManager smanager;
+    
+    public void service(ServiceManager manager) throws ServiceException {
+        smanager = (SpoolManager)manager.lookup(SpoolManager.ROLE);
+
+    }
+
+    public void initialize() throws Exception {
+        mgmt = Guice.createInjector(new Jsr250Module(), new AbstractModule() {
+
+            @Override
+            protected void configure() {
+                bind(SpoolManager.class).annotatedWith(Names.named("org.apache.james.services.SpoolManager")).toInstance(smanager);
+            }
+            
+        }).getInstance(ProcessorManagement.class);
+    }
+
+    public String[] getMailetNames(String processorName) {
+        return mgmt.getMailetNames(processorName);
+    }
+
+    public String[] getMailetParameters(String processorName, int mailetIndex) {
+        return mgmt.getMailetParameters(processorName, mailetIndex);
+    }
+
+    public String[] getMatcherNames(String processorName) {
+        return mgmt.getMatcherNames(processorName);
+    }
+
+    public String[] getMatcherParameters(String processorName, int matcherIndex) {
+        return mgmt.getMatcherParameters(processorName, matcherIndex);
+    }
+
+    public String[] getProcessorNames() {
+        return mgmt.getProcessorNames();
+    }
+
+}

Added: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonSpoolManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonSpoolManagement.java?rev=882184&view=auto
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonSpoolManagement.java (added)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/AvalonSpoolManagement.java Thu Nov 19 16:02:35 2009
@@ -0,0 +1,94 @@
+/****************************************************************
+ * 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.management.impl;
+
+import java.util.List;
+
+import javax.mail.MessagingException;
+
+import org.apache.avalon.cornerstone.services.store.Store;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
+import org.apache.avalon.framework.service.Serviceable;
+import org.apache.james.management.SpoolFilter;
+import org.apache.james.management.SpoolManagementException;
+import org.apache.james.management.SpoolManagementMBean;
+import org.apache.james.management.SpoolManagementService;
+import org.apache.james.bridge.GuiceInjected;
+import org.guiceyfruit.jsr250.Jsr250Module;
+
+import com.google.inject.AbstractModule;
+import com.google.inject.Guice;
+import com.google.inject.name.Names;
+
+public class AvalonSpoolManagement  implements GuiceInjected, Serviceable, Initializable, SpoolManagementService, SpoolManagementMBean{
+
+    private SpoolManagement mgmt;
+    private Store mailStore;
+    public void service(ServiceManager manager) throws ServiceException {
+        mailStore = (Store)manager.lookup(Store.ROLE);
+        
+    }
+
+    public List<String> getSpoolItems(String spoolRepositoryURL, SpoolFilter filter) throws MessagingException, SpoolManagementException {
+        return mgmt.getSpoolItems(spoolRepositoryURL, filter);
+    }
+
+    public int moveSpoolItems(String srcSpoolRepositoryURL, String dstSpoolRepositoryURL, String dstState, SpoolFilter filter) throws MessagingException, SpoolManagementException {
+        return mgmt.moveSpoolItems(srcSpoolRepositoryURL, dstSpoolRepositoryURL, dstState, filter);
+    }
+
+    public int removeSpoolItems(String spoolRepositoryURL, String key, List<String> lockingFailures, SpoolFilter filter) throws MessagingException, SpoolManagementException {
+        return mgmt.removeSpoolItems(spoolRepositoryURL, key, filter);
+    }
+
+    public int resendSpoolItems(String spoolRepositoryURL, String key, List<String> lockingFailures, SpoolFilter filter) throws MessagingException, SpoolManagementException {
+        return mgmt.resendSpoolItems(spoolRepositoryURL, key, filter);
+    }
+
+    public String[] listSpoolItems(String spoolRepositoryURL, String state, String header, String headerValueRegex) throws SpoolManagementException {
+        return mgmt.listSpoolItems(spoolRepositoryURL, state, header, headerValueRegex);
+    }
+
+    public int moveSpoolItems(String srcSpoolRepositoryURL, String srcState, String dstSpoolRepositoryURL, String dstState, String header, String headerValueRegex) throws SpoolManagementException {
+        return mgmt.moveSpoolItems(srcSpoolRepositoryURL, srcState, dstSpoolRepositoryURL, dstState, header, headerValueRegex);
+    }
+
+    public int removeSpoolItems(String spoolRepositoryURL, String key, String state, String header, String headerValueRegex) throws SpoolManagementException {
+        return mgmt.removeSpoolItems(spoolRepositoryURL, key, state, header, headerValueRegex);
+    }
+
+    public int resendSpoolItems(String spoolRepositoryURL, String key, String state, String header, String headerValueRegex) throws SpoolManagementException {
+        return mgmt.resendSpoolItems(spoolRepositoryURL, key, state, header, headerValueRegex);
+    }
+
+    public void initialize() throws Exception {
+        mgmt = Guice.createInjector(new Jsr250Module(), new AbstractModule() {
+
+            @Override
+            protected void configure() {
+                bind(Store.class).annotatedWith(Names.named("org.apache.avalon.cornerstone.services.store.Store")).toInstance(mailStore);
+            }
+            
+        }).getInstance(SpoolManagement.class);
+    }
+
+}

Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/BayesianAnalyzerManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/BayesianAnalyzerManagement.java?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/BayesianAnalyzerManagement.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/BayesianAnalyzerManagement.java Thu Nov 19 16:02:35 2009
@@ -18,8 +18,6 @@
  ****************************************************************/
 
 
-
-
 package org.apache.james.management.impl;
 
 import java.io.BufferedReader;
@@ -35,17 +33,16 @@
 import java.sql.Connection;
 import java.util.Map;
 
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
 import net.fortuna.mstor.data.MboxFile;
 
 import org.apache.avalon.cornerstone.services.datasources.DataSourceSelector;
 import org.apache.avalon.excalibur.datasource.DataSourceComponent;
-import org.apache.avalon.framework.activity.Initializable;
-import org.apache.avalon.framework.configuration.Configurable;
-import org.apache.avalon.framework.configuration.Configuration;
-import org.apache.avalon.framework.configuration.ConfigurationException;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
+import org.apache.commons.configuration.ConfigurationException;
+import org.apache.commons.configuration.HierarchicalConfiguration;
+import org.apache.commons.logging.Log;
 import org.apache.james.management.BayesianAnalyzerManagementException;
 import org.apache.james.management.BayesianAnalyzerManagementMBean;
 import org.apache.james.management.BayesianAnalyzerManagementService;
@@ -58,7 +55,7 @@
 /**
  * Management for BayesianAnalyzer
  */
-public class BayesianAnalyzerManagement implements BayesianAnalyzerManagementService, Serviceable, Initializable, Configurable, BayesianAnalyzerManagementMBean {
+public class BayesianAnalyzerManagement implements BayesianAnalyzerManagementService, BayesianAnalyzerManagementMBean {
 
     private final static String HAM = "HAM";
     private final static String SPAM = "SPAM";
@@ -67,45 +64,47 @@
     private String repos;
     private String sqlFileUrl;
     private FileSystem fileSystem;
+    private Log logger;
+    private HierarchicalConfiguration configuration;
     
     /**
-     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
-     */
-    public void service(ServiceManager arg0) throws ServiceException {
-        DataSourceSelector selector = (DataSourceSelector) arg0.lookup(DataSourceSelector.ROLE);
-        setDataSourceSelector(selector);
-        setFileSystem((FileSystem) arg0.lookup(FileSystem.ROLE));
-    }
-
-    /**
      * Sets the file system service
      * 
      * @param system new service
      */
-    private void setFileSystem(FileSystem system) {
+    @Resource(name="org.apache.james.services.FileSystem")
+    public void setFileSystem(FileSystem system) {
         this.fileSystem = system;
     }
 
-    /**
-     * @see org.apache.avalon.framework.activity.Initializable#initialize()
-     */
-    public void initialize() throws Exception {
+
+    @PostConstruct
+    public void init() throws Exception {
+        configure();
         if (repos != null) {
             setDataSourceComponent((DataSourceComponent) selector.select(repos));
             File sqlFile = fileSystem.getFile(sqlFileUrl);
             analyzer.initSqlQueries(component.getConnection(), sqlFile.getAbsolutePath());
         }
     }
+    
+    @Resource(name="org.apache.commons.logging.Log")
+    public void setLog(Log logger) {
+        this.logger = logger;
+    }
+    
+
+    @Resource(name="org.apache.commons.configuration.Configuration")
+    public void setConfiguration(HierarchicalConfiguration configuration) {
+        this.configuration = configuration;
+    }
 
-    /**
-     * @see org.apache.avalon.framework.configuration.Configurable#configure(Configuration)
-     */
-    public void configure(Configuration arg0) throws ConfigurationException {
-        Configuration reposPath = arg0.getChild("repositoryPath",false);
+    private void configure() throws ConfigurationException {
+        String reposPath = configuration.getString("repositoryPath",null);
         if (reposPath != null) {
-            setRepositoryPath(reposPath.getValue());
+            setRepositoryPath(reposPath);
         }
-        sqlFileUrl = arg0.getChild("sqlFile").getValue();
+        sqlFileUrl = configuration.getString("sqlFile", null);
         if (sqlFileUrl == null) sqlFileUrl = "file://conf/sqlResources.xml";
     }
     

Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/DomainListManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/DomainListManagement.java?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/DomainListManagement.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/DomainListManagement.java Thu Nov 19 16:02:35 2009
@@ -23,9 +23,8 @@
 
 import java.util.List;
 
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
+import javax.annotation.Resource;
+
 import org.apache.james.api.domainlist.DomainList;
 import org.apache.james.api.domainlist.ManageableDomainList;
 import org.apache.james.management.DomainListManagementException;
@@ -35,16 +34,10 @@
 /**
  * Provide management class for DomainLists
  */
-public class DomainListManagement implements DomainListManagementService,DomainListManagementMBean,Serviceable {
+public class DomainListManagement implements DomainListManagementService,DomainListManagementMBean {
     private DomainList domList;
     
-    /**
-     * @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
-     */
-    public void service(ServiceManager arg0) throws ServiceException {
-        setDomainList((DomainList) arg0.lookup(DomainList.ROLE));
-    }
-    
+    @Resource(name="org.apache.james.api.domainlist.DomainList")
     public void setDomainList(DomainList domList) {
         this.domList = domList;
     }
@@ -91,7 +84,7 @@
     /**
      * @see org.apache.james.management.DomainListManagementService#getDomains()
      */
-    public List getDomains() {
+    public List<String> getDomains() {
         return domList.getDomains();
     }
 }

Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/ProcessorManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/ProcessorManagement.java?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/ProcessorManagement.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/ProcessorManagement.java Thu Nov 19 16:02:35 2009
@@ -18,9 +18,6 @@
  ****************************************************************/
 package org.apache.james.management.impl;
 
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
 import org.apache.james.services.SpoolManager;
 import org.apache.james.management.ProcessorManagementMBean;
 import org.apache.james.management.ProcessorManagementService;
@@ -31,6 +28,7 @@
 import org.apache.mailet.MatcherConfig;
 
 import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
 import javax.management.MBeanServer;
 import javax.management.MBeanServerFactory;
 import javax.management.MalformedObjectNameException;
@@ -42,26 +40,22 @@
 /**
  * manage processors, mailets and matchers
  */
-public class ProcessorManagement implements Serviceable, ProcessorManagementService, ProcessorManagementMBean {
+public class ProcessorManagement implements ProcessorManagementService, ProcessorManagementMBean {
 
     private SpoolManager processorManager;
 
-    public void service(ServiceManager serviceManager) throws ServiceException {
-        SpoolManager processorManager = (SpoolManager)serviceManager.lookup(SpoolManager.ROLE);
-        setProcessorManager(processorManager);
-    }
-
     @PostConstruct
     public void init() {
         registerMBeans();
     }
     
+    @SuppressWarnings("unchecked")
     private void registerMBeans() {
-        ArrayList mBeanServers = MBeanServerFactory.findMBeanServer(null);
+        ArrayList<MBeanServer> mBeanServers = MBeanServerFactory.findMBeanServer(null);
         if (mBeanServers == null || mBeanServers.size() == 0) return; // no server to publish MBeans
 
         // take the first one
-        MBeanServer mBeanServer = (MBeanServer) mBeanServers.get(0);
+        MBeanServer mBeanServer = mBeanServers.get(0);
 
         String baseObjectName = "Phoenix:application=james,topic=ProcessorAdministration,block=ProcessorManagement,";
 
@@ -79,9 +73,9 @@
         registerMBean(mBeanServer, processorMBeanName, processorMBean);
 
         // add all mailets but the last, because that is a terminator (see LinearProcessor.closeProcessorLists())
-        List mailetConfigs = processorManager.getMailetConfigs(processorName);
+        List<MailetConfig> mailetConfigs = processorManager.getMailetConfigs(processorName);
         for (int i = 0; i < mailetConfigs.size()-1; i++) {
-            MailetConfig mailetConfig = (MailetConfig) mailetConfigs.get(i);
+            MailetConfig mailetConfig = mailetConfigs.get(i);
 
             String mailetMBeanName = processorMBeanName + ",subtype=mailet,index=" + (i+1) + ",mailetname=" + mailetConfig.getMailetName();
             MailetManagement mailetMBean = new MailetManagement(mailetConfig);
@@ -89,9 +83,9 @@
         }
 
         // add all matchers but the last, because that is a terminator (see LinearProcessor.closeProcessorLists())
-        List matcherConfigs = processorManager.getMatcherConfigs(processorName);
+        List<MatcherConfig> matcherConfigs = processorManager.getMatcherConfigs(processorName);
         for (int i = 0; i < matcherConfigs.size()-1; i++) {
-            MatcherConfig matcherConfig = (MatcherConfig) matcherConfigs.get(i);
+            MatcherConfig matcherConfig = matcherConfigs.get(i);
 
             String matcherMBeanName = processorMBeanName + ",subtype=matcher,index=" + (i+1) + ",matchername=" + matcherConfig.getMatcherName();
             MatcherManagement matcherMBean = new MatcherManagement(matcherConfig);
@@ -114,22 +108,29 @@
         }
     }
 
+    @Resource(name="org.apache.james.services.SpoolManager")
     public void setProcessorManager(SpoolManager processorManager) {
         this.processorManager = processorManager;
     }
 
+    /**
+     * @see org.apache.james.management.ProcessorManagementMBean#getProcessorNames()
+     */
     public String[] getProcessorNames() {
         return processorManager.getProcessorNames();
     }
 
+    /**
+     * @see org.apache.james.management.ProcessorManagementService#getMailetNames(java.lang.String)
+     */
     public String[] getMailetNames(String processorName) {
-        List mailetConfigs = processorManager.getMailetConfigs(processorName);
+        List<MailetConfig> mailetConfigs = processorManager.getMailetConfigs(processorName);
         // always ommit the terminating mailet
         String[] mailetNames = new String[mailetConfigs.size()-1];
         int i = 0;
-        Iterator iterator = mailetConfigs.iterator();
+        Iterator<MailetConfig> iterator = mailetConfigs.iterator();
         while (iterator.hasNext()) {
-            MailetConfig mailetConfig = (MailetConfig) iterator.next();
+            MailetConfig mailetConfig = iterator.next();
             if (!iterator.hasNext()) continue; // ommit the terminating mailet
             String mailetName = mailetConfig.getMailetName();
             mailetNames[i] = mailetName;
@@ -138,14 +139,17 @@
         return mailetNames;
     }
 
+    /**
+     * @see org.apache.james.management.ProcessorManagementService#getMatcherNames(java.lang.String)
+     */
     public String[] getMatcherNames(String processorName) {
-        List matcherConfigs = processorManager.getMatcherConfigs(processorName);
+        List<MatcherConfig> matcherConfigs = processorManager.getMatcherConfigs(processorName);
         // always ommit the terminating mailet
         String[] matcherNames = new String[matcherConfigs.size()-1];
         int i = 0;
-        Iterator iterator = matcherConfigs.iterator();
+        Iterator<MatcherConfig> iterator = matcherConfigs.iterator();
         while (iterator.hasNext()) {
-            MatcherConfig matcherConfig = (MatcherConfig) iterator.next();
+            MatcherConfig matcherConfig = iterator.next();
             if (!iterator.hasNext()) continue; // ommit the terminating mailet
             String matcherName = matcherConfig.getMatcherName();
             matcherNames[i] = matcherName;
@@ -154,17 +158,23 @@
         return matcherNames;
     }
     
+    /**
+     * @see org.apache.james.management.ProcessorManagementService#getMatcherParameters(java.lang.String, int)
+     */
     public String[] getMatcherParameters(String processorName, int matcherIndex) {
-        List matcherConfigs = processorManager.getMatcherConfigs(processorName);
+        List<MatcherConfig> matcherConfigs = processorManager.getMatcherConfigs(processorName);
         if (matcherConfigs == null || matcherConfigs.size() < matcherIndex) return null;
-        MatcherConfig matcherConfig = (MatcherConfig)matcherConfigs.get(matcherIndex);
+        MatcherConfig matcherConfig = matcherConfigs.get(matcherIndex);
         return new String[] {matcherConfig.getCondition()};
     }
 
+    /**
+     * @see org.apache.james.management.ProcessorManagementService#getMailetParameters(java.lang.String, int)
+     */
     public String[] getMailetParameters(String processorName, int mailetIndex) {
-        List mailetConfigs = processorManager.getMailetConfigs(processorName);
+        List<MailetConfig> mailetConfigs = processorManager.getMailetConfigs(processorName);
         if (mailetConfigs == null || mailetConfigs.size() < mailetIndex) return null;
-        MailetConfig mailetConfig = (MailetConfig) mailetConfigs.get(mailetIndex);
+        MailetConfig mailetConfig = mailetConfigs.get(mailetIndex);
         return MailetManagement.getMailetParameters(mailetConfig);
     }
 

Modified: james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/SpoolManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/SpoolManagement.java?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/SpoolManagement.java (original)
+++ james/server/trunk/management-library/src/main/java/org/apache/james/management/impl/SpoolManagement.java Thu Nov 19 16:02:35 2009
@@ -24,9 +24,6 @@
 
 import org.apache.avalon.cornerstone.services.store.Store;
 import org.apache.avalon.framework.container.ContainerUtil;
-import org.apache.avalon.framework.service.ServiceException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.Serviceable;
 import org.apache.commons.configuration.DefaultConfigurationBuilder;
 import org.apache.james.management.SpoolFilter;
 import org.apache.james.management.SpoolManagementException;
@@ -38,6 +35,7 @@
 import org.apache.oro.text.regex.Pattern;
 import org.apache.oro.text.regex.Perl5Matcher;
 
+import javax.annotation.Resource;
 import javax.mail.MessagingException;
 import javax.mail.Address;
 import javax.mail.internet.MimeMessage;
@@ -50,7 +48,7 @@
 /**
  * high-level management of spool contents like list, remove, resend
  */
-public class SpoolManagement implements Serviceable, SpoolManagementService, SpoolManagementMBean {
+public class SpoolManagement implements SpoolManagementService, SpoolManagementMBean {
 
     private Store mailStore;
 
@@ -59,19 +57,12 @@
      * 
      * @param mailStore the store
      */
+    @Resource(name="org.apache.avalon.cornerstone.services.store.Store")
     public void setStore(Store mailStore) {
         this.mailStore = mailStore;
     }
 
     /**
-     * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
-     */
-    public void service(ServiceManager serviceManager) throws ServiceException {
-        Store mailStore = (Store)serviceManager.lookup(Store.ROLE);
-        setStore(mailStore);
-    }
-
-    /**
      * Move all mails from the given repository to another repository matching the given filter criteria
      *
      * @param srcSpoolRepositoryURL the spool whose item are listed
@@ -114,11 +105,11 @@
         dstSpoolRepository = getSpoolRepository(dstSpoolRepositoryURL);
         
         // get an iterator of all keys
-        Iterator spoolR = srcSpoolRepository.list();
+        Iterator<String> spoolR = srcSpoolRepository.list();
 
         int count = 0;
         while (spoolR.hasNext()) {
-            String key = spoolR.next().toString();
+            String key = spoolR.next();
             boolean locked = false;
             try {
                 locked = srcSpoolRepository.lock(key);
@@ -178,13 +169,13 @@
      * @throws SpoolManagementException
      */
     public String[] listSpoolItems(String spoolRepositoryURL, SpoolFilter filter) throws SpoolManagementException {
-        List spoolItems;
+        List<String> spoolItems;
         try {
             spoolItems = getSpoolItems(spoolRepositoryURL, filter);
         } catch (Exception e) {
              throw new SpoolManagementException(e);
         }
-        return (String[]) spoolItems.toArray(new String[]{});
+        return spoolItems.toArray(new String[]{});
     }
 
     /**
@@ -205,9 +196,9 @@
             Perl5Matcher matcher = new Perl5Matcher();
             
             // check, if there is a match for every header/regex pair
-            Iterator headers = filter.getHeaders();
+            Iterator<String> headers = filter.getHeaders();
             while (headers.hasNext()) {
-                String header = (String) headers.next();
+                String header = headers.next();
                 
                 String[] headerValues;
                 try {
@@ -263,14 +254,14 @@
     /**
      * @see org.apache.james.management.SpoolManagementService#getSpoolItems(String, SpoolFilter)
      */
-    public List getSpoolItems(String spoolRepositoryURL, SpoolFilter filter)
+    public List<String> getSpoolItems(String spoolRepositoryURL, SpoolFilter filter)
             throws MessagingException, SpoolManagementException {
         SpoolRepository spoolRepository = getSpoolRepository(spoolRepositoryURL);
 
-        List items = new ArrayList();
+        List<String> items = new ArrayList<String>();
 
         // get an iterator of all keys
-        Iterator spoolR = spoolRepository.list();
+        Iterator<String> spoolR = spoolRepository.list();
         while (spoolR.hasNext()) {
             String key = spoolR.next().toString();
             Mail m = spoolRepository.retrieve(key);
@@ -278,8 +269,8 @@
             if (filterMatches(m, filter)) {
                 StringBuffer itemInfo = new StringBuffer();
                 itemInfo.append("key: ").append(key).append(" sender: ").append(m.getSender()).append(" recipient:");
-                Collection recipients = m.getRecipients();
-                for (Iterator iterator = recipients.iterator(); iterator.hasNext();) {
+                Collection<MailAddress> recipients = m.getRecipients();
+                for (Iterator<MailAddress> iterator = recipients.iterator(); iterator.hasNext();) {
                     MailAddress mailAddress = (MailAddress) iterator.next();
                     itemInfo.append(" ").append(mailAddress);
                 }
@@ -319,24 +310,24 @@
     /**
      * @see org.apache.james.management.SpoolManagementService#removeSpoolItems(String, String, List, SpoolFilter)
      */
-    public int removeSpoolItems(String spoolRepositoryURL, String key, List lockingFailures, SpoolFilter filter) throws SpoolManagementException, MessagingException, SpoolManagementException {
+    public int removeSpoolItems(String spoolRepositoryURL, String key, List<String> lockingFailures, SpoolFilter filter) throws SpoolManagementException, MessagingException, SpoolManagementException {
         int count = 0;
         SpoolRepository spoolRepository = getSpoolRepository(spoolRepositoryURL);
 
         if (key != null) {
             count = removeMail(spoolRepository, key, count, lockingFailures, null);
         } else {
-            Iterator spoolR = spoolRepository.list();
+            Iterator<String> spoolR = spoolRepository.list();
 
             while (spoolR.hasNext()) {
-                key = (String)spoolR.next();
+                key = spoolR.next();
                 count = removeMail(spoolRepository, key, count, lockingFailures, filter);
             }
         }
         return count;
     }
 
-    private int removeMail(SpoolRepository spoolRepository, String key, int count, List lockingFailures, SpoolFilter filter) throws MessagingException {
+    private int removeMail(SpoolRepository spoolRepository, String key, int count, List<String> lockingFailures, SpoolFilter filter) throws MessagingException {
         try {
             if (removeMail(spoolRepository, key, filter)) count++;
         } catch (IllegalStateException e) {
@@ -382,7 +373,7 @@
     /**
      * @see org.apache.james.management.SpoolManagementService#resendSpoolItems(String, String, List, SpoolFilter)
      */
-    public int resendSpoolItems(String spoolRepositoryURL, String key, List lockingFailures, SpoolFilter filter)
+    public int resendSpoolItems(String spoolRepositoryURL, String key, List<String> lockingFailures, SpoolFilter filter)
             throws MessagingException, SpoolManagementException {
         int count = 0;
         SpoolRepository spoolRepository = getSpoolRepository(spoolRepositoryURL);
@@ -396,10 +387,10 @@
             }
         } else {
             // get an iterator of all keys
-            Iterator spoolR = spoolRepository.list();
+            Iterator<String> spoolR = spoolRepository.list();
 
             while (spoolR.hasNext()) {
-                key = spoolR.next().toString();
+                key = spoolR.next();
                 try {
                     if (resendMail(spoolRepository, key, filter)) count++;
                 } catch (IllegalStateException e) {
@@ -482,7 +473,7 @@
 
         try {
             return (SpoolRepository) mailStore.select(spoolConf);
-        } catch (ServiceException e) {
+        } catch (Exception e) {
             throw new SpoolManagementException("Exception while looking up for the repository", e);
         }
     }

Modified: james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml
URL: http://svn.apache.org/viewvc/james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml?rev=882184&r1=882183&r2=882184&view=diff
==============================================================================
--- james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml (original)
+++ james/server/trunk/phoenix-deployment/src/conf/james-assembly.xml Thu Nov 19 16:02:35 2009
@@ -78,17 +78,17 @@
   <block name="dnsserver" class="org.apache.james.dnsserver.AvalonDNSServer" />
 
   <!-- The Spool Management block  -->
-  <block name="spoolmanagement" class="org.apache.james.management.impl.SpoolManagement" >
+  <block name="spoolmanagement" class="org.apache.james.management.impl.AvalonSpoolManagement" >
       <provide name="mailstore" role="org.apache.avalon.cornerstone.services.store.Store"/>
       <proxy disable='true'/>
   </block>
   
-  <block name="processormanagement" class="org.apache.james.management.impl.ProcessorManagement" >
+  <block name="processormanagement" class="org.apache.james.management.impl.AvalonProcessorManagement" >
       <provide name="spoolmanager" role="org.apache.james.services.SpoolManager"/>
       <proxy disable='true'/>
   </block>
 
-  <block name="bayesiananalyzermanagement" class="org.apache.james.management.impl.BayesianAnalyzerManagement" >
+  <block name="bayesiananalyzermanagement" class="org.apache.james.management.impl.AvalonBayesianAnalyzerManagement" >
       <provide name="database-connections"
              role="org.apache.avalon.cornerstone.services.datasources.DataSourceSelector" />
     <provide name="filesystem" role="org.apache.james.services.FileSystem" />
@@ -342,7 +342,7 @@
   
   <!-- #################################################################### -->
   
-  <block name="domainlistmanagement" class="org.apache.james.management.impl.DomainListManagement">
+  <block name="domainlistmanagement" class="org.apache.james.management.impl.AvalonDomainListManagement">
     <provide name="domainlist"
              role="org.apache.james.api.domainlist.DomainList"/>
     <proxy disable='true'/>



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