org.apache.log4j.net
Class JMSReceiver

java.lang.Object
  extended by org.apache.log4j.spi.ComponentBase
      extended by org.apache.log4j.plugins.PluginSkeleton
          extended by org.apache.log4j.plugins.Receiver
              extended by org.apache.log4j.net.JMSReceiver
All Implemented Interfaces:
javax.jms.MessageListener, org.apache.log4j.plugins.Plugin, org.apache.log4j.spi.Component, org.apache.log4j.spi.OptionHandler, org.apache.log4j.spi.Thresholdable

public class JMSReceiver
extends org.apache.log4j.plugins.Receiver
implements javax.jms.MessageListener

JMSReceiver receives a remote logging event on a configured JSM topic and "posts" it to a LoggerRepository as if the event was generated locally. This class is designed to receive events from the JMSAppender class (or classes that send compatible events).

Once the event has been "posted", it will be handled by the appenders currently configured in the LoggerRespository.

This implementation borrows heavily from the JMSSink implementation.

Author:
Mark Womack, Paul Smith, Stephen Pain

Field Summary
protected  java.lang.String jndiPath
           
protected  java.lang.String password
           
protected  javax.jms.TopicConnection topicConnection
           
protected  java.lang.String topicFactoryName
           
protected  java.lang.String topicName
           
protected  java.lang.String userId
           
 
Fields inherited from class org.apache.log4j.plugins.Receiver
thresholdLevel
 
Fields inherited from class org.apache.log4j.plugins.PluginSkeleton
name
 
Fields inherited from class org.apache.log4j.spi.ComponentBase
repository
 
Constructor Summary
JMSReceiver()
           
JMSReceiver(java.lang.String _topicFactoryName, java.lang.String _topicName, java.lang.String _userId, java.lang.String _password, java.lang.String _jndiPath)
           
 
Method Summary
 void activateOptions()
          Starts the JMSReceiver with the current options.
 java.lang.String getJndiPath()
          Gets the path to a properties file containing the initial context and jndi provider url
 java.lang.String getPassword()
          Gets the curernt password property.
 java.lang.String getTopicFactoryName()
          Gets the curernt JMS topic factory name property.
 java.lang.String getTopicName()
          Gets the curernt JMS topic name property.
 java.lang.String getUserId()
          Gets the current user id property.
 boolean isActive()
          Returns true if this receiver is active.
 boolean isEquivalent(org.apache.log4j.plugins.Plugin testPlugin)
          Returns true if the receiver is the same class and they are configured for the same properties, and super class also considers them to be equivalent.
protected  java.lang.Object lookup(javax.naming.Context ctx, java.lang.String name)
           
 void onMessage(javax.jms.Message message)
           
protected  void setActive(boolean _active)
          Sets the flag to indicate if receiver is active or not.
 void setJndiPath(java.lang.String _jndiPath)
          Sets the path to a properties file containing the initial context and jndi provider url
 void setPassword(java.lang.String _password)
          Sets the password to use when creating the JMS connection.
 void setTopicFactoryName(java.lang.String _topicFactoryName)
          Sets the JMS topic factory name to use when creating the JMS connection.
 void setTopicName(java.lang.String _topicName)
          Sets the JMS topic name to use when creating the JMS connection.
 void setUserId(java.lang.String _userId)
          Sets the user id to use when creating the JMS connection.
 void shutdown()
          Called when the receiver should be stopped.
 
Methods inherited from class org.apache.log4j.plugins.Receiver
doPost, getThreshold, isAsSevereAsThreshold, setThreshold
 
Methods inherited from class org.apache.log4j.plugins.PluginSkeleton
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getLoggerRepository, getName, removePropertyChangeListener, removePropertyChangeListener, setLoggerRepository, setName
 
Methods inherited from class org.apache.log4j.spi.ComponentBase
getLogger, getNonFloodingLogger, resetErrorCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

topicFactoryName

protected java.lang.String topicFactoryName

topicName

protected java.lang.String topicName

userId

protected java.lang.String userId

password

protected java.lang.String password

topicConnection

protected javax.jms.TopicConnection topicConnection

jndiPath

protected java.lang.String jndiPath
Constructor Detail

JMSReceiver

public JMSReceiver()

JMSReceiver

public JMSReceiver(java.lang.String _topicFactoryName,
                   java.lang.String _topicName,
                   java.lang.String _userId,
                   java.lang.String _password,
                   java.lang.String _jndiPath)
Method Detail

setJndiPath

public void setJndiPath(java.lang.String _jndiPath)
Sets the path to a properties file containing the initial context and jndi provider url


getJndiPath

public java.lang.String getJndiPath()
Gets the path to a properties file containing the initial context and jndi provider url


setTopicFactoryName

public void setTopicFactoryName(java.lang.String _topicFactoryName)
Sets the JMS topic factory name to use when creating the JMS connection.


getTopicFactoryName

public java.lang.String getTopicFactoryName()
Gets the curernt JMS topic factory name property.


setTopicName

public void setTopicName(java.lang.String _topicName)
Sets the JMS topic name to use when creating the JMS connection.


getTopicName

public java.lang.String getTopicName()
Gets the curernt JMS topic name property.


setUserId

public void setUserId(java.lang.String _userId)
Sets the user id to use when creating the JMS connection.


getUserId

public java.lang.String getUserId()
Gets the current user id property.


setPassword

public void setPassword(java.lang.String _password)
Sets the password to use when creating the JMS connection.


getPassword

public java.lang.String getPassword()
Gets the curernt password property.


isEquivalent

public boolean isEquivalent(org.apache.log4j.plugins.Plugin testPlugin)
Returns true if the receiver is the same class and they are configured for the same properties, and super class also considers them to be equivalent. This is used by PluginRegistry when determining if the a similarly configured receiver is being started.

Specified by:
isEquivalent in interface org.apache.log4j.plugins.Plugin
Overrides:
isEquivalent in class org.apache.log4j.plugins.PluginSkeleton
Parameters:
testPlugin - The plugin to test equivalency against.
Returns:
boolean True if the testPlugin is equivalent to this plugin.

isActive

public boolean isActive()
Returns true if this receiver is active.

Specified by:
isActive in interface org.apache.log4j.plugins.Plugin
Overrides:
isActive in class org.apache.log4j.plugins.PluginSkeleton

setActive

protected void setActive(boolean _active)
Sets the flag to indicate if receiver is active or not.


activateOptions

public void activateOptions()
Starts the JMSReceiver with the current options.

Specified by:
activateOptions in interface org.apache.log4j.spi.OptionHandler

shutdown

public void shutdown()
Called when the receiver should be stopped.

Specified by:
shutdown in interface org.apache.log4j.plugins.Plugin

onMessage

public void onMessage(javax.jms.Message message)
Specified by:
onMessage in interface javax.jms.MessageListener

lookup

protected java.lang.Object lookup(javax.naming.Context ctx,
                                  java.lang.String name)
                           throws javax.naming.NamingException
Throws:
javax.naming.NamingException


Copyright © 2007 Apache Software Foundation. All Rights Reserved.