<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
<title>JMSSink xref</title>
<link type="text/css" rel="stylesheet" href="../../../../stylesheet.css" />
</head>
<body>
<div id="overview"><a href="../../../../../apidocs/org/apache/log4j/net/JMSSink.html">View Javadoc</a></div><pre>

<a name="1" href="#1">1</a>   <em class="jxr_comment">/*</em>
<a name="2" href="#2">2</a>   <em class="jxr_comment"> * Licensed to the Apache Software Foundation (ASF) under one or more</em>
<a name="3" href="#3">3</a>   <em class="jxr_comment"> * contributor license agreements.  See the NOTICE file distributed with</em>
<a name="4" href="#4">4</a>   <em class="jxr_comment"> * this work for additional information regarding copyright ownership.</em>
<a name="5" href="#5">5</a>   <em class="jxr_comment"> * The ASF licenses this file to You under the Apache License, Version 2.0</em>
<a name="6" href="#6">6</a>   <em class="jxr_comment"> * (the "License"); you may not use this file except in compliance with</em>
<a name="7" href="#7">7</a>   <em class="jxr_comment"> * the License.  You may obtain a copy of the License at</em>
<a name="8" href="#8">8</a>   <em class="jxr_comment"> * </em>
<a name="9" href="#9">9</a>   <em class="jxr_comment"> *      <a href="http://www.apache.org/licenses/LICENSE-2.0" target="alexandria_uri">http://www.apache.org/licenses/LICENSE-2.0</a></em>
<a name="10" href="#10">10</a>  <em class="jxr_comment"> * </em>
<a name="11" href="#11">11</a>  <em class="jxr_comment"> * Unless required by applicable law or agreed to in writing, software</em>
<a name="12" href="#12">12</a>  <em class="jxr_comment"> * distributed under the License is distributed on an "AS IS" BASIS,</em>
<a name="13" href="#13">13</a>  <em class="jxr_comment"> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</em>
<a name="14" href="#14">14</a>  <em class="jxr_comment"> * See the License for the specific language governing permissions and</em>
<a name="15" href="#15">15</a>  <em class="jxr_comment"> * limitations under the License.</em>
<a name="16" href="#16">16</a>  <em class="jxr_comment"> */</em>
<a name="17" href="#17">17</a>  
<a name="18" href="#18">18</a>  <strong class="jxr_keyword">package</strong> org.apache.log4j.net;
<a name="19" href="#19">19</a>  
<a name="20" href="#20">20</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.Logger;
<a name="21" href="#21">21</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.PropertyConfigurator;
<a name="22" href="#22">22</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.spi.LoggingEvent;
<a name="23" href="#23">23</a>  <strong class="jxr_keyword">import</strong> org.apache.log4j.xml.DOMConfigurator;
<a name="24" href="#24">24</a>  
<a name="25" href="#25">25</a>  <strong class="jxr_keyword">import</strong> javax.jms.JMSException;
<a name="26" href="#26">26</a>  <strong class="jxr_keyword">import</strong> javax.jms.ObjectMessage;
<a name="27" href="#27">27</a>  <strong class="jxr_keyword">import</strong> javax.jms.Session;
<a name="28" href="#28">28</a>  <strong class="jxr_keyword">import</strong> javax.jms.Topic;
<a name="29" href="#29">29</a>  <strong class="jxr_keyword">import</strong> javax.jms.TopicConnection;
<a name="30" href="#30">30</a>  <strong class="jxr_keyword">import</strong> javax.jms.TopicConnectionFactory;
<a name="31" href="#31">31</a>  <strong class="jxr_keyword">import</strong> javax.jms.TopicSession;
<a name="32" href="#32">32</a>  <strong class="jxr_keyword">import</strong> javax.jms.TopicSubscriber;
<a name="33" href="#33">33</a>  <strong class="jxr_keyword">import</strong> javax.naming.Context;
<a name="34" href="#34">34</a>  <strong class="jxr_keyword">import</strong> javax.naming.InitialContext;
<a name="35" href="#35">35</a>  <strong class="jxr_keyword">import</strong> javax.naming.NameNotFoundException;
<a name="36" href="#36">36</a>  <strong class="jxr_keyword">import</strong> javax.naming.NamingException;
<a name="37" href="#37">37</a>  <strong class="jxr_keyword">import</strong> java.io.BufferedReader;
<a name="38" href="#38">38</a>  <strong class="jxr_keyword">import</strong> java.io.InputStreamReader;
<a name="39" href="#39">39</a>  
<a name="40" href="#40">40</a>  <em class="jxr_javadoccomment">/**</em>
<a name="41" href="#41">41</a>  <em class="jxr_javadoccomment"> * A simple application that consumes logging events sent by a {@link</em>
<a name="42" href="#42">42</a>  <em class="jxr_javadoccomment"> * JMSAppender}.</em>
<a name="43" href="#43">43</a>  <em class="jxr_javadoccomment"> *</em>
<a name="44" href="#44">44</a>  <em class="jxr_javadoccomment"> *</em>
<a name="45" href="#45">45</a>  <em class="jxr_javadoccomment"> * @author Ceki G&amp;uuml;lc&amp;uuml; </em>
<a name="46" href="#46">46</a>  <em class="jxr_javadoccomment"> * */</em>
<a name="47" href="#47">47</a>  <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">class</strong> <a href="../../../../org/apache/log4j/net/JMSSink.html">JMSSink</a> implements javax.jms.MessageListener {
<a name="48" href="#48">48</a>  
<a name="49" href="#49">49</a>    <strong class="jxr_keyword">static</strong> <a href="../../../../org/apache/log4j/Logger.html">Logger</a> logger = Logger.getLogger(JMSSink.<strong class="jxr_keyword">class</strong>);
<a name="50" href="#50">50</a>  
<a name="51" href="#51">51</a>    <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> main(String[] args) <strong class="jxr_keyword">throws</strong> Exception {
<a name="52" href="#52">52</a>      <strong class="jxr_keyword">if</strong>(args.length != 5) {
<a name="53" href="#53">53</a>        usage(<span class="jxr_string">"Wrong number of arguments."</span>);
<a name="54" href="#54">54</a>      }
<a name="55" href="#55">55</a>      
<a name="56" href="#56">56</a>      String tcfBindingName = args[0];
<a name="57" href="#57">57</a>      String topicBindingName = args[1];
<a name="58" href="#58">58</a>      String username = args[2];
<a name="59" href="#59">59</a>      String password = args[3];
<a name="60" href="#60">60</a>      
<a name="61" href="#61">61</a>      
<a name="62" href="#62">62</a>      String configFile = args[4];
<a name="63" href="#63">63</a>  
<a name="64" href="#64">64</a>      <strong class="jxr_keyword">if</strong>(configFile.endsWith(<span class="jxr_string">".xml"</span>)) {
<a name="65" href="#65">65</a>        DOMConfigurator.configure(configFile);
<a name="66" href="#66">66</a>      } <strong class="jxr_keyword">else</strong> {
<a name="67" href="#67">67</a>        PropertyConfigurator.configure(configFile);
<a name="68" href="#68">68</a>      }
<a name="69" href="#69">69</a>      
<a name="70" href="#70">70</a>      <strong class="jxr_keyword">new</strong> <a href="../../../../org/apache/log4j/net/JMSSink.html">JMSSink</a>(tcfBindingName, topicBindingName, username, password);
<a name="71" href="#71">71</a>  
<a name="72" href="#72">72</a>      BufferedReader stdin = <strong class="jxr_keyword">new</strong> BufferedReader(<strong class="jxr_keyword">new</strong> InputStreamReader(System.in));
<a name="73" href="#73">73</a>      <em class="jxr_comment">// Loop until the word "exit" is typed</em>
<a name="74" href="#74">74</a>      System.out.println(<span class="jxr_string">"Type \&quot;exit\&quot; to quit JMSSink."</span>);
<a name="75" href="#75">75</a>      <strong class="jxr_keyword">while</strong>(<strong class="jxr_keyword">true</strong>){
<a name="76" href="#76">76</a>        String s = stdin.readLine( );
<a name="77" href="#77">77</a>        <strong class="jxr_keyword">if</strong> (s.equalsIgnoreCase(<span class="jxr_string">"exit"</span>)) {
<a name="78" href="#78">78</a>  	System.out.println(<span class="jxr_string">"Exiting. Kill the application if it does not exit "</span>
<a name="79" href="#79">79</a>  			   + <span class="jxr_string">"due to daemon threads."</span>);
<a name="80" href="#80">80</a>  	<strong class="jxr_keyword">return</strong>; 
<a name="81" href="#81">81</a>        }
<a name="82" href="#82">82</a>      } 
<a name="83" href="#83">83</a>    }
<a name="84" href="#84">84</a>  
<a name="85" href="#85">85</a>    <strong class="jxr_keyword">public</strong> <a href="../../../../org/apache/log4j/net/JMSSink.html">JMSSink</a>( String tcfBindingName, String topicBindingName, String username,
<a name="86" href="#86">86</a>  		  String password) {
<a name="87" href="#87">87</a>      
<a name="88" href="#88">88</a>      <strong class="jxr_keyword">try</strong> {
<a name="89" href="#89">89</a>        Context ctx = <strong class="jxr_keyword">new</strong> InitialContext();
<a name="90" href="#90">90</a>        TopicConnectionFactory topicConnectionFactory;
<a name="91" href="#91">91</a>        topicConnectionFactory = (TopicConnectionFactory) lookup(ctx,
<a name="92" href="#92">92</a>                                                                 tcfBindingName);
<a name="93" href="#93">93</a>  
<a name="94" href="#94">94</a>        TopicConnection topicConnection =
<a name="95" href="#95">95</a>  	                        topicConnectionFactory.createTopicConnection(username,
<a name="96" href="#96">96</a>  									     password);
<a name="97" href="#97">97</a>        topicConnection.start();
<a name="98" href="#98">98</a>  
<a name="99" href="#99">99</a>        TopicSession topicSession = topicConnection.createTopicSession(false,
<a name="100" href="#100">100</a>                                                        Session.AUTO_ACKNOWLEDGE);
<a name="101" href="#101">101</a> 
<a name="102" href="#102">102</a>       Topic topic = (Topic)ctx.lookup(topicBindingName);
<a name="103" href="#103">103</a> 
<a name="104" href="#104">104</a>       TopicSubscriber topicSubscriber = topicSession.createSubscriber(topic);
<a name="105" href="#105">105</a>     
<a name="106" href="#106">106</a>       topicSubscriber.setMessageListener(<strong class="jxr_keyword">this</strong>);
<a name="107" href="#107">107</a> 
<a name="108" href="#108">108</a>     } <strong class="jxr_keyword">catch</strong>(JMSException e) {
<a name="109" href="#109">109</a>       logger.error(<span class="jxr_string">"Could not read JMS message."</span>, e);
<a name="110" href="#110">110</a>     } <strong class="jxr_keyword">catch</strong>(NamingException e) {
<a name="111" href="#111">111</a>       logger.error(<span class="jxr_string">"Could not read JMS message."</span>, e);
<a name="112" href="#112">112</a>     } <strong class="jxr_keyword">catch</strong>(RuntimeException e) {
<a name="113" href="#113">113</a>       logger.error(<span class="jxr_string">"Could not read JMS message."</span>, e);
<a name="114" href="#114">114</a>     }
<a name="115" href="#115">115</a>   }
<a name="116" href="#116">116</a> 
<a name="117" href="#117">117</a>   <strong class="jxr_keyword">public</strong> <strong class="jxr_keyword">void</strong> onMessage(javax.jms.Message message) {
<a name="118" href="#118">118</a>     <a href="../../../../org/apache/log4j/spi/LoggingEvent.html">LoggingEvent</a> event;
<a name="119" href="#119">119</a>     <a href="../../../../org/apache/log4j/Logger.html">Logger</a> remoteLogger;
<a name="120" href="#120">120</a> 
<a name="121" href="#121">121</a>     <strong class="jxr_keyword">try</strong> {
<a name="122" href="#122">122</a>       <strong class="jxr_keyword">if</strong>(message instanceof  ObjectMessage) {
<a name="123" href="#123">123</a> 	ObjectMessage objectMessage = (ObjectMessage) message;
<a name="124" href="#124">124</a> 	event = (LoggingEvent) objectMessage.getObject();
<a name="125" href="#125">125</a> 	remoteLogger = Logger.getLogger(event.getLoggerName());
<a name="126" href="#126">126</a> 	remoteLogger.callAppenders(event);
<a name="127" href="#127">127</a>       } <strong class="jxr_keyword">else</strong> {
<a name="128" href="#128">128</a> 	logger.warn(<span class="jxr_string">"Received message is of type "</span>+message.getJMSType()
<a name="129" href="#129">129</a> 		    +<span class="jxr_string">", was expecting ObjectMessage."</span>);
<a name="130" href="#130">130</a>       }      
<a name="131" href="#131">131</a>     } <strong class="jxr_keyword">catch</strong>(JMSException jmse) {
<a name="132" href="#132">132</a>       logger.error(<span class="jxr_string">"Exception thrown while processing incoming message."</span>, 
<a name="133" href="#133">133</a> 		   jmse);
<a name="134" href="#134">134</a>     }
<a name="135" href="#135">135</a>   }
<a name="136" href="#136">136</a> 
<a name="137" href="#137">137</a> 
<a name="138" href="#138">138</a>   <strong class="jxr_keyword">protected</strong> <strong class="jxr_keyword">static</strong> Object lookup(Context ctx, String name) <strong class="jxr_keyword">throws</strong> NamingException {
<a name="139" href="#139">139</a>     <strong class="jxr_keyword">try</strong> {
<a name="140" href="#140">140</a>       <strong class="jxr_keyword">return</strong> ctx.lookup(name);
<a name="141" href="#141">141</a>     } <strong class="jxr_keyword">catch</strong>(NameNotFoundException e) {
<a name="142" href="#142">142</a>       logger.error(<span class="jxr_string">"Could not find name ["</span>+name+<span class="jxr_string">"]."</span>);
<a name="143" href="#143">143</a>       <strong class="jxr_keyword">throw</strong> e;
<a name="144" href="#144">144</a>     }
<a name="145" href="#145">145</a>   }
<a name="146" href="#146">146</a> 
<a name="147" href="#147">147</a>   <strong class="jxr_keyword">static</strong> <strong class="jxr_keyword">void</strong> usage(String msg) {
<a name="148" href="#148">148</a>     System.err.println(msg);
<a name="149" href="#149">149</a>     System.err.println(<span class="jxr_string">"Usage: java "</span> + JMSSink.<strong class="jxr_keyword">class</strong>.getName()
<a name="150" href="#150">150</a>             + <span class="jxr_string">" TopicConnectionFactoryBindingName TopicBindingName username password configFile"</span>);
<a name="151" href="#151">151</a>     System.exit(1);
<a name="152" href="#152">152</a>   }
<a name="153" href="#153">153</a> }
</pre>
<hr/><div id="footer">This page was automatically generated by <a href="http://maven.apache.org/">Maven</a></div></body>
</html>

