charlesb 01/06/21 10:20:35
Modified: src/conf james-config.xml
src/java/org/apache/james James.java
src/java/org/apache/james/core AvalonMailStore.java
src/java/org/apache/james/services MailStore.java
src/java/org/apache/james/transport JamesSpoolManager.java
Log:
Added getInboundSpool method to MailStore plus some cody tidying
Revision Changes Path
1.6 +21 -38 jakarta-james/src/conf/james-config.xml
Index: james-config.xml
===================================================================
RCS file: /home/cvs/jakarta-james/src/conf/james-config.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- james-config.xml 2001/06/21 16:04:49 1.5
+++ james-config.xml 2001/06/21 17:20:16 1.6
@@ -13,8 +13,8 @@
CONFIRM? comment in the left
margin.
- This is $Revision: 1.5 $
- Committed on $Date: 2001/06/21 16:04:49 $ by: $Author: charlesb $
+ This is $Revision: 1.6 $
+ Committed on $Date: 2001/06/21 17:20:16 $ by: $Author: charlesb $
-->
<config>
@@ -64,24 +64,7 @@
</namespaces>
</imapHost>
- <!-- The spool repository is a singular location where incoming mails
- are temporarily stored before being processed.
- (ex. file://c:/james/spool/) -->
- <spoolRepository>
- <repository destinationURL="file://var/mail/spool/"
- type="SPOOL">
- </repository>
- </spoolRepository>
- <!-- Alternative spool repository definition for Town use
- <spoolRepository>
- <repository destinationURL="town://mainspool"
- type="SPOOL">
- <conn>file:///dev/james/dist/var/maildatabase</conn>
- <table>Message</table>
- </repository>
- </spoolRepository>
- -->
<!-- The inbox repository is the location for users inboxes -->
<inboxRepository>
@@ -103,26 +86,7 @@
<!-- The James Spool Manager block -->
<spoolmanager>
- <!-- The spool repository is a singular location where incoming mails
- are temporarily stored before being processed.
- (ex. file://c:/james/spool/)
- The Spoool Manager and James Block must point to the same repository
- to add and process same messages. -->
- <spoolRepository>
- <repository destinationURL="file://var/mail/spool/"
- type="SPOOL">
- </repository>
- </spoolRepository>
- <!-- Alternative spool repository definition for Town use
- <spoolRepository>
- <repository destinationURL="town://mainspool"
- type="SPOOL">
- <conn>file:///dev/james/dist/../../store/maildatabase</conn>
- <table>Message</table>
- </repository>
- </spoolRepository>
- -->
<!-- number of spool threads -->
<threads> 1 </threads>
@@ -477,6 +441,25 @@
</types>
</repository>
</repositories>
+
+ <!-- The spool repository is a singular location where incoming mails
+ are temporarily stored before being processed.
+ (ex. file://c:/james/spool/) -->
+ <spoolRepository>
+ <repository destinationURL="file://var/mail/spool/"
+ type="SPOOL">
+ </repository>
+ </spoolRepository>
+
+ <!-- Alternative spool repository definition for Town use
+ <spoolRepository>
+ <repository destinationURL="town://mainspool"
+ type="SPOOL">
+ <conn>file:///dev/james/dist/var/maildatabase</conn>
+ <table>Message</table>
+ </repository>
+ </spoolRepository>
+ -->
</mailstore>
<!-- The User Storage block -->
1.5 +7 -30 jakarta-james/src/java/org/apache/james/James.java
Index: James.java
===================================================================
RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/James.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- James.java 2001/06/21 16:04:50 1.4
+++ James.java 2001/06/21 17:20:20 1.5
@@ -53,15 +53,16 @@
* @author Serge
* @author <a href="mailto:[EMAIL PROTECTED]">Charles Benett</a>
*
- * This is $Revision: 1.4 $
- * Committed on $Date: 2001/06/21 16:04:50 $ by: $Author: charlesb $
+ * This is $Revision: 1.5 $
+ * Committed on $Date: 2001/06/21 17:20:20 $ by: $Author: charlesb $
*/
public class James
extends AbstractLoggable
implements Block, Contextualizable, Composable, Configurable,
Initializable, MailServer, MailetContext {
- public final static String VERSION = "James 1.2.2 Alpha"; // FIX!
+ public final static String VERSION = "jakarta-james 1.3-dev";
+ private final static boolean DEEP_DEBUG = true;
private DefaultComponentManager compMgr; //Components shared
private DefaultContext context;
@@ -259,39 +260,15 @@
// Add this to comp
compMgr.put("org.apache.james.services.MailServer", this);
- Configuration spoolConf = conf.getChild("spoolRepository");
- Configuration spoolRepConf = spoolConf.getChild("repository");
- try {
- this.spool = (SpoolRepository) mailstore.select(spoolRepConf);
- } catch (Exception e) {
- getLogger().error("Cannot open private SpoolRepository");
- throw e;
- }
- getLogger().info("Private SpoolRepository Spool opened: "+spool.hashCode());
- //compMgr.put("org.apache.james.services.SpoolRepository",
(Component)spool);
+ spool = mailstore.getInboundSpool();
+ if (DEEP_DEBUG) getLogger().debug("Got spool");
+
// For mailet engine provide MailetContext
//compMgr.put("org.apache.mailet.MailetContext", this);
// For AVALON aware mailets and matchers, we put the Component object as
// an attribute
attributes.put(Constants.AVALON_COMPONENT_MANAGER, compMgr);
- // int threads =
conf.getConfiguration("spoolmanagerthreads").getValueAsInt(1);
- //while (threads-- > 0) {
-/*
- try {
- JamesSpoolManager spoolMgr = new JamesSpoolManager();
- setupLogger( spoolMgr, "SpoolManager" );
- spoolMgr.configure(conf.getChild("spoolmanager"));
- spoolMgr.contextualize(context);
- spoolMgr.compose(compMgr);
- spoolMgr.initialize();
- workerPool.execute(spoolMgr);
- getLogger().info("SpoolManager started");
- } catch (Exception e) {
- getLogger().error("Exception in SpoolManager init: " + e.getMessage());
- throw e;
- }
-*/
System.out.println("James "+VERSION);
getLogger().info("JAMES ...init end");
}
1.3 +24 -0
jakarta-james/src/java/org/apache/james/core/AvalonMailStore.java
Index: AvalonMailStore.java
===================================================================
RCS file:
/home/cvs/jakarta-james/src/java/org/apache/james/core/AvalonMailStore.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AvalonMailStore.java 2001/06/21 16:04:51 1.2
+++ AvalonMailStore.java 2001/06/21 17:20:25 1.3
@@ -23,6 +23,7 @@
import org.apache.avalon.framework.logger.AbstractLoggable;
import org.apache.james.services.MailRepository;
import org.apache.james.services.MailStore;
+import org.apache.james.services.SpoolRepository;
import org.apache.log.LogKit;
import org.apache.log.Logger;
import org.apache.avalon.phoenix.Block;
@@ -49,6 +50,8 @@
protected Configuration configuration;
protected ComponentManager componentManager;
+ private SpoolRepository inboundSpool;
+
public void compose( final ComponentManager componentManager )
throws ComponentException
{
@@ -73,6 +76,18 @@
{
registerRepository((Configuration) registeredClasses[i]);
}
+
+
+ Configuration spoolRepConf
+ = configuration.getChild("spoolRepository").getChild("repository");
+ try {
+ inboundSpool = (SpoolRepository) select(spoolRepConf);
+ } catch (Exception e) {
+ getLogger().error("Cannot open private SpoolRepository");
+ throw e;
+ }
+ getLogger().info("SpoolRepository inboundSpool opened: "
+ + inboundSpool.hashCode());
getLogger().info("James MailStore ...init");
}
@@ -176,4 +191,13 @@
public static final String getName() {
return REPOSITORY_NAME + id++;
}
+
+ public SpoolRepository getInboundSpool() {
+ if (inboundSpool != null) {
+ return inboundSpool;
+ } else {
+ throw new RuntimeException("Inbound spool not defined");
+ }
+ }
+
}
1.2 +14 -6 jakarta-james/src/java/org/apache/james/services/MailStore.java
Index: MailStore.java
===================================================================
RCS file: /home/cvs/jakarta-james/src/java/org/apache/james/services/MailStore.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- MailStore.java 2001/05/11 09:39:34 1.1
+++ MailStore.java 2001/06/21 17:20:28 1.2
@@ -13,19 +13,27 @@
* Interface for an object which provides MailRepositories or SpoolRepositories
*
* <p>The select method requires a configuration object with the form:
- * <br><repository destinationURL="file://path-to-root-dir-for-repository"
- * <br> type="MAIL"
- * <br> model="SYNCHRONOUS"/>
- * <br></repository>
- * <p>This configuration, including any included child elements, is used to
configure
- * the returned component.
+ * <br><repository destinationURL="file://path-to-root-dir-for-repository"
+ * <br> type="MAIL">
+ * <br></repository>
+ * <p>This configuration, including any included child elements, is used to
+ * configure the returned component.
*
* @version 1.0.0, 24/04/1999
* @author Federico Barbieri <[EMAIL PROTECTED]>
* @author <a href="mailto:[EMAIL PROTECTED]">Charles Benett</a>
+ *
+ * This is $Revision: 1.2 $
+ * Committed on $Date: 2001/06/21 17:20:28 $ by: $Author: charlesb $
*/
public interface MailStore
extends Store {
// MailRepository getInbox(String user);
+
+ /**
+ * Convenience method to get the inbound spool repository.
+ */
+ SpoolRepository getInboundSpool();
+
}
1.3 +6 -12
jakarta-james/src/java/org/apache/james/transport/JamesSpoolManager.java
Index: JamesSpoolManager.java
===================================================================
RCS file:
/home/cvs/jakarta-james/src/java/org/apache/james/transport/JamesSpoolManager.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JamesSpoolManager.java 2001/06/21 16:04:52 1.2
+++ JamesSpoolManager.java 2001/06/21 17:20:32 1.3
@@ -35,14 +35,15 @@
* @author Serge Knystautas <[EMAIL PROTECTED]>
* @author Federico Barbieri <[EMAIL PROTECTED]>
*
- * This is $Revision: 1.2 $
- * Committed on $Date: 2001/06/21 16:04:52 $ by: $Author: charlesb $
+ * This is $Revision: 1.3 $
+ * Committed on $Date: 2001/06/21 17:20:32 $ by: $Author: charlesb $
*/
public class JamesSpoolManager
extends AbstractLoggable
implements Contextualizable, Composable, Configurable, Initializable,
Runnable, Disposable, Block {
+ private final static boolean DEEP_DEBUG = true;
private DefaultComponentManager compMgr;
//using implementation as we need put method.
private Configuration conf;
@@ -72,18 +73,11 @@
getLogger().info("JamesSpoolManager init...");
workerPool = blockContext.getThreadPool( "default" );
- Configuration spoolConf = conf.getChild("spoolRepository");
- Configuration spoolRepConf = spoolConf.getChild("repository");
MailStore mailstore
= (MailStore) compMgr.lookup("org.apache.james.services.MailStore");
- try {
- this.spool = (SpoolRepository) mailstore.select(spoolRepConf);
- } catch (Exception e) {
- getLogger().error("Cannot open private SpoolRepository");
- throw e;
- }
- getLogger().info("Private SpoolRepository Spool opened: "
- + spool.hashCode());
+ spool = mailstore.getInboundSpool();
+ if (DEEP_DEBUG) getLogger().debug("Got spool");
+
mailetcontext
= (MailetContext) compMgr.lookup("org.apache.mailet.MailetContext");
MailetLoader mailetLoader = new MailetLoader();
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]