azkaban-developers
Details
.classpath 3(+3 -0)
diff --git a/.classpath b/.classpath
index d82bc10..7b8b139 100644
--- a/.classpath
+++ b/.classpath
@@ -26,5 +26,8 @@
<classpathentry kind="lib" path="lib/hadoop-core-1.0.2-p1.jar"/>
<classpathentry kind="lib" path="lib/guava-13.0.1.jar"/>
<classpathentry kind="lib" path="lib/pig-0.9.1-withouthadoop.jar"/>
+ <classpathentry kind="lib" path="plugins/ldap/li-azkaban-ldap.jar"/>
+ <classpathentry kind="lib" path="lib/commons-email-1.2.jar"/>
+ <classpathentry kind="lib" path="lib/mail-1.4.5.jar"/>
<classpathentry kind="output" path="dist/classes"/>
</classpath>
src/java/azkaban/utils/Mailman.java 140(+50 -90)
diff --git a/src/java/azkaban/utils/Mailman.java b/src/java/azkaban/utils/Mailman.java
index 52676e9..1cfce64 100644
--- a/src/java/azkaban/utils/Mailman.java
+++ b/src/java/azkaban/utils/Mailman.java
@@ -16,17 +16,11 @@
package azkaban.utils;
-import java.util.Date;
import java.util.List;
-import java.util.Properties;
-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.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
@@ -36,91 +30,57 @@ import org.apache.log4j.Logger;
/**
* The mailman send you mail, if you ask him
*
- * @author jkreps
- *
*/
public class Mailman {
- private static Logger logger = Logger.getLogger(Mailman.class.getName());
-
- private final String _mailHost;
- private final String _mailUser;
- private final String _mailPassword;
- private final String _mailSender;
-
- public Mailman(String mailHost, String mailUser, String mailPassword, String mailSender) {
- this._mailHost = mailHost;
- this._mailUser = mailUser;
- this._mailPassword = mailPassword;
- this._mailSender = mailSender;
- }
-
- public void sendEmail(String fromAddress, List<String> toAddress, String subject, String body)
- throws MessagingException {
-// Properties props = new Properties();
-// props.setProperty("mail.transport.protocol", "smtp");
-// props.put("mail.host", _mailHost);
-// props.put("mail.user", _mailUser);
-// props.put("mail.password", _mailPassword);
-//
-// Session session = Session.getDefaultInstance(props);
-// Message message = new MimeMessage(session);
-// InternetAddress from = new InternetAddress(fromAddress == null? "dolores.umbridge@azkaban.com" : fromAddress, false);
-// message.setFrom(from);
-// for(String toAddr: toAddress)
-// message.addRecipient(Message.RecipientType.TO, new InternetAddress(toAddr, false));
-// try {
-// message.setSubject(subject);
-// message.setText(body);
-// message.setSentDate(new Date());
-// Transport.send(message);
-// }
-// catch (Exception e) {
-// logger.error(e);
-// }
-
- SimpleEmail email = new SimpleEmail();
- try{
-// email.setHostName(_mailHost);
- email.setHostName("email.corp.linkedin.com");
-
-// for(String addr : toAddress) {
-// email.addTo(addr);
-// }
-
- email.addTo("cyu@linkedin.com");
- email.addTo("hadoop-etl-notifications@linkedin.com");
- email.addTo("azkaban-test@linkedin.com");
-
- email.setFrom(fromAddress);
- email.setSubject(subject);
- email.setMsg(body);
- email.setDebug(true);
- email.send();
- }
- catch (EmailException e)
- {
- logger.error(e);
- }
- catch (Exception e)
- {
- logger.error(e);
- }
-
-
- }
-
- public void sendEmailIfPossible(String fromAddress,
- List<String> toAddress,
- String subject,
- String body) {
- try {
- sendEmail(fromAddress, toAddress, subject, body);
- } catch(AddressException e) {
- logger.warn("Error while sending email, invalid email: " + e.getMessage());
- } catch(MessagingException e) {
- logger.warn("Error while sending email: " + e.getMessage());
- }
- }
+ private static Logger logger = Logger.getLogger(Mailman.class.getName());
+
+ private final String _mailHost;
+ private final String _mailUser;
+ private final String _mailPassword;
+ private final String _mailSender;
+
+ public Mailman(String mailHost, String mailUser, String mailPassword,
+ String mailSender) {
+ this._mailHost = mailHost;
+ this._mailUser = mailUser;
+ this._mailPassword = mailPassword;
+ this._mailSender = mailSender;
+ }
+
+ public void sendEmail(String fromAddress, List<String> toAddress,
+ String subject, String body) throws MessagingException {
+ SimpleEmail email = new SimpleEmail();
+ try {
+ email.setHostName(_mailHost);
+
+ for (String addr : toAddress) {
+ email.addTo(addr);
+ }
+
+ email.setFrom(fromAddress);
+ email.setSubject(subject);
+ email.setMsg(body);
+ email.setDebug(true);
+ email.send();
+ } catch (EmailException e) {
+ logger.error(e);
+ } catch (Exception e) {
+ logger.error(e);
+ }
+
+ }
+
+ public void sendEmailIfPossible(String fromAddress, List<String> toAddress,
+ String subject, String body) {
+ try {
+ sendEmail(fromAddress, toAddress, subject, body);
+ } catch (AddressException e) {
+ logger.warn("Error while sending email, invalid email: "
+ + e.getMessage());
+ } catch (MessagingException e) {
+ logger.warn("Error while sending email: " + e.getMessage());
+ }
+ }
}
diff --git a/src/java/azkaban/webapp/AzkabanExecutorServer.java b/src/java/azkaban/webapp/AzkabanExecutorServer.java
index f55d511..5d14aa0 100644
--- a/src/java/azkaban/webapp/AzkabanExecutorServer.java
+++ b/src/java/azkaban/webapp/AzkabanExecutorServer.java
@@ -39,10 +39,10 @@ import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;
import org.mortbay.thread.QueuedThreadPool;
-import azkaban.utils.Mailman;
import azkaban.executor.ExecutableFlow;
import azkaban.executor.ExecutorManagerException;
import azkaban.executor.FlowRunnerManager;
+import azkaban.utils.Mailman;
import azkaban.utils.Props;
import azkaban.utils.Utils;
import azkaban.webapp.servlet.AzkabanServletContextListener;
@@ -64,12 +64,13 @@ public class AzkabanExecutorServer {
private static AzkabanExecutorServer app;
+ private final Mailman mailer;
+
private FlowRunnerManager runnerManager;
private Props props;
private File tempDir;
private Server server;
- private final Mailman mailer;
/**
* Constructor
@@ -86,19 +87,19 @@ public class AzkabanExecutorServer {
QueuedThreadPool httpThreadPool = new QueuedThreadPool(maxThreads);
server.setThreadPool(httpThreadPool);
- Context root = new Context(server, "/", Context.SESSIONS);
+ Context root = new Context(server, "/", Context.SESSIONS);
String sharedToken = props.getString("executor.shared.token", "");
ServletHolder executorHolder = new ServletHolder(new ExecutorServlet(sharedToken));
root.addServlet(executorHolder, "/executor");
root.setAttribute(AzkabanServletContextListener.AZKABAN_SERVLET_CONTEXT_KEY, this);
- mailer = new Mailman(props.getString("mail.host", "localhost"),
- props.getString("mail.user", ""),
- props.getString("mail.password", ""),
- props.getString("mail.sender", ""));
-
+ mailer = new Mailman(
+ props.getString("mail.host", "localhost"),
+ props.getString("mail.user", ""),
+ props.getString("mail.password", ""),
+ props.getString("mail.sender", ""));
+
runnerManager = new FlowRunnerManager(props, mailer);
-
try {
server.start();