org.jboss.messaging.core.plugin.postoffice
Class DefaultPostOffice
java.lang.Object
org.jboss.messaging.core.plugin.JDBCSupport
org.jboss.messaging.core.plugin.postoffice.DefaultPostOffice
- All Implemented Interfaces:
- MessagingComponent, PostOffice
- Direct Known Subclasses:
- DefaultClusteredPostOffice
- public class DefaultPostOffice
- extends JDBCSupport
- implements PostOffice
- Version:
- $Revision: 2726 $
$Id: DefaultPostOffice.java 2726 2007-05-24 19:25:06Z timfox $
- Author:
- Tim Fox, Clebert Suconic, Ovidiu Feodorov
Constructor Summary |
DefaultPostOffice()
|
DefaultPostOffice(javax.sql.DataSource ds,
TransactionManager tm,
java.util.Properties sqlProperties,
boolean createTablesOnStartup,
int nodeId,
java.lang.String officeName,
MessageStore ms,
PersistenceManager pm,
TransactionRepository tr,
FilterFactory filterFactory,
ConditionFactory conditionFactory)
|
Method Summary |
protected void |
addBinding(Binding binding)
|
protected void |
addToConditionMap(Binding binding)
|
protected void |
addToNameMap(Binding binding)
|
Binding |
bindQueue(Condition condition,
Queue queue)
|
protected Binding |
createBinding(int nodeID,
Condition condition,
java.lang.String queueName,
long channelID,
Filter filter,
boolean durable,
boolean isClustered)
|
protected Binding |
createBinding(int nodeID,
Condition condition,
java.lang.String queueName,
long channelID,
java.lang.String filterString,
boolean durable,
boolean isClustered)
|
protected boolean |
deleteBinding(int parameterNodeId,
java.lang.String queueName)
|
Binding |
getBindingforChannelId(long channelId)
|
Binding |
getBindingForQueueName(java.lang.String queueName)
Get the binding for the specified queue name. |
java.util.Collection |
getBindingsForCondition(Condition condition)
List the bindings that match the specified condition |
protected java.util.Map |
getDefaultDDLStatements()
|
protected java.util.Map |
getDefaultDMLStatements()
|
java.lang.String |
getOfficeName()
|
protected void |
insertBinding(Binding binding)
|
protected Binding |
internalGetBindingForQueueName(java.lang.String queueName)
Internal methods (e.g. |
boolean |
isLocal()
|
protected java.util.Collection |
listBindingsForConditionInternal(Condition condition,
boolean localOnly)
|
protected void |
loadBindings(boolean nonClusteredOnly)
|
java.lang.String |
printBindingInformation()
|
protected Binding |
removeBinding(int nodeId,
java.lang.String queueName)
|
protected void |
removeFromConditionMap(Binding binding)
|
protected Binding |
removeFromNameMap(int nodeId,
java.lang.String queueName)
|
boolean |
route(MessageReference ref,
Condition condition,
Transaction tx)
Route a reference. |
void |
start()
|
void |
stop()
|
void |
stop(boolean sendNotification)
|
java.lang.String |
toString()
|
Binding |
unbindQueue(java.lang.String queueName)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
ms
protected MessageStore ms
pm
protected PersistenceManager pm
tr
protected TransactionRepository tr
filterFactory
protected FilterFactory filterFactory
conditionFactory
protected ConditionFactory conditionFactory
currentNodeId
protected int currentNodeId
nameMaps
protected java.util.Map nameMaps
conditionMap
protected java.util.Map conditionMap
lock
protected ReadWriteLock lock
DefaultPostOffice
public DefaultPostOffice()
DefaultPostOffice
public DefaultPostOffice(javax.sql.DataSource ds,
TransactionManager tm,
java.util.Properties sqlProperties,
boolean createTablesOnStartup,
int nodeId,
java.lang.String officeName,
MessageStore ms,
PersistenceManager pm,
TransactionRepository tr,
FilterFactory filterFactory,
ConditionFactory conditionFactory)
start
public void start()
throws java.lang.Exception
- Specified by:
start
in interface MessagingComponent
- Overrides:
start
in class JDBCSupport
- Throws:
java.lang.Exception
stop
public void stop()
throws java.lang.Exception
- Specified by:
stop
in interface MessagingComponent
- Overrides:
stop
in class JDBCSupport
- Throws:
java.lang.Exception
stop
public void stop(boolean sendNotification)
throws java.lang.Exception
- Throws:
java.lang.Exception
getOfficeName
public java.lang.String getOfficeName()
- Specified by:
getOfficeName
in interface PostOffice
bindQueue
public Binding bindQueue(Condition condition,
Queue queue)
throws java.lang.Exception
- Specified by:
bindQueue
in interface PostOffice
- Throws:
java.lang.Exception
unbindQueue
public Binding unbindQueue(java.lang.String queueName)
throws java.lang.Throwable
- Specified by:
unbindQueue
in interface PostOffice
- Throws:
java.lang.Throwable
getBindingsForCondition
public java.util.Collection getBindingsForCondition(Condition condition)
throws java.lang.Exception
- Description copied from interface:
PostOffice
- List the bindings that match the specified condition
- Specified by:
getBindingsForCondition
in interface PostOffice
- Throws:
java.lang.Exception
getBindingForQueueName
public Binding getBindingForQueueName(java.lang.String queueName)
throws java.lang.Exception
- Description copied from interface:
PostOffice
- Get the binding for the specified queue name.
- Specified by:
getBindingForQueueName
in interface PostOffice
- Throws:
java.lang.Exception
route
public boolean route(MessageReference ref,
Condition condition,
Transaction tx)
throws java.lang.Exception
- Description copied from interface:
PostOffice
- Route a reference.
- Specified by:
route
in interface PostOffice
- Parameters:
condition
- - the message will be routed to a queue if specified condition matches the
condition of the binding.tx
- - the transaction or null if not in the context of a transaction.
- Returns:
- true if reference was accepted by at least one queue.
- Throws:
java.lang.Exception
isLocal
public boolean isLocal()
- Specified by:
isLocal
in interface PostOffice
- Returns:
- true if it is a non clustered post office
getBindingforChannelId
public Binding getBindingforChannelId(long channelId)
throws java.lang.Exception
- Specified by:
getBindingforChannelId
in interface PostOffice
- Throws:
java.lang.Exception
printBindingInformation
public java.lang.String printBindingInformation()
toString
public java.lang.String toString()
internalGetBindingForQueueName
protected Binding internalGetBindingForQueueName(java.lang.String queueName)
- Internal methods (e.g. failOver) will already hold a lock and will need to call
getBindingForQueueNames() without a lock. (Also... I dind't move this method to the protected
section of the code as this is related to getBindingForQueueNames).
listBindingsForConditionInternal
protected java.util.Collection listBindingsForConditionInternal(Condition condition,
boolean localOnly)
throws java.lang.Exception
- Throws:
java.lang.Exception
loadBindings
protected void loadBindings(boolean nonClusteredOnly)
throws java.lang.Exception
- Throws:
java.lang.Exception
createBinding
protected Binding createBinding(int nodeID,
Condition condition,
java.lang.String queueName,
long channelID,
java.lang.String filterString,
boolean durable,
boolean isClustered)
throws java.lang.Exception
- Throws:
java.lang.Exception
createBinding
protected Binding createBinding(int nodeID,
Condition condition,
java.lang.String queueName,
long channelID,
Filter filter,
boolean durable,
boolean isClustered)
insertBinding
protected void insertBinding(Binding binding)
throws java.lang.Exception
- Throws:
java.lang.Exception
deleteBinding
protected boolean deleteBinding(int parameterNodeId,
java.lang.String queueName)
throws java.lang.Exception
- Throws:
java.lang.Exception
addBinding
protected void addBinding(Binding binding)
removeBinding
protected Binding removeBinding(int nodeId,
java.lang.String queueName)
addToNameMap
protected void addToNameMap(Binding binding)
addToConditionMap
protected void addToConditionMap(Binding binding)
removeFromNameMap
protected Binding removeFromNameMap(int nodeId,
java.lang.String queueName)
removeFromConditionMap
protected void removeFromConditionMap(Binding binding)
getDefaultDMLStatements
protected java.util.Map getDefaultDMLStatements()
- Overrides:
getDefaultDMLStatements
in class JDBCSupport
getDefaultDDLStatements
protected java.util.Map getDefaultDDLStatements()
- Overrides:
getDefaultDDLStatements
in class JDBCSupport
Copyright © 2006 JBoss Inc. All Rights Reserved.