JBoss hornetq SVN: r7913 - trunk/src/main/org/hornetq/core/asyncio.
by do-not-reply@jboss.org
Author: clebert.suconic(a)jboss.com
Date: 2009-08-25 16:13:48 -0400 (Tue, 25 Aug 2009)
New Revision: 7913
Modified:
trunk/src/main/org/hornetq/core/asyncio/AIOCallback.java
Log:
just a small tweak on javadoc
Modified: trunk/src/main/org/hornetq/core/asyncio/AIOCallback.java
===================================================================
--- trunk/src/main/org/hornetq/core/asyncio/AIOCallback.java 2009-08-25 15:29:32 UTC (rev 7912)
+++ trunk/src/main/org/hornetq/core/asyncio/AIOCallback.java 2009-08-25 20:13:48 UTC (rev 7913)
@@ -14,15 +14,19 @@
package org.hornetq.core.asyncio;
/**
- * The interface used AIO Callbacks.
+ * The interface used for AIO Callbacks.
* @author clebert.suconic(a)jboss.com
*
*/
public interface AIOCallback
{
- /** Leave this method as soon as possible, or you would be blocking the whole notification thread */
+ /**
+ * Method for sync notifications. When this callback method is called, there is a guarantee the data is written on the disk.
+ * <br><b>Note:</b><i>Leave this method as soon as possible, or you would be blocking the whole notification thread</i> */
void done();
- /** Observation: The whole file will be probably failing if this happens. Like, if you delete the file, you will start to get errors for these operations*/
+ /**
+ * Method for error notifications.
+ * Observation: The whole file will be probably failing if this happens. Like, if you delete the file, you will start to get errors for these operations*/
void onError(int errorCode, String errorMessage);
}
14 years, 8 months
JBoss hornetq SVN: r7912 - in trunk: src/main/org/hornetq/core/server/impl and 1 other directories.
by do-not-reply@jboss.org
Author: timfox
Date: 2009-08-25 11:29:32 -0400 (Tue, 25 Aug 2009)
New Revision: 7912
Modified:
trunk/src/main/org/hornetq/core/client/impl/ClientConsumerImpl.java
trunk/src/main/org/hornetq/core/client/impl/ClientConsumerInternal.java
trunk/src/main/org/hornetq/core/client/impl/ClientSessionImpl.java
trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java
Log:
https://jira.jboss.org/jira/browse/HORNETQ-111
Modified: trunk/src/main/org/hornetq/core/client/impl/ClientConsumerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/client/impl/ClientConsumerImpl.java 2009-08-25 11:24:46 UTC (rev 7911)
+++ trunk/src/main/org/hornetq/core/client/impl/ClientConsumerImpl.java 2009-08-25 15:29:32 UTC (rev 7912)
@@ -71,8 +71,6 @@
private final Runner runner = new Runner();
- private ClientMessageInternal currentChunkMessage;
-
private LargeMessageBufferImpl currentLargeMessageBuffer;
// When receiving LargeMessages, the user may choose to not read the body, on this case we need to discard the body
@@ -407,7 +405,7 @@
// Flow control for the first packet, we will have others
flowControl(packet.getPacketSize(), false);
- currentChunkMessage = new ClientMessageImpl(packet.getDeliveryCount());
+ ClientMessageInternal currentChunkMessage = new ClientMessageImpl(packet.getDeliveryCount());
currentChunkMessage.decodeProperties(ChannelBuffers.wrappedBuffer(packet.getLargeMessageHeader()));
@@ -441,12 +439,21 @@
currentLargeMessageBuffer.addPacket(chunk);
}
- public void clear()
+ public void clear() throws HornetQException
{
synchronized (this)
{
+ //Need to send credits for the messages in the buffer
+
+ for (ClientMessageInternal message: this.buffer)
+ {
+ flowControlBeforeConsumption(message);
+ }
+
buffer.clear();
}
+
+ //Need to send credits for the messages in the buffer
waitForOnMessageToComplete();
}
@@ -484,7 +491,7 @@
}
/**
- * flow control is synchornized because of LargeMessage and streaming.
+ *
* LargeMessageBuffer will call flowcontrol here, while other handleMessage will also be calling flowControl.
* So, this operation needs to be atomic.
*
@@ -498,7 +505,6 @@
if (creditsToSend >= clientWindowSize)
{
-
if (clientWindowSize == 0 && discountSlowConsumer)
{
if (trace)
Modified: trunk/src/main/org/hornetq/core/client/impl/ClientConsumerInternal.java
===================================================================
--- trunk/src/main/org/hornetq/core/client/impl/ClientConsumerInternal.java 2009-08-25 11:24:46 UTC (rev 7911)
+++ trunk/src/main/org/hornetq/core/client/impl/ClientConsumerInternal.java 2009-08-25 15:29:32 UTC (rev 7912)
@@ -38,7 +38,7 @@
void flowControl(final int messageBytes, final boolean discountSlowConsumer) throws HornetQException;
- void clear();
+ void clear() throws HornetQException;
int getClientWindowSize();
Modified: trunk/src/main/org/hornetq/core/client/impl/ClientSessionImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/client/impl/ClientSessionImpl.java 2009-08-25 11:24:46 UTC (rev 7911)
+++ trunk/src/main/org/hornetq/core/client/impl/ClientSessionImpl.java 2009-08-25 15:29:32 UTC (rev 7912)
@@ -1204,6 +1204,8 @@
if (windowSize != 0)
{
+ log.info("Sending " + windowSize + " initial credits");
+
channel.send(new SessionConsumerFlowCreditMessage(consumerID, windowSize));
}
Modified: trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java 2009-08-25 11:24:46 UTC (rev 7911)
+++ trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java 2009-08-25 15:29:32 UTC (rev 7912)
@@ -558,6 +558,7 @@
{
if (availableCredits != null && availableCredits.get() <= 0)
{
+ // log.info("busy - available credits is " + availableCredits.get());
return HandleStatus.BUSY;
}
Modified: trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java 2009-08-25 11:24:46 UTC (rev 7911)
+++ trunk/tests/src/org/hornetq/tests/integration/client/ConsumerTest.java 2009-08-25 15:29:32 UTC (rev 7912)
@@ -15,6 +15,8 @@
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
+import javax.jms.ObjectMessage;
+
import org.hornetq.core.client.ClientConsumer;
import org.hornetq.core.client.ClientMessage;
import org.hornetq.core.client.ClientProducer;
@@ -64,8 +66,6 @@
super.tearDown();
}
-
-
public void testConsumerAckImmediateAutoCommitTrue() throws Exception
{
ClientSessionFactory sf = createInVMFactory();
@@ -93,10 +93,8 @@
assertEquals("m" + i, message2.getBody().readString());
}
// assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
session.close();
}
@@ -129,10 +127,8 @@
assertEquals("m" + i, message2.getBody().readString());
}
// assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
session.close();
}
@@ -169,10 +165,8 @@
}
}
// assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
session.close();
}
@@ -209,17 +203,13 @@
}
}
// assert that all the messages are there and none have been acked
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
session.close();
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
- assertEquals(0,
- ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getDeliveringCount());
+ assertEquals(0, ((Queue)server.getPostOffice().getBinding(QUEUE).getBindable()).getMessageCount());
}
public void testAcksWithSmallSendWindow() throws Exception
@@ -246,7 +236,7 @@
{
public boolean intercept(Packet packet, RemotingConnection connection) throws HornetQException
{
- if(packet.getType() == PacketImpl.SESS_ACKNOWLEDGE)
+ if (packet.getType() == PacketImpl.SESS_ACKNOWLEDGE)
{
latch.countDown();
}
@@ -276,7 +266,7 @@
assertTrue(latch.await(5, TimeUnit.SECONDS));
sessionRec.close();
}
-
+
public void testClearListener() throws Exception
{
ClientSessionFactory sf = createInVMFactory();
@@ -286,7 +276,7 @@
session.createQueue(QUEUE, QUEUE, null, false);
ClientConsumer consumer = session.createConsumer(QUEUE);
-
+
consumer.setMessageHandler(new MessageHandler()
{
public void onMessage(ClientMessage msg)
@@ -297,7 +287,7 @@
consumer.setMessageHandler(null);
consumer.receiveImmediate();
}
-
+
public void testNoReceiveWithListener() throws Exception
{
ClientSessionFactory sf = createInVMFactory();
@@ -307,7 +297,7 @@
session.createQueue(QUEUE, QUEUE, null, false);
ClientConsumer consumer = session.createConsumer(QUEUE);
-
+
consumer.setMessageHandler(new MessageHandler()
{
public void onMessage(ClientMessage msg)
@@ -324,7 +314,7 @@
{
if (me.getCode() == HornetQException.ILLEGAL_STATE)
{
- //Ok
+ // Ok
}
else
{
@@ -333,4 +323,123 @@
}
}
+ // https://jira.jboss.org/jira/browse/HORNETQ-111
+ // Test that, on rollback credits are released for messages cleared in the buffer
+ public void testConsumerCreditsOnRollback() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ sf.setConsumerWindowSize(10000);
+
+ ClientSession session = sf.createTransactedSession();
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ final byte[] bytes = new byte[1000];
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = session.createClientMessage(false);
+
+ message.getBody().writeBytes(bytes);
+
+ message.putIntProperty("count", i);
+
+ producer.send(message);
+ }
+
+ session.commit();
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ session.start();
+
+ int commited = 0;
+ int rollbacked = 0;
+ for (int i = 0; i < 110; i++)
+ {
+ ClientMessage message = (ClientMessage)consumer.receive();
+
+ int count = (Integer)message.getProperty("count");
+
+ boolean redelivered = message.getDeliveryCount() > 1;
+
+ if (count % 2 == 0 && !redelivered)
+ {
+ session.rollback();
+ rollbacked++;
+ }
+ else
+ {
+ session.commit();
+ commited++;
+ }
+ }
+
+ session.close();
+ }
+
+ // https://jira.jboss.org/jira/browse/HORNETQ-111
+ // Test that, on rollback credits are released for messages cleared in the buffer
+ public void testConsumerCreditsOnRollbackLargeMessages() throws Exception
+ {
+ ClientSessionFactory sf = createInVMFactory();
+
+ sf.setConsumerWindowSize(10000);
+ sf.setMinLargeMessageSize(1000);
+
+ ClientSession session = sf.createTransactedSession();
+
+ session.createQueue(QUEUE, QUEUE, null, false);
+
+ ClientProducer producer = session.createProducer(QUEUE);
+
+ final int numMessages = 100;
+
+ final byte[] bytes = new byte[10000];
+
+ for (int i = 0; i < numMessages; i++)
+ {
+ ClientMessage message = session.createClientMessage(false);
+
+ message.getBody().writeBytes(bytes);
+
+ message.putIntProperty("count", i);
+
+ producer.send(message);
+ }
+
+ session.commit();
+
+ ClientConsumer consumer = session.createConsumer(QUEUE);
+ session.start();
+
+ int commited = 0;
+ int rollbacked = 0;
+ for (int i = 0; i < 110; i++)
+ {
+ ClientMessage message = (ClientMessage)consumer.receive();
+
+ int count = (Integer)message.getProperty("count");
+
+ boolean redelivered = message.getDeliveryCount() > 1;
+
+ if (count % 2 == 0 && !redelivered)
+ {
+ session.rollback();
+ rollbacked++;
+ }
+ else
+ {
+ session.commit();
+ commited++;
+ }
+ }
+
+ session.close();
+ }
+
}
14 years, 8 months
JBoss hornetq SVN: r7911 - trunk/tests/src/org/hornetq/tests/integration/management.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2009-08-25 07:24:46 -0400 (Tue, 25 Aug 2009)
New Revision: 7911
Modified:
trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java
Log:
upped sleep in test
Modified: trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java 2009-08-25 10:12:07 UTC (rev 7910)
+++ trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java 2009-08-25 11:24:46 UTC (rev 7911)
@@ -332,7 +332,7 @@
assertEquals(1, array.length());
assertEquals(intValue, array.getJSONObject(0).get("key"));
- Thread.sleep(delay);
+ Thread.sleep(delay + 500);
jsonString = queueControl.listScheduledMessagesAsJSON();
assertNotNull(jsonString);
14 years, 8 months
JBoss hornetq SVN: r7910 - trunk/tests/src/org/hornetq/tests/integration/jms.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2009-08-25 06:12:07 -0400 (Tue, 25 Aug 2009)
New Revision: 7910
Modified:
trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java
Log:
Manual Reconnection test
* checked that the client reconnects to the server after it is restarted
Modified: trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java 2009-08-24 14:56:53 UTC (rev 7909)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java 2009-08-25 10:12:07 UTC (rev 7910)
@@ -85,6 +85,8 @@
private CountDownLatch exceptionLatch = new CountDownLatch(1);
+ private CountDownLatch reconnectionLatch = new CountDownLatch(1);
+
private boolean afterRestart = false;
private boolean receivedMessagesAfterRestart = false;
@@ -157,6 +159,8 @@
Thread.sleep(5000);
restartServer();
afterRestart = true;
+ boolean clientReconnected = reconnectionLatch.await(10, SECONDS);
+ assertTrue("client did not reconnect after server was restarted", clientReconnected);
}
}
@@ -327,6 +331,7 @@
consumer = session.createConsumer(topic);
consumer.setMessageListener(listener);
connection.start();
+ reconnectionLatch.countDown();
}
catch (Exception e)
{
14 years, 8 months
JBoss hornetq SVN: r7909 - trunk.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2009-08-24 10:56:53 -0400 (Mon, 24 Aug 2009)
New Revision: 7909
Modified:
trunk/build-hornetq.xml
Log:
lower-cased ${module.name}?\194?\160used to name the builds
Modified: trunk/build-hornetq.xml
===================================================================
--- trunk/build-hornetq.xml 2009-08-24 12:23:53 UTC (rev 7908)
+++ trunk/build-hornetq.xml 2009-08-24 14:56:53 UTC (rev 7909)
@@ -28,7 +28,7 @@
<!-- Module name(s) & version -->
<!-- ======================================================================================== -->
- <property name="module.name" value="HornetQ"/>
+ <property name="module.name" value="hornetq"/>
<!-- Version properties are read from hornetq-version.properties instead of duplicating them here -->
<property file="src/config/common/hornetq-version.properties"/>
<property name="hornetq.version.revision" value="0" />
14 years, 8 months
JBoss hornetq SVN: r7908 - trunk/src/main/org/hornetq/jms/client.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2009-08-24 08:23:53 -0400 (Mon, 24 Aug 2009)
New Revision: 7908
Modified:
trunk/src/main/org/hornetq/jms/client/HornetQMessage.java
Log:
fixed HornetQMessage.toString() method
Modified: trunk/src/main/org/hornetq/jms/client/HornetQMessage.java
===================================================================
--- trunk/src/main/org/hornetq/jms/client/HornetQMessage.java 2009-08-24 12:21:46 UTC (rev 7907)
+++ trunk/src/main/org/hornetq/jms/client/HornetQMessage.java 2009-08-24 12:23:53 UTC (rev 7908)
@@ -1264,8 +1264,7 @@
public String toString()
{
- StringBuffer sb = new StringBuffer("HornetQRAMessage[");
- sb.append("");
+ StringBuffer sb = new StringBuffer("HornetQMessage[");
sb.append(getJMSMessageID());
sb.append("]:");
sb.append(message.isDurable() ? "PERSISTENT" : "NON-PERSISTENT");
14 years, 8 months
JBoss hornetq SVN: r7907 - in trunk/examples: jms/ssl-enabled and 1 other directory.
by do-not-reply@jboss.org
Author: jmesnil
Date: 2009-08-24 08:21:46 -0400 (Mon, 24 Aug 2009)
New Revision: 7907
Modified:
trunk/examples/javaee/servlet-ssl/readme.html
trunk/examples/jms/ssl-enabled/readme.html
Log:
SSL examples
* put commands to create the stores in the footnotes
Modified: trunk/examples/javaee/servlet-ssl/readme.html
===================================================================
--- trunk/examples/javaee/servlet-ssl/readme.html 2009-08-24 12:18:56 UTC (rev 7906)
+++ trunk/examples/javaee/servlet-ssl/readme.html 2009-08-24 12:21:46 UTC (rev 7907)
@@ -11,15 +11,12 @@
<h2>JBoss AS configuration</h2>
<p>Please refer to HornetQ Quickstart guide to <a href="../../../docs/quickstart-guide/en/html_single/index.html#installation.jboss">install it in JBoss AS 5<a></p>
+
+ <h2>Example Configuration</h2>
+
+ <p>In the configuration, the hornetq.example.keystore is the key store file holding client certificate. The hornetq.example.truststore
+ is the file for server to hold trusted client certificates. They are pre-generated for illustration purpose<a id="fnr1" href="#fn1"><sup>1</sup></a>.</p>
- <!-- Commands to generate the stores:
- * create the keystore:
- keytool -genkey -keystore hornetq.example.keystore -storepass hornetqexample
- * export the certificate:
- keytool -export -keystore hornetq.example.keystore -file hornetq.cer
- * create the truststore:
- keytool -import -file hornetq.cer -keystore hornetq.example.truststore -storepass hornetqexample
- -->
<h2>Example step-by-step</h2>
<p><em>To deploy and start the server, type <code>ant deploy</code>from the example directory</br >
@@ -98,9 +95,19 @@
}
}</code>
</pre>
+ </ol>
+
+ <hr>
-
-
+ <ol>
+ <li><a id="fn1">The stores were generating using the following commands <a href="#fnr1">↩</a>:
+ <ul>
+ <li>create the keystore: <code>keytool -genkey -keystore hornetq.example.keystore -storepass hornetqexample</code>
+ <li>export the certificate: <code>keytool -export -keystore hornetq.example.keystore -file hornetq.cer</code>
+ <li>create the truststore: <code>keytool -import -file hornetq.cer -keystore hornetq.example.truststore -storepass hornetqexample</code>
+ </ul>
+ </li>
</ol>
+
</body>
</html>
Modified: trunk/examples/jms/ssl-enabled/readme.html
===================================================================
--- trunk/examples/jms/ssl-enabled/readme.html 2009-08-24 12:18:56 UTC (rev 7906)
+++ trunk/examples/jms/ssl-enabled/readme.html 2009-08-24 12:21:46 UTC (rev 7907)
@@ -43,17 +43,8 @@
</p>
<p>In the configuration, the hornetq.example.keystore is the key store file holding client certificate. The hornetq.example.truststore
- is the file for server to hold trusted client certificates. They are pre-generated for illustration purpose.</p>
+ is the file for server to hold trusted client certificates. They are pre-generated for illustration purpose<a id="fnr1" href="#fn1"><sup>1</sup></a>.</p>
- <!-- Commands to generate the stores:
- * create the keystore:
- keytool -genkey -keystore hornetq.example.keystore -storepass hornetqexample
- * export the certificate:
- keytool -export -keystore hornetq.example.keystore -file hornetq.cer
- * create the truststore:
- keytool -import -file hornetq.cer -keystore hornetq.example.truststore -storepass hornetqexample
- -->
-
<br>
<h2>Example step-by-step</h2>
<p><i>To run the example, simply type <code>ant</code> from this directory</i></p>
@@ -129,9 +120,19 @@
}
}</code>
</pre>
-
-
-
</ol>
+
+ <hr>
+
+ <ol>
+ <li><a id="fn1">The stores were generating using the following commands <a href="#fnr1">↩</a>:
+ <ul>
+ <li>create the keystore: <code>keytool -genkey -keystore hornetq.example.keystore -storepass hornetqexample</code>
+ <li>export the certificate: <code>keytool -export -keystore hornetq.example.keystore -file hornetq.cer</code>
+ <li>create the truststore: <code>keytool -import -file hornetq.cer -keystore hornetq.example.truststore -storepass hornetqexample</code>
+ </ul>
+ </li>
+ </ol>
+
</body>
</html>
\ No newline at end of file
14 years, 8 months
JBoss hornetq SVN: r7906 - tags.
by do-not-reply@jboss.org
Author: ataylor
Date: 2009-08-24 08:18:56 -0400 (Mon, 24 Aug 2009)
New Revision: 7906
Removed:
tags/HornetQ_2_0_0_Beta5_pending/
Log:
deleting pending tag
14 years, 8 months
JBoss hornetq SVN: r7905 - tags.
by do-not-reply@jboss.org
Author: ataylor
Date: 2009-08-24 06:55:20 -0400 (Mon, 24 Aug 2009)
New Revision: 7905
Added:
tags/HornetQ_2_0_0_Beta5/
Log:
created tag for HornetQ 2.0.0 Beta5
Copied: tags/HornetQ_2_0_0_Beta5 (from rev 7904, tags/HornetQ_2_0_0_Beta5_pending)
14 years, 8 months
JBoss hornetq SVN: r7904 - tags.
by do-not-reply@jboss.org
Author: ataylor
Date: 2009-08-24 05:16:46 -0400 (Mon, 24 Aug 2009)
New Revision: 7904
Added:
tags/HornetQ_2_0_0_Beta5_pending/
Log:
created pending tag for HornetQ 2.0.0 Beta5
Copied: tags/HornetQ_2_0_0_Beta5_pending (from rev 7903, trunk)
14 years, 8 months