update Apache NMS libraries to svn revision 685750

This commit is contained in:
markpollack
2008-08-14 04:08:18 +00:00
parent e7cd2b530d
commit cd7ee2a268
8 changed files with 243 additions and 27 deletions

View File

@@ -43,6 +43,8 @@ namespace Spring.Messaging.Nms.Connections
private TimeSpan timeToLive;
private TimeSpan requestTimeout;
/// <summary>
/// Initializes a new instance of the <see cref="CachedMessageProducer"/> class.
@@ -198,6 +200,17 @@ namespace Spring.Messaging.Nms.Connections
set { timeToLive = value; }
}
/// <summary>
/// Gets or sets the request timeout for the message producer.
/// </summary>
/// <value>The request timeout.</value>
public TimeSpan RequestTimeout
{
get { return requestTimeout; }
set { requestTimeout = value; }
}
/// <summary>
/// Gets or sets the priority of messages sent with this producer.
/// </summary>
@@ -253,7 +266,7 @@ namespace Spring.Messaging.Nms.Connections
/// <summary>
/// Reset properties.
/// </summary>
public void Dispose()
public void Close()
{
// It's a cached MessageProducer... reset properties only.
if (originalDisableMessageID != null)
@@ -268,6 +281,14 @@ namespace Spring.Messaging.Nms.Connections
}
}
/// <summary>
/// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
/// </summary>
public void Dispose()
{
target.Dispose();
}
/// <summary>
/// Returns string indicated this is a wrapped MessageProducer

View File

@@ -18,6 +18,7 @@
#endregion
using System;
using System.Collections;
using Apache.NMS;
using Common.Logging;
@@ -125,7 +126,7 @@ namespace Spring.Messaging.Nms.Connections
/// Creates the producer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <returns></returns>
/// <returns>A message producer.</returns>
public IMessageProducer CreateProducer(IDestination destination)
{
if (shouldCacheProducers)
@@ -165,6 +166,19 @@ namespace Spring.Messaging.Nms.Connections
}
}
/// <summary>
/// Creates the producer given the destinaton and requst timeout, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>The message producer</returns>
public IMessageProducer CreateProducer(IDestination destination, TimeSpan requestTimeout)
{
LOG.Warn("RequestTimeout for Producers created from CachedSession not yet supported");
return CreateProducer(destination, requestTimeout);
}
/// <summary>
/// If have not yet reached session cache size, cache the session, otherwise
/// dispose of all cached message producers and close the session.
@@ -256,46 +270,88 @@ namespace Spring.Messaging.Nms.Connections
}
/// <summary>
/// Creates the consumer.
/// Creates the consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <returns></returns>
/// <returns>A message consumer</returns>
public IMessageConsumer CreateConsumer(IDestination destination)
{
return CreateConsumer(destination, null, false, null);
}
/// <summary>
/// Creates the consumer.
/// Creates the consumer for the given destinaton and request timeout, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>A message consumer</returns>
public IMessageConsumer CreateConsumer(IDestination destination, TimeSpan requestTimeout)
{
LOG.Warn("RequestTimeout not yet supported in CachedSesion.");
return CreateConsumer(destination, null, false, null);
}
/// <summary>
/// Creates the consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="selector">The selector.</param>
/// <returns></returns>
/// <returns>A message consumer</returns>
public IMessageConsumer CreateConsumer(IDestination destination, string selector)
{
return CreateConsumer(destination, selector, false, null);
}
/// <summary>
/// Creates the consumer.
/// Creates the consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="selector">The selector.</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>A message consumer.</returns>
public IMessageConsumer CreateConsumer(IDestination destination, string selector, TimeSpan requestTimeout)
{
LOG.Warn("RequestTimeout not yet supported in CachedSesion.");
return CreateConsumer(destination, selector, false, null);
}
/// <summary>
/// Creates the consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="selector">The selector.</param>
/// <param name="noLocal">if set to <c>true</c> [no local].</param>
/// <returns></returns>
/// <returns>A message consumer.</returns>
public IMessageConsumer CreateConsumer(IDestination destination, string selector, bool noLocal)
{
return CreateConsumer(destination, selector, noLocal, null);
}
/// <summary>
/// Creates the durable consumer.
/// Creates the consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="selector">The selector.</param>
/// <param name="noLocal">if set to <c>true</c> [no local].</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>A message consumer</returns>
public IMessageConsumer CreateConsumer(IDestination destination, string selector, bool noLocal,
TimeSpan requestTimeout)
{
LOG.Warn("RequestTimeout not yet supported in CachedSesion.");
return CreateConsumer(destination, selector, noLocal, null);
}
/// <summary>
/// Creates the durable consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="subscription">The name of the durable subscription.</param>
/// <param name="selector">The selector.</param>
/// <param name="noLocal">if set to <c>true</c> [no local].</param>
/// <returns></returns>
/// <returns>A message consumer</returns>
public IMessageConsumer CreateDurableConsumer(ITopic destination, string subscription, string selector, bool noLocal)
{
this.transactionOpen = true;
@@ -309,6 +365,43 @@ namespace Spring.Messaging.Nms.Connections
}
}
/// <summary>
/// Creates the durable consumer, potentially returning a cached instance.
/// </summary>
/// <param name="destination">The destination.</param>
/// <param name="name">The name.</param>
/// <param name="selector">The selector.</param>
/// <param name="noLocal">if set to <c>true</c> [no local].</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>A message consumer</returns>
public IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal,
TimeSpan requestTimeout)
{
LOG.Warn("RequestTimeout not yet supported in CachedSesion.");
return CreateDurableConsumer(destination, name, selector, noLocal);
}
/// <summary>
/// Deletes the durable consumer.
/// </summary>
/// <param name="name">The name.</param>
public void DeleteDurableConsumer(string name)
{
throw new NotImplementedException();
}
/// <summary>
/// Deletes the durable consumer.
/// </summary>
/// <param name="name">The name.</param>
/// <param name="requestTimeout">The request timeout.</param>
public void DeleteDurableConsumer(string name, TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
/// <summary>
/// Creates the consumer.
/// </summary>

View File

@@ -252,6 +252,24 @@ namespace Spring.Messaging.Nms.Connections
return session;
}
/// <summary>
/// Template method for obtaining a (potentially cached) Session.
/// </summary>
/// <param name="con">The connection to operate on.</param>
/// <param name="mode">The session ack mode.</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>
/// the Session to use, or <code>null</code> to indicate
/// creation of a raw standard Session
/// </returns>
public override ISession GetSession(IConnection con, AcknowledgementMode mode, TimeSpan requestTimeout)
{
ISession session = GetSession(con, mode);
LOG.Warn("RequestTimeout parameter not yet supported in CachingConnectionFactory");
return session;
}
/// <summary>
/// Wraps the given Session so that it delegates every method call to the target session but
/// adapts close calls. This is useful for allowing application code to

View File

@@ -325,6 +325,21 @@ namespace Spring.Messaging.Nms.Connections
return null;
}
/// <summary>
/// Template method for obtaining a (potentially cached) Session.
/// </summary>
/// <param name="con">The connection to operate on.</param>
/// <param name="mode">The session ack mode.</param>
/// <param name="requestTimeout">The request timeout.</param>
/// <returns>
/// the Session to use, or <code>null</code> to indicate
/// creation of a raw standard Session
/// </returns>
public virtual ISession GetSession(IConnection con, AcknowledgementMode mode, TimeSpan requestTimeout)
{
return null;
}
/// <summary>
/// reate a JMS Connection via this template's ConnectionFactory.
/// </summary>
@@ -489,6 +504,17 @@ namespace Spring.Messaging.Nms.Connections
return target.CreateSession(acknowledgementMode);
}
public ISession CreateSession(AcknowledgementMode acknowledgementMode, TimeSpan requestTimeout)
{
ISession session = singleConnectionFactory.GetSession(target, acknowledgementMode, requestTimeout);
if (session != null)
{
return session;
}
return target.CreateSession(acknowledgementMode, requestTimeout);
}
#region Pass through implementations to the target connection

View File

@@ -48,9 +48,9 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Messaging\Nms\SessionDelegate.cs" />
<Compile Include="Messaging\Nms\Config\MessageListenerContainerObjectDefinitionParser.cs" />
<Compile Include="Messaging\Nms\Config\NmsNamespaceParser.cs" />
<Compile Include="Messaging\Nms\Connections\CachedMessageConsumer .cs" />
<Compile Include="Messaging\Nms\Connections\CachedMessageProducer.cs" />
<Compile Include="Messaging\Nms\Connections\CachedSession.cs" />
<Compile Include="Messaging\Nms\Connections\CachingConnectionFactory.cs" />
@@ -58,35 +58,39 @@
<Compile Include="Messaging\Nms\Connections\ConnectionFactoryUtils.cs" />
<Compile Include="Messaging\Nms\Connections\IDecoratorSession.cs" />
<Compile Include="Messaging\Nms\Connections\ISmartConnectionFactory.cs" />
<Compile Include="Messaging\Nms\Connections\MessageResourceHolder.cs" />
<Compile Include="Messaging\Nms\Connections\MessageTransactionManager.cs" />
<Compile Include="Messaging\Nms\Connections\NmsResourceHolder.cs" />
<Compile Include="Messaging\Nms\Connections\NmsTransactionManager.cs" />
<Compile Include="Messaging\Nms\Connections\SingleConnectionFactory.cs" />
<Compile Include="Messaging\Nms\Connections\SynchedLocalTransactionFailedException.cs" />
<Compile Include="Messaging\Nms\IExceptionListener.cs" />
<Compile Include="Messaging\Nms\IMessageCreator.cs" />
<Compile Include="Messaging\Nms\IMessageListener.cs" />
<Compile Include="Messaging\Nms\IMessageOperations.cs" />
<Compile Include="Messaging\Nms\IMessagePostProcessor.cs" />
<Compile Include="Messaging\Nms\IProducerCallback.cs" />
<Compile Include="Messaging\Nms\ISessionCallback.cs" />
<Compile Include="Messaging\Nms\Core\IExceptionListener.cs" />
<Compile Include="Messaging\Nms\Core\IMessageCreator.cs" />
<Compile Include="Messaging\Nms\Core\IMessageListener.cs" />
<Compile Include="Messaging\Nms\Core\IMessagePostProcessor.cs" />
<Compile Include="Messaging\Nms\Core\INmsOperations.cs" />
<Compile Include="Messaging\Nms\Core\IProducerCallback.cs" />
<Compile Include="Messaging\Nms\Core\ISessionCallback.cs" />
<Compile Include="Messaging\Nms\Core\MessageCreatorDelegate.cs" />
<Compile Include="Messaging\Nms\Core\MessagePostProcessorDelegate.cs" />
<Compile Include="Messaging\Nms\Core\NmsGatewaySupport.cs" />
<Compile Include="Messaging\Nms\Core\NmsTemplate.cs" />
<Compile Include="Messaging\Nms\Core\ProducerDelegate.cs" />
<Compile Include="Messaging\Nms\Core\SessionDelegate.cs" />
<Compile Include="Messaging\Nms\Listener\AbstractListenerContainer.cs" />
<Compile Include="Messaging\Nms\Listener\AbstractMessageListenerContainer.cs" />
<Compile Include="Messaging\Nms\Listener\Adapter\ListenerExecutionFailedException.cs" />
<Compile Include="Messaging\Nms\Listener\Adapter\MessageListenerAdapter.cs" />
<Compile Include="Messaging\Nms\Listener\ISessionAwareMessageListener.cs" />
<Compile Include="Messaging\Nms\Listener\LocallyExposedMessageResourceHolder.cs" />
<Compile Include="Messaging\Nms\Listener\LocallyExposedNmsResourceHolder.cs" />
<Compile Include="Messaging\Nms\Listener\RecoveryTimeExceededException.cs" />
<Compile Include="Messaging\Nms\Listener\SimpleMessageListenerContainer.cs" />
<Compile Include="Messaging\Nms\MessageCreatorDelegate.cs" />
<Compile Include="Messaging\Nms\MessageTemplate.cs" />
<Compile Include="Messaging\Nms\MessagingGatewaySupport.cs" />
<Compile Include="Messaging\Nms\Support\Converter\IMessageConverter.cs" />
<Compile Include="Messaging\Nms\Support\Converter\MessageConversionException.cs" />
<Compile Include="Messaging\Nms\Support\Converter\SimpleMessageConverter.cs" />
<Compile Include="Messaging\Nms\Support\Destinations\DynamicDestinationResolver.cs" />
<Compile Include="Messaging\Nms\Support\Destinations\IDestinationResolver.cs" />
<Compile Include="Messaging\Nms\Support\Destinations\MessageDestinationAccessor.cs" />
<Compile Include="Messaging\Nms\Support\MessageAccessor.cs" />
<Compile Include="Messaging\Nms\Support\Destinations\NmsDestinationAccessor.cs" />
<Compile Include="Messaging\Nms\Support\MessageUtils.cs" />
<Compile Include="Messaging\Nms\Support\NmsAccessor.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Spring.Aop\Spring.Aop.2008.csproj">

View File

@@ -33,6 +33,11 @@ namespace Spring.Messaging.Nms.Connections
return new TestSession();
}
public ISession CreateSession(AcknowledgementMode acknowledgementMode, TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public void Close()
{
closeCount++;

View File

@@ -27,7 +27,8 @@ namespace Spring.Messaging.Nms.Connections
public class TestMessageProducer : IMessageProducer
{
private bool persistent;
private TimeSpan timeToLive = new TimeSpan(0,0,0,60,0);
private TimeSpan timeToLive = new TimeSpan(0,0,0,60,0);
private TimeSpan requestTimeout;
public void Send(IMessage message)
{
@@ -49,6 +50,11 @@ namespace Spring.Messaging.Nms.Connections
throw new NotImplementedException();
}
public void Close()
{
throw new NotImplementedException();
}
public IMessage CreateMessage()
{
throw new NotImplementedException();
@@ -96,6 +102,12 @@ namespace Spring.Messaging.Nms.Connections
set { timeToLive = value; }
}
public TimeSpan RequestTimeout
{
get { return requestTimeout; }
set { requestTimeout = value; }
}
public byte Priority
{
get { return 1; }

View File

@@ -59,11 +59,21 @@ namespace Spring.Messaging.Nms.Connections
return new TestMessageProducer();
}
public IMessageProducer CreateProducer(IDestination destination, TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateConsumer(IDestination destination)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateConsumer(IDestination destination, TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateConsumer(IDestination destination, string selector)
{
//IConnectionFactory connectionFactory = (IConnectionFactory)mocks.CreateMock(typeof(IConnectionFactory));
@@ -71,16 +81,43 @@ namespace Spring.Messaging.Nms.Connections
return msgConsumer;
}
public IMessageConsumer CreateConsumer(IDestination destination, string selector, TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateConsumer(IDestination destination, string selector, bool noLocal)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateConsumer(IDestination destination, string selector, bool noLocal,
TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal)
{
throw new NotImplementedException();
}
public IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal,
TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public void DeleteDurableConsumer(string name)
{
throw new NotImplementedException();
}
public void DeleteDurableConsumer(string name, TimeSpan requestTimeout)
{
throw new NotImplementedException();
}
public IQueue GetQueue(string name)
{
return new ActiveMQQueue(name);