Package org.apache.oodt.cas.workflow.examples

Source Code of org.apache.oodt.cas.workflow.examples.MailTask

/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements.  See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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 org.apache.oodt.cas.workflow.examples;

//JDK imports
import java.util.Date;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

//OODT imports
import org.apache.oodt.cas.metadata.Metadata;
import org.apache.oodt.cas.workflow.structs.WorkflowTaskConfiguration;
import org.apache.oodt.cas.workflow.structs.WorkflowTaskInstance;
import org.apache.oodt.cas.workflow.structs.exceptions.WorkflowTaskInstanceException;

/**
*
* A CAS {@link WorkflowTaskInstance} responsible for sending an email
* to a recipient notifying them of ingest.
*
* @author mattmann
* @version $Revision$
*
*/
public class MailTask implements WorkflowTaskInstance {

  /*
   * (non-Javadoc)
   *
   * @see
   * org.apache.oodt.cas.workflow.structs.WorkflowTaskInstance#run(gov.nasa
   * .jpl.oodt.cas.metadata.Metadata,
   * org.apache.oodt.cas.workflow.structs.WorkflowTaskConfiguration)
   */
  public void run(Metadata metadata, WorkflowTaskConfiguration config)
      throws WorkflowTaskInstanceException {
    Properties mailProps = new Properties();
    mailProps.setProperty("mail.host", "smtp.jpl.nasa.gov");
    mailProps.setProperty("mail.user", "mattmann");
   
    Session session = Session.getInstance(mailProps);

    String msgTxt = "Hello "
        + config.getProperty("user.name")
        + ":\n\n"
        + "You have successfully ingested the file with the following metadata: \n\n"
        + getMsgStringFromMet(metadata) + "\n\n" + "Thanks!\n\n" + "CAS";

    Message msg = new MimeMessage(session);
    try {
      msg.setSubject(config.getProperty("msg.subject"));
      msg.setSentDate(new Date());
      msg.setFrom(InternetAddress.parse(config.getProperty("mail.from"))[0]);
      msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(config
          .getProperty("mail.to"), false));
      msg.setText(msgTxt);
      Transport.send(msg);

    } catch (MessagingException e) {
      throw new WorkflowTaskInstanceException(e.getMessage());
    }

  }

  private String getMsgStringFromMet(Metadata met) {
    StringBuffer buf = new StringBuffer();
    for (Object key : met.getHashtable().keySet()) {
      String keyStr = (String) key;
      StringBuffer val = new StringBuffer();
      for (Object value : met.getAllMetadata(keyStr)) {
        String valStr = (String) value;
        val.append(valStr);
        val.append(",");
      }
      val.deleteCharAt(val.length() - 1);

      buf.append("[" + keyStr + "=>" + val + "]\n");
    }

    return buf.toString();
  }

}
TOP

Related Classes of org.apache.oodt.cas.workflow.examples.MailTask

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.