Re: (JAMES-561) User aliasing does not work

2006-07-10 Thread Norman Maurer
Mornin Noel,

you are right. I was wrong.. I used 2 rcpts to test at the same time.
One was the alias and one was user. So i maybe looked at the wrong
log :-(

Anyway just tested your fix and it works fine..

bye
Norman


Am Sonntag, den 09.07.2006, 23:42 -0400 schrieb Noel J. Bergman:
 I just found and fixed it.  Unfortunately, I'm 30,000 feet in the air, but as 
 soon as I land in LA this evening (about 4 hours from now), I'll commit the 
 fix, unless someone has beaten me to it.
 
  Norman observed on IM that The problem is that
  ((JamesUser) user).getAliasing() return false.
 
 Actually, no.  I tested for that, and it was working just fine.  The problem 
 was elsewhere in the UserRepositoryAliasForwarding mailet.  One character.  
 Just one missing character in the condition of an if statement.
 
   --- Noel
 
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 
 !EXCUBATOR:1,44b1ccca48531106319826!


signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


[jira] Created: (JAMES-562) Aliasmanagment should not depend on a user

2006-07-10 Thread Norman Maurer (JIRA)
Aliasmanagment should not depend on a user 
---

 Key: JAMES-562
 URL: http://issues.apache.org/jira/browse/JAMES-562
 Project: James
Type: Improvement

Reporter: Norman Maurer


If someone want to set a alias he must create a user fist and  then use this 
user as alias. IMHO that makes no sense.. We don't need a password etc for an 
alias.. So we should change it to not need a created user first .



-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



[jira] Created: (JAMES-563) Add Mailet to convert attributes to headers

2006-07-10 Thread Norman Maurer (JIRA)
Add Mailet to convert attributes to headers
---

 Key: JAMES-563
 URL: http://issues.apache.org/jira/browse/JAMES-563
 Project: James
Type: New Feature

  Components: Matchers/Mailets (bundled)  
Reporter: Norman Maurer
 Assigned to: Norman Maurer 
 Fix For: 3.0


We should add an mailet which convert (map) attributes to headers. So we just 
set attributes in teh mailets and do all the header adding at one place.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



[jira] Commented: (JAMES-559) Message body get lost after call saveChanges() and move to other processor

2006-07-10 Thread Stefano Bagnara (JIRA)
[ 
http://issues.apache.org/jira/browse/JAMES-559?page=comments#action_12420040 ] 

Stefano Bagnara commented on JAMES-559:
---

Status update: I wrote a unittest for this and the unittest fail. A good first 
step.

The problem only happens in file repositories because with db repositories we 
don't stream from and to db, while with files we use streaming more 
aggressively.

The problem probably arise from optimizations I added in january about loading 
only headers if only headers are changed and  then write headers from memory 
and stream body from source if no body changes were done. When updating the 
same file there was a check that avoided to update the file when the whole 
message was not changed, but there is no solution for only headers changed.

I'm currently investigating these 2 solutions:
1) remove the load only the headers optimization and always load/parse the 
full message in memory
2) change the file repository to write to a temporary file and rename it when 
the stream is closed.

I already have found problems with both solutions, and that's why I don't have 
committed a patch yet


 Message body get lost after call saveChanges() and move to other processor
 --

  Key: JAMES-559
  URL: http://issues.apache.org/jira/browse/JAMES-559
  Project: James
 Type: Bug

 Versions: 2.3.0b2, 3.0
 Reporter: Norman Maurer
 Assignee: Stefano Bagnara
 Priority: Blocker
  Fix For: 3.0, 2.3.0b2


 After call saveChanges() in a mailet and move the mail to a other processor 
 with ToProcessor the whole messageBody getting lost.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



[jira] Commented: (JAMES-562) Aliasmanagment should not depend on a user

2006-07-10 Thread Noel J. Bergman (JIRA)
[ 
http://issues.apache.org/jira/browse/JAMES-562?page=comments#action_12420075 ] 

Noel J. Bergman commented on JAMES-562:
---

I consider this issue resolved, since the virtual user table capability 
provides flexible alias and forwarding capabilities.  Current virtual user 
tables can be configured either in config.xml (see examples) or JDBC.  The only 
use for the current scheme, as I see it, is to provide a means for an existing 
user (having an account for SMTP AUTH or POP3 purposes) to set their own 
forwarding address, which is a feature not yet suppored by the console.

 Aliasmanagment should not depend on a user
 --

  Key: JAMES-562
  URL: http://issues.apache.org/jira/browse/JAMES-562
  Project: James
 Type: Improvement

 Reporter: Norman Maurer


 If someone want to set a alias he must create a user fist and  then use this 
 user as alias. IMHO that makes no sense.. We don't need a password etc for an 
 alias.. So we should change it to not need a created user first .

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



svn commit: r420520 - in /james/server/trunk/src: java/org/apache/james/mailrepository/ java/org/apache/james/mailrepository/filepair/ test/org/apache/james/mailrepository/ test/org/apache/james/test/

2006-07-10 Thread bago
Author: bago
Date: Mon Jul 10 06:34:26 2006
New Revision: 420520

URL: http://svn.apache.org/viewvc?rev=420520view=rev
Log:
Remove AbstractFileRepository optimisation that caused body message corruption 
when using file repositories (JAMES-559)

Added:
james/server/trunk/src/test/org/apache/james/mailrepository/

james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
   (with props)
Modified:

james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java

james/server/trunk/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
james/server/trunk/src/test/org/apache/james/test/mock/avalon/MockStore.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=420520r1=420519r2=420520view=diff
==
--- 
james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/mailrepository/AvalonMailRepository.java
 Mon Jul 10 06:34:26 2006
@@ -75,7 +75,7 @@
 private boolean fifo;
 private boolean cacheKeys; // experimental: for use with write mostly 
repositories such as spam and error
 
-private void setStore(Store store) {
+void setStore(Store store) {
 this.store = store;
 }
 

Modified: 
james/server/trunk/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java?rev=420520r1=420519r2=420520view=diff
==
--- 
james/server/trunk/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
 Mon Jul 10 06:34:26 2006
@@ -17,29 +17,29 @@
 
 package org.apache.james.mailrepository.filepair;
 
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.FilenameFilter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.util.ArrayList;
-import java.util.Iterator;
 import org.apache.avalon.cornerstone.services.store.Repository;
-import org.apache.james.util.io.ExtensionFileFilter;
 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.context.Context;
-import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.avalon.framework.context.ContextException;
+import org.apache.avalon.framework.context.Contextualizable;
 import org.apache.avalon.framework.logger.AbstractLogEnabled;
 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.util.io.ExtensionFileFilter;
 
-import javax.mail.util.SharedFileInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FilenameFilter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.util.ArrayList;
+import java.util.Iterator;
 
 /**
  * This an abstract class implementing functionality for creating a file-store.
@@ -258,7 +258,12 @@
 protected InputStream getInputStream( final String key )
 throws IOException
 {
-return new SharedFileInputStream( encode( key ) );
+// This was changed to SharedFileInputStream but reverted to 
+// fix JAMES-559. Usign SharedFileInputStream should be a good
+// performance improvement, but more checks have to be done
+// on the repository side to avoid concurrency in reading and
+// writing the same file.
+return new FileInputStream( encode( key ) );
 }
 
 protected OutputStream getOutputStream( final String key )
@@ -266,7 +271,7 @@
 {
 return new FileOutputStream( getFile( key ) );
 }
-
+
 /**
  * Remove the object associated to the given key.
  */

Added: 
james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java?rev=420520view=auto
==
--- 
james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
 (added)
+++ 

Re: IMAP Draft: Quota

2006-07-10 Thread Joachim Draeger
Am Samstag, den 08.07.2006, 13:41 +0200 schrieb Bernd Fondermann:

 are you really making that good progress you are already discussing 
 advanced features, or are quotas required by IMAP?
  
  
  Well, the progress is near to alpha for basic commands. What really is
  needed now is starting an Imap capable storage back-end. 
 
 It is great how hard you are working on the IMAP topic. I hope to get a 
 chance to review it soon!

That would be great! At the moment I make only sporadic changes to the
draft API interfaces on SVN.
Things would get more dynamic with external input. :-) It's really
difficult to fit every need and to keep things simple.

 Also, we have to keep in mind how to integrate your code with the James 
 codebase. But that's for another thread...

I think a lot about that. I also have some ideas. One question is for
example how could James benefit from a logical namespace for message
repositories / mailboxes? 
But IMO the first solution will be to allow optionally plugging in the
namespace/hierarchy aware repository and using wrappers for legacy code.
(a NamespaceMailRepository implementation).
So the codebase keeps stable.

 BTW, are your propositions based on RFC 2087 or is this another beast?

I did it according to RFC 2087 and JavaMail. The procedure I described
as a proposal for JDBC is just a possibility not a requirement.

  What I don't want to do is just hacking in a JDBC implementation and
  throw everything away when the time has come for the next feature.
  If we are aware of what we'll need in the future we could now try to
  make the right decisions. 
 
 well, this sounds like the waterfall model to me. let's make decisions 
 when decisions are due, it's impossible to take everything into account 
 beforehand. And I don't think you'd have to throw everything away, if 
 you'd skip thinking about quota now. instead I think one can yield much 
 better results by concentrating on current tasks.

Waterfall model is really getting a swear-word in today's agile
development world, isn't it? ;-)
No waterfall model, just an overview. No complete elaborated plan, just
a few thoughts and drafts. And I promise just to skip thinking about
quota right now, because it should be enough as an overview. :-)

Joachim




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



svn commit: r420526 - /james/server/branches/v2.3/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java

2006-07-10 Thread bago
Author: bago
Date: Mon Jul 10 07:02:10 2006
New Revision: 420526

URL: http://svn.apache.org/viewvc?rev=420526view=rev
Log:
Remove AbstractFileRepository optimisation that caused body message corruption 
when using file repositories (JAMES-559)

Modified:

james/server/branches/v2.3/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java

Modified: 
james/server/branches/v2.3/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
URL: 
http://svn.apache.org/viewvc/james/server/branches/v2.3/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java?rev=420526r1=420525r2=420526view=diff
==
--- 
james/server/branches/v2.3/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
 (original)
+++ 
james/server/branches/v2.3/src/java/org/apache/james/mailrepository/filepair/AbstractFileRepository.java
 Mon Jul 10 07:02:10 2006
@@ -18,6 +18,7 @@
 package org.apache.james.mailrepository.filepair;
 
 import java.io.File;
+import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.FilenameFilter;
 import java.io.IOException;
@@ -39,8 +40,6 @@
 import org.apache.avalon.framework.service.ServiceManager;
 import org.apache.avalon.framework.service.Serviceable;
 
-import javax.mail.util.SharedFileInputStream;
-
 /**
  * This an abstract class implementing functionality for creating a file-store.
  *
@@ -258,7 +257,7 @@
 protected InputStream getInputStream( final String key )
 throws IOException
 {
-return new SharedFileInputStream( encode( key ) );
+return new FileInputStream( encode( key ) );
 }
 
 protected OutputStream getOutputStream( final String key )



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



[jira] Updated: (JAMES-559) Message body get lost after call saveChanges() and move to other processor

2006-07-10 Thread Stefano Bagnara (JIRA)
 [ http://issues.apache.org/jira/browse/JAMES-559?page=all ]

Stefano Bagnara updated JAMES-559:
--

Fix Version: 2.3.0b3
 (was: 2.3.0b2)

 Message body get lost after call saveChanges() and move to other processor
 --

  Key: JAMES-559
  URL: http://issues.apache.org/jira/browse/JAMES-559
  Project: James
 Type: Bug

 Versions: 3.0, 2.3.0b2
 Reporter: Norman Maurer
 Assignee: Stefano Bagnara
 Priority: Blocker
  Fix For: 3.0, 2.3.0b3


 After call saveChanges() in a mailet and move the mail to a other processor 
 with ToProcessor the whole messageBody getting lost.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



RE: (JAMES-561) User aliasing does not work

2006-07-10 Thread Noel J. Bergman
Norman Maurer wrote:

 you are right. I was wrong.

shrug  No worries.

 Anyway just tested your fix and it works fine.

:-) Thanks.  Close the JIRA issue if you're confident.

--- Noel

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



[jira] Updated: (JAMES-554) Set the right svn property for excutable files

2006-07-10 Thread Stefano Bagnara (JIRA)
 [ http://issues.apache.org/jira/browse/JAMES-554?page=all ]

Stefano Bagnara updated JAMES-554:
--

Fix Version: 2.3.0b3
 (was: 2.3.0)
Version: 2.3.0b2

 Set the right svn property for excutable files
 --

  Key: JAMES-554
  URL: http://issues.apache.org/jira/browse/JAMES-554
  Project: James
 Type: Bug

   Components: Build System
 Versions: 2.3.0b2
 Reporter: Norman Maurer
 Assignee: Norman Maurer
 Priority: Minor
  Fix For: 3.0, 2.3.0b3


 Set the right properties for files which should be excutable in linux systems

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



[jira] Updated: (JAMES-560) SetMimeHeader not throw an MessagingException if needed config values missed

2006-07-10 Thread Stefano Bagnara (JIRA)
 [ http://issues.apache.org/jira/browse/JAMES-560?page=all ]

Stefano Bagnara updated JAMES-560:
--

Fix Version: 2.3.0b3
 (was: 2.3.0)
Version: 2.3.0b2

 SetMimeHeader not throw an MessagingException if needed config values missed
 

  Key: JAMES-560
  URL: http://issues.apache.org/jira/browse/JAMES-560
  Project: James
 Type: Bug

   Components: Matchers/Mailets (bundled)
 Versions: 2.3.0b2
 Reporter: Norman Maurer
 Assignee: Norman Maurer
  Fix For: 3.0, 2.3.0b3


 SetMimeHeader not throw an Exception if needed config values missed

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



[jira] Updated: (JAMES-561) User aliasing does not work

2006-07-10 Thread Stefano Bagnara (JIRA)
 [ http://issues.apache.org/jira/browse/JAMES-561?page=all ]

Stefano Bagnara updated JAMES-561:
--

Fix Version: 2.3.0b3
 (was: 2.3.0)

 User aliasing does not work
 ---

  Key: JAMES-561
  URL: http://issues.apache.org/jira/browse/JAMES-561
  Project: James
 Type: Bug

   Components: Matchers/Mailets (bundled)
 Versions: 3.0, 2.3.0b2
 Reporter: Vincenzo Gianferrari Pini
 Assignee: Norman Maurer
 Priority: Blocker
  Fix For: 3.0, 2.3.0b3


 If user A is an alias of user B ( or viceversa - remote manager help is 
 misleading) messages sent to A have to go (and were going) to B's inbox. Now 
 it ends in A's inbox, that should not even exist.
 The problem has been found by me using both file and db repositories 
 under 2.3.0b2, but I expect it to occur also under 3.0.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



svn commit: r420534 - /james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java

2006-07-10 Thread norman
Author: norman
Date: Mon Jul 10 07:15:31 2006
New Revision: 420534

URL: http://svn.apache.org/viewvc?rev=420534view=rev
Log:
Add mailet to convert attributes to headers. See JAMES-563

Added:

james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java

Added: 
james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java?rev=420534view=auto
==
--- 
james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
 (added)
+++ 
james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
 Mon Jul 10 07:15:31 2006
@@ -0,0 +1,105 @@
+/***
+ * Copyright (c) 2006 The Apache Software Foundation.  *
+ * All rights reserved.*
+ * --- *
+ * Licensed 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.transport.mailets;
+
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+import org.apache.mailet.GenericMailet;
+import org.apache.mailet.Mail;
+
+/**
+ * Convert attributes to headers
+ * 
+ * Sample configuration:
+ * 
+ * lt;mailet match=All class=MailAttributesToMimeHeadersgt;
+ * lt;simplemappinggt;org.apache.james.attribute1;
+ * headerName1lt;/simplemappinggt;
+ * lt;simplemappinggt;org.apache.james.attribute2;
+ * headerName2lt;/simplemappinggt; lt;/mailetgt;
+ * 
+ */
+public class MailAttributesToMimeHeaders extends GenericMailet {
+
+/**
+ * HashMap which holds the attributeName and headerName
+ */
+private HashMap map = new HashMap();
+
+/**
+ * @see org.apache.mailet.GenericMailet#init()
+ */
+public void init() throws MessagingException {
+String simplemappings = getInitParameter(simplemapping);
+if (simplemappings != null) {
+
+StringTokenizer st = new StringTokenizer(simplemappings, ,);
+while (st.hasMoreTokens()) {
+
+String parameters[] = st.nextToken().split(;);
+
+// Check if we have a valid config
+if (parameters.length  2 || parameters.length  2) {
+throw new MessagingException(
+Invalid config. Please use \attributeName; 
headerName\);
+} else {
+System.out.println(in here:  + parameters[0].trim()
++  , + parameters[1].trim());
+// Add it to the map
+map.put(parameters[0].trim(), parameters[1].trim());
+}
+}
+} else {
+throw new MessagingException(
+Invalid config. Please use \attributeName; 
headerName\);
+}
+}
+
+/**
+ * @see org.apache.mailet.GenericMailet#service(Mail)
+ */
+public void service(Mail mail) {
+MimeMessage message;
+try {
+message = mail.getMessage();
+
+Iterator keys = map.keySet().iterator();
+
+while (keys.hasNext()) {
+String key = keys.next().toString();
+String value = (String) mail.getAttribute(key);
+String headerName = map.get(key).toString();
+
+// Check if we have all needed values
+if (headerName != null  value != null) {
+// Add the header
+message.setHeader(headerName, value);
+}
+}
+message.saveChanges();
+} catch (MessagingException e) {
+log(e.getMessage());
+}
+}
+
+}



-
To unsubscribe, e-mail: [EMAIL 

svn commit: r420536 - /james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java

2006-07-10 Thread norman
Author: norman
Date: Mon Jul 10 07:17:36 2006
New Revision: 420536

URL: http://svn.apache.org/viewvc?rev=420536view=rev
Log:
Remove old debugs

Modified:

james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java

Modified: 
james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java?rev=420536r1=420535r2=420536view=diff
==
--- 
james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
 (original)
+++ 
james/server/trunk/src/java/org/apache/james/transport/mailets/MailAttributesToMimeHeaders.java
 Mon Jul 10 07:17:36 2006
@@ -63,8 +63,6 @@
 throw new MessagingException(
 Invalid config. Please use \attributeName; 
headerName\);
 } else {
-System.out.println(in here:  + parameters[0].trim()
-+  , + parameters[1].trim());
 // Add it to the map
 map.put(parameters[0].trim(), parameters[1].trim());
 }



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



Re: IMAP Draft: Quota

2006-07-10 Thread Bernd Fondermann

Joachim Draeger wrote:

Am Samstag, den 08.07.2006, 13:41 +0200 schrieb Bernd Fondermann:


are you really making that good progress you are already discussing 
advanced features, or are quotas required by IMAP?



Well, the progress is near to alpha for basic commands. What really is
needed now is starting an Imap capable storage back-end. 


It is great how hard you are working on the IMAP topic. I hope to get a 
chance to review it soon!



That would be great! At the moment I make only sporadic changes to the
draft API interfaces on SVN.


I'd more or less stick to your JIRA postings/attachements (as JIRA is 
one of our 'official' project resources).



Things would get more dynamic with external input. :-) It's really
difficult to fit every need and to keep things simple.


can't promise anything, but at least it's on my agenda.

Also, we have to keep in mind how to integrate your code with the James 
codebase. But that's for another thread...



I think a lot about that. I also have some ideas. One question is for
example how could James benefit from a logical namespace for message
repositories / mailboxes? 
But IMO the first solution will be to allow optionally plugging in the

namespace/hierarchy aware repository and using wrappers for legacy code.
(a NamespaceMailRepository implementation).
So the codebase keeps stable.


namespaces for repos is something which is also going around in my mind 
for some time. maybe we should have a separate discussion about it in 
near future!






BTW, are your propositions based on RFC 2087 or is this another beast?



I did it according to RFC 2087 and JavaMail. The procedure I described
as a proposal for JDBC is just a possibility not a requirement.



What I don't want to do is just hacking in a JDBC implementation and
throw everything away when the time has come for the next feature.
If we are aware of what we'll need in the future we could now try to
make the right decisions. 


well, this sounds like the waterfall model to me. let's make decisions 
when decisions are due, it's impossible to take everything into account 
beforehand. And I don't think you'd have to throw everything away, if 
you'd skip thinking about quota now. instead I think one can yield much 
better results by concentrating on current tasks.



Waterfall model is really getting a swear-word in today's agile
development world, isn't it? ;-)


;-) it is - I apologize, didn't want to swear at you... ;-)


No waterfall model, just an overview. No complete elaborated plan, just
a few thoughts and drafts. And I promise just to skip thinking about
quota right now, because it should be enough as an overview. :-)


we could go on. but we must keep in mind the whole discussion is 
repeated in the future when quotas eventually are reconsidered. ;-)


  Bernd

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



[jira] Resolved: (JAMES-559) Message body get lost after call saveChanges() and move to other processor

2006-07-10 Thread Stefano Bagnara (JIRA)
 [ http://issues.apache.org/jira/browse/JAMES-559?page=all ]
 
Stefano Bagnara resolved JAMES-559:
---

Resolution: Fixed

Reverted the SharedFileInputStream to FileInputStream for file based 
repositories.
This is a workaround that disable previous optimisation.

There is a lot to do in 3.0 about this (both in file and db repositories).

 Message body get lost after call saveChanges() and move to other processor
 --

  Key: JAMES-559
  URL: http://issues.apache.org/jira/browse/JAMES-559
  Project: James
 Type: Bug

 Versions: 2.3.0b2, 3.0
 Reporter: Norman Maurer
 Assignee: Stefano Bagnara
 Priority: Blocker
  Fix For: 3.0, 2.3.0b3


 After call saveChanges() in a mailet and move the mail to a other processor 
 with ToProcessor the whole messageBody getting lost.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



svn commit: r420564 - in /james/server/trunk/src: java/org/apache/james/core/MimeMessageWrapper.java test/org/apache/james/core/MimeMessageWrapperTest.java test/org/apache/james/mailrepository/AvalonM

2006-07-10 Thread bago
Author: bago
Date: Mon Jul 10 08:24:48 2006
New Revision: 420564

URL: http://svn.apache.org/viewvc?rev=420564view=rev
Log:
Further mimemessage handling optimisation conservative changes (not a code 
revert, but a logical revert) (JAMES-559)
It seems to work even without this change because of a weird behaviour of 
MimeMessage.saveChanges in Sun Javamail.

Modified:
james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java

james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java

james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java

Modified: 
james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java?rev=420564r1=420563r2=420564view=diff
==
--- james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java 
(original)
+++ james/server/trunk/src/java/org/apache/james/core/MimeMessageWrapper.java 
Mon Jul 10 08:24:48 2006
@@ -410,10 +410,16 @@
 
 
 private synchronized void checkModifyHeaders() throws MessagingException {
+// Disable only-header loading optimizations for JAMES-559
+if (!messageParsed) {
+loadMessage();
+}
+// End JAMES-559
 if (headers == null) {
 loadHeaders();
 }
 modified = true;
+saved = false;
 headersModified = true;
 }
 
@@ -446,6 +452,7 @@
  */
 public synchronized void setDataHandler(DataHandler arg0) throws 
MessagingException {
 modified = true;
+saved = false;
 bodyModified = true;
 super.setDataHandler(arg0);
 }

Modified: 
james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java?rev=420564r1=420563r2=420564view=diff
==
--- 
james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java 
(original)
+++ 
james/server/trunk/src/test/org/apache/james/core/MimeMessageWrapperTest.java 
Mon Jul 10 08:24:48 2006
@@ -125,6 +125,7 @@
 assertFalse(mw.isModified());
 }
 
+/** this is commented out due optimisation reverts (JAMES-559) 
 public void testDeferredMessageLoadingWhileWriting() throws 
MessagingException, IOException {
 mw.setMessageLoadable(false);
 assertEquals(foo,mw.getSubject());
@@ -136,6 +137,7 @@
 mw.setMessageLoadable(true);
 
 }
+*/
 
 public void testDeferredHeaderLoading() throws MessagingException, 
IOException {
 mw.setHeadersLoadable(false);

Modified: 
james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java?rev=420564r1=420563r2=420564view=diff
==
--- 
james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
 (original)
+++ 
james/server/trunk/src/test/org/apache/james/mailrepository/AvalonMailRepositoryTest.java
 Mon Jul 10 08:24:48 2006
@@ -108,5 +108,69 @@
 mr.remove(mail1);
 
 }
+
+
+/**
+ * This test has been written as a proof to:
+ * http://issues.apache.org/jira/browse/JAMES-559
+ */
+public void testJames559WithoutSaveChanges() throws Exception {
+AvalonMailRepository mr = new AvalonMailRepository();
+MockStore mockStore = new MockStore();
+File_Persistent_Stream_Repository file_Persistent_Stream_Repository = 
new File_Persistent_Stream_Repository();
+MockContext mockContext = new MockContext(new File(.));
+file_Persistent_Stream_Repository.contextualize(mockContext);
+file_Persistent_Stream_Repository.enableLogging(new MockLogger());
+DefaultConfiguration defaultConfiguration2 = new 
DefaultConfiguration(conf);
+defaultConfiguration2.setAttribute(destinationURL, file://var/mr);
+file_Persistent_Stream_Repository.configure(defaultConfiguration2);
+file_Persistent_Stream_Repository.initialize();
+mockStore.add(STREAM.mr, file_Persistent_Stream_Repository);
+File_Persistent_Object_Repository file_Persistent_Object_Repository = 
new File_Persistent_Object_Repository();
+file_Persistent_Object_Repository.contextualize(mockContext);
+file_Persistent_Object_Repository.enableLogging(new MockLogger());
+DefaultConfiguration defaultConfiguration22 = new 
DefaultConfiguration(conf);
+defaultConfiguration22.setAttribute(destinationURL, file://var/mr);
+

svn commit: r420566 - in /james/server/branches/v2.3/src: java/org/apache/james/core/MimeMessageWrapper.java test/org/apache/james/core/MimeMessageWrapperTest.java

2006-07-10 Thread bago
Author: bago
Date: Mon Jul 10 08:34:20 2006
New Revision: 420566

URL: http://svn.apache.org/viewvc?rev=420566view=rev
Log:
Further mimemessage handling optimisation conservative changes (not a code 
revert, but a logical revert) (JAMES-559)
It seems to work even without this change because of a weird behaviour of 
MimeMessage.saveChanges in Sun Javamail.

Modified:

james/server/branches/v2.3/src/java/org/apache/james/core/MimeMessageWrapper.java

james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageWrapperTest.java

Modified: 
james/server/branches/v2.3/src/java/org/apache/james/core/MimeMessageWrapper.java
URL: 
http://svn.apache.org/viewvc/james/server/branches/v2.3/src/java/org/apache/james/core/MimeMessageWrapper.java?rev=420566r1=420565r2=420566view=diff
==
--- 
james/server/branches/v2.3/src/java/org/apache/james/core/MimeMessageWrapper.java
 (original)
+++ 
james/server/branches/v2.3/src/java/org/apache/james/core/MimeMessageWrapper.java
 Mon Jul 10 08:34:20 2006
@@ -410,10 +410,16 @@
 
 
 private synchronized void checkModifyHeaders() throws MessagingException {
+// Disable only-header loading optimizations for JAMES-559
+if (!messageParsed) {
+loadMessage();
+}
+// End JAMES-559
 if (headers == null) {
 loadHeaders();
 }
 modified = true;
+saved = false;
 headersModified = true;
 }
 
@@ -446,6 +452,7 @@
  */
 public synchronized void setDataHandler(DataHandler arg0) throws 
MessagingException {
 modified = true;
+saved = false;
 bodyModified = true;
 super.setDataHandler(arg0);
 }

Modified: 
james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageWrapperTest.java
URL: 
http://svn.apache.org/viewvc/james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageWrapperTest.java?rev=420566r1=420565r2=420566view=diff
==
--- 
james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageWrapperTest.java
 (original)
+++ 
james/server/branches/v2.3/src/test/org/apache/james/core/MimeMessageWrapperTest.java
 Mon Jul 10 08:34:20 2006
@@ -125,6 +125,7 @@
 assertFalse(mw.isModified());
 }
 
+/** this is commented out due optimisation reverts (JAMES-559) 
 public void testDeferredMessageLoadingWhileWriting() throws 
MessagingException, IOException {
 mw.setMessageLoadable(false);
 assertEquals(foo,mw.getSubject());
@@ -134,8 +135,8 @@
 assertFalse(mw.messageParsed());
 assertTrue(mw.isModified());
 mw.setMessageLoadable(true);
-
 }
+*/
 
 public void testDeferredHeaderLoading() throws MessagingException, 
IOException {
 mw.setHeadersLoadable(false);



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



Thing to keep in mind for future mail/message repositories

2006-07-10 Thread Stefano Bagnara
Working on http://issues.apache.org/jira/browse/JAMES-559 I had to 
remove most of the optimisation added to MimeMessageWrapper (the ones 
more performance oriented).


The main problem is that we cannot use streaming if we want to write a 
message to the same record/file we're reading from.


I'm just writing this because when we'll refactor Mail repositories (or 
better introduce Message repositories) there are 2 things that would 
help performace and allow us to reactivate this optimisations:
1) Keep headers and body in 2 different resources (this allow us to 
easily read and write only one of them)
2) The repository should support updating the content of a message while 
reading the previous version of that message.


As a sidenote, Noel pointed out 
http://jakarta.apache.org/commons/transaction/file/index.html to 
introduce transations in file based repositories.


And now a question. I haven't looked at Javamail Folder to understand 
how Javamail handle the update of a message: does anyone know how update 
is handled and if streaming can be used between the previous message 
content and the new message content ?


Stefano


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



[jira] Commented: (JAMES-559) Message body get lost after call saveChanges() and move to other processor

2006-07-10 Thread Vincenzo Gianferrari Pini (JIRA)
[ 
http://issues.apache.org/jira/browse/JAMES-559?page=comments#action_12420116 ] 

Vincenzo Gianferrari Pini commented on JAMES-559:
-

It works now for me. Thanks to all of the team for the work.
I'll test 2.3.0b2 again in production on the weekend of July 22-23.

 Message body get lost after call saveChanges() and move to other processor
 --

  Key: JAMES-559
  URL: http://issues.apache.org/jira/browse/JAMES-559
  Project: James
 Type: Bug

 Versions: 3.0, 2.3.0b2
 Reporter: Norman Maurer
 Assignee: Stefano Bagnara
 Priority: Blocker
  Fix For: 3.0, 2.3.0b3


 After call saveChanges() in a mailet and move the mail to a other processor 
 with ToProcessor the whole messageBody getting lost.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



svn commit: r420589 - /james/server/trunk/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java

2006-07-10 Thread norman
Author: norman
Date: Mon Jul 10 10:34:46 2006
New Revision: 420589

URL: http://svn.apache.org/viewvc?rev=420589view=rev
Log:
Override setProperty(String,String) to work like aspected in the mocked object.

Modified:

james/server/trunk/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java

Modified: 
james/server/trunk/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java?rev=420589r1=420588r2=420589view=diff
==
--- 
james/server/trunk/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java
 (original)
+++ 
james/server/trunk/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java
 Mon Jul 10 10:34:46 2006
@@ -30,6 +30,7 @@
 private String mailetName;
 private MailetContext mc;
 
+
 public MockMailetConfig(String mailetName, MailetContext mc) {
 super();
 this.mailetName = mailetName;
@@ -58,4 +59,14 @@
 return mailetName;
 }
 
+// Override setProperty to work like it should in this MockMailetConfig
+public Object setProperty(String key, String value) {
+String oldValue = getProperty(key);
+String newValue = value;
+
+if (oldValue != null) {
+newValue = oldValue + , + value;
+}
+return super.setProperty(key, newValue);
+}
 }



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



svn commit: r420591 - /james/server/trunk/src/test/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java

2006-07-10 Thread norman
Author: norman
Date: Mon Jul 10 10:36:11 2006
New Revision: 420591

URL: http://svn.apache.org/viewvc?rev=420591view=rev
Log:
Add junit test for MailAttrbutesToMimeHeaders mailet. See JAMES-563

Added:

james/server/trunk/src/test/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java

Added: 
james/server/trunk/src/test/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java?rev=420591view=auto
==
--- 
james/server/trunk/src/test/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
 (added)
+++ 
james/server/trunk/src/test/org/apache/james/transport/mailets/MailAttributesToMimeHeadersTest.java
 Mon Jul 10 10:36:11 2006
@@ -0,0 +1,113 @@
+/***
+ * Copyright (c) 2006 The Apache Software Foundation.  *
+ * All rights reserved.*
+ * --- *
+ * Licensed 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.transport.mailets;
+
+import junit.framework.TestCase;
+import org.apache.james.test.mock.mailet.MockMail;
+import org.apache.james.test.mock.mailet.MockMailContext;
+import org.apache.james.test.mock.mailet.MockMailetConfig;
+import org.apache.james.test.util.Util;
+import org.apache.mailet.Mailet;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.ParseException;
+
+import java.io.UnsupportedEncodingException;
+
+public class MailAttributesToMimeHeadersTest extends TestCase {
+
+private Mailet mailet;
+
+private final String HEADER_NAME1 = JUNIT;
+
+private final String HEADER_NAME2 = JUNIT2;
+
+private final String MAIL_ATTRIBUTE_VALUE1 = test1;
+
+private final String MAIL_ATTRIBUTE_VALUE2 = test2;
+
+private final String MAIL_ATTRIBUTE_NAME1 = org.apache.james.test;
+
+private final String MAIL_ATTRIBUTE_NAME2 = org.apache.james.test2;
+
+private String config1 = MAIL_ATTRIBUTE_NAME1 + ;  + HEADER_NAME1;
+
+private String config2 = MAIL_ATTRIBUTE_NAME2 + ;  + HEADER_NAME2;
+
+public MailAttributesToMimeHeadersTest(String arg0)
+throws UnsupportedEncodingException {
+super(arg0);
+}
+
+private void setConfig1(String config1) {
+this.config1 = config1;
+}
+
+private String getConfig1() {
+return config1;
+}
+
+private void setupMailet() throws MessagingException {
+mailet = new MailAttributesToMimeHeaders();
+MockMailetConfig mci = new MockMailetConfig(Test,
+new MockMailContext());
+mci.setProperty(simplemapping, getConfig1());
+mci.setProperty(simplemapping, config2);
+mailet.init(mci);
+}
+
+private MockMail setupMail(MimeMessage m) throws ParseException {
+MockMail mockedMail = Util.createMockMail2Recipients(m);
+mockedMail.setAttribute(MAIL_ATTRIBUTE_NAME1, MAIL_ATTRIBUTE_VALUE1);
+mockedMail.setAttribute(MAIL_ATTRIBUTE_NAME2, MAIL_ATTRIBUTE_VALUE2);
+return mockedMail;
+}
+
+// test if the Headers were added
+public void testHeadersArePresent() throws MessagingException {
+MockMail mockedMail = setupMail(Util.createMimeMessage());
+setupMailet();
+
+mailet.service(mockedMail);
+
+assertEquals(MAIL_ATTRIBUTE_VALUE1, mockedMail.getMessage().getHeader(
+HEADER_NAME1)[0]);
+
+assertEquals(MAIL_ATTRIBUTE_VALUE2, mockedMail.getMessage().getHeader(
+HEADER_NAME2)[0]);
+
+}
+
+// test if exception was thrown
+public void testInvalidConfig() throws MessagingException {
+boolean exception = false;
+MockMail mockedMail = setupMail(Util.createMimeMessage());
+setConfig1(test);
+
+try {
+setupMailet();
+

svn commit: r420593 - /james/server/branches/v2.3/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java

2006-07-10 Thread norman
Author: norman
Date: Mon Jul 10 10:46:45 2006
New Revision: 420593

URL: http://svn.apache.org/viewvc?rev=420593view=rev
Log:
Override setProperty(String,String) to work like aspected in the mocked object.

Modified:

james/server/branches/v2.3/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java

Modified: 
james/server/branches/v2.3/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java
URL: 
http://svn.apache.org/viewvc/james/server/branches/v2.3/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java?rev=420593r1=420592r2=420593view=diff
==
--- 
james/server/branches/v2.3/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java
 (original)
+++ 
james/server/branches/v2.3/src/test/org/apache/james/test/mock/mailet/MockMailetConfig.java
 Mon Jul 10 10:46:45 2006
@@ -57,5 +57,16 @@
 public String getMailetName() {
 return mailetName;
 }
+
+// Override setProperty to work like it should in this MockMailetConfig
+public Object setProperty(String key, String value) {
+String oldValue = getProperty(key);
+String newValue = value;
+
+if (oldValue != null) {
+newValue = oldValue + , + value;
+}
+return super.setProperty(key, newValue);
+}
 
 }



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



[jira] Resolved: (JAMES-563) Add Mailet to convert attributes to headers

2006-07-10 Thread Norman Maurer (JIRA)
 [ http://issues.apache.org/jira/browse/JAMES-563?page=all ]
 
Norman Maurer resolved JAMES-563:
-

Resolution: Fixed

 Add Mailet to convert attributes to headers
 ---

  Key: JAMES-563
  URL: http://issues.apache.org/jira/browse/JAMES-563
  Project: James
 Type: New Feature

   Components: Matchers/Mailets (bundled)
 Reporter: Norman Maurer
 Assignee: Norman Maurer
  Fix For: 3.0


 We should add an mailet which convert (map) attributes to headers. So we just 
 set attributes in teh mailets and do all the header adding at one place.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


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



svn commit: r420596 - /james/server/trunk/src/test/org/apache/james/transport/mailets/NullTest.java

2006-07-10 Thread norman
Author: norman
Date: Mon Jul 10 11:03:39 2006
New Revision: 420596

URL: http://svn.apache.org/viewvc?rev=420596view=rev
Log:
Add junit test for Null Mailet

Added:
james/server/trunk/src/test/org/apache/james/transport/mailets/NullTest.java

Added: 
james/server/trunk/src/test/org/apache/james/transport/mailets/NullTest.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/src/test/org/apache/james/transport/mailets/NullTest.java?rev=420596view=auto
==
--- 
james/server/trunk/src/test/org/apache/james/transport/mailets/NullTest.java 
(added)
+++ 
james/server/trunk/src/test/org/apache/james/transport/mailets/NullTest.java 
Mon Jul 10 11:03:39 2006
@@ -0,0 +1,71 @@
+/***
+ * Copyright (c) 2006 The Apache Software Foundation.  *
+ * All rights reserved.*
+ * --- *
+ * Licensed 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.transport.mailets;
+
+import java.io.UnsupportedEncodingException;
+import java.util.Arrays;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+import javax.mail.internet.ParseException;
+
+import junit.framework.TestCase;
+
+import org.apache.james.test.mock.mailet.MockMail;
+import org.apache.mailet.Mail;
+import org.apache.mailet.MailAddress;
+import org.apache.mailet.Mailet;
+
+public class NullTest extends TestCase {
+
+private MimeMessage mockedMimeMessage;
+
+private Mail mockedMail;
+
+private Mailet mailet;
+
+private final String PROCESSOR = ghost;
+
+public NullTest(String arg0) throws UnsupportedEncodingException {
+super(arg0);
+}
+
+private void setupMockedMail(MimeMessage m) throws ParseException {
+mockedMail = new MockMail();
+mockedMail.setMessage(m);
+mockedMail.setRecipients(Arrays.asList(new MailAddress[] {
+new MailAddress([EMAIL PROTECTED]),
+new MailAddress([EMAIL PROTECTED]) }));
+
+}
+
+private void setupMailet() throws MessagingException {
+mailet = new Null();
+}
+
+// test if ToProcessor works
+public void testValidToProcessor() throws MessagingException {
+setupMockedMail(mockedMimeMessage);
+setupMailet();
+
+mailet.service(mockedMail);
+
+assertEquals(PROCESSOR, mockedMail.getState());
+}
+
+}



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



Re: IMAP Draft: Cluster

2006-07-10 Thread Mike Heath
On Mon, 2006-07-10 at 14:57 +0200, Joachim Draeger wrote:

  Maybe such idle connections could be handled by a special thread and if 
  any real work is starting on a connection, this one is handed over to a 
  worker thread?
 
 To allow many idle connections but limit the maximal possible server
 load, I have the idea of a central scheduler in mind.
 The scheduler keeps track of all running threads. 
 If a session thread wants to run an expensive command it has to ask the
 scheduler first. 

The thread per connection model simply doesn't scale to the level that
would be needed for a decent IMAP server.  Fortunately, this is a
problem that has already been solved by SEDA [1].  The Apache MINA
project [2] implements the good ideas of SEDA plus adds a number of
other good ideas providing a framework that is very easy to learn and
use.  MINA also performs and scales very well.  MINA is also an Apache
project which means that any need support is just around the corner.  At
ApacheCon there was talk about using MINA to implement the protocols
used by JAMES [3].  Since I wrote a MINA based SMTP handler [4], I would
be very interested in seeing JAMES move to MINA based protocol handlers.
I think this would be a good move for the 3.0 release of JAMES.

-Mike

[1] http://www.eecs.harvard.edu/~mdw/proj/seda/
[2] http://directory.apache.org/subprojects/mina/index.html
[3]
http://mail-archives.apache.org/mod_mbox/directory-mina-dev/200607.mbox/browser
[4] http://hausmail.safehaus.org/


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



Re: IMAP Draft: Cluster

2006-07-10 Thread Norman Maurer
Am Montag, den 10.07.2006, 21:05 -0600 schrieb Mike Heath:
 On Mon, 2006-07-10 at 14:57 +0200, Joachim Draeger wrote:
 
   Maybe such idle connections could be handled by a special thread and if 
   any real work is starting on a connection, this one is handed over to a 
   worker thread?
  
  To allow many idle connections but limit the maximal possible server
  load, I have the idea of a central scheduler in mind.
  The scheduler keeps track of all running threads. 
  If a session thread wants to run an expensive command it has to ask the
  scheduler first. 
 
 The thread per connection model simply doesn't scale to the level that
 would be needed for a decent IMAP server.  Fortunately, this is a
 problem that has already been solved by SEDA [1].  The Apache MINA
 project [2] implements the good ideas of SEDA plus adds a number of
 other good ideas providing a framework that is very easy to learn and
 use.  MINA also performs and scales very well.  MINA is also an Apache
 project which means that any need support is just around the corner.  At
 ApacheCon there was talk about using MINA to implement the protocols
 used by JAMES [3].  Since I wrote a MINA based SMTP handler [4], I would
 be very interested in seeing JAMES move to MINA based protocol handlers.
 I think this would be a good move for the 3.0 release of JAMES.
 
 -Mike
 
 [1] http://www.eecs.harvard.edu/~mdw/proj/seda/
 [2] http://directory.apache.org/subprojects/mina/index.html
 [3]
 http://mail-archives.apache.org/mod_mbox/directory-mina-dev/200607.mbox/browser
 [4] http://hausmail.safehaus.org/

Hi Mike,

i allready move this to 3.0 Roadmap ;-)

http://issues.apache.org/jira/browse/JAMES-551

I had a look at your work in the last week. It seems to be very
intressting. Im not sure yet if we should move to MINA before or after
the new SMTP Handler api is finish..

What the others think ?

BTW, i never used MINA but the speak on ApacheCon was very intressting.

bye
Norman





signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil