RepraCustomClient Interface

A RepraCustomClient Interface example.

package com.sybase.connector.repra;

/**
	Configures the custom sender and custom property page
*/
public interface RepraCustomClient extends RepraClient, RepraCustomProps
{
}

Sample Implementation of the RepraCustomClient Interface

import java.io.FileInputStream;
import java.util.Date;
import java.util.Properties;import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;import com.sybase.connector.repra.RepraCustomClient;
import com.sybase.connector.repra.logging.RaLogger;/*
 * SampleClient2
 *
 * Description:	This is a sample of a customer sender
 * processor client that will load a custom property
 * page and then route the event to an email address
 *
 */
public class SampleClient2 implements RepraCustomClient
{
	private Transport _transport = null;
	private MimeMessage _msg = null;
	private RaLogger _log = null;
	protected static String _host;
	protected String _from;
	protected String _to;
	protected String _cc;
	protected String _subject,
	protected String _username;
	protected String _password;	private String _propFile;	/**
	* sets the property file
	*/	public void setConfigProps(String custPropsFile)
{
		_propFile = custPropsFile;
}
	/**
	* gets the property file
	*/
	public String getConfigProps()
	{
	return _propFile;
	}
	/**
		* sets the default logger
		*/
		public void setLogger (RaLogger log) 
	{
	if (_log == null)
		{
			_log = log;
		}
	}
	/**
 * gets the email information from the properties
 * @throws Exception
		*/
		private void getHostInformation() throws Exception 
	{
		String thePropFile = getConfigProps();
		FileInputStream in = newFileInputStream(thePropFile);
		_log.info ("SampleClient2.INFO", "** IN
getHostInformation, loading prop file");
		Properties prop = new Properties();
		prop.load(in);
		_host = prop.getProperty("MAIL_HOST","");
		_from = prop.getProperty("MAIL_FROM","");
		_to = prop.getProperty("MAIL_TO","");	
		_cc = prop.getProperty("MAIL_CC","");
		_subject = prop.getProperty("MAIL_SUBJECT","");
		_username = prop.getProperty("MAIL_USERNAME","");
		_password = prop.getProperty("MAIL_PASSWORD","");
		_log.info ("SampleClient2.INFO", "** HOST - " + _host + ", MAIL_TO - " +_to);
		}
		public void configureClient() throws Exception  	
		{
		try 
		{
			_log.info ("SampleClient2.INFO", "** Starting ConfigureClient");
			Properties prop =System.getProperties();
			Session ses  = Session.getDefaultInstance(prop,null);	
			getHostInformation();
			_msg = new MimeMessage(ses);
			_msg.setFrom(new InternetAddress(_from));
			_msg.addRecipient(Message.RecipientType.TO, new InternetAddress(_to));	
			_msg.addRecipient(Message.RecipientType.CC, new InternetAddress(_cc));
			_msg.setSubject(_subject);
			_msg.setSentDate(new Date());
			_msg.saveChanges(); 
			_transport = ses.getTransport("smtp");
			_transport.connect(_host, _username, _password);
			log.info ("SampleClient2.INFO", "** Ending ConfigureClient"); 			
		}
		catch (Exception ex) 
		{
			throw ex;
		}
	}

          
	/**
	 * sends out the repmsg as an email
	 */
	public boolean sendEvent(Object repmsg) throws Exception 

          
		{	
		try 
		{
			_log.info ("SampleClient2.INFO", "** Starting
           SendEvent, repmsg is " + repmsg.toString());
          _msg.setText(repmsg.toString());
          _transport.sendMessage(_msg,
          _msg.getAllRecipients());
         return true;
		}
		catch (Exception ex) 
		{
			throw ex;
		}
	}

          
	/**
		* returns true if the connection is healthy
	 */
	public boolean isReady()
	{
		return _transport.isConnected();
	}
		/**
	 * closes the client connection
	 */
	 public void close() 
		{
	try 
		{
			_transport.close();	 			
		}
		catch (Exception ex) 
		{
			// do nothing
		}
	}
}