[jboss-cvs] JBoss Messaging SVN: r5968 - in trunk: src/main/org/jboss/messaging/core/config and 11 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 3 07:49:01 EST 2009
Author: timfox
Date: 2009-03-03 07:49:01 -0500 (Tue, 03 Mar 2009)
New Revision: 5968
Modified:
trunk/src/config/jbm-configuration.xml
trunk/src/config/jbm-queues.xml
trunk/src/main/org/jboss/messaging/core/config/Configuration.java
trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java
trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
trunk/src/main/org/jboss/messaging/jms/client/JBossConnection.java
trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java
trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java
trunk/src/schemas/jbm-configuration.xsd
trunk/tests/config/ConfigurationTest-full-config.xml
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/SecurityTest.java
trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/TemporaryDestinationTest.java
trunk/tests/src/org/jboss/messaging/tests/stress/failover/LargeMessageMultiThreadFailoverStressTest.java
trunk/tests/src/org/jboss/messaging/tests/stress/failover/MultiThreadRandomFailoverStressTest.java
trunk/tests/src/org/jboss/messaging/tests/stress/failover/RandomFailoverStressTest.java
Log:
fix jms tests etc
Modified: trunk/src/config/jbm-configuration.xml
===================================================================
--- trunk/src/config/jbm-configuration.xml 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/config/jbm-configuration.xml 2009-03-03 12:49:01 UTC (rev 5968)
@@ -46,8 +46,10 @@
<backup>false</backup>
- <persist-count-before-delivery>false</persist-count-before-delivery>
-
+ <persist-delivery-count-before-delivery>false</persist-delivery-count-before-delivery>
+
+ <allow-route-when-no-bindings>false</allow-route-when-no-bindings>
+
<!--
<backup-connector-ref connector-name="netty-backup"/>
-->
Modified: trunk/src/config/jbm-queues.xml
===================================================================
--- trunk/src/config/jbm-queues.xml 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/config/jbm-queues.xml 2009-03-03 12:49:01 UTC (rev 5968)
@@ -54,13 +54,13 @@
</security>
<!--this will catch any word i.e. queuejms.anything-->
- <!--<security match="queuejms.^">
+ <!--<security match="queuejms.#">
<permission type="read" roles="guest,publisher"/>
<permission type="write" roles="guest,publisher"/>
</security>-->
<!--this will catch any word i.e. queuejms.anything-->
- <!--<security match="topicjms.^">
+ <!--<security match="topicjms.#">
<permission type="read" roles="guest,publisher"/>
<permission type="write" roles="guest,publisher"/>
</security>-->
Modified: trunk/src/main/org/jboss/messaging/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/config/Configuration.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -50,6 +50,10 @@
boolean isClustered();
void setClustered(boolean clustered);
+
+ boolean isAllowRouteWhenNoBindings();
+
+ void setAllowRouteWhenNoBindings(boolean allowRoute);
boolean isPersistDeliveryCountBeforeDelivery();
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/ConfigurationImpl.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -42,8 +42,10 @@
private static final long serialVersionUID = 4077088945050267843L;
public static final boolean DEFAULT_CLUSTERED = false;
+
+ public static final boolean DEFAULT_ALLOW_ROUTE_WHEN_NO_BINDINGS = true;
- public static final boolean DEFAULT_STRICT_UPDATE_DELIVERY = false;
+ public static final boolean DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY = false;
public static final boolean DEFAULT_BACKUP = false;
@@ -53,8 +55,6 @@
public static final long DEFAULT_SECURITY_INVALIDATION_INTERVAL = 10000;
- //public static final boolean DEFAULT_REQUIRE_DESTINATIONS = false;
-
public static final boolean DEFAULT_SECURITY_ENABLED = true;
public static final boolean DEFAULT_JMX_MANAGEMENT_ENABLED = true;
@@ -138,9 +138,11 @@
protected boolean clustered = DEFAULT_CLUSTERED;
protected boolean backup = DEFAULT_BACKUP;
+
+ protected boolean allowRouteWhenNoBindings;
+
+ protected boolean persistDeliveryCountBeforeDelivery = DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY;
- protected boolean persistDeliveryCountBeforeDelivery = DEFAULT_STRICT_UPDATE_DELIVERY;
-
protected long queueActivationTimeout = DEFAULT_QUEUE_ACTIVATION_TIMEOUT;
protected int scheduledThreadPoolMaxSize = DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE;
@@ -266,6 +268,17 @@
this.persistDeliveryCountBeforeDelivery = persistDeliveryCountBeforeDelivery;
}
+ public boolean isAllowRouteWhenNoBindings()
+ {
+ return allowRouteWhenNoBindings;
+ }
+
+ public void setAllowRouteWhenNoBindings(final boolean allowRoute)
+ {
+ this.allowRouteWhenNoBindings = allowRoute;
+ }
+
+
public void setBackup(final boolean backup)
{
this.backup = backup;
Modified: trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/config/impl/FileConfiguration.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -89,7 +89,9 @@
backup = getBoolean(e, "backup", backup);
- persistDeliveryCountBeforeDelivery = getBoolean(e, "persist-count-before-delivery", persistDeliveryCountBeforeDelivery);
+ persistDeliveryCountBeforeDelivery = getBoolean(e, "persist-delivery-count-before-delivery", persistDeliveryCountBeforeDelivery);
+
+ allowRouteWhenNoBindings = getBoolean(e, "allow-route-when-no-bindings", allowRouteWhenNoBindings);
queueActivationTimeout = getLong(e, "queue-activation-timeout", queueActivationTimeout);
Modified: trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/management/MessagingServerControlMBean.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -118,14 +118,6 @@
void destroyQueue(@Parameter(name = "name", desc = "Name of the queue to destroy")
String name) throws Exception;
-// @Operation(desc = "Add an address to the post office", impact = ACTION)
-// boolean addAddress(@Parameter(name = "address", desc = "The address to add")
-// String address) throws Exception;
-//
-// @Operation(desc = "Remove an address from the post office", impact = ACTION)
-// boolean removeAddress(@Parameter(name = "address", desc = "The address to remove")
-// String address) throws Exception;
-
void enableMessageCounters() throws Exception;
void disableMessageCounters() throws Exception;
Modified: trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/postoffice/impl/PostOfficeImpl.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -124,6 +124,8 @@
private final org.jboss.messaging.utils.ExecutorFactory redistributorExecutorFactory;
private final HierarchicalRepository<AddressSettings> addressSettingsRepository;
+
+ private final boolean allowRouteWhenNoBindings;
public PostOfficeImpl(final StorageManager storageManager,
final PagingManager pagingManager,
@@ -135,6 +137,7 @@
final boolean backup,
final int idCacheSize,
final boolean persistIDCache,
+ final boolean allowRouteWhenNoBindings,
final ExecutorFactory orderedExecutorFactory,
HierarchicalRepository<AddressSettings> addressSettingsRepository)
@@ -165,6 +168,8 @@
this.idCacheSize = idCacheSize;
this.persistIDCache = persistIDCache;
+
+ this.allowRouteWhenNoBindings = allowRouteWhenNoBindings;
this.redistributorExecutorFactory = orderedExecutorFactory;
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/MessagingServerImpl.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -248,6 +248,7 @@
configuration.isBackup(),
configuration.getIDCacheSize(),
configuration.isPersistIDCache(),
+ configuration.isAllowRouteWhenNoBindings(),
executorFactory,
addressSettingsRepository);
Modified: trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/core/server/impl/ServerSessionImpl.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -1301,6 +1301,9 @@
try
{
+
+ log.info("Trying to create queue address " + address + " name " + name);
+
// make sure the user has privileges to create this queue
securityStore.check(address, CheckType.CREATE, this);
Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossConnection.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossConnection.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossConnection.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -512,7 +512,7 @@
exceptionListener.onException(je);
}
-
+
return true;
}
Modified: trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/jms/client/JBossSession.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -98,6 +98,9 @@
public static final int TYPE_TOPIC_SESSION = 2;
public static final int SERVER_ACKNOWLEDGE = 4;
+
+ private static SimpleString REJECTING_FILTER = new SimpleString("_JBMX=-1");
+
// Static --------------------------------------------------------
private static final Logger log = Logger.getLogger(JBossSession.class);
@@ -510,12 +513,12 @@
}
else
{
- //SessionBindingQueryResponseMessage response = session.bindingQuery(dest.getSimpleAddress());
+ SessionBindingQueryResponseMessage response = session.bindingQuery(dest.getSimpleAddress());
-// if (!response.isExists())
-// {
-// throw new InvalidDestinationException("Topic " + dest.getName() + " does not exist");
-// }
+ if (!response.isExists())
+ {
+ throw new InvalidDestinationException("Topic " + dest.getName() + " does not exist");
+ }
SimpleString queueName;
@@ -679,7 +682,7 @@
SimpleString simpleAddress = queue.getSimpleAddress();
- session.createQueue(queue.getSimpleAddress(), queue.getSimpleAddress(), null, false, true);
+ session.createQueue(simpleAddress, simpleAddress, null, false, true);
connection.addTemporaryQueue(simpleAddress);
@@ -701,24 +704,27 @@
String topicName = UUID.randomUUID().toString();
-// try
-// {
+ try
+ {
JBossTemporaryTopic topic = new JBossTemporaryTopic(this, topicName);
SimpleString simpleAddress = topic.getSimpleAddress();
+
+ //We create a dummy subscription on the topic, that never receives messages - this is so we can perform JMS checks when routing messages to a topic that
+ //does not exist - otherwise we would not be able to distinguish from a non existent topic and one with no subscriptions - core has no notion of a topic
+
+ session.createQueue(simpleAddress, simpleAddress, REJECTING_FILTER, false, true);
-// session.addDestination(simpleAddress, false, true);
-//
-// connection.addTemporaryAddress(simpleAddress);
-
+ connection.addTemporaryQueue(simpleAddress);
+
return topic;
-// }
-// catch (MessagingException e)
-// {
-// throw JMSExceptionHelper.convertFromMessagingException(e);
-// }
+ }
+ catch (MessagingException e)
+ {
+ throw JMSExceptionHelper.convertFromMessagingException(e);
+ }
}
-
+
public void unsubscribe(final String name) throws JMSException
{
// As per spec. section 4.11
@@ -842,28 +848,28 @@
}
public void deleteTemporaryTopic(final JBossTemporaryTopic tempTopic) throws JMSException
- {
+ {
try
{
SessionBindingQueryResponseMessage response = session.bindingQuery(tempTopic.getSimpleAddress());
-
+
if (!response.isExists())
{
throw new InvalidDestinationException("Cannot delete temporary topic " + tempTopic.getName() +
" does not exist");
}
-
- if (!response.getQueueNames().isEmpty())
+
+ if (response.getQueueNames().size() > 1)
{
throw new IllegalStateException("Cannot delete temporary topic " + tempTopic.getName() +
" since it has subscribers");
}
-
+
SimpleString address = tempTopic.getSimpleAddress();
-// session.removeDestination(address, false);
-//
-// connection.removeTemporaryAddress(address);
+ session.deleteQueue(address);
+
+ connection.removeTemporaryQueue(address);
}
catch (MessagingException e)
{
Modified: trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/jms/server/impl/JMSServerManagerImpl.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -63,6 +63,8 @@
public class JMSServerManagerImpl implements JMSServerManager
{
private static final Logger log = Logger.getLogger(JMSServerManagerImpl.class);
+
+ private static final String REJECT_FILTER = "__JBMX=-1";
/**
* the context to bind to
@@ -164,6 +166,9 @@
public boolean createTopic(final String topicName, final String jndiBinding) throws Exception
{
JBossTopic jBossTopic = new JBossTopic(topicName);
+ //We create a dummy subscription on the topic, that never receives messages - this is so we can perform JMS checks when routing messages to a topic that
+ //does not exist - otherwise we would not be able to distinguish from a non existent topic and one with no subscriptions - core has no notion of a topic
+ messagingServer.createQueue(jBossTopic.getAddress(), jBossTopic.getAddress(), REJECT_FILTER, true);
boolean added = bindToJndi(jndiBinding, jBossTopic);
if (added)
{
@@ -204,6 +209,7 @@
destinations.remove(name);
managementService.unregisterTopic(name);
+ messagingServer.destroyQueue(JBossTopic.createAddressFromName(name).toString());
return true;
}
Modified: trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java
===================================================================
--- trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/main/org/jboss/messaging/jms/server/management/impl/TopicControl.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -305,10 +305,14 @@
if (binding.getType() == BindingType.LOCAL_QUEUE)
{
Queue queue = (Queue)binding.getBindable();
- if (durability == DurabilityType.ALL || (durability == DurabilityType.DURABLE && queue.isDurable()) ||
- (durability == DurabilityType.NON_DURABLE && !queue.isDurable()))
+ //Ignore the "special" subscription
+ if (!binding.getUniqueName().equals(binding.getAddress()))
{
- matchingQueues.add(queue);
+ if (durability == DurabilityType.ALL || (durability == DurabilityType.DURABLE && queue.isDurable()) ||
+ (durability == DurabilityType.NON_DURABLE && !queue.isDurable()))
+ {
+ matchingQueues.add(queue);
+ }
}
}
}
Modified: trunk/src/schemas/jbm-configuration.xsd
===================================================================
--- trunk/src/schemas/jbm-configuration.xsd 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/src/schemas/jbm-configuration.xsd 2009-03-03 12:49:01 UTC (rev 5968)
@@ -92,10 +92,13 @@
</xsd:element>
<xsd:element name="backup" type="xsd:boolean"
maxOccurs="1" minOccurs="0">
- </xsd:element>
- <xsd:element name="persist-count-before-delivery" type="xsd:boolean"
+ </xsd:element>
+ <xsd:element name="persist-delivery-count-before-delivery" type="xsd:boolean"
maxOccurs="1" minOccurs="0">
- </xsd:element>
+ </xsd:element>
+ <xsd:element name="allow-route-when-no-bindings" type="xsd:boolean"
+ maxOccurs="1" minOccurs="0">
+ </xsd:element>
<xsd:element name="backup-connector-ref"
type="backup-connectorType" maxOccurs="1" minOccurs="0">
</xsd:element>
Modified: trunk/tests/config/ConfigurationTest-full-config.xml
===================================================================
--- trunk/tests/config/ConfigurationTest-full-config.xml 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/config/ConfigurationTest-full-config.xml 2009-03-03 12:49:01 UTC (rev 5968)
@@ -23,7 +23,8 @@
</remoting-interceptors>
<queue-activation-timeout>12456</queue-activation-timeout>
<backup>true</backup>
- <persist-count-before-delivery>true</persist-count-before-delivery>
+ <persist-delivery-count-before-delivery>true</persist-delivery-count-before-delivery>
+ <allow-route-when-no-bindings>false</allow-route-when-no-bindings>
<backup-connector-ref connector-name="backup-connector"/>
<connector name="connector">
<factory-class>org.jboss.messaging.tests.unit.core.config.impl.TestConnectorFactory1</factory-class>
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/DurableSubscriptionTest.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -89,7 +89,7 @@
assertNotNull(subs);
- assertEquals(1, subs.size());
+ assertEquals(2, subs.size());
SubscriptionInfo info = subs.get(0);
@@ -101,7 +101,7 @@
subs = listAllSubscribersForTopic("Topic1");
- assertEquals(1, subs.size());
+ assertEquals(2, subs.size());
info = subs.get(0);
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/SecurityTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/SecurityTest.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/SecurityTest.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -807,12 +807,13 @@
try
{
- sess.createConsumer(dest);
+ log.info("attempting to create consumer on " + dest);
+ sess.createConsumer(dest);
return true;
}
catch (JMSSecurityException e)
{
- log.trace("Can't read destination", e);
+ log.info("Can't read destination", e);
return false;
}
finally
Modified: trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/TemporaryDestinationTest.java
===================================================================
--- trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/TemporaryDestinationTest.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/jms-tests/src/org/jboss/test/messaging/jms/TemporaryDestinationTest.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -96,13 +96,18 @@
catch (javax.jms.IllegalStateException e)
{
//Can't delete temp dest if there are open consumers
+ log.info("got exception ok");
}
log.info("closing consumer");
consumer.close();
+ log.info("closed consumer");
+
tempTopic.delete();
+
+ log.info("deleted temp topic");
}
finally
{
Modified: trunk/tests/src/org/jboss/messaging/tests/stress/failover/LargeMessageMultiThreadFailoverStressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/failover/LargeMessageMultiThreadFailoverStressTest.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/failover/LargeMessageMultiThreadFailoverStressTest.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -50,7 +50,7 @@
protected int getNumIterations()
{
- return 50;
+ return 100;
}
Modified: trunk/tests/src/org/jboss/messaging/tests/stress/failover/MultiThreadRandomFailoverStressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/failover/MultiThreadRandomFailoverStressTest.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/failover/MultiThreadRandomFailoverStressTest.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -24,7 +24,7 @@
{
protected int getNumIterations()
{
- return 50;
+ return 100;
}
}
Modified: trunk/tests/src/org/jboss/messaging/tests/stress/failover/RandomFailoverStressTest.java
===================================================================
--- trunk/tests/src/org/jboss/messaging/tests/stress/failover/RandomFailoverStressTest.java 2009-03-03 08:59:59 UTC (rev 5967)
+++ trunk/tests/src/org/jboss/messaging/tests/stress/failover/RandomFailoverStressTest.java 2009-03-03 12:49:01 UTC (rev 5968)
@@ -53,7 +53,7 @@
protected int getNumIterations()
{
- return 50;
+ return 100;
}
// Private -------------------------------------------------------
More information about the jboss-cvs-commits
mailing list