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 |