huber       2003/01/07 15:17:35

  Modified:    src/scratchpad/src/org/apache/cocoon/mail MailAction.java
                        MailCommandBuilder.java MailCommandManager.java
                        MailCommandSelector.java
                        MailContentHandlerDelegate.java MailContext.java
  Removed:     src/scratchpad/src/org/apache/cocoon/mail MailGenerator.java
  Log:
  removed MailGenerator.java
  fixed to make this package java 1.3 compileable
  
  Revision  Changes    Path
  1.4       +66 -18    
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailAction.java
  
  Index: MailAction.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailAction.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- MailAction.java   7 Jan 2003 16:48:54 -0000       1.3
  +++ MailAction.java   7 Jan 2003 23:17:34 -0000       1.4
  @@ -53,6 +53,7 @@
    *  <http://www.apache.org/>.
    */
   package org.apache.cocoon.mail;
  +
   import java.text.SimpleDateFormat;
   import java.util.HashMap;
   import java.util.Iterator;
  @@ -80,7 +81,14 @@
   import org.apache.cocoon.mail.command.AbstractMailCommand;
   
   /**
  - * This action ...
  + * This action creates javamail objects, and puts XMLizable object wrappers
  + * of these objects into the request attribute map.
  + * <p>
  + *  This action enables javamail access as action. It creates an http sesion,
  + *  and puts the MailContext object into the session attributes.
  + * </p>
  + *
  + *@see MailContext
    *
    *@author     Bernhard Huber
    *@created    16. Dezember 2002
  @@ -127,7 +135,7 @@
           String folderName = request.getParameter("folder");
           String userid = request.getParameter("mail-userid");
           String password = request.getParameter("mail-password");
  -        
  +
           // assert mailContext is available
           Session session = request.getSession(true);
           MailContext mailContext = (MailContext) 
session.getAttribute(MailContext.SESSION_MAIL_CONTEXT);
  @@ -235,23 +243,62 @@
        *@return                       The uRLNameExpanded value
        */
       protected String getURLNameExpanded(String storeURLNameTemplate, String userid, 
String password) {
  -        StringBuffer sb = new StringBuffer(storeURLNameTemplate);
  +        String tokenStart = "''";
  +        String tokenEnd = "''";
  +        Properties filters = new Properties();
  +        filters.put("mail-userid", userid);
  +        filters.put("mail-passwd", password);
  +
  +        String filteredURLName = filter(tokenStart, tokenEnd, storeURLNameTemplate, 
filters);
  +        return filteredURLName;
  +    }
  +
  +
  +    /**
  +     * replace occurences of <code>TOKEN_STARTxxxTOKEN_END</code> by value of entry 
xxx in tokens table.
  +     *
  +     *@param  tokenStart  token start marker
  +     *@param  tokenEnd    token end marker
  +     *@param  s           the string examined
  +     *@param  tokens      Description of the Parameter
  +     *@return             String replaced all tokenized entries of original String 
s.
  +     */
  +    protected String filter(final String tokenStart, final String tokenEnd, String 
s, Properties tokens) {
  +        int index = s.indexOf(tokenStart);
  +
  +        if (index > -1) {
  +            try {
  +                StringBuffer b = new StringBuffer();
  +                int i = 0;
  +                String token = null;
  +                String value = null;
  +
  +                do {
  +                    int endIndex = s.indexOf(tokenEnd, index + tokenStart.length() 
+ 1);
  +                    if (endIndex == -1) {
  +                        break;
  +                    }
  +                    token = s.substring(index + tokenStart.length(), endIndex);
  +                    b.append(s.substring(i, index));
  +                    if (tokens.containsKey(token)) {
  +                        value = (String) tokens.get(token);
  +                        b.append(value);
  +                        i = index + tokenStart.length() + token.length() + 
tokenEnd.length();
  +                    } else {
  +                        // just append TOKEN_START and search further
  +                        b.append(tokenStart);
  +                        i = index + tokenStart.length();
  +                    }
  +                } while ((index = s.indexOf(tokenStart, i)) > -1);
   
  -        // perhaps find some better way than ''xxx'' placeholder encoding
  -        int indexOf;
  -        String template;
  -        template = "''mail-userid''";
  -        indexOf = sb.indexOf(template);
  -        if (indexOf != -1) {
  -            sb.replace(indexOf, indexOf + template.length(), userid);
  -        }
  -        template = "''mail-passwd''";
  -        indexOf = sb.indexOf(template);
  -        if (indexOf != -1) {
  -            sb.replace(indexOf, indexOf + template.length(), password);
  +                b.append(s.substring(i));
  +                return b.toString();
  +            } catch (StringIndexOutOfBoundsException e) {
  +                return s;
  +            }
  +        } else {
  +            return s;
           }
  -        String storeURLNameExpanded = sb.toString();
  -        return storeURLNameExpanded;
       }
   
   
  @@ -308,6 +355,7 @@
               // marshal java mail objects
               Logger logger = getLogger();
   
  +            // make it an optional parameter?
               String datePattern = "dd.MM.yyyy HH:mm";
               SimpleDateFormat sdf = new SimpleDateFormat(datePattern);
   
  
  
  
  1.2       +1 -3      
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailCommandBuilder.java
  
  Index: MailCommandBuilder.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailCommandBuilder.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MailCommandBuilder.java   6 Jan 2003 21:51:20 -0000       1.1
  +++ MailCommandBuilder.java   7 Jan 2003 23:17:34 -0000       1.2
  @@ -52,8 +52,6 @@
   
   import java.util.HashMap;
   import java.util.Map;
  -import org.apache.avalon.framework.context.Context;
  -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.logger.LogEnabled;
  
  
  
  1.2       +21 -23    
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailCommandManager.java
  
  Index: MailCommandManager.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailCommandManager.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MailCommandManager.java   6 Jan 2003 21:51:20 -0000       1.1
  +++ MailCommandManager.java   7 Jan 2003 23:17:34 -0000       1.2
  @@ -50,8 +50,8 @@
   */
   package org.apache.cocoon.mail;
   
  -import java.util.List;
   import java.io.IOException;
  +import java.util.List;
   import javax.mail.FetchProfile;
   import javax.mail.Folder;
   import javax.mail.Message;
  @@ -397,7 +397,7 @@
               this.aFolder = mctx.getTheFolder(CONTEXT_FOLDER_ENTRY);
   
               try {
  -            String fp = (String) ctx.get("param:" + CONTEXT_FOLDER_PATTERN_ENTRY);
  +                this.folderPattern = (String) ctx.get("param:" + 
CONTEXT_FOLDER_PATTERN_ENTRY);
               } catch (ContextException ce) {
                   // use default folder pattern
                   this.folderPattern = MailCommandManager.DEFAULT_FOLDER_PATTERN;
  @@ -470,10 +470,10 @@
           public void execute() throws MessagingException {
               UIDFolder uidFolder = (UIDFolder) aFolder;
               MailCommandManager.openFolder(aFolder, Folder.READ_ONLY);
  -            
  +
               // add folder, too
               addResult(aFolder);
  -            
  +
               Message msg = uidFolder.getMessageByUID(msgUID);
               addResult(msg);
           }
  @@ -511,8 +511,8 @@
               this.aFolder = mctx.getTheFolder(CONTEXT_FOLDER_ENTRY);
   
               try {
  -              Integer i = (Integer) ctx.get("param-integer:" + CONTEXT_ID_ENTRY);
  -              this.msgId = i.intValue();
  +                Integer i = (Integer) ctx.get("param-integer:" + CONTEXT_ID_ENTRY);
  +                this.msgId = i.intValue();
               } catch (ContextException ce) {
                   String message = "Missing mandatory context entry " + 
String.valueOf(CONTEXT_ID_ENTRY);
                   throw new ContextException(message);
  @@ -578,6 +578,7 @@
               i = (Integer) ctx.get("param-integer:" + CONTEXT_PARTID_ENTRY);
               if (i == null) {
                   String message = "Missing mandatory context entry " + 
String.valueOf(CONTEXT_PARTID_ENTRY);
  +                throw new ContextException(message);
               }
               this.partId = i.intValue();
           }
  @@ -590,13 +591,13 @@
            */
           public void execute() throws MessagingException {
               MailCommandManager.openFolder(aFolder, Folder.READ_ONLY);
  -            
  +
               // add folder, too
               addResult(aFolder);
  -            
  -            // get the message 
  +
  +            // get the message
               Message msg = aFolder.getMessage(msgId);
  -            
  +
               if (msg == null) {
                   String message = "Cannot get message for id " + 
String.valueOf(msgId);
                   getLogger().warn(message);
  @@ -663,9 +664,7 @@
   
               /* proposed searchTermString syntax
                 {header}:comp-op:{value} & {header}:comp-op:{value} | .....
  -
                 eg. subject:eq:cocoon & date::MM/DD/2002
  -
                 header:com-op:
                   subject:[cont|ncont]:
                   sender:[cont|ncont]:
  @@ -676,7 +675,6 @@
                   cc:
                   age-in-days:[is|nis|gt|lt]:
                   reply-to:[cont|ncont]:
  -
               */
           }
   
  @@ -691,7 +689,7 @@
   
               // add folder, too
               addResult(aFolder);
  -            
  +
               Message[] msgs = aFolder.search(searchTerm);
               addResult(msgs);
           }
  
  
  
  1.2       +3 -0      
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailCommandSelector.java
  
  Index: MailCommandSelector.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailCommandSelector.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MailCommandSelector.java  6 Jan 2003 21:51:20 -0000       1.1
  +++ MailCommandSelector.java  7 Jan 2003 23:17:34 -0000       1.2
  @@ -79,6 +79,9 @@
       <map:when test="
       
   */
  +/**
  + * @deprecated use RequestAttributeSelector, RequestParameterSelector, or 
ParameterSelector instead.
  + */
   public class MailCommandSelector extends AbstractSwitchSelector {
     
     public Object getSelectorContext(Map objectModel, Parameters parameters) {
  
  
  
  1.2       +6 -58     
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailContentHandlerDelegate.java
  
  Index: MailContentHandlerDelegate.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailContentHandlerDelegate.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MailContentHandlerDelegate.java   6 Jan 2003 21:51:20 -0000       1.1
  +++ MailContentHandlerDelegate.java   7 Jan 2003 23:17:34 -0000       1.2
  @@ -55,7 +55,6 @@
   import java.text.SimpleDateFormat;
   import java.util.Date;
   import java.util.Enumeration;
  -import java.util.Locale;
   import javax.mail.Address;
   import javax.mail.Flags;
   import javax.mail.Folder;
  @@ -72,7 +71,6 @@
   import javax.mail.internet.ParseException;
   import org.apache.avalon.excalibur.xml.XMLizable;
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
  -import org.apache.avalon.framework.logger.Logger;
   import org.xml.sax.Attributes;
   import org.xml.sax.ContentHandler;
   import org.xml.sax.SAXException;
  @@ -379,7 +377,7 @@
           addAttribute("is-directory", (folder.getType() & Folder.HOLDS_FOLDERS) != 0 
? "yes" : "no");
   
           if ((folder.getType() & Folder.HOLDS_MESSAGES) != 0) {
  -            addAttribute("holds-messages", "yes" );
  +            addAttribute("holds-messages", "yes");
               addAttribute("has-new-messages", folder.hasNewMessages() ? "yes" : 
"no");
               addAttribute("total-messages", 
String.valueOf(folder.getMessageCount()));
               addAttribute("new-messages", 
String.valueOf(folder.getNewMessageCount()));
  @@ -546,7 +544,7 @@
                   if (s != null) {
                       addAttribute("primary-type", s.toLowerCase());
                   }
  -                
  +
                   // secondary part only
                   s = ct.getSubType();
                   if (s != null) {
  @@ -928,31 +926,6 @@
   
   
           /**
  -         *  Sets the simpleDateFormat attribute of the MessageEnvelopeXMLizer object
  -         *
  -         *@param  pattern  The new simpleDateFormat value
  -         *@param  country  The new simpleDateFormat value
  -         */
  -        public void setSimpleDateFormat(String pattern, String country) {
  -            try {
  -                if (pattern != null && country != null) {
  -                    Locale locale = new Locale(country);
  -                    sdf = new SimpleDateFormat(pattern, locale);
  -                } else if (pattern != null) {
  -                    sdf = new SimpleDateFormat(pattern);
  -                } else {
  -                    sdf = null;
  -                }
  -            } catch (Exception e) {
  -                String message = "Cannot create SimpleDateFormatter for " +
  -                        "pattern " + String.valueOf(pattern) + ", and " +
  -                        "country " + String.valueOf(country);
  -                getLogger().warn(message, e);
  -            }
  -        }
  -
  -
  -        /**
            *  Gets the simpleDateFormat attribute of the MessageEnvelopeXMLizer object
            *
            *@param  sdf  Description of the Parameter
  @@ -1014,31 +987,6 @@
            */
           public void setSimpleDateFormat(SimpleDateFormat sdf) {
               this.sdf = sdf;
  -        }
  -
  -
  -        /**
  -         *  Sets the simpleDateFormat attribute of the MessageXMLizer object
  -         *
  -         *@param  pattern  The new simpleDateFormat value
  -         *@param  country  The new simpleDateFormat value
  -         */
  -        public void setSimpleDateFormat(String pattern, String country) {
  -            try {
  -                if (pattern != null && country != null) {
  -                    Locale locale = new Locale(country);
  -                    sdf = new SimpleDateFormat(pattern, locale);
  -                } else if (pattern != null) {
  -                    sdf = new SimpleDateFormat(pattern);
  -                } else {
  -                    sdf = null;
  -                }
  -            } catch (Exception e) {
  -                String message = "Cannot create SimpleDateFormatter for " +
  -                        "pattern " + String.valueOf(pattern) + ", and " +
  -                        "country " + String.valueOf(country);
  -                getLogger().warn(message, e);
  -            }
           }
   
   
  
  
  
  1.2       +5 -24     
xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailContext.java
  
  Index: MailContext.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/scratchpad/src/org/apache/cocoon/mail/MailContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- MailContext.java  6 Jan 2003 21:51:20 -0000       1.1
  +++ MailContext.java  7 Jan 2003 23:17:34 -0000       1.2
  @@ -50,38 +50,19 @@
   */
   package org.apache.cocoon.mail;
   
  -import java.io.IOException;
   import java.util.Iterator;
  -import java.util.List;
   import java.util.Map;
  -import java.util.Properties;
   import java.util.Set;
   import javax.mail.Folder;
  -import javax.mail.Message;
   import javax.mail.MessagingException;
  -import javax.mail.Provider;
   import javax.mail.Store;
  -import javax.mail.URLName;
   //import javax.mail.Session;
  -import org.apache.avalon.framework.activity.Disposable;
  -import org.apache.avalon.framework.activity.Initializable;
  -import org.apache.avalon.framework.component.ComponentException;
  -import org.apache.avalon.framework.component.ComponentManager;
   import org.apache.avalon.framework.context.Context;
   import org.apache.avalon.framework.context.ContextException;
  -import org.apache.avalon.framework.context.Contextualizable;
   import org.apache.avalon.framework.context.DefaultContext;
  -import org.apache.avalon.framework.logger.LogEnabled;
   import org.apache.avalon.framework.logger.Logger;
  -import org.apache.avalon.framework.parameters.Parameters;
  -import org.apache.cocoon.ProcessingException;
  -import org.apache.cocoon.environment.ObjectModelHelper;
  +import org.apache.avalon.framework.logger.LogEnabled;
   import org.apache.cocoon.environment.Request;
  -import org.apache.cocoon.environment.Session;
  -import org.apache.cocoon.environment.SourceResolver;
  -import org.apache.cocoon.generation.ComposerGenerator;
  -import org.apache.cocoon.mail.command.AbstractMailCommand;
  -import org.xml.sax.SAXException;
   
   /**
    *  Encapsulation of context info of this webmail application
  @@ -213,12 +194,12 @@
                           store.connect();
                       }
                       final String DEFAULT_FOLDER_NAME = "~";
  -                    
  +
                       // empty folder name is specified by empty string, or "~"
  -                    if (folderName.equals( DEFAULT_FOLDER_NAME) || 
folderName.length() == 0) {
  +                    if (folderName.equals(DEFAULT_FOLDER_NAME) || 
folderName.length() == 0) {
                           folder = store.getDefaultFolder();
                       } else {
  -                      folder = store.getFolder(folderName);
  +                        folder = store.getFolder(folderName);
                       }
   
                       // save the Folder, for later access
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to