Subversion Repositories bacoAlunos

Rev

Rev 1429 | Rev 1490 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1429 Rev 1450
1
package pt.estgp.estgweb.services.email;
1
package pt.estgp.estgweb.services.email;
2
 
2
 
3
import jomm.dao.impl.AbstractDao;
3
import jomm.dao.impl.AbstractDao;
4
import org.apache.log4j.Logger;
4
import org.apache.log4j.Logger;
5
import pt.estgp.estgweb.Globals;
5
import pt.estgp.estgweb.Globals;
6
import pt.estgp.estgweb.domain.User;
6
import pt.estgp.estgweb.domain.User;
7
import pt.estgp.estgweb.domain.dao.DaoFactory;
7
import pt.estgp.estgweb.domain.dao.DaoFactory;
8
import pt.estgp.estgweb.services.authenticate.AuthenticateService;
8
import pt.estgp.estgweb.services.authenticate.AuthenticateService;
9
import pt.estgp.estgweb.services.jobs.JobHandler;
9
import pt.estgp.estgweb.services.jobs.JobHandler;
10
import pt.estgp.estgweb.utils.Email;
10
import pt.estgp.estgweb.utils.Email;
11
import pt.estgp.estgweb.utils.EmailPersonalizedCertificated;
11
import pt.estgp.estgweb.utils.EmailPersonalizedCertificated;
12
 
12
 
13
import java.io.Serializable;
13
import java.io.Serializable;
14
import java.util.ArrayList;
14
import java.util.ArrayList;
15
import java.util.List;
15
import java.util.List;
16
 
16
 
17
/**
17
/**
18
 * @author Jorge Machado
18
 * @author Jorge Machado
19
 * @date 11/Jul/2008
19
 * @date 11/Jul/2008
20
 * @see pt.estgp.estgweb.services.sms
20
 * @see pt.estgp.estgweb.services.sms
21
 */
21
 */
22
public class EMAILJobPersonalizedCertificated implements JobHandler, 1.5.0/docs/api/java/io/Serializable.html">Serializable
22
public class EMAILJobPersonalizedCertificated implements JobHandler, 1.5.0/docs/api/java/io/Serializable.html">Serializable
23
{
23
{
24
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(EMAILJobPersonalizedCertificated.class);
24
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(EMAILJobPersonalizedCertificated.class);
25
 
25
 
26
    private EmailPersonalizedCertificated email;
26
    private EmailPersonalizedCertificated email;
27
 
27
 
28
 
28
 
29
 
29
 
30
 
30
 
31
    public EMAILJobPersonalizedCertificated(EmailPersonalizedCertificated email)
31
    public EMAILJobPersonalizedCertificated(EmailPersonalizedCertificated email)
32
    {
32
    {
33
        this.email = email;
33
        this.email = email;
34
    }
34
    }
35
 
35
 
36
 
36
 
37
    private static final int pauseTime = 1000;
37
    private static final int pauseTime = 1000;
38
 
38
 
39
 
39
 
40
    public void runJob()
40
    public void runJob()
41
    {
41
    {
42
        final EmailPersonalizedCertificated cloned = email.cloneEmailForJob();
42
        final EmailPersonalizedCertificated cloned = email.cloneEmailForJob();
43
 
43
 
44
 
44
 
45
        logger.info("Opening new Thread to send emails");
45
        logger.info("Opening new Thread to send emails");
46
        new 1.5.0/docs/api/java/lang/Thread.html">Thread(
46
        new 1.5.0/docs/api/java/lang/Thread.html">Thread(
47
                new 1.5.0/docs/api/java/lang/Runnable.html">Runnable() {
47
                new 1.5.0/docs/api/java/lang/Runnable.html">Runnable() {
48
                    @1.5.0/docs/api/java/lang/Override.html">Override
48
                    @1.5.0/docs/api/java/lang/Override.html">Override
49
                    public void run() {
49
                    public void run() {
50
                        if(Globals.TEST_ENVIRONEMENT && !cloned.isSystemAssumingTestEmail())
50
                        if(Globals.TEST_ENVIRONEMENT && !cloned.isSystemAssumingTestEmail())
51
                        {
51
                        {
52
                            1.5.0/docs/api/java/lang/String.html">String warn = "System in TEST Environement - will not send EMAIL";
52
                            1.5.0/docs/api/java/lang/String.html">String warn = "System in TEST Environement - will not send EMAIL";
53
                            logger.warn(warn);
53
                            logger.warn(warn);
54
                            return;
54
                            return;
55
                        }
55
                        }
56
                        try
56
                        try
57
                        {
57
                        {
58
                            1.5.0/docs/api/java/lang/String.html">String URL_PREFIX = cloned.getUrlPatternWithoutCetificate();
58
                            1.5.0/docs/api/java/lang/String.html">String URL_PREFIX = cloned.getUrlPatternWithoutCetificate();
59
                            if(URL_PREFIX.indexOf("?") <  0)
59
                            if(URL_PREFIX.indexOf("?") <  0)
60
                                URL_PREFIX = URL_PREFIX + "?certificate=";
60
                                URL_PREFIX = URL_PREFIX + "?certificate=";
61
                            else
61
                            else
62
                                URL_PREFIX = URL_PREFIX + "&certificate=";
62
                                URL_PREFIX = URL_PREFIX + "&certificate=";
63
 
63
 
64
                            cloned.setRecipients(new ArrayList<String>());
64
                            cloned.setRecipients(new ArrayList<String>());
65
 
65
 
-
 
66
                            SendEmailService sendEmailService = new SendEmailService();
-
 
67
 
66
                            for(long userId: cloned.getUserIds())
68
                            for(long userId: cloned.getUserIds())
67
                            {
69
                            {
68
 
70
 
69
                                try{
71
                                try{
70
                                    AbstractDao.getCurrentSession().beginTransaction();
72
                                    AbstractDao.getCurrentSession().beginTransaction();
71
                                    AbstractDao.getCurrentSession().clear();
73
                                    AbstractDao.getCurrentSession().clear();
72
                                    User user = DaoFactory.getUserDaoImpl().load(userId);
74
                                    User user = DaoFactory.getUserDaoImpl().load(userId);
73
                                    1.5.0/docs/api/java/lang/String.html">String certificate = new AuthenticateService().createCertificate(user);
75
                                    1.5.0/docs/api/java/lang/String.html">String certificate = new AuthenticateService().createCertificate(user);
74
                                    1.5.0/docs/api/java/lang/String.html">String emailStr = user.getEmail();
76
                                    1.5.0/docs/api/java/lang/String.html">String emailStr = user.getEmail();
75
                                    1.5.0/docs/api/java/lang/String.html">String outEmail = user.getOutEmail();
77
                                    1.5.0/docs/api/java/lang/String.html">String outEmail = user.getOutEmail();
76
                                    1.5.0/docs/api/java/lang/String.html">String preferrefEmail = user.getPreferrefEmail();
78
                                    1.5.0/docs/api/java/lang/String.html">String preferrefEmail = user.getPreferrefEmail();
77
                                    1.5.0/docs/api/java/lang/String.html">String toEmail = null;
79
                                    1.5.0/docs/api/java/lang/String.html">String toEmail = null;
78
 
80
 
79
                                    if(preferrefEmail != null && Email.validEmail(preferrefEmail))
81
                                    if(preferrefEmail != null && Email.validEmail(preferrefEmail))
80
                                        toEmail = preferrefEmail;
82
                                        toEmail = preferrefEmail;
81
                                    else if(emailStr != null && Email.validEmail(emailStr))
83
                                    else if(emailStr != null && Email.validEmail(emailStr))
82
                                        toEmail = emailStr;
84
                                        toEmail = emailStr;
83
                                    else if(outEmail != null && Email.validEmail(outEmail))
85
                                    else if(outEmail != null && Email.validEmail(outEmail))
84
                                        toEmail = outEmail;
86
                                        toEmail = outEmail;
85
                                    1.5.0/docs/api/java/lang/String.html">String nome = user.getName();
87
                                    1.5.0/docs/api/java/lang/String.html">String nome = user.getName();
86
                                    AbstractDao.getCurrentSession().getTransaction().commit();
88
                                    AbstractDao.getCurrentSession().getTransaction().commit();
87
 
89
 
88
                                    if(toEmail != null)
90
                                    if(toEmail != null)
89
                                    {
91
                                    {
90
                                        List<String> ccEmails = new ArrayList<String>();
92
                                        List<String> ccEmails = new ArrayList<String>();
91
                                        if(emailStr != null && Email.validEmail(emailStr) && !toEmail.equals(emailStr))
93
                                        if(emailStr != null && Email.validEmail(emailStr) && !toEmail.equals(emailStr))
92
                                            ccEmails.add(emailStr);
94
                                            ccEmails.add(emailStr);
93
                                        if(outEmail != null && Email.validEmail(outEmail) && !toEmail.equals(outEmail))
95
                                        if(outEmail != null && Email.validEmail(outEmail) && !toEmail.equals(outEmail))
94
                                            ccEmails.add(outEmail);
96
                                            ccEmails.add(outEmail);
95
 
97
 
96
 
98
 
97
                                        cloned.setRecipientsCC(ccEmails);
99
                                        cloned.setRecipientsCC(ccEmails);
98
                                        cloned.getRecipients().clear();
100
                                        cloned.getRecipients().clear();
99
                                        cloned.getRecipients().add(toEmail);
101
                                        cloned.getRecipients().add(toEmail);
100
 
102
 
101
                                        1.5.0/docs/api/java/lang/String.html">String finalUrl = URL_PREFIX + certificate;
103
                                        1.5.0/docs/api/java/lang/String.html">String finalUrl = URL_PREFIX + certificate;
102
 
104
 
103
                                        new SendEmailService().sendEmail(cloned,finalUrl,nome);
105
                                        sendEmailService.sendEmail(cloned, finalUrl, nome);
104
 
106
 
105
                                        try {
107
                                        try {
106
                                            logger.info("Watting to send another email: sent to" + toEmail);
108
                                            logger.info("Watting to send another email: sent to" + toEmail);
107
                                            //Thread.sleep(pauseTime);
109
                                            //Thread.sleep(pauseTime);
108
                                            1.5.0/docs/api/java/lang/Thread.html">Thread.sleep(pauseTime);
110
                                            1.5.0/docs/api/java/lang/Thread.html">Thread.sleep(pauseTime);
109
                                        } catch (1.5.0/docs/api/java/lang/InterruptedException.html">InterruptedException e) {
111
                                        } catch (1.5.0/docs/api/java/lang/InterruptedException.html">InterruptedException e) {
110
                                            logger.error(e,e);
112
                                            logger.error(e,e);
111
                                        }
113
                                        }
112
                                    }
114
                                    }
113
 
115
 
114
 
116
 
115
                                }catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
117
                                }catch(1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
116
                                {
118
                                {
117
                                    logger.error(e,e);
119
                                    logger.error(e,e);
118
                                }
120
                                }
119
 
121
 
120
                            }
122
                            }
121
 
123
 
122
                            logger.info("No more user ids to send email. exiting");
124
                            logger.info("No more user ids to send email. exiting");
123
 
125
 
124
 
126
 
125
                        }
127
                        }
126
                        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
128
                        catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e)
127
                        {
129
                        {
128
                            logger.error("Sending EMAIL:" + e.toString(),e);
130
                            logger.error("Sending EMAIL:" + e.toString(),e);
129
                        }
131
                        }
130
                    }
132
                    }
131
                }
133
                }
132
        ).start();
134
        ).start();
133
    }
135
    }
134
 
136
 
135
 
137
 
136
 
138
 
137
}
139
}
138
 
140