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