Author: solomax
Date: Fri Apr 20 05:57:01 2012
New Revision: 1328204

URL: http://svn.apache.org/viewvc?rev=1328204&view=rev
Log:
OPENMEETINGS-186 is fixed; code clean up.

Modified:
    
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverterTask.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewReConverterTask.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverterTask.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/calendar/AppointmentReminderTyps.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/MainService.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailHandler.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
    
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailiCalThread.java

Modified: 
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/WebContent/WEB-INF/openmeetings-applicationContext.xml
 Fri Apr 20 05:57:01 2012
@@ -70,12 +70,6 @@
        <bean id="chatservice.service" 
class="org.openmeetings.app.remote.ChatService" />
        <bean id="calendarservice.service" 
class="org.openmeetings.app.remote.CalendarService" />
        <bean id="flvrecorderservice.service" 
class="org.openmeetings.app.remote.FLVRecorderService" />
-       <bean id="openmeetings.TaskExecutor"
-               
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
-               <property name="corePoolSize" value="5" />
-               <property name="maxPoolSize" value="10" />
-               <property name="queueCapacity" value="25" />
-       </bean>
        <bean id="openmeetings.FlvRecorderConverterTask"
                
class="org.openmeetings.app.data.flvrecord.converter.FlvRecorderConverterTask" 
/>
        <bean id="openmeetings.FlvInterviewConverterTask"
@@ -233,20 +227,15 @@
        <bean id="resetPasswordTemplate" 
class="org.openmeetings.app.templates.ResetPasswordTemplate" />
 
        <!-- Thread Executor -->
-       <bean id="mailTaskExecutor"
+       <bean id="taskExecutor"
                
class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
                <property name="corePoolSize" value="5" />
                <property name="maxPoolSize" value="10" />
                <property name="queueCapacity" value="25" />
        </bean>
 
-       <bean id="mailThread" class="org.openmeetings.utils.mail.MailThread">
-               <constructor-arg ref="mailTaskExecutor" />
-       </bean>
-
-       <bean id="mailiCalThread" 
class="org.openmeetings.utils.mail.MailiCalThread">
-               <constructor-arg ref="mailTaskExecutor" />
-       </bean>
+       <bean id="mailThread" class="org.openmeetings.utils.mail.MailThread"/>
+       <bean id="mailiCalThread" 
class="org.openmeetings.utils.mail.MailiCalThread"/>
 
        <!-- Axis2 Service Proxy's -->
        <bean id="userWebService" 
class="org.openmeetings.axis.services.UserWebService" />

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/conference/Invitationmanagement.java
 Fri Apr 20 05:57:01 2012
@@ -187,7 +187,7 @@ public class Invitationmanagement {
 
                                        if (sendMail) {
                                                this.sendInvitionLink(username, 
message, baseurl,
-                                                               email, subject, 
invitation.getHash(),
+                                                               email, 
us.getAdresses().getEmail(), subject, invitation.getHash(),
                                                                validFrom, 
validTo, language_id);
                                        }
 
@@ -602,13 +602,14 @@ public class Invitationmanagement {
      * @param message
      * @param baseurl
      * @param email
+     * @param replyTo
      * @param subject
      * @param invitationsHash
      * @param dStart
      * @param dEnd
         * @param language_id   If it is >0 then "&language=" is added to the 
link
         */
-       private String sendInvitionLink(String username, String message,
+       private String sendInvitionLink(String replyTo, String username, String 
message,
                        String baseurl, String email, String subject,
                        String invitationsHash, Date dStart, Date dEnd, Long 
language_id) {
                try {
@@ -632,7 +633,7 @@ public class Invitationmanagement {
 
                        System.out.println(template);
 
-                       return mailHandler.sendMail(email, subject, template);
+                       return mailHandler.sendMail(email, replyTo, subject, 
template);
 
                } catch (Exception err) {
                        log.error("sendInvitationLink", err);
@@ -699,15 +700,17 @@ public class Invitationmanagement {
         * 
         * @param email
         * @param point
-        * @param cancelling_person
+        * @param replyTo
+        * @param subject
+        * @param mesage
         * @return
         */
        // 
--------------------------------------------------------------------------------------------------------------
        private String sendInvitationUpdateMail(String email, Appointment point,
-                       String cancelling_person, String subject, String 
message) {
+                       String replyTo, String subject, String message) {
                log.debug("sendInvitationUpdateMail");
                try {
-                       return mailHandler.sendMail(email, subject, message);
+                       return mailHandler.sendMail(email, replyTo, subject, 
message);
                } catch (Exception e) {
                        log.error("sendInvitationUpdateMail : " + 
e.getMessage());
                }
@@ -765,7 +768,7 @@ public class Invitationmanagement {
 
                log.debug(handler.getICalDataAsString());
 
-               mailiCalThread.doSend(email, subject, 
handler.getIcalAsByteArray(),
+               mailiCalThread.doSend(email, user.getAdresses().getEmail(), 
subject, handler.getIcalAsByteArray(),
                                message);
 
                return null;
@@ -817,7 +820,7 @@ public class Invitationmanagement {
 
                log.debug(handler.getICalDataAsString());
 
-               mailiCalThread.doSend(email, subject, 
handler.getIcalAsByteArray(),
+               mailiCalThread.doSend(email, user.getAdresses().getEmail(), 
subject, handler.getIcalAsByteArray(),
                                message);
 
                return null;
@@ -908,7 +911,7 @@ public class Invitationmanagement {
 
                        log.debug(handler.getICalDataAsString());
 
-                       mailiCalThread.doSend(email, subject, 
handler.getIcalAsByteArray(),
+                       mailiCalThread.doSend(email, 
user.getAdresses().getEmail(), subject, handler.getIcalAsByteArray(),
                                        template);
 
                        return "success";
@@ -936,7 +939,7 @@ public class Invitationmanagement {
         */
        public String sendInvitionLink(Long user_level, String username,
                        String message, String domain, String room, String 
roomtype,
-                       String baseurl, String email, String subject, Long 
room_id,
+                       String baseurl, String email, String replyTo, String 
subject, Long room_id,
                        Date starttime, Date endtime) {
                try {
                        if (authLevelManagement.checkUserLevel(user_level)) {
@@ -955,7 +958,7 @@ public class Invitationmanagement {
                                                                
invitation_link, default_lang_id, starttime,
                                                                endtime);
 
-                               return mailHandler.sendMail(email, subject, 
template);
+                               return mailHandler.sendMail(email, replyTo, 
subject, template);
 
                        }
                } catch (Exception err) {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverterTask.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverterTask.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverterTask.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewConverterTask.java
 Fri Apr 20 05:57:01 2012
@@ -22,14 +22,12 @@ import org.openmeetings.app.Openmeetings
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.core.task.TaskExecutor;
 
 public class FlvInterviewConverterTask {
        private static final Logger log = 
Red5LoggerFactory.getLogger(FlvInterviewConverterTask.class, 
OpenmeetingsVariables.webAppRootKey);
 
        @Autowired
-       @Qualifier("openmeetings.TaskExecutor")
        private TaskExecutor taskExecutor;
        @Autowired
        private FlvInterviewConverter flvInterviewConverter;

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewReConverterTask.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewReConverterTask.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewReConverterTask.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvInterviewReConverterTask.java
 Fri Apr 20 05:57:01 2012
@@ -22,7 +22,6 @@ import org.openmeetings.app.Openmeetings
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.core.task.TaskExecutor;
 
 public class FlvInterviewReConverterTask {
@@ -31,7 +30,6 @@ public class FlvInterviewReConverterTask
                        OpenmeetingsVariables.webAppRootKey);
 
        @Autowired
-       @Qualifier("openmeetings.TaskExecutor")
        private TaskExecutor taskExecutor;
        @Autowired
        private FlvInterviewConverter flvInterviewConverter;

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverterTask.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverterTask.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverterTask.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/data/flvrecord/converter/FlvRecorderConverterTask.java
 Fri Apr 20 05:57:01 2012
@@ -22,7 +22,6 @@ import org.openmeetings.app.Openmeetings
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.core.task.TaskExecutor;
 
 public class FlvRecorderConverterTask {
@@ -30,7 +29,6 @@ public class FlvRecorderConverterTask {
        private static final Logger log = 
Red5LoggerFactory.getLogger(FlvRecorderConverterTask.class, 
OpenmeetingsVariables.webAppRootKey);
 
        @Autowired
-       @Qualifier("openmeetings.TaskExecutor")
        private TaskExecutor taskExecutor;
        @Autowired
        private FlvRecorderConverter flvRecorderConverter;

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/installation/ImportInitvalues.java
 Fri Apr 20 05:57:01 2012
@@ -546,6 +546,14 @@ public class ImportInitvalues {
                                                null,
                                                "Ldap domain selected by 
default in the login screen");
                
+               // set inviter's email address as ReplyTo in email invitations
+               cfgManagement.addConfByKey(
+                                               3, 
+                                               "inviter.email.as.replyto", 
+                                               "1", 
+                                               null,
+                                               "Set inviter's email address as 
ReplyTo in email invitations (1 == set, 0 == NOT set)");
+               
                log.debug("Configuration ADDED");
        }
 

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/calendar/AppointmentReminderTyps.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/calendar/AppointmentReminderTyps.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/calendar/AppointmentReminderTyps.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/persistence/beans/calendar/AppointmentReminderTyps.java
 Fri Apr 20 05:57:01 2012
@@ -21,20 +21,18 @@ package org.openmeetings.app.persistence
 import java.io.Serializable;
 import java.util.Date;
 
-import org.openmeetings.app.persistence.beans.user.Users;
-
-
 import javax.persistence.Column;
 import javax.persistence.Entity;
 import javax.persistence.FetchType;
 import javax.persistence.GeneratedValue;
 import javax.persistence.GenerationType;
 import javax.persistence.Id;
-import javax.persistence.Lob;
-import javax.persistence.ManyToOne;
 import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
 import javax.persistence.Table;
 
+import org.openmeetings.app.persistence.beans.user.Users;
+
 
 @Entity
 @Table(name = "appointmentremindertyps")

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/MainService.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/MainService.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/MainService.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/app/remote/MainService.java
 Fri Apr 20 05:57:01 2012
@@ -885,7 +885,7 @@ public class MainService implements IPen
                Long user_level = userManagement.getUserLevelByID(users_id);
                return invitationManagement.sendInvitionLink(user_level,
                                username, message, domain, room, roomtype, 
baseurl, email,
-                               subject, room_id, null, null);
+                               
usersDao.getUser(users_id).getAdresses().getEmail(), subject, room_id, null, 
null);
        }
 
        /**

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailHandler.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailHandler.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailHandler.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailHandler.java
 Fri Apr 20 05:57:01 2012
@@ -19,7 +19,6 @@
 package org.openmeetings.utils.mail;
 
 import org.openmeetings.app.OpenmeetingsVariables;
-import org.openmeetings.app.data.basic.Configurationmanagement;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,11 +29,9 @@ import org.springframework.beans.factory
  * 
  */
 public class MailHandler {
-
        private static final Logger log = Red5LoggerFactory.getLogger(
                        MailHandler.class, OpenmeetingsVariables.webAppRootKey);
-       @Autowired
-       private Configurationmanagement cfgManagement;
+       
        @Autowired
        private MailThread mailThread;
 
@@ -44,32 +41,24 @@ public class MailHandler {
         * @param toEmail
         * @param subj
         * @param message
-        * @return
+        * @return "success" or "Error: err description"
         */
        public String sendMail(String toEmail, String subj, String message) {
+               return sendMail(toEmail, null, subj, message);
+       }
+       
+       /**
+        * send mail to address
+        * 
+        * @param toEmail
+        * @param replyTo
+        * @param subj
+        * @param message
+        * @return "success" or "Error: err description"
+        */
+       public String sendMail(String toEmail, String replyTo, String subj, 
String message) {
                try {
-
-                       // String smtpServer="smtp.xmlcrm.org";
-                       String smtpServer = cfgManagement.getConfKey(3, 
"smtp_server")
-                                       .getConf_value();
-                       String smtpPort = cfgManagement.getConfKey(3, 
"smtp_port")
-                                       .getConf_value();
-                       String to = toEmail;
-                       // String from = "[email protected]";
-                       String from = cfgManagement.getConfKey(3, 
"system_email_addr")
-                                       .getConf_value();
-                       String subject = subj;
-                       String body = message;
-
-                       String emailUsername = cfgManagement
-                                       .getConfKey(3, 
"email_username").getConf_value();
-                       String emailUserpass = cfgManagement
-                                       .getConfKey(3, 
"email_userpass").getConf_value();
-
-                       // return send(smtpServer, smtpPort, to, from, subject, 
body);
-
-                       mailThread.doSend(smtpServer, smtpPort, to, from, 
subject, body,
-                                       emailUsername, emailUserpass);
+                       mailThread.doSend(toEmail, replyTo, subj, message);
 
                        return "success";
 
@@ -78,27 +67,4 @@ public class MailHandler {
                        return "Error: " + ex;
                }
        }
-
-       /**
-        * @author o.becherer
-        * @param recipients
-        *            (List of valid mail adresses)
-        * @param subject
-        *            mailSubject
-        * @param iCalMimeBody
-        *            byte[] containing Icaldata Sending Ical Invitation
-        */
-       // 
---------------------------------------------------------------------------------------------
-       // public static void sendIcalMessage(String recipients, String subject,
-       // byte[] iCalMimeBody, String htmlBody) throws Exception {
-       // log.debug("sendIcalMessage");
-       //
-       // MailiCalThread mailiCalThread = new MailiCalThread(recipients, 
subject,
-       // iCalMimeBody, htmlBody);
-       //
-       // mailiCalThread.start();
-       //
-       // }
-       // 
---------------------------------------------------------------------------------------------
-
 }

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailThread.java
 Fri Apr 20 05:57:01 2012
@@ -23,14 +23,15 @@ import java.util.Properties;
 
 import javax.activation.DataHandler;
 import javax.mail.Message;
+import javax.mail.MessagingException;
 import javax.mail.Session;
 import javax.mail.Transport;
+import javax.mail.internet.AddressException;
 import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeMessage;
 
 import org.openmeetings.app.OpenmeetingsVariables;
 import org.openmeetings.app.data.basic.Configurationmanagement;
-import org.openmeetings.app.persistence.beans.basic.Configuration;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -42,51 +43,92 @@ public class MailThread {
                        MailHandler.class, OpenmeetingsVariables.webAppRootKey);
 
        @Autowired
-       private Configurationmanagement cfgManagement;
-
-       private final TaskExecutor taskExecutor;
+       protected Configurationmanagement cfgManagement;
+       @Autowired
+       protected TaskExecutor taskExecutor;
 
-       public MailThread(TaskExecutor taskExecutor) {
-               this.taskExecutor = taskExecutor;
+       public void doSend(String to, String subject, String body) {
+               doSend(to, null, subject, body);
        }
 
-       public void doSend(String smtpServer, String smtpPort, String to,
-                       String from, String subject, String body, String 
emailUsername,
-                       String emailUserpass) {
-
-               this.taskExecutor.execute(new MailSenderTask(smtpServer, 
smtpPort, to,
-                               from, subject, body, emailUsername, 
emailUserpass));
-
+       public void doSend(String to, String replyTo, String subject, String 
body) {
+               taskExecutor.execute(new MailSenderTask(to, replyTo, subject, 
body));
        }
 
-       private class MailSenderTask implements Runnable {
+       protected class MailSenderTask implements Runnable {
 
-               private final String smtpServer;
-               private final String smtpPort;
-               private final String to;
-               private final String from;
+               private final String recipients;
+               private final String replyTo;
                private final String subject;
                private final String body;
-               private final String emailUsername;
-               private final String emailUserpass;
 
-               public MailSenderTask(String smtpServer, String smtpPort, 
String to,
-                               String from, String subject, String body, 
String emailUsername,
-                               String emailUserpass) {
-                       this.smtpServer = smtpServer;
-                       this.smtpPort = smtpPort;
-                       this.to = to;
-                       this.from = from;
+               public MailSenderTask(String recipients, String replyTo, String 
subject, String body) {
+                       this.recipients = recipients;
+                       this.replyTo = replyTo;
                        this.subject = subject;
                        this.body = body;
-                       this.emailUsername = emailUsername;
-                       this.emailUserpass = emailUserpass;
                }
 
                public void run() {
                        this.send();
                }
 
+               protected MimeMessage getMessage() throws AddressException, 
MessagingException {
+                       log.debug("getMessage");
+
+                       // Evaluating Configuration Data
+                       String smtpServer = 
cfgManagement.getConfValue("smtp_server", String.class, null);
+                       String smtpPort = 
cfgManagement.getConfValue("smtp_port", String.class, "25");
+                       String from = 
cfgManagement.getConfValue("system_email_addr", String.class, null);
+                       String mailAuthUser = 
cfgManagement.getConfValue("email_username", String.class, null);
+                       String mailAuthPass = 
cfgManagement.getConfValue("email_userpass", String.class, null);
+
+                       Properties props = System.getProperties();
+
+                       props.put("mail.smtp.host", smtpServer);
+                       props.put("mail.smtp.port", smtpPort);
+
+                       if 
("1".equals(cfgManagement.getConfValue("mail.smtp.starttls.enable", 
String.class, "0"))) {
+                               props.put("mail.smtp.starttls.enable", "true");
+                       }
+
+                       // Check for Authentification
+                       Session session = null;
+                       if (mailAuthUser != null && mailAuthUser.length() > 0
+                                       && mailAuthPass != null && 
mailAuthPass.length() > 0) {
+                               // use SMTP Authentication
+                               props.put("mail.smtp.auth", "true");
+                               session = Session.getDefaultInstance(props,
+                                               new 
SmtpAuthenticator(mailAuthUser, mailAuthPass));
+                       } else {
+                               // not use SMTP Authentication
+                               session = Session.getDefaultInstance(props, 
null);
+                       }
+
+                       // Building MimeMessage
+                       MimeMessage msg = new MimeMessage(session);
+                       msg.setSubject(subject);
+                       msg.setFrom(new InternetAddress(from));
+                       if (replyTo != null && 
"1".equals(cfgManagement.getConfValue("inviter.email.as.replyto", String.class, 
"1"))) {
+                               msg.setReplyTo(new InternetAddress[]{new 
InternetAddress(replyTo)});
+                       }
+                       msg.addRecipients(Message.RecipientType.TO,
+                                       InternetAddress.parse(recipients, 
false));
+                       
+                       return msg;
+               }
+               
+               protected MimeMessage setMessageBody(MimeMessage msg) throws 
Exception {
+                       // -- Set the subject and body text --
+                       msg.setDataHandler(new DataHandler(new 
ByteArrayDataSource(
+                                       body, "text/html; charset=\"utf-8\"")));
+
+                       // -- Set some other header information --
+                       msg.setHeader("X-Mailer", "XML-Mail");
+                       msg.setSentDate(new Date());
+                       
+                       return msg;
+               }
                /**
                 * Sending a mail with given values.<br>
                 * If the parameter "emailUsername" and "emailUserpass" is 
exist, use
@@ -103,65 +145,12 @@ public class MailThread {
                 */
                public String send() {
                        try {
-
                                log.debug("Message sending in progress");
-                               log.debug("  From: " + from);
-                               log.debug("  To: " + to);
+                               log.debug("  To: " + recipients);
                                log.debug("  Subject: " + subject);
 
-                               Properties props = System.getProperties();
-
-                               // -- Attaching to default Session, or we could 
start a new one
-                               // --
-                               // smtpPort 25 or 587
-                               props.put("mail.smtp.host", smtpServer);
-                               props.put("mail.smtp.port", smtpPort);
-
-                               Configuration conf = cfgManagement.getConfKey(3,
-                                               "mail.smtp.starttls.enable");
-                               if (conf != null) {
-                                       if (conf.getConf_value().equals("1")) {
-                                               
props.put("mail.smtp.starttls.enable", "true");
-                                       }
-                               }
-
-                               Session session = null;
-                               if (emailUsername != null && 
emailUsername.length() > 0
-                                               && emailUserpass != null && 
emailUserpass.length() > 0) {
-                                       // use SMTP Authentication
-                                       props.put("mail.smtp.auth", "true");
-                                       session = Session
-                                                       
.getDefaultInstance(props, new SmtpAuthenticator(
-                                                                       
emailUsername, emailUserpass));
-                               } else {
-                                       // not use SMTP Authentication
-                                       session = 
Session.getDefaultInstance(props, null);
-                               }
-
-                               // -- Create a new message --
-                               Message msg = new MimeMessage(session);
-
-                               // -- Set the FROM and TO fields --
-                               msg.setFrom(new InternetAddress(from));
-                               msg.setRecipients(Message.RecipientType.TO,
-                                               InternetAddress.parse(to, 
false));
-
-                               // -- We could include CC recipients too --
-                               // if (cc != null)
-                               // msg.setRecipients(Message.RecipientType.CC
-                               // ,InternetAddress.parse(cc, false));
-
-                               // -- Set the subject and body text --
-                               msg.setSubject(subject);
-                               msg.setDataHandler(new DataHandler(new 
ByteArrayDataSource(
-                                               body, "text/html; 
charset=\"utf-8\"")));
-
-                               // -- Set some other header information --
-                               msg.setHeader("X-Mailer", "XML-Mail");
-                               msg.setSentDate(new Date());
-
                                // -- Send the message --
-                               Transport.send(msg);
+                               Transport.send(setMessageBody(getMessage()));
 
                                return "success";
                        } catch (Exception ex) {

Modified: 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailiCalThread.java
URL: 
http://svn.apache.org/viewvc/incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailiCalThread.java?rev=1328204&r1=1328203&r2=1328204&view=diff
==============================================================================
--- 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailiCalThread.java
 (original)
+++ 
incubator/openmeetings/trunk/singlewebapp/src/org/openmeetings/utils/mail/MailiCalThread.java
 Fri Apr 20 05:57:01 2012
@@ -19,161 +19,63 @@
 package org.openmeetings.utils.mail;
 
 import java.io.ByteArrayInputStream;
-import java.util.Properties;
 
 import javax.activation.DataHandler;
 import javax.mail.BodyPart;
-import javax.mail.Message;
 import javax.mail.Multipart;
-import javax.mail.Session;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
 import javax.mail.internet.MimeBodyPart;
 import javax.mail.internet.MimeMessage;
 import javax.mail.internet.MimeMultipart;
+import javax.mail.util.ByteArrayDataSource;
 
 import org.openmeetings.app.OpenmeetingsVariables;
-import org.openmeetings.app.data.basic.Configurationmanagement;
-import org.openmeetings.app.persistence.beans.basic.Configuration;
 import org.red5.logging.Red5LoggerFactory;
 import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.task.TaskExecutor;
 
-public class MailiCalThread extends Thread {
+public class MailiCalThread extends MailThread {
 
        private static final Logger log = Red5LoggerFactory.getLogger(
                        MailiCalThread.class, 
OpenmeetingsVariables.webAppRootKey);
 
-       @Autowired
-       private Configurationmanagement cfgManagement;
-
-       private final TaskExecutor taskExecutor;
-
-       public MailiCalThread(TaskExecutor taskExecutor) {
-               this.taskExecutor = taskExecutor;
-       }
-
-       public void doSend(String recipients, String subject, byte[] 
iCalMimeBody,
+       public void doSend(String recipients, String replyTo, String subject, 
byte[] iCalMimeBody,
                        String htmlBody) {
-
-               this.taskExecutor.execute(new MailSenderTask(recipients, 
subject,
+               taskExecutor.execute(new MailSenderTask(recipients, replyTo, 
subject,
                                iCalMimeBody, htmlBody));
 
        }
 
-       private class MailSenderTask implements Runnable {
-
-               private final String recipients;
-               private final String subject;
+       protected class MailSenderTask extends MailThread.MailSenderTask {
                private final byte[] iCalMimeBody;
                private final String htmlBody;
 
-               public MailSenderTask(String recipients, String subject,
+               public MailSenderTask(String recipients, String replyTo, String 
subject,
                                byte[] iCalMimeBody, String htmlBody) {
-                       super();
-                       this.recipients = recipients;
-                       this.subject = subject;
+                       super(recipients, replyTo, subject, null);
                        this.iCalMimeBody = iCalMimeBody;
                        this.htmlBody = htmlBody;
                }
 
-               public void run() {
-                       try {
-
-                               this.sendIcalMessage();
-
-                       } catch (Exception err) {
-                               log.error("MailSenderTask ", err);
-                       }
-               }
-
-               /**
-                * @author o.becherer
-                * @param recipients
-                *            (List of valid mail adresses)
-                * @param subject
-                *            mailSubject
-                * @param iCalMimeBody
-                *            byte[] containing Icaldata Sending Ical Invitation
-                */
-               // 
---------------------------------------------------------------------------------------------
-               public void sendIcalMessage() throws Exception {
-                       log.debug("sendIcalMessage");
-
-                       // Evaluating Configuration Data
-                       String smtpServer = cfgManagement.getConfKey(3, 
"smtp_server")
-                                       .getConf_value();
-                       String smtpPort = cfgManagement.getConfKey(3, 
"smtp_port")
-                                       .getConf_value();
-                       // String from = "[email protected]";
-                       String from = cfgManagement.getConfKey(3, 
"system_email_addr")
-                                       .getConf_value();
-
-                       String emailUsername = cfgManagement
-                                       .getConfKey(3, 
"email_username").getConf_value();
-                       String emailUserpass = cfgManagement
-                                       .getConfKey(3, 
"email_userpass").getConf_value();
-
-                       Properties props = System.getProperties();
-
-                       props.put("mail.smtp.host", smtpServer);
-                       props.put("mail.smtp.port", smtpPort);
-
-                       Configuration conf = cfgManagement.getConfKey(3,
-                                       "mail.smtp.starttls.enable");
-                       if (conf != null) {
-                               if (conf.getConf_value().equals("1")) {
-                                       props.put("mail.smtp.starttls.enable", 
"true");
-                               }
-                       }
-
-                       // Check for Authentification
-                       Session session = null;
-                       if (emailUsername != null && emailUsername.length() > 0
-                                       && emailUserpass != null && 
emailUserpass.length() > 0) {
-                               // use SMTP Authentication
-                               props.put("mail.smtp.auth", "true");
-                               session = Session.getDefaultInstance(props,
-                                               new 
SmtpAuthenticator(emailUsername, emailUserpass));
-                       } else {
-                               // not use SMTP Authentication
-                               session = Session.getDefaultInstance(props, 
null);
-                       }
-
-                       // Building MimeMessage
-                       MimeMessage mimeMessage = new MimeMessage(session);
-                       mimeMessage.setSubject(subject);
-                       mimeMessage.setFrom(new InternetAddress(from));
-                       mimeMessage.addRecipients(Message.RecipientType.TO,
-                                       InternetAddress.parse(recipients, 
false));
-
+               @Override
+               protected MimeMessage setMessageBody(MimeMessage msg) throws 
Exception {
+                       log.debug("setMessageBody for iCal message");
                        // -- Create a new message --
-                       BodyPart msg = new MimeBodyPart();
-                       msg.setDataHandler(new DataHandler(new 
ByteArrayDataSource(
-                                       htmlBody, "text/html; 
charset=\"utf-8\"")));
-
                        Multipart multipart = new MimeMultipart();
 
+                       BodyPart html = new MimeBodyPart();
+                       html.setDataHandler(new DataHandler(new 
ByteArrayDataSource(
+                                       htmlBody, "text/html; 
charset=\"utf-8\"")));
+
                        BodyPart iCalAttachment = new MimeBodyPart();
                        iCalAttachment.setDataHandler(new DataHandler(
-                                       new javax.mail.util.ByteArrayDataSource(
+                                       new ByteArrayDataSource(
                                                        new 
ByteArrayInputStream(iCalMimeBody),
                                                        
"text/calendar;method=REQUEST;charset=\"UTF-8\"")));
 
+                       multipart.addBodyPart(html);
                        multipart.addBodyPart(iCalAttachment);
-                       multipart.addBodyPart(msg);
-
-                       mimeMessage.setContent(multipart);
-
-                       // -- Set some other header information --
-                       // mimeMessage.setHeader("X-Mailer", "XML-Mail");
-                       // mimeMessage.setSentDate(new Date());
-
-                       // Transport trans = session.getTransport("smtp");
-                       Transport.send(mimeMessage);
 
+                       msg.setContent(multipart);
+                       return msg;
                }
-
        }
 }


Reply via email to