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 be...@apache.org on 2006/07/08 18:56:28 UTC
svn commit: r420167 - in /james/server/trunk/src/java/org/apache/james:
mailrepository/ management/ nntpserver/ pop3server/ remotemanager/
Author: berndf
Date: Sat Jul 8 09:56:27 2006
New Revision: 420167
URL: http://svn.apache.org/viewvc?rev=420167&view=rev
Log:
- add setters for service components (JAMES-494) (ongoing)
- fix javadoc
Modified:
james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java
james/server/trunk/src/java/org/apache/james/mailrepository/JDBCMailRepository.java
james/server/trunk/src/java/org/apache/james/mailrepository/MailStoreSpoolRepository.java
james/server/trunk/src/java/org/apache/james/management/SpoolManagement.java
james/server/trunk/src/java/org/apache/james/management/UserManagement.java
james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java
james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java
james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
Modified: james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java Sat Jul 8 09:56:27 2006
@@ -67,20 +67,24 @@
protected final static boolean DEEP_DEBUG = false;
private Lock lock;
- private Store store;
- private StreamRepository sr;
- private ObjectRepository or;
+ private Store store; // variable is not used beyond initialization
+ private StreamRepository streamRepository;
+ private ObjectRepository objectRepository;
private String destination;
private Set keys;
private boolean fifo;
private boolean cacheKeys; // experimental: for use with write mostly repositories such as spam and error
+ private void setStore(Store store) {
+ this.store = store;
+ }
+
/**
- * @see org.apache.avalon.framework.service.Serviceable#compose(ServiceManager )
+ * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager )
*/
public void service( final ServiceManager componentManager )
throws ServiceException {
- store = (Store)componentManager.lookup( Store.ROLE );
+ setStore((Store)componentManager.lookup( Store.ROLE ));
}
/**
@@ -111,36 +115,19 @@
public void initialize()
throws Exception {
try {
- //prepare Configurations for object and stream repositories
- DefaultConfiguration objectConfiguration
- = new DefaultConfiguration( "repository",
- "generated:AvalonFileRepository.compose()" );
-
- objectConfiguration.setAttribute("destinationURL", destination);
- objectConfiguration.setAttribute("type", "OBJECT");
- objectConfiguration.setAttribute("model", "SYNCHRONOUS");
-
- DefaultConfiguration streamConfiguration
- = new DefaultConfiguration( "repository",
- "generated:AvalonFileRepository.compose()" );
-
- streamConfiguration.setAttribute( "destinationURL", destination );
- streamConfiguration.setAttribute( "type", "STREAM" );
- streamConfiguration.setAttribute( "model", "SYNCHRONOUS" );
+ objectRepository = (ObjectRepository) selectRepository(store, "OBJECT");
+ streamRepository = (StreamRepository) selectRepository(store, "STREAM");
- sr = (StreamRepository) store.select(streamConfiguration);
- or = (ObjectRepository) store.select(objectConfiguration);
lock = new Lock();
if (cacheKeys) keys = Collections.synchronizedSet(new HashSet());
-
//Finds non-matching pairs and deletes the extra files
HashSet streamKeys = new HashSet();
- for (Iterator i = sr.list(); i.hasNext(); ) {
+ for (Iterator i = streamRepository.list(); i.hasNext(); ) {
streamKeys.add(i.next());
}
HashSet objectKeys = new HashSet();
- for (Iterator i = or.list(); i.hasNext(); ) {
+ for (Iterator i = objectRepository.list(); i.hasNext(); ) {
objectKeys.add(i.next());
}
@@ -162,14 +149,14 @@
// Next get a list from the object repository
// and use that for the list of keys
keys.clear();
- for (Iterator i = or.list(); i.hasNext(); ) {
+ for (Iterator i = objectRepository.list(); i.hasNext(); ) {
keys.add(i.next());
}
}
if (getLogger().isDebugEnabled()) {
StringBuffer logBuffer =
new StringBuffer(128)
- .append(this.getClass().getName())
+ .append(getClass().getName())
.append(" created in ")
.append(destination);
getLogger().debug(logBuffer.toString());
@@ -181,6 +168,17 @@
}
}
+ private Object selectRepository(Store store, String type) throws ServiceException {
+ DefaultConfiguration objectConfiguration
+ = new DefaultConfiguration( "repository",
+ "generated:AvalonFileRepository.compose()" );
+
+ objectConfiguration.setAttribute("destinationURL", destination);
+ objectConfiguration.setAttribute("type", type);
+ objectConfiguration.setAttribute("model", "SYNCHRONOUS");
+ return store.select(objectConfiguration);
+ }
+
/**
* Releases a lock on a message identified by a key
*
@@ -296,14 +294,14 @@
if (saveStream) {
OutputStream out = null;
try {
- out = sr.put(key);
+ out = streamRepository.put(key);
mc.getMessage().writeTo(out);
} finally {
if (out != null) out.close();
}
}
//Always save the header information
- or.put(key, mc);
+ objectRepository.put(key, mc);
} finally {
if (!wasLocked) {
// If it wasn't locked, we need to unlock now
@@ -343,7 +341,7 @@
try {
Mail mc = null;
try {
- mc = (Mail) or.get(key);
+ mc = (Mail) objectRepository.get(key);
}
catch (RuntimeException re){
StringBuffer exceptionBuffer = new StringBuffer(128);
@@ -359,7 +357,7 @@
getLogger().warn(exceptionBuffer.toString());
return null;
}
- MimeMessageAvalonSource source = new MimeMessageAvalonSource(sr, destination, key);
+ MimeMessageAvalonSource source = new MimeMessageAvalonSource(streamRepository, destination, key);
mc.setMessage(new MimeMessageCopyOnWriteProxy(source));
return mc;
@@ -401,8 +399,8 @@
if (lock(key)) {
try {
if (keys != null) keys.remove(key);
- sr.remove(key);
- or.remove(key);
+ streamRepository.remove(key);
+ objectRepository.remove(key);
} finally {
unlock(key);
}
@@ -430,7 +428,7 @@
clone = new ArrayList(keys);
} else {
clone = new ArrayList();
- for (Iterator i = or.list(); i.hasNext(); ) {
+ for (Iterator i = objectRepository.list(); i.hasNext(); ) {
clone.add(i.next());
}
}
Modified: james/server/trunk/src/java/org/apache/james/mailrepository/JDBCMailRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailrepository/JDBCMailRepository.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailrepository/JDBCMailRepository.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailrepository/JDBCMailRepository.java Sat Jul 8 09:56:27 2006
@@ -96,11 +96,6 @@
private static final boolean DEEP_DEBUG = false;
/**
- * The Avalon componentManager used by the instance
- */
- private ServiceManager componentManager;
-
- /**
* The Avalon context used by the instance
*/
protected Context context;
@@ -142,6 +137,11 @@
protected DataSourceComponent datasource;
/**
+ * The store where the repository is selected from
+ */
+ protected Store store;
+
+ /**
* The name of the datasource used by this repository
*/
protected String datasourceName;
@@ -166,6 +166,14 @@
*/
private int inMemorySizeLimit;
+ public void setStore(Store store) {
+ this.store = store;
+ }
+
+ public void setDatasources(DataSourceSelector datasources) {
+ this.datasources = datasources;
+ }
+
/**
* @see org.apache.avalon.framework.context.Contextualizable#contextualize(Context)
*/
@@ -175,7 +183,7 @@
}
/**
- * @see org.apache.avalon.framework.service.Servicable#service(ServiceManager)
+ * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
*/
public void service( final ServiceManager componentManager )
throws ServiceException {
@@ -188,9 +196,10 @@
getLogger().debug(logBuffer.toString());
}
// Get the DataSourceSelector service
- datasources = (DataSourceSelector)componentManager.lookup( DataSourceSelector.ROLE );
- this.componentManager = componentManager;
-
+ DataSourceSelector datasources = (DataSourceSelector)componentManager.lookup( DataSourceSelector.ROLE );
+ setDatasources(datasources);
+ Store store = (Store)componentManager.lookup(Store.ROLE);
+ setStore(store);
}
/**
@@ -268,7 +277,6 @@
}
try {
if (filestore != null) {
- Store store = (Store)componentManager.lookup(Store.ROLE);
//prepare Configurations for stream repositories
DefaultConfiguration streamConfiguration
= new DefaultConfiguration( "repository",
Modified: james/server/trunk/src/java/org/apache/james/mailrepository/MailStoreSpoolRepository.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailrepository/MailStoreSpoolRepository.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/mailrepository/MailStoreSpoolRepository.java (original)
+++ james/server/trunk/src/java/org/apache/james/mailrepository/MailStoreSpoolRepository.java Sat Jul 8 09:56:27 2006
@@ -64,15 +64,20 @@
* The repository configuration
*/
private Configuration configuration;
+
+ private void setStore(Store store) {
+ mailStore = store;
+ }
+
/**
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
public void service(ServiceManager serviceManager) throws ServiceException {
- mailStore = (Store) serviceManager.lookup(Store.ROLE);
+ Store mailStore = (Store) serviceManager.lookup(Store.ROLE);
+ setStore(mailStore);
}
-
/**
* @see org.apache.avalon.framework.configuration.Configurable#configure(org.apache.avalon.framework.configuration.Configuration)
*/
@@ -118,7 +123,7 @@
}
/**
- * @see org.apache.james.services.MailRepository#store(org.apache.james.core.MailImpl)
+ * @see org.apache.james.services.MailRepository#store(org.apache.mailet.Mail)
*/
public void store(Mail mc) throws MessagingException {
spoolRep.store(mc);
@@ -139,7 +144,7 @@
}
/**
- * @see org.apache.james.services.MailRepository#remove(org.apache.james.core.MailImpl)
+ * @see org.apache.james.services.MailRepository#remove(org.apache.mailet.Mail)
*/
public void remove(Mail mail) throws MessagingException {
spoolRep.remove(mail);
Modified: james/server/trunk/src/java/org/apache/james/management/SpoolManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/SpoolManagement.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/SpoolManagement.java (original)
+++ james/server/trunk/src/java/org/apache/james/management/SpoolManagement.java Sat Jul 8 09:56:27 2006
@@ -39,8 +39,13 @@
private Store mailStore;
+ public void setStore(Store mailStore) {
+ this.mailStore = mailStore;
+ }
+
public void service(ServiceManager serviceManager) throws ServiceException {
- mailStore = (Store)serviceManager.lookup("org.apache.avalon.cornerstone.services.store.Store" );
+ Store mailStore = (Store)serviceManager.lookup("org.apache.avalon.cornerstone.services.store.Store" );
+ setStore(mailStore);
}
public String[] listSpoolItems(String spoolRepositoryURL) throws SpoolManagementException {
Modified: james/server/trunk/src/java/org/apache/james/management/UserManagement.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/management/UserManagement.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/management/UserManagement.java (original)
+++ james/server/trunk/src/java/org/apache/james/management/UserManagement.java Sat Jul 8 09:56:27 2006
@@ -42,6 +42,14 @@
private UsersRepository localUsers;
private UsersStore usersStore;
+ public void setLocalUsers(UsersRepository localUsers) {
+ this.localUsers = localUsers;
+ }
+
+ public void setUsersStore(UsersStore usersStore) {
+ this.usersStore = usersStore;
+ }
+
/**
* @see org.apache.avalon.framework.service.Serviceable#service(org.apache.avalon.framework.service.ServiceManager)
*/
@@ -51,10 +59,12 @@
if (localUsers == null) {
throw new ServiceException("","The local user repository could not be found.");
}
+ setLocalUsers(localUsers);
usersStore = (UsersStore)componentManager.lookup( UsersStore.ROLE );
if (usersStore == null) {
throw new ServiceException("","The user store containing the user repositories could not be found.");
}
+ setUsersStore(usersStore);
}
private JamesUser getJamesUser(String userName, String repositoryName) throws UserManagementException {
Modified: james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java (original)
+++ james/server/trunk/src/java/org/apache/james/nntpserver/NNTPServer.java Sat Jul 8 09:56:27 2006
@@ -40,13 +40,21 @@
/**
* The repository that stores the news articles for this NNTP server.
*/
- private NNTPRepository repo;
+ private NNTPRepository repository;
/**
* The repository that stores the local users. Used for authentication.
*/
private UsersRepository userRepository = null;
+ public void setUserRepository(UsersRepository userRepository) {
+ this.userRepository = userRepository;
+ }
+
+ public void setRepository(NNTPRepository repository) {
+ this.repository = repository;
+ }
+
/**
* The configuration data to be passed to the handler
*/
@@ -59,11 +67,12 @@
public void service( final ServiceManager componentManager )
throws ServiceException {
super.service(componentManager);
- userRepository = (UsersRepository)componentManager.lookup(UsersRepository.ROLE);
+ UsersRepository userRepository = (UsersRepository)componentManager.lookup(UsersRepository.ROLE);
+ setUserRepository(userRepository);
- repo = (NNTPRepository)componentManager
+ NNTPRepository repo = (NNTPRepository)componentManager
.lookup("org.apache.james.nntpserver.repository.NNTPRepository");
-
+ setRepository(repo);
}
/**
@@ -121,7 +130,7 @@
}
/**
- * @see org.apache.avalon.excalibur.pool.ObjectFactory#decommision(Object)
+ * @see org.apache.avalon.excalibur.pool.ObjectFactory#decommission(Object)
*/
public void decommission( Object object ) throws Exception {
return;
@@ -135,31 +144,31 @@
implements NNTPHandlerConfigurationData {
/**
- * @see org.apache.james.smtpserver.NNTPHandlerConfigurationData#getHelloName()
+ * @see org.apache.james.nntpserver.NNTPHandlerConfigurationData#getHelloName()
*/
public String getHelloName() {
return NNTPServer.this.helloName;
}
/**
- * @see org.apache.james.smtpserver.NNTPHandlerConfigurationData#isAuthRequired()
+ * @see org.apache.james.nntpserver.NNTPHandlerConfigurationData#isAuthRequired()
*/
public boolean isAuthRequired() {
return NNTPServer.this.authRequired;
}
/**
- * @see org.apache.james.smtpserver.NNTPHandlerConfigurationData#getUsersRepository()
+ * @see org.apache.james.nntpserver.NNTPHandlerConfigurationData#getUsersRepository()
*/
public UsersRepository getUsersRepository() {
return NNTPServer.this.userRepository;
}
/**
- * @see org.apache.james.smtpserver.NNTPHandlerConfigurationData#getNNTPRepository()
+ * @see org.apache.james.nntpserver.NNTPHandlerConfigurationData#getNNTPRepository()
*/
public NNTPRepository getNNTPRepository() {
- return NNTPServer.this.repo;
+ return NNTPServer.this.repository;
}
}
Modified: james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java (original)
+++ james/server/trunk/src/java/org/apache/james/pop3server/POP3Server.java Sat Jul 8 09:56:27 2006
@@ -68,15 +68,25 @@
private ServiceManager serviceManager;
+ public void setMailServer(MailServer mailServer) {
+ this.mailServer = mailServer;
+ }
+
+ public void setUsers(UsersRepository users) {
+ this.users = users;
+ }
+
/**
- * @see org.apache.avalon.framework.service.Serviceable#compose(ServiceManager)
+ * @see org.apache.avalon.framework.service.Serviceable#service(ServiceManager)
*/
public void service( final ServiceManager componentManager )
throws ServiceException {
super.service(componentManager);
serviceManager = componentManager;
- mailServer = (MailServer)componentManager.lookup( MailServer.ROLE );
- users = (UsersRepository)componentManager.lookup( UsersRepository.ROLE );
+ MailServer mailServer = (MailServer)componentManager.lookup( MailServer.ROLE );
+ setMailServer(mailServer);
+ UsersRepository users = (UsersRepository)componentManager.lookup( UsersRepository.ROLE );
+ setUsers(users);
}
/**
@@ -159,7 +169,7 @@
}
/**
- * @see org.apache.avalon.excalibur.pool.ObjectFactory#decommision(Object)
+ * @see org.apache.avalon.excalibur.pool.ObjectFactory#decommission(Object)
*/
public void decommission( Object object ) throws Exception {
return;
Modified: james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java
URL: http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java?rev=420167&r1=420166&r2=420167&view=diff
==============================================================================
--- james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java (original)
+++ james/server/trunk/src/java/org/apache/james/remotemanager/RemoteManager.java Sat Jul 8 09:56:27 2006
@@ -75,7 +75,27 @@
/**
* There reference to the Store
*/
- private Store mailStore;
+ private Store store;
+
+ public void setUsersStore(UsersStore usersStore) {
+ this.usersStore = usersStore;
+ }
+
+ public void setUsers(UsersRepository users) {
+ this.users = users;
+ }
+
+ public void setSpoolManagement(SpoolManagementService spoolManagement) {
+ this.spoolManagement = spoolManagement;
+ }
+
+ public void setMailServer(MailServer mailServer) {
+ this.mailServer = mailServer;
+ }
+
+ public void setStore(Store store) {
+ this.store = store;
+ }
/**
* The configuration data to be passed to the handler
@@ -89,17 +109,21 @@
public void service( final ServiceManager componentManager )
throws ServiceException {
super.service(componentManager);
- mailServer = (MailServer)componentManager.
- lookup( MailServer.ROLE );
- mailStore = (Store)componentManager.
+ MailServer mailServer = (MailServer)componentManager.lookup(MailServer.ROLE );
+ setMailServer(mailServer);
+ Store store = (Store)componentManager.
lookup( "org.apache.avalon.cornerstone.services.store.Store" );
- usersStore = (UsersStore)componentManager.
- lookup( UsersStore.ROLE );
- users = (UsersRepository) componentManager.lookup(UsersRepository.ROLE);
+ setStore(store);
+ UsersStore usersStore = (UsersStore)componentManager. lookup(UsersStore.ROLE );
+ setUsersStore(usersStore);
+ UsersRepository users = (UsersRepository) componentManager.lookup(UsersRepository.ROLE);
if (users == null) {
throw new ServiceException("","The user repository could not be found.");
}
- spoolManagement = (SpoolManagementService) componentManager.lookup(SpoolManagementService.ROLE);
+ setUsers(users);
+ SpoolManagementService spoolManagement =
+ (SpoolManagementService) componentManager.lookup(SpoolManagementService.ROLE);
+ setSpoolManagement(spoolManagement);
}
/**
@@ -192,7 +216,7 @@
* @see org.apache.james.remotemanager.RemoteManagerHandlerConfigurationData#getStore()
*/
public Store getStore() {
- return RemoteManager.this.mailStore;
+ return RemoteManager.this.store;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org