[jboss-svn-commits] JBL Code SVN: r5373 - in labs/jbossesb/trunk/product/core/common: src/org/jboss/soa/esb/notification tests/src/org/jboss/soa/esb/notification

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Aug 1 05:11:49 EDT 2006


Author: tfennelly
Date: 2006-08-01 05:11:39 -0400 (Tue, 01 Aug 2006)
New Revision: 5373

Added:
   labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java
   labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java
Modified:
   labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyEmail.java
   labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyFiles.java
   labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyJMS.java
   labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyQueues.java
   labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyTopics.java
Log:
added more unit tests and fixed a few bugs

Modified: labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyEmail.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyEmail.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyEmail.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -40,19 +40,21 @@
  * 
  * @version 1.0
  */
-public class NotifyEmail extends NotificationTarget
-{
-  /**
-   * Instantiate a NotifyEmail object using the information contained in <arg 1>
-   * @param p_oP DomElement - See attributes and structure needed for the
-   * EsbEmail(DomElement) constructor - The MESSAGE attribute will be filled
-   * in at sendNotification(Serializable) time
-   * @throws Exception
-   * @see EsbEmail#EsbEmail(DomElement)
-   * @see NotifyEmail#sendNotification(Serializable)
-   */
-  public NotifyEmail(DomElement p_oP) throws Exception
-  { super (p_oP);
+public class NotifyEmail extends NotificationTarget {
+	/**
+	 * Instantiate a NotifyEmail object using the information contained in
+	 * <arg 1>
+	 * 
+	 * @param p_oP
+	 *            DomElement - See attributes and structure needed for the
+	 *            EsbEmail(DomElement) constructor - The MESSAGE attribute will
+	 *            be filled in at sendNotification(Serializable) time
+	 * @throws Exception
+	 * @see EsbEmail#EsbEmail(DomElement)
+	 * @see NotifyEmail#sendNotification(Serializable)
+	 */
+	public NotifyEmail(DomElement p_oP) throws Exception {
+		super(p_oP);
 
 		String sAtt = (String) m_oParms.getAttr(EsbEmail.FROM);
 		if (null != sAtt)
@@ -60,32 +62,36 @@
 
 		InternetAddress.parse(m_oParms.getAttr(EsbEmail.SENDTO));
 
-    sAtt = (String)m_oParms.getAttr(EsbEmail.COPYTO);
-    if (null != sAtt) InternetAddress.parse(sAtt);
-  } //__________________________________
-  /**
-   * Send an Email using EsbEmail() using p_o.toString() to fill in the
-   * message text
-   * @param p_o Object - This object's toString() method will supply contents
-   * of mail message
-   */
-  public void sendNotification(Serializable p_o)
-  { try
-    { DomElement oP  = m_oParms.cloneObj();
-      String sMsg = oP.getAttr(EsbEmail.MESSAGE);
-      sMsg = ((null==sMsg)?p_o.toString():sMsg+"\n")+p_o.toString();
-      // HB added line for debugging
-      //System.out.println("Sending Email Notification ->" +sMsg );
+		sAtt = (String) m_oParms.getAttr(EsbEmail.COPYTO);
+		if (null != sAtt)
+			InternetAddress.parse(sAtt);
+	} // __________________________________
 
-	  oP.setAttr(EsbEmail.MESSAGE, sMsg);
-	  EsbEmail esbMail = new EsbEmail(oP);
-	  esbMail.sendMessage();
-	} 
-    catch (Exception e) 
-    {
-		EsbUtil.getDefaultLogger(this.getClass()).error("Send Mail Failed", e);
-		e.printStackTrace();
-	}
-  } // __________________________________
+	/**
+	 * Send an Email using EsbEmail() using p_o.toString() to fill in the
+	 * message text
+	 * 
+	 * @param p_o
+	 *            Object - This object's toString() method will supply contents
+	 *            of mail message
+	 */
+	public void sendNotification(Serializable p_o) {
+		try {
+			DomElement oP = m_oParms.cloneObj();
+			String sMsg = oP.getAttr(EsbEmail.MESSAGE);
+			sMsg = ((null == sMsg) ? p_o.toString() : sMsg + "\n")
+					+ p_o.toString();
+			// HB added line for debugging
+			// System.out.println("Sending Email Notification ->" +sMsg );
 
+			oP.setAttr(EsbEmail.MESSAGE, sMsg);
+			EsbEmail esbMail = new EsbEmail(oP);
+			esbMail.sendMessage();
+		} catch (Exception e) {
+			EsbUtil.getDefaultLogger(this.getClass()).error("Send Mail Failed",
+					e);
+			e.printStackTrace();
+		}
+	} // __________________________________
+
 } // ____________________________________________________________________________

Modified: labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyFiles.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyFiles.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyFiles.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -1,24 +1,24 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 
 package org.jboss.soa.esb.notification;
 
@@ -26,119 +26,157 @@
 
 import java.io.*;
 import java.net.*;
+
 /**
  * Write the notification contents into a list of files specified in the
- * constructor time parameters
- * <p>Description: The constructor searches for all child elements of the
- * DomElement argument having "file" as element name, that will be used to
- * store (or append) the contents of the argument to the sendNotification(Object)
+ * constructor time parameters.
+ * <p>
+ * Description: The constructor searches for all child elements of the
+ * DomElement argument having "file" as element name, that will be used to store
+ * (or append) the contents of the argument to the sendNotification(Object)
  * method, to each and every one of the files contained in the list
  * </p>
- * <p>Author: Heuristica - Buenos Aires - Argentina</p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ * 
  * @version 1.0
  */
-public class NotifyFiles extends NotificationTarget
-{
-  /**
-   * Mnemonic for the child element name that hold the files to write ("file")
-   */
-  public static final String CHILD_FILE  = "file";
-  /**
-   * Attribute name that will be interpreted as the URI of the file to write to
-   */
-  public static final String ATT_URI     = "URI";
-  /**
-   * Attribute name of indicator to append to an existing file
-   * @see Boolean#valueOf(String)
-   */
-  public static final String ATT_APPEND  = "append";
-  /**
-   * The File[] that holds the output file list
-   */
-  protected File[]      m_oaOutF;
-  /**
-   * Each entry in this array corresponds to the same index entry in the m_oaOutF array
-   */
-  protected boolean[]   m_baAppend;
+public class NotifyFiles extends NotificationTarget {
+	/**
+	 * Mnemonic for the child element name that hold the files to write ("file")
+	 */
+	public static final String CHILD_FILE = "file";
 
-  /**
-   * Instantiate a NotifyFiles object according to contents of &lt;arg 1&gt;
-   * @param p_oP DomElement - Should contain a nonempty set of child elements with
-   * elementName="file".  Each child element must have a "URI" attribute and
-   * optionally a "append" element
-   * @throws Exception
-   */
-  public NotifyFiles(DomElement p_oP) throws Exception
-  { super (p_oP);
-    setFiles(p_oP.getElementChildren(CHILD_FILE));
+	/**
+	 * Attribute name that will be interpreted as the URI of the file to write
+	 * to
+	 */
+	public static final String ATT_URI = "URI";
 
-  } //__________________________________
+	/**
+	 * Attribute name of indicator to append to an existing file
+	 * 
+	 * @see Boolean#valueOf(String)
+	 */
+	public static final String ATT_APPEND = "append";
 
-  /**
-   * Sets the value of m_oaOutF[] and m_baAppend[] to contents
-   * of each element of the input argument
-   * @param p_oaP DomElement[] - Each entry must have a "URI" attribute, and can
-   * have an optional "append" attribute
-   * @throws Exception - invoke Exception.getMessage() at runtime for details
-   * @see DomElement#getAttr(String)
-   */
-  protected void setFiles(DomElement[] p_oaP) throws Exception
-  { m_oaOutF  = new File[p_oaP.length];
-    m_baAppend=new boolean[m_oaOutF.length];
-    for (int i1=0; i1<p_oaP.length; i1++)
-    { String sAtt = p_oaP[i1].getAttr(ATT_URI);
-      if (null==sAtt) throw new Exception ("Missing file URI");
-      m_oaOutF[i1]  = new File(new URI(sAtt));
-      sAtt  = p_oaP[i1].getAttr(ATT_APPEND);
-      Boolean oB = Boolean.valueOf(sAtt);
-      m_baAppend[i1] = (null==sAtt)?false : oB.booleanValue();
-    }
-  } //__________________________________
-  /**
-   * Writes the result of p_o into each one of the File objects
-   * contained in the m_oaOutF array
-   * @param p_o Object - This object's toString() results will be written to
-   * (appended to) each one of the files in m_oaOutF
-   * @see NotifyFiles#setFiles(DomElement[])
-   * @see NotifyFiles#m_oaOutF
-   */
-  public void sendNotification(Serializable p_o)
-  {
-	FileOutputStream OS = null;
-	int iCurr = 0;
-    for (File oCurr : m_oaOutF)
-    { try
-      { 
-    	OS = new FileOutputStream(oCurr,m_baAppend[iCurr++]);
-	  	if (p_o instanceof String)
-	  		stringNotification(OS,(String)p_o);
-		else
-			objectNotification(OS,p_o);
-      }
-      catch (Exception e) { /*  We do nothing here for the time being */ }
-      finally
-      { try { OS.close(); }
-      	catch (Exception eCl) {/*  Unable to Close - What could we do */ }
-      }
-    }
-  } //__________________________________
+	/**
+	 * The NotificationFile[] that holds the output file list.
+	 */
+	protected NotificationFile[] m_oaOutF;
 
-  private void stringNotification(FileOutputStream p_oF,String p_s)
-  { try
-      { 
-        p_oF.write(p_s.getBytes());
-        if (!p_s.endsWith("\n"))
-        	p_oF.write("\n".getBytes());
-      }
-    catch (Exception e) { /*  We do nothing here for the time being */ }
-  } //__________________________________
+	/**
+	 * Instantiate a NotifyFiles object according to contents of &lt;arg 1&gt;
+	 * 
+	 * @param p_oP
+	 *            DomElement - Should contain a nonempty set of child elements
+	 *            with elementName="file". Each child element must have a "URI"
+	 *            attribute and optionally a "append" element
+	 * @throws Exception
+	 */
+	public NotifyFiles(DomElement p_oP) throws Exception {
+		super(p_oP);
+		setFiles(p_oP.getElementChildren(CHILD_FILE));
 
-  private void objectNotification(FileOutputStream p_oF,Object p_o)
-  { try
-      { ObjectOutputStream OS = new ObjectOutputStream(p_oF);
-        OS.writeObject(p_o);
-      }
-    catch (Exception e) { /*  We do nothing here for the time being */ }
-  } //__________________________________
+	} // __________________________________
 
-} //____________________________________________________________________________
+	/**
+	 * Sets the value of m_oaOutF[] and m_baAppend[] to contents of each element
+	 * of the input argument
+	 * 
+	 * @param p_oaP
+	 *            DomElement[] - Each entry must have a "URI" attribute, and can
+	 *            have an optional "append" attribute
+	 * @throws Exception -
+	 *             invoke Exception.getMessage() at runtime for details
+	 * @see DomElement#getAttr(String)
+	 */
+	protected void setFiles(DomElement[] p_oaP) throws Exception {
+		m_oaOutF = new NotificationFile[p_oaP.length];
+		
+		for (int i = 0; i < p_oaP.length; i++) {
+			String fileURI = p_oaP[i].getAttr(ATT_URI);
+			String append = p_oaP[i].getAttr(ATT_APPEND);
+			
+			if (null == fileURI) {
+				throw new IllegalArgumentException("Bad File Notification Configuration: Missing file URI attribute.");
+			}
+			m_oaOutF[i] = new NotificationFile(new URI(fileURI), Boolean.valueOf(append));
+			
+			// Make sure the parent folder exists...
+			if(!m_oaOutF[i].getParentFile().exists()) {
+				throw new IllegalArgumentException("Bad File Notification Configuration: Parent folder for file [" + m_oaOutF[i].getAbsolutePath() + "] doesn't exist.");
+			}
+		}
+	} // __________________________________
+
+	/**
+	 * Writes the result of p_o into each one of the File objects contained in
+	 * the m_oaOutF array
+	 * 
+	 * @param p_o
+	 *            Object - This object's toString() results will be written to
+	 *            (appended to) each one of the files in m_oaOutF
+	 * @see NotifyFiles#setFiles(DomElement[])
+	 * @see NotifyFiles#m_oaOutF
+	 */
+	public void sendNotification(Serializable p_o) {
+		FileOutputStream fileOutStream = null;
+		int iCurr = 0;
+
+		for (NotificationFile notificationFile : m_oaOutF) {
+			try {
+				fileOutStream = new FileOutputStream(notificationFile, notificationFile.append);
+				if (p_o instanceof String) {
+					stringNotification(fileOutStream, (String) p_o);
+				} else {
+					objectNotification(fileOutStream, p_o);
+				}
+			} catch (Exception e) { /* We do nothing here for the time being */
+			} finally {
+				try {
+					fileOutStream.close();
+				} catch (Exception eCl) {/*
+											 * Unable to Close - What could we
+											 * do
+											 */
+				}
+			}
+		}
+	} // __________________________________
+
+	private void stringNotification(FileOutputStream p_oF, String p_s) {
+		try {
+			p_oF.write(p_s.getBytes());
+			if (!p_s.endsWith("\n"))
+				p_oF.write("\n".getBytes());
+		} catch (Exception e) { /* We do nothing here for the time being */
+		}
+	} // __________________________________
+
+	private void objectNotification(FileOutputStream p_oF, Object p_o) {
+		try {
+			ObjectOutputStream OS = new ObjectOutputStream(p_oF);
+			OS.writeObject(p_o);
+		} catch (Exception e) { /* We do nothing here for the time being */
+		}
+	} // __________________________________
+
+	/**
+	 * Notification File.
+	 * <p/>
+	 * Simply adds the "append" property to the file.
+	 * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+	 */
+	private class NotificationFile extends File {
+
+		private static final long serialVersionUID = 1L;
+		private boolean append = false;
+
+		private NotificationFile(URI fileURI, boolean append) {
+			super(fileURI);
+			this.append = append;
+		}
+	}
+} // ____________________________________________________________________________

Modified: labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyJMS.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyJMS.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyJMS.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -1,26 +1,25 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 
-
 package org.jboss.soa.esb.notification;
 
 import java.io.Serializable;
@@ -29,121 +28,150 @@
 import javax.naming.*;
 
 import org.jboss.soa.esb.helpers.*;
+
 /**
  * Abstract class that defines the behaviour of NotifyQueues and NotifyTopics
  * (and in fact any other javax.jms.Destination object), and provides common
  * methods to derived classes
- * <p>Description: </p>
- * <p>Author: Heuristica - Buenos Aires - Argentina</p>
+ * <p>
+ * Description:
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ * 
  * @version 1.0
  */
-public abstract class NotifyJMS extends NotificationTarget
-{
-  /**
-   * Abstract method - All classes that extend NotifyJMS must implement it
-   * according to their own javax.jms.Destination needs (Queue/Topic)
-   * @param p_oMsg Message
-   */
-  protected abstract void sendToAll(Message p_oMsg);
-  /**
-   * Element name mnemonic to search for child elements in the DomElement
-   * at constructor time, that will hold a "name" "value" pair to be
-   * included in the JMS message header
-   */
-  public static final String CHILD_MSG_PROP  = "messageProp";
-  /**
-   * Attribute name mnemonic for the name of the message property to
-   * fill with contents of the "value" aattribute
-   */
-  public static final String ATT_PROP_NAME   = "name";
-  /**
-   * Attribute name mnemonic for the value to assign to the corresponding
-   * message property
-   */
-  public static final String ATT_PROP_VALUE  = "value";
+public abstract class NotifyJMS extends NotificationTarget {
+	/**
+	 * Abstract method - All classes that extend NotifyJMS must implement it
+	 * according to their own javax.jms.Destination needs (Queue/Topic)
+	 * 
+	 * @param p_oMsg
+	 *            Message
+	 */
+	protected abstract void sendToAll(Message p_oMsg);
 
-  /**
-   * Attribute name mnemonic for the att that will hold the JNDI name
-   * of the destination javax.jms.Destination object
-   */
-  public static final String ATT_DEST_NAME   = "jndiName";
+	/**
+	 * Element name mnemonic to search for child elements in the DomElement at
+	 * constructor time, that will hold a "name" "value" pair to be included in
+	 * the JMS message header
+	 */
+	public static final String CHILD_MSG_PROP = "messageProp";
 
-  /**
-   * This object holds the JNDI naming context that will be used to obtain
-   * a JMS destination (javax.jms.Destination) to send/publish the notification
-   * at sendNotification() time
-   */
-  protected Context       m_oCtx;
-  private   Properties    m_oProps  = new Properties();
+	/**
+	 * Attribute name mnemonic for the name of the message property to fill with
+	 * contents of the "value" aattribute
+	 */
+	public static final String ATT_PROP_NAME = "name";
 
-  /**
-   *  The javax.jms.Connection instance used to talk to JMS
-   */
-  protected Connection      m_oConn;
-  /**
-   *  The javax.jms.Session instance used to talk to JMS
-   */
-  protected Session         m_oSess;
-  /**
-   * Array with an instance of javax.jms.MessageProducer on each entry that
-   * will be used to send the notification at sendNotification() time
-   */
-  protected MessageProducer[] m_oaMssProd;
-  /**
-   * Constructor that will be called by child classes to perform initialization
-   * tasks that are common to all derived classes
-   * @param p_oP DomElement
-   * <p> Will contain a variable number of "messageProp" child elements that will
-   * be added to messages sent to
-   * </p>
-   * @throws Exception
-   */
-  protected NotifyJMS(DomElement p_oP) throws Exception
-  { super (p_oP);
+	/**
+	 * Attribute name mnemonic for the value to assign to the corresponding
+	 * message property
+	 */
+	public static final String ATT_PROP_VALUE = "value";
 
-    DomElement[] oaMsgP = p_oP.getElementChildren(CHILD_MSG_PROP);
-    for (int i1=0; i1<oaMsgP.length; i1++)
-    { String sKey = oaMsgP[i1].getAttr(ATT_PROP_NAME);
-      if (null==sKey) continue;
-      String sVal = oaMsgP[i1].getAttr(ATT_PROP_VALUE);
-      if (null==sVal) continue;
+	/**
+	 * Attribute name mnemonic for the att that will hold the JNDI name of the
+	 * destination javax.jms.Destination object
+	 */
+	public static final String ATT_DEST_NAME = "jndiName";
 
-      m_oProps.setProperty(sKey.trim(),sVal);
-    }
+	/**
+	 * This object holds the JNDI naming context that will be used to obtain a
+	 * JMS destination (javax.jms.Destination) to send/publish the notification
+	 * at sendNotification() time
+	 */
+	protected Context m_oCtx;
 
-    m_oCtx = new InitialContext();
+	private Properties m_oProps = new Properties();
 
-  } //__________________________________
-  /**
-   * Performs an orderly release of all JMS resources utilized - Well behaved
-   * developers should always call this method before unreferencing this object
-   */
-  public void release()
-  { if (null!=m_oSess)
-      try { m_oSess.close(); }    catch (Exception e1) {}
-    if (null!=m_oConn)
-      try { m_oConn.close(); }    catch (Exception e2) {}
-  } //__________________________________
-  /**
-   * Send a JMS message using p_o to fill in the message content
-   * and the list of message properties that will be added to the JMS
-   * message header fields
-   * @param p_o Object - This object or thie object's toString() method 
-   * will supply contents of JMS message
-   * @see NotifyJMS#CHILD_MSG_PROP
-   */
-  public void sendNotification(Serializable p_o) throws Exception
-  { Message oMsg  = null;
-  	if (p_o instanceof String)
-  		oMsg = m_oSess.createTextMessage(p_o.toString());
-  	else
-  		oMsg = m_oSess.createObjectMessage((Serializable)p_o);
-    for (Iterator II=m_oProps.keySet().iterator(); II.hasNext(); )
-    { String sKey = (String)II.next();
-      String sVal = m_oProps.getProperty(sKey);
-      oMsg.setStringProperty(sKey, sVal);
-    }
-    sendToAll(oMsg);
-  } //__________________________________
+	/**
+	 * The javax.jms.Connection instance used to talk to JMS
+	 */
+	protected Connection m_oConn;
 
-} //____________________________________________________________________________
+	/**
+	 * The javax.jms.Session instance used to talk to JMS
+	 */
+	protected Session m_oSess;
+
+	/**
+	 * Array with an instance of javax.jms.MessageProducer on each entry that
+	 * will be used to send the notification at sendNotification() time
+	 */
+	protected MessageProducer[] m_oaMssProd;
+
+	/**
+	 * Constructor that will be called by child classes to perform
+	 * initialization tasks that are common to all derived classes
+	 * 
+	 * @param p_oP
+	 *            DomElement
+	 *            <p>
+	 *            Will contain a variable number of "messageProp" child elements
+	 *            that will be added to messages sent to
+	 *            </p>
+	 * @throws Exception
+	 */
+	protected NotifyJMS(DomElement p_oP) throws Exception {
+		super(p_oP);
+
+		DomElement[] oaMsgP = p_oP.getElementChildren(CHILD_MSG_PROP);
+		for (int i1 = 0; i1 < oaMsgP.length; i1++) {
+			String sKey = oaMsgP[i1].getAttr(ATT_PROP_NAME);
+			if (null == sKey)
+				continue;
+			String sVal = oaMsgP[i1].getAttr(ATT_PROP_VALUE);
+			if (null == sVal)
+				continue;
+
+			m_oProps.setProperty(sKey.trim(), sVal);
+		}
+
+		m_oCtx = new InitialContext();
+
+	} // __________________________________
+
+	/**
+	 * Performs an orderly release of all JMS resources utilized - Well behaved
+	 * developers should always call this method before unreferencing this
+	 * object
+	 */
+	public void release() {
+		if (null != m_oSess)
+			try {
+				m_oSess.close();
+			} catch (Exception e1) {
+			}
+		if (null != m_oConn)
+			try {
+				m_oConn.close();
+			} catch (Exception e2) {
+			}
+	} // __________________________________
+
+	/**
+	 * Send a JMS message using p_o to fill in the message content and the list
+	 * of message properties that will be added to the JMS message header fields
+	 * 
+	 * @param p_o
+	 *            Object - This object or thie object's toString() method will
+	 *            supply contents of JMS message
+	 * @see NotifyJMS#CHILD_MSG_PROP
+	 */
+	public void sendNotification(Serializable p_o) throws Exception {
+		Message oMsg = null;
+		if (p_o instanceof String)
+			oMsg = m_oSess.createTextMessage(p_o.toString());
+		else
+			oMsg = m_oSess.createObjectMessage((Serializable) p_o);
+		for (Iterator II = m_oProps.keySet().iterator(); II.hasNext();) {
+			String sKey = (String) II.next();
+			String sVal = m_oProps.getProperty(sKey);
+			oMsg.setStringProperty(sKey, sVal);
+		}
+		sendToAll(oMsg);
+	} // __________________________________
+
+} // ____________________________________________________________________________

Modified: labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyQueues.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyQueues.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyQueues.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -1,81 +1,99 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 
 package org.jboss.soa.esb.notification;
 
 import javax.jms.*;
+import javax.naming.NamingException;
 
-import org.jboss.soa.esb.helpers.DomElement;;
+import org.jboss.soa.esb.helpers.DomElement;
 
+;
+
 /**
  * This class that implements abstract methods defined in it's superclass
- * <p>Description: </p>
- * <p>Author: Heuristica - Buenos Aires - Argentina</p>
+ * <p>
+ * Description:
+ * </p>
+ * <p>
+ * Author: Heuristica - Buenos Aires - Argentina
+ * </p>
+ * 
  * @version 1.0
  */
-public class NotifyQueues extends NotifyJMS
-{
-  /**
-   * Element name mnemonic to search for child elements in the DomElement
-   * at constructor time, that will hold a "jndiName" attribute specifying
-   * the value to look up in the JNDI context in order to obtain a queue
-   * @see NotifyJMS#ATT_DEST_NAME
-   */
-  public static final String CHILD_QUEUE = "queue";
+public class NotifyQueues extends NotifyJMS {
+	/**
+	 * Element name mnemonic to search for child elements in the DomElement at
+	 * constructor time, that will hold a "jndiName" attribute specifying the
+	 * value to look up in the JNDI context in order to obtain a queue
+	 * 
+	 * @see NotifyJMS#ATT_DEST_NAME
+	 */
+	public static final String CHILD_QUEUE = "queue";
 
+	public NotifyQueues(DomElement p_oP) throws Exception {
+		super(p_oP);
+		setQueues(p_oP.getElementChildren(CHILD_QUEUE));
+	} // __________________________________
 
-  public NotifyQueues(DomElement p_oP) throws Exception
-  { super (p_oP);
-    setQueues(p_oP.getElementChildren(CHILD_QUEUE));
-  } //__________________________________
+	protected void setQueues(DomElement[] p_oaP) throws Exception {
+		QueueConnectionFactory qcf = lookupQueueConnectionFactory();
+		QueueConnection oQconn = qcf.createQueueConnection();
+		QueueSession oQsess = oQconn.createQueueSession(false,
+				QueueSession.AUTO_ACKNOWLEDGE);
 
-  protected void setQueues(DomElement[] p_oaP) throws Exception
-  {
-    QueueConnectionFactory qcf = (QueueConnectionFactory)
-            m_oCtx.lookup("ConnectionFactory");
-    QueueConnection oQconn = qcf.createQueueConnection();
-    QueueSession oQsess = oQconn.createQueueSession(false
-                ,QueueSession.AUTO_ACKNOWLEDGE);
+		m_oaMssProd = new MessageProducer[p_oaP.length];
+		for (int i1 = 0; i1 < p_oaP.length; i1++) {
+			String sAtt = p_oaP[i1].getAttr(ATT_DEST_NAME);
+			if (null == sAtt)
+				throw new Exception("Missing queue jndiName");
+			Queue oQ = (Queue) m_oCtx.lookup(sAtt);
+			m_oaMssProd[i1] = oQsess.createSender(oQ);
+		}
 
+		m_oConn = oQconn;
+		m_oSess = oQsess;
+		// m_oConn.start(); Only for incoming messages ???
+	} // __________________________________
 
-    m_oaMssProd  = new MessageProducer[p_oaP.length];
-    for (int i1=0; i1<p_oaP.length; i1++)
-    { String sAtt = p_oaP[i1].getAttr(ATT_DEST_NAME);
-      if (null==sAtt) throw new Exception ("Missing queue jndiName");
-      Queue oQ  = (Queue)m_oCtx.lookup(sAtt);
-      m_oaMssProd[i1] = oQsess.createSender(oQ);
-    }
+	/**
+	 * Get the {@link QueueConnectionFactory} to be used for this instance.
+	 * <p/>
+	 * Can be overridden for testing.
+	 * @return The QueueConnectionFactory fro the JNDI context.
+	 * @throws NamingException
+	 */
+	protected QueueConnectionFactory lookupQueueConnectionFactory() throws NamingException {
+		return (QueueConnectionFactory) m_oCtx.lookup("ConnectionFactory");
+	}
 
-    m_oConn   = oQconn;
-    m_oSess   = oQsess;
-//    m_oConn.start();  Only for incoming messages ???
-  } //__________________________________
+	protected void sendToAll(Message p_oMsg) {
+		for (int i1 = 0; i1 < m_oaMssProd.length; i1++) {
+			QueueSender oCurr = (QueueSender) m_oaMssProd[i1];
+			try {
+				oCurr.send(p_oMsg);
+			} catch (Exception e) {
+			}
+		}
+	} // __________________________________
 
-  protected void sendToAll(Message p_oMsg)
-  { for (int i1=0; i1<m_oaMssProd.length;i1++)
-    { QueueSender oCurr = (QueueSender)m_oaMssProd[i1];
-      try { oCurr.send(p_oMsg); }
-      catch (Exception e) {}
-    }
-  } //__________________________________
-
-} //____________________________________________________________________________
+} // ____________________________________________________________________________

Modified: labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyTopics.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyTopics.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/src/org/jboss/soa/esb/notification/NotifyTopics.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -1,24 +1,24 @@
 /*
-* JBoss, Home of Professional Open Source
-* Copyright 2006, JBoss Inc., and individual contributors as indicated
-* by the @authors tag. See the copyright.txt in the distribution for a
-* full listing of individual contributors.
-*
-* This is free software; you can redistribute it and/or modify it
-* under the terms of the GNU Lesser General Public License as
-* published by the Free Software Foundation; either version 2.1 of
-* the License, or (at your option) any later version.
-*
-* This software is distributed in the hope that it will be useful,
-* but WITHOUT ANY WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-* Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License along with this software; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
-* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
-*/
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
 
 package org.jboss.soa.esb.notification;
 
@@ -26,44 +26,45 @@
 
 import org.jboss.soa.esb.helpers.*;
 
-public class NotifyTopics extends NotifyJMS
-{
-  public static final String CHILD_TOPIC = "topic";
+public class NotifyTopics extends NotifyJMS {
+	public static final String CHILD_TOPIC = "topic";
 
-  public NotifyTopics(DomElement p_oP) throws Exception
-  { super (p_oP);
+	public NotifyTopics(DomElement p_oP) throws Exception {
+		super(p_oP);
 
-    setTopics(p_oP.getElementChildren(CHILD_TOPIC));
-  } //__________________________________
+		setTopics(p_oP.getElementChildren(CHILD_TOPIC));
+	} // __________________________________
 
-  protected void setTopics(DomElement[] p_oaP) throws Exception
-  {
-    TopicConnectionFactory qcf = (TopicConnectionFactory)
-            m_oCtx.lookup("ConnectionFactory");
-    TopicConnection oTconn = qcf.createTopicConnection();
-    TopicSession oTsess = oTconn.createTopicSession(false
-                ,TopicSession.AUTO_ACKNOWLEDGE);
+	protected void setTopics(DomElement[] p_oaP) throws Exception {
+		TopicConnectionFactory qcf = (TopicConnectionFactory) m_oCtx
+				.lookup("ConnectionFactory");
+		TopicConnection oTconn = qcf.createTopicConnection();
+		TopicSession oTsess = oTconn.createTopicSession(false,
+				TopicSession.AUTO_ACKNOWLEDGE);
 
-    m_oaMssProd  = new MessageProducer[p_oaP.length];
-    for (int i1=0; i1<p_oaP.length; i1++)
-    { String sAtt = p_oaP[i1].getAttr(ATT_DEST_NAME);
-      if (null==sAtt) throw new Exception ("Missing topic jndiName");
-      Topic oT  = (Topic)m_oCtx.lookup(sAtt);
-      m_oaMssProd [i1] = oTsess.createPublisher(oT);
-    }
+		m_oaMssProd = new MessageProducer[p_oaP.length];
+		for (int i1 = 0; i1 < p_oaP.length; i1++) {
+			String sAtt = p_oaP[i1].getAttr(ATT_DEST_NAME);
+			if (null == sAtt)
+				throw new Exception("Missing topic jndiName");
+			Topic oT = (Topic) m_oCtx.lookup(sAtt);
+			m_oaMssProd[i1] = oTsess.createPublisher(oT);
+		}
 
-    m_oConn   = oTconn;
-    m_oSess   = oTsess;
-//    m_oConn.start();  Only for incoming messages ???
+		m_oConn = oTconn;
+		m_oSess = oTsess;
+		// m_oConn.start(); Only for incoming messages ???
 
-  } //__________________________________
+	} // __________________________________
 
-  protected void sendToAll(Message p_oMsg)
-  { for (int i1=0; i1<m_oaMssProd.length;i1++)
-    { TopicPublisher oCurr  = (TopicPublisher)m_oaMssProd[i1];
-      try { oCurr.publish(p_oMsg); }
-      catch (Exception e) {}
-    }
-  } //__________________________________
+	protected void sendToAll(Message p_oMsg) {
+		for (int i1 = 0; i1 < m_oaMssProd.length; i1++) {
+			TopicPublisher oCurr = (TopicPublisher) m_oaMssProd[i1];
+			try {
+				oCurr.publish(p_oMsg);
+			} catch (Exception e) {
+			}
+		}
+	} // __________________________________
 
-} //____________________________________________________________________________
+} // ____________________________________________________________________________

Added: labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyFilesUnitTest.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -0,0 +1,127 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.notification;
+
+import java.io.File;
+import java.io.Serializable;
+
+import org.jboss.soa.esb.helpers.DomElement;
+
+import junit.framework.TestCase;
+
+/**
+ * NotifyFiles unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyFilesUnitTest extends TestCase {
+	
+	public void test_BadFolderInfo() throws Exception {
+		DomElement rootEl = new DomElement("notif");
+		DomElement fileEl = new DomElement("file");
+		
+		rootEl.addElemChild(fileEl);
+		
+		// No file attribute defined on the DomElement
+		try {
+			new NotifyFiles(rootEl);
+			fail("Expected IllegalArgumentException");
+		} catch(IllegalArgumentException e) {
+			// Expected
+		}
+		// File attribute defined on the DomElement, but parent folder doesn't exist...
+		fileEl.setAttr("URI", new File("./").toURI().toString() + "/xyzzyx/a.txt");
+		try {
+			new NotifyFiles(rootEl);
+			fail("Expected IllegalArgumentException");
+		} catch(IllegalArgumentException e) {
+			// Expected
+		}
+	}
+	
+	public void test_StringObj() throws Exception {
+		sendNotification("Hello");
+	}
+
+	public void test_NonStringObject() throws Exception {
+		sendNotification(new Integer(1234));
+	}
+	
+	public void sendNotification(Serializable obj) throws Exception {
+		DomElement rootEl = new DomElement("notif");
+		NotifyFiles notifyFiles;
+		
+		// Add the file configs to the config DOM for 4 files...
+		addFileConfig(rootEl, "file1.notif", true);
+		addFileConfig(rootEl, "file2.notif", true);
+		addFileConfig(rootEl, "file3.notif", false);
+		addFileConfig(rootEl, "file4.notif", null);
+		
+		// Create the class and call the sendNotification method twice...
+		notifyFiles = new NotifyFiles(rootEl);		
+		notifyFiles.sendNotification(obj);
+		notifyFiles.sendNotification(obj);
+
+		// Test the files. Files 1 and 2 should be the same size. Files 3 and 4 should be the
+		// same size. Files 1 and 2 should be twice as big as files 3 and 4 because append was set
+		// "true" on 1 and 2 and sendNotification() was called twice... 
+		File file1Obj = getFileObject("file1.notif");
+		File file2Obj = getFileObject("file2.notif");
+		File file3Obj = getFileObject("file3.notif");
+		File file4Obj = getFileObject("file4.notif");
+		assertEquals(file1Obj.length(), file2Obj.length());
+		assertEquals(file3Obj.length(), file4Obj.length());
+		assertEquals(file1Obj.length(), file3Obj.length() * 2);
+	}
+	
+	private void addFileConfig(DomElement rootEl, String file, Boolean append) {
+		File fileObj = getFileObject(file);
+		DomElement fileEl = new DomElement("file");
+		
+		fileEl.setAttr("URI", fileObj.toURI().toString());
+		fileEl.setAttr("append", (append != null?append.toString():null));
+		rootEl.addElemChild(fileEl);
+		
+		// Also want to delete the file incase the tests are being rerun...
+		fileObj.delete();
+	}
+
+	private File getFileObject(String file) {
+		// TF: Excuse this hack!!!  It's the safest way of calculating a 
+		// relative URI within the test structure.  It will prob cause
+		// Maven some issues i.e. getting it to work for both Ant and Maven :-(
+		// This code assumes that the working dir is the "product" folder.
+		
+		File fileObj = new File("build/tests/" + getPKg() + "/" + file);
+		if(!fileObj.getParentFile().exists()) {
+			// The build folder may not exist e.g. if running this test from
+			// inside your IDE.
+			fileObj.getParentFile().mkdirs();
+		}
+		
+		return fileObj;
+	}
+
+	private String getPKg() {
+		String javaPackage = NotifyFilesUnitTest.class.getPackage().getName();
+		return javaPackage.replace('.', '/');
+	}
+}

Added: labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java
===================================================================
--- labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java	2006-07-31 22:05:07 UTC (rev 5372)
+++ labs/jbossesb/trunk/product/core/common/tests/src/org/jboss/soa/esb/notification/NotifyQueuesUnitTest.java	2006-08-01 09:11:39 UTC (rev 5373)
@@ -0,0 +1,71 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2006, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.soa.esb.notification;
+
+import javax.jms.Connection;
+import javax.jms.JMSException;
+import javax.jms.QueueConnection;
+import javax.jms.QueueConnectionFactory;
+import javax.naming.NamingException;
+
+import org.jboss.soa.esb.helpers.DomElement;
+
+import junit.framework.TestCase;
+
+/**
+ * NotifyQueues unit tests.
+ * @author <a href="mailto:tom.fennelly at jboss.com">tom.fennelly at jboss.com</a>
+ */
+public class NotifyQueuesUnitTest extends TestCase {
+
+	public void test_NotifyQueues() {
+		
+	}
+	
+	private class TestNotifyQueues extends NotifyQueues {
+		public TestNotifyQueues(DomElement p_oP) throws Exception {
+			super(p_oP);
+		}
+		protected QueueConnectionFactory lookupQueueConnectionFactory() throws NamingException {
+			return new MockQueueConnectionFactory();
+		}
+	}
+	
+	private class MockQueueConnectionFactory implements QueueConnectionFactory {
+		public QueueConnection createQueueConnection() throws JMSException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+		public QueueConnection createQueueConnection(String arg0, String arg1) throws JMSException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+		public Connection createConnection() throws JMSException {
+			// TODO Auto-generated method stub
+			return null;
+		}
+		public Connection createConnection(String arg0, String arg1) throws JMSException {
+			// TODO Auto-generated method stub
+			return null;
+		}		
+	}
+}




More information about the jboss-svn-commits mailing list