azkaban-aplcache

Details

diff --git a/lib/commons-email-1.2.jar b/lib/commons-email-1.2.jar
new file mode 100644
index 0000000..f085975
Binary files /dev/null and b/lib/commons-email-1.2.jar differ
diff --git a/src/java/azkaban/utils/Mailman.java b/src/java/azkaban/utils/Mailman.java
new file mode 100644
index 0000000..52676e9
--- /dev/null
+++ b/src/java/azkaban/utils/Mailman.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2010 LinkedIn, Inc
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+
+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;
+
+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());
+        }
+    }
+
+}