<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="https://wiki.transcends.co/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.transcends.co/index.php?action=history&amp;feed=atom&amp;title=Northwind_JMS_Send</id>
		<title>Northwind JMS Send - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.transcends.co/index.php?action=history&amp;feed=atom&amp;title=Northwind_JMS_Send"/>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;action=history"/>
		<updated>2026-04-19T07:55:47Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.23.1</generator>

	<entry>
		<id>https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=3139&amp;oldid=prev</id>
		<title>Matt: Reverted edits by Amesycyxa (Talk); changed back to last version by Matt</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=3139&amp;oldid=prev"/>
				<updated>2010-11-26T19:43:36Z</updated>
		
		<summary type="html">&lt;p&gt;Reverted edits by &lt;a href=&quot;/index.php/Special:Contributions/Amesycyxa&quot; title=&quot;Special:Contributions/Amesycyxa&quot;&gt;Amesycyxa&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Amesycyxa&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Amesycyxa (page does not exist)&quot;&gt;Talk&lt;/a&gt;); changed back to last version by &lt;a href=&quot;/index.php?title=User:Matt&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User:Matt (page does not exist)&quot;&gt;Matt&lt;/a&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;amp;diff=3139&amp;amp;oldid=2941&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2941&amp;oldid=prev</id>
		<title>Amesycyxa at 23:12, 23 November 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2941&amp;oldid=prev"/>
				<updated>2010-11-23T23:12:32Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;amp;diff=2941&amp;amp;oldid=2722&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Amesycyxa</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2722&amp;oldid=prev</id>
		<title>Matt: /* Add JMS Setters */</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2722&amp;oldid=prev"/>
				<updated>2010-04-08T16:26:33Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Add JMS Setters&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:26, 8 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 249:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 249:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 */&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 */&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	public ShippingApp() {&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	public ShippingApp() {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Activator.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;myApp&lt;/del&gt;=this;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;		Activator.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;shippingApp&lt;/ins&gt;=this;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 280:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 280:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Modify spring.xml to inject the JMS objects====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Modify spring.xml to inject the JMS objects====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open up the spring.xml file.&amp;#160; There are a few things to take care of here.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Open up the spring.xml file.&amp;#160; There are a few things to take care of here.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2721&amp;oldid=prev</id>
		<title>Matt: /* Add a send method */</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2721&amp;oldid=prev"/>
				<updated>2010-04-08T16:21:21Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Add a send method&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:21, 8 April 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 319:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 319:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We can encapsulate the logic required to send out a JMS message in one method.&amp;#160; Add this method to the application class&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;We can encapsulate the logic required to send out a JMS message in one method.&amp;#160; Add this method to the application class&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;/**&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160;  &lt;/ins&gt;/**&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 * Method to use to send out notifications over JMS. It seriallizes the&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 * Method to use to send out notifications over JMS. It seriallizes the&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 * message into an array of bytes, then sends those bytes out over JMS&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	 * message into an array of bytes, then sends those bytes out over JMS&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 354:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 354:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Finally, let's send some messages!====&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;====Finally, let's send some messages!====&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit the dockDoorListener as follows:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Edit the dockDoorListener as follows:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Matt</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2616&amp;oldid=prev</id>
		<title>Kyle at 20:49, 24 November 2009</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2616&amp;oldid=prev"/>
				<updated>2009-11-24T20:49:16Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 20:49, 24 November 2009&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;This is Step 5 in the [[Northwind Tutorial|Northwind Application Tutorial]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Sending out events with JMS&lt;/del&gt;=&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Previous Step: [[Northwind Esper: Alerts| Step 4: Esper: Alerts]]&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;What &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;you will learn:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Next Step: [[Northwind Creating the Web Application | Step 6: Create the Web Application]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===What &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;You Will Learn===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Importing the JMS services provided by Rifidi Edge Server&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Importing the JMS services provided by Rifidi Edge Server&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Exporting packages from a bundle&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Exporting packages from a bundle&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Kyle</name></author>	</entry>

	<entry>
		<id>https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2581&amp;oldid=prev</id>
		<title>Kyle: New page:  ==Sending out events with JMS== What you will learn: * Importing the JMS services provided by Rifidi Edge Server * Exporting packages from a bundle * Sending out events over JMS  Once you...</title>
		<link rel="alternate" type="text/html" href="https://wiki.transcends.co/index.php?title=Northwind_JMS_Send&amp;diff=2581&amp;oldid=prev"/>
				<updated>2009-11-24T19:15:25Z</updated>
		
		<summary type="html">&lt;p&gt;New page:  ==Sending out events with JMS== What you will learn: * Importing the JMS services provided by Rifidi Edge Server * Exporting packages from a bundle * Sending out events over JMS  Once you...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
==Sending out events with JMS==&lt;br /&gt;
What you will learn:&lt;br /&gt;
* Importing the JMS services provided by Rifidi Edge Server&lt;br /&gt;
* Exporting packages from a bundle&lt;br /&gt;
* Sending out events over JMS&lt;br /&gt;
&lt;br /&gt;
Once you have the esper queries defined, debugged, and working, it's time to figure out exactly how you want to react to the various events.  You might want to log the events to a database.  You may want to expose the events to a .Net application via web services.  Or you might want to integrate with an ERP system such as SAP.  For the Northwind application, we want to send out notifications over Java Messaging Service (JMS) for a web application (which we will build soon) to display.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Create Notification Classes===&lt;br /&gt;
{| cellspacing=&amp;quot;5&amp;quot; align=&amp;quot;right&amp;quot; style=&amp;quot;margin: 1em auto 1em auto;background-color:rgb(240, 247, 255); width=100px;border:1px dashed; margin-left:10px; margin-top:10px; margin-bottom:10px&amp;quot;&lt;br /&gt;
| align=&amp;quot;center&amp;quot; width=&amp;quot;350px&amp;quot;| '''Creating an API Bundle'''&lt;br /&gt;
|- &lt;br /&gt;
| width=&amp;quot;350px&amp;quot;| For this example, we are creating the notification classes in the same bundle that our application is in in order to simplify the tutorial.  This means that our web application will have to have a direct dependency on the application bundle, so that the web bundle has access to the notification classes. A cleaner solution would be to extract out the notification classes into a separate bundle so that both the application bundle and the web bundle would depend on the API bundle.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The first in using JMS to alert another component about the RFID events that we are capturing in our Esper listeners is to create a few Java classes that define the kind of events we want to send out. In particular we will need:&lt;br /&gt;
* &amp;lt;tt&amp;gt;ItemArrivalNotification&amp;lt;/tt&amp;gt; that is sent out when an item has arrived at a zone (either dock door or weigh station).&lt;br /&gt;
* &amp;lt;tt&amp;gt;ItemDepartureNotification&amp;lt;/tt&amp;gt; that is sent out when an item has departed from a zone.&lt;br /&gt;
* &amp;lt;tt&amp;gt;AlertNotification&amp;lt;/tt&amp;gt; that is sent when one of the three exception cases happens.&lt;br /&gt;
&lt;br /&gt;
In addition, we will define two enums:&lt;br /&gt;
* &amp;lt;tt&amp;gt;EZone&amp;lt;/tt&amp;gt; that defines the two zones we have in our system.&lt;br /&gt;
* &amp;lt;tt&amp;gt;EAlertType&amp;lt;/tt&amp;gt; that defines the three alert types that we have.&lt;br /&gt;
&lt;br /&gt;
There are three steps:&lt;br /&gt;
# Create a new package.  Right-click on the &amp;lt;tt&amp;gt;com.northwind.rfid.shipping&amp;lt;/tt&amp;gt; package and select new-&amp;gt;package.  Name the package &amp;lt;tt&amp;gt;com.northwind.rfid.shipping.notifications&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Create the classes (see below)&lt;br /&gt;
# Export the &amp;lt;tt&amp;gt;com.northwind.rfid.shipping.notifications&amp;lt;/tt&amp;gt; package in the Manifest.  This allows other OSGi bundles to see this package. To do this, open up the Manifest.MF file.  Click on the Runtime tab.  In the 'Exported Packages' section, click Add.  Choose the &amp;lt;tt&amp;gt;com.northwind.rfid.shipping.notifications&amp;lt;/tt&amp;gt; package.  Save.&lt;br /&gt;
&lt;br /&gt;
====Notification Classes====&lt;br /&gt;
&amp;lt;tt&amp;gt;ItemArrivalNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package com.northwind.rfid.shipping.notifications;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This class defines an Item Arrival Event&lt;br /&gt;
 * @author Kyle Neumeier - kyle@pramari.com&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public class ItemArrivalNotification implements Serializable{&lt;br /&gt;
	/** Default Serial ID */&lt;br /&gt;
	private static final long serialVersionUID = 1L;&lt;br /&gt;
	/** The zone that this tag arrived at*/&lt;br /&gt;
	private final EZone zone;&lt;br /&gt;
	/** The tag that arrived */&lt;br /&gt;
	private final String tag_Id;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param zone&lt;br /&gt;
	 *            The zone that this tag arrived at&lt;br /&gt;
	 * @param tag_id&lt;br /&gt;
	 *            The ID of the tag that arrived&lt;br /&gt;
	 */&lt;br /&gt;
	public ItemArrivalNotification(EZone zone, String tag_id) {&lt;br /&gt;
		this.zone = zone;&lt;br /&gt;
		this.tag_Id = tag_id;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return the zone&lt;br /&gt;
	 */&lt;br /&gt;
	public EZone getZone() {&lt;br /&gt;
		return zone;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return the tag_id&lt;br /&gt;
	 */&lt;br /&gt;
	public String getTag_Id() {&lt;br /&gt;
		return tag_Id;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;ItemDepartureNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package com.northwind.rfid.shipping.notifications;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This class defines an Item Departure Event&lt;br /&gt;
 * &lt;br /&gt;
 * @author Kyle Neuemeier - kyle@pramari.com&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
public class ItemDepartureNotification implements Serializable {&lt;br /&gt;
	/** Default Serial ID */&lt;br /&gt;
	private static final long serialVersionUID = 1L;&lt;br /&gt;
	/** The zone that this tag departed from */&lt;br /&gt;
	private final EZone zone;&lt;br /&gt;
	/** The tag that departed */&lt;br /&gt;
	private final String tag_Id;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param zone&lt;br /&gt;
	 *            The zone that this tag departed from&lt;br /&gt;
	 * @param tag_Id&lt;br /&gt;
	 *            The ID of the tag that departed&lt;br /&gt;
	 */&lt;br /&gt;
	public ItemDepartureNotification(EZone zone, String tag_Id) {&lt;br /&gt;
		this.zone = zone;&lt;br /&gt;
		this.tag_Id = tag_Id;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return the zone&lt;br /&gt;
	 */&lt;br /&gt;
	public EZone getZone() {&lt;br /&gt;
		return zone;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return the tag_id&lt;br /&gt;
	 */&lt;br /&gt;
	public String getTag_Id() {&lt;br /&gt;
		return tag_Id;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;AlertNotification&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package com.northwind.rfid.shipping.notifications;&lt;br /&gt;
&lt;br /&gt;
import java.io.Serializable;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This class defines an Alert Event.&lt;br /&gt;
 * &lt;br /&gt;
 * @author Kyle Neumeier - kyle@pramari.com&lt;br /&gt;
 * &lt;br /&gt;
 */&lt;br /&gt;
public class AlertNotification implements Serializable {&lt;br /&gt;
&lt;br /&gt;
	/** Default Serial ID */&lt;br /&gt;
	private static final long serialVersionUID = 1L;&lt;br /&gt;
	/** The alert message */&lt;br /&gt;
	private final EAlertType alert;&lt;br /&gt;
	/** The tag that the alert applies to */&lt;br /&gt;
	private final String tagID;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @param alert&lt;br /&gt;
	 * @param tagID&lt;br /&gt;
	 */&lt;br /&gt;
	public AlertNotification(EAlertType alert, String tagID) {&lt;br /&gt;
		super();&lt;br /&gt;
		this.alert = alert;&lt;br /&gt;
		this.tagID = tagID;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return the alert&lt;br /&gt;
	 */&lt;br /&gt;
	public EAlertType getAlert() {&lt;br /&gt;
		return alert;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return the tagID&lt;br /&gt;
	 */&lt;br /&gt;
	public String getTag_Id() {&lt;br /&gt;
		return tagID;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * @return A message that describes this alert type&lt;br /&gt;
	 */&lt;br /&gt;
	public String getMessage() {&lt;br /&gt;
		switch (alert) {&lt;br /&gt;
		case Package_is_Lost:&lt;br /&gt;
			return &amp;quot;Package is lost&amp;quot;;&lt;br /&gt;
		case Package_Moved_Backwards:&lt;br /&gt;
			return &amp;quot;Package moved backwards&amp;quot;;&lt;br /&gt;
		case Package_Skipped_Dock_Door:&lt;br /&gt;
			return &amp;quot;Package skipped dock door&amp;quot;;&lt;br /&gt;
		default:&lt;br /&gt;
			return &amp;quot;Unknown alert&amp;quot;;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;EZone&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package com.northwind.rfid.shipping.notifications;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This enum  lists the read zones for our system.&lt;br /&gt;
 * @author Kyle Neumeier - kyle@pramari.com&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public enum EZone {&lt;br /&gt;
	DOCK_DOOR,&lt;br /&gt;
	WEIGH_STATION;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;EAlertType&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
package com.northwind.rfid.shipping.notifications;&lt;br /&gt;
&lt;br /&gt;
/**&lt;br /&gt;
 * This enum lists the kinds of alerts that are defined.&lt;br /&gt;
 * @author Kyle Neumeier - kyle@pramari.com&lt;br /&gt;
 *&lt;br /&gt;
 */&lt;br /&gt;
public enum EAlertType {&lt;br /&gt;
	Package_Moved_Backwards,&lt;br /&gt;
	Package_Skipped_Dock_Door,&lt;br /&gt;
	Package_is_Lost;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Export Notification Package===&lt;br /&gt;
In order for another bundle to be able to use the Notification classes we created, we need to export the notification package.&lt;br /&gt;
# Open the Manifest.MF.&lt;br /&gt;
# Select the Runtime Tab.&lt;br /&gt;
# In the Exported Packages section, click add.&lt;br /&gt;
# Choose the com.northwind.rfid.shipping.notifications package.&lt;br /&gt;
&lt;br /&gt;
===Use JMS to Send out Notifications in Application===&lt;br /&gt;
In this step we will modify our code to use the Notification objects to send out notifications over JMS.&lt;br /&gt;
====Add JMS Dependencies====&lt;br /&gt;
The first step you need to do is to add the the necessary package dependencies to your bundle.  Open up the Manifest.MF, select the 'Dependencies' tab.  On the 'Imported Packages' section click add choose the following packages.&lt;br /&gt;
* javax.jms&lt;br /&gt;
* org.apache.activemq.command&lt;br /&gt;
* org.springframework.beans.factory&lt;br /&gt;
* org.springframework.core&lt;br /&gt;
* org.springframework.jms&lt;br /&gt;
* org.springframework.jms.core&lt;br /&gt;
&lt;br /&gt;
====Add JMS Setters====&lt;br /&gt;
The next step is to modify ShippingApp to have a setter for the JMSTemplate and Destination objects that spring can use to inject them.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	/** Esper service */&lt;br /&gt;
	private volatile EsperManagementService esperService;&lt;br /&gt;
	/**All statements that have been defined so far*/&lt;br /&gt;
	private final Set&amp;lt;EPStatement&amp;gt; statements = new CopyOnWriteArraySet&amp;lt;EPStatement&amp;gt;();&lt;br /&gt;
	/**JMS Destination to send messages to*/&lt;br /&gt;
	private volatile Destination destination;&lt;br /&gt;
	/**JMS Template to use to send messages*/&lt;br /&gt;
	private volatile JmsTemplate template;&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 */&lt;br /&gt;
	public ShippingApp() {&lt;br /&gt;
		Activator.myApp=this;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called by spring&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param esperService&lt;br /&gt;
	 */&lt;br /&gt;
	public void setEsperService(EsperManagementService esperService) {&lt;br /&gt;
		this.esperService = esperService;&lt;br /&gt;
		start();&lt;br /&gt;
		setUpAlerts();&lt;br /&gt;
		setupListeners();&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called by spring&lt;br /&gt;
	 * @param destination the destination to set&lt;br /&gt;
	 */&lt;br /&gt;
	public void setDestination(Destination destination) {&lt;br /&gt;
		this.destination = destination;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called by spring&lt;br /&gt;
	 * @param template the template to set&lt;br /&gt;
	 */&lt;br /&gt;
	public void setTemplate(JmsTemplate template) {&lt;br /&gt;
		this.template = template;&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Modify spring.xml to inject the JMS objects====&lt;br /&gt;
Open up the spring.xml file.  There are a few things to take care of here.&lt;br /&gt;
# Lookup the JMS template from the OSGi service registry.  You will use this object to send out notifications&lt;br /&gt;
# Create a new JMS Destination (specifically a Topic desitination).  This is where the notifications will be sent.&lt;br /&gt;
# Inject the template and destination into the application.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;beans xmlns=&amp;quot;http://www.springframework.org/schema/beans&amp;quot;&lt;br /&gt;
	xmlns:xsi=&amp;quot;http://www.w3.org/2001/XMLSchema-instance&amp;quot; &lt;br /&gt;
	xmlns:osgi=&amp;quot;http://www.springframework.org/schema/osgi&amp;quot;&lt;br /&gt;
	xmlns:amq=&amp;quot;http://activemq.apache.org/schema/core&amp;quot;&lt;br /&gt;
	xsi:schemaLocation=&amp;quot;http://www.springframework.org/schema/beans &lt;br /&gt;
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd&lt;br /&gt;
    http://www.springframework.org/schema/osgi &lt;br /&gt;
    http://www.springframework.org/schema/osgi/spring-osgi.xsd&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Create the  Application bean and inject dependencies--&amp;gt;&lt;br /&gt;
	&amp;lt;bean id=&amp;quot;rfidapp&amp;quot; class=&amp;quot;com.northwind.rfid.shipping.ShippingApp&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;esperService&amp;quot; ref=&amp;quot;esperManagementService&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;destination&amp;quot; ref=&amp;quot;NorthwindTopic&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;template&amp;quot; ref=&amp;quot;jmsTemplate&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/bean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!--Get a reference to the Esper Management Service from the OSGi Service Registry--&amp;gt;&lt;br /&gt;
	&amp;lt;osgi:reference id=&amp;quot;esperManagementService&amp;quot;&lt;br /&gt;
		interface=&amp;quot;org.rifidi.edge.core.services.esper.EsperManagementService&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Create a new Topic to publish Notifications to --&amp;gt;&lt;br /&gt;
	&amp;lt;bean id=&amp;quot;NorthwindTopic&amp;quot; class=&amp;quot;org.apache.activemq.command.ActiveMQTopic&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;property name=&amp;quot;physicalName&amp;quot; value=&amp;quot;com.northwind.rfid.shipping.topic&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;/bean&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;!-- Lookup the JMS Template from OSGi Service Registry --&amp;gt;&lt;br /&gt;
	&amp;lt;osgi:reference id=&amp;quot;jmsTemplate&amp;quot;&lt;br /&gt;
		interface=&amp;quot;org.springframework.jms.core.JmsTemplate&amp;quot; bean-name=&amp;quot;externalJMSTemplate&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/beans&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Add a send method====&lt;br /&gt;
We can encapsulate the logic required to send out a JMS message in one method.  Add this method to the application class&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
	 * Method to use to send out notifications over JMS. It seriallizes the&lt;br /&gt;
	 * message into an array of bytes, then sends those bytes out over JMS&lt;br /&gt;
	 * &lt;br /&gt;
	 * @param notification&lt;br /&gt;
	 */&lt;br /&gt;
	private void send(final Serializable notification) {&lt;br /&gt;
		if (template == null || destination == null) {&lt;br /&gt;
			// TODO: Log error message;&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		try {&lt;br /&gt;
			template.send(destination, new MessageCreator() {&lt;br /&gt;
				@Override&lt;br /&gt;
				public Message createMessage(Session arg0) throws JMSException {&lt;br /&gt;
					BytesMessage message = arg0.createBytesMessage();&lt;br /&gt;
					ByteArrayOutputStream bos = new ByteArrayOutputStream();&lt;br /&gt;
					try {&lt;br /&gt;
						ObjectOutput out = new ObjectOutputStream(bos);&lt;br /&gt;
						out.writeObject(notification);&lt;br /&gt;
						out.close();&lt;br /&gt;
						message.writeBytes(bos.toByteArray());&lt;br /&gt;
						return message;&lt;br /&gt;
					} catch (IOException e) {&lt;br /&gt;
						throw new JMSException(e.getMessage());&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			});&lt;br /&gt;
		} catch (JmsException exception) {&lt;br /&gt;
			// TODO: log error message&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
====Finally, let's send some messages!====&lt;br /&gt;
Edit the dockDoorListener as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
		//create a listener to handle Dock Door events &lt;br /&gt;
		StatementAwareUpdateListener dockDoorListener = new StatementAwareUpdateListener() {&lt;br /&gt;
			@Override&lt;br /&gt;
			public void update(EventBean[] arrivals, EventBean[] departures, EPStatement arg2,&lt;br /&gt;
					EPServiceProvider arg3) {&lt;br /&gt;
				if(arrivals!=null){&lt;br /&gt;
					for(EventBean bean : arrivals){&lt;br /&gt;
						String id = (String)bean.get(&amp;quot;tag_ID&amp;quot;);&lt;br /&gt;
						send(new ItemArrivalNotification(EZone.DOCK_DOOR, id));&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if(departures!=null){&lt;br /&gt;
					for(EventBean bean : departures){&lt;br /&gt;
						String id = (String)bean.get(&amp;quot;tag_ID&amp;quot;);&lt;br /&gt;
						send(new ItemDepartureNotification(EZone.DOCK_DOOR, id));&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Similarly edit the weightStationListener:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
		StatementAwareUpdateListener weighStationListener = new StatementAwareUpdateListener() {&lt;br /&gt;
			@Override&lt;br /&gt;
			public void update(EventBean[] arrivals, EventBean[] departures, EPStatement arg2,&lt;br /&gt;
					EPServiceProvider arg3) {&lt;br /&gt;
				if(arrivals!=null){&lt;br /&gt;
					for(EventBean bean : arrivals){&lt;br /&gt;
						String id = (String)bean.get(&amp;quot;tag_ID&amp;quot;);&lt;br /&gt;
						send(new ItemArrivalNotification(EZone.WEIGH_STATION, id));&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if(departures!=null){&lt;br /&gt;
					for(EventBean bean : departures){&lt;br /&gt;
						String id = (String)bean.get(&amp;quot;tag_ID&amp;quot;);&lt;br /&gt;
						send(new ItemDepartureNotification(EZone.WEIGH_STATION, id));&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally edit the Alert Listener:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	StatementAwareUpdateListener alertListener = new StatementAwareUpdateListener() {&lt;br /&gt;
			@Override&lt;br /&gt;
			public void update(EventBean[] arrivals, EventBean[] departures,&lt;br /&gt;
					EPStatement arg2, EPServiceProvider arg3) {&lt;br /&gt;
				if (arrivals != null) {&lt;br /&gt;
					for (EventBean bean : arrivals) {&lt;br /&gt;
						int alertType = (Integer) bean.get(&amp;quot;alert_type&amp;quot;);&lt;br /&gt;
						String id = (String) bean.get(&amp;quot;tag_ID&amp;quot;);&lt;br /&gt;
						AlertNotification alert = null;&lt;br /&gt;
						switch (alertType) {&lt;br /&gt;
						case 1:&lt;br /&gt;
							alert = new AlertNotification(EAlertType.Package_Moved_Backwards, id);&lt;br /&gt;
							break;&lt;br /&gt;
						case 2:&lt;br /&gt;
							alert = new AlertNotification(EAlertType.Package_Skipped_Dock_Door, id);&lt;br /&gt;
							break;&lt;br /&gt;
						case 3:&lt;br /&gt;
							alert = new AlertNotification(EAlertType.Package_is_Lost, id);&lt;br /&gt;
							break;&lt;br /&gt;
&lt;br /&gt;
						}&lt;br /&gt;
						if (alert != null) {&lt;br /&gt;
							send(alert);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Kyle</name></author>	</entry>

	</feed>