You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by ch...@apache.org on 2006/03/05 09:29:09 UTC
svn commit: r383295 [4/4] - in /incubator/activemq/trunk/openwire-dotnet:
src/ src/ActiveMQ/ src/ActiveMQ/Commands/ src/ActiveMQ/OpenWire/
src/ActiveMQ/OpenWire/Commands/ src/ActiveMQ/OpenWire/V1/
src/ActiveMQ/Transport/ src/JMS/ tests/ tests/ActiveMQ/...
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessage.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessage.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessage.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessage.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,169 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+
+
+/// <summary>
+/// Represents a message either to be sent to a message broker or received from a message broker
+/// </summary>
+namespace JMS
+{
+ public interface IMessage
+ {
+
+ /// <summary>
+ /// If using client acknowledgement mode on the session then this method will acknowledge that the
+ /// message has been processed correctly.
+ /// </summary>
+ void Acknowledge();
+
+ /// <summary>
+ /// Provides access to the message properties (headers)
+ /// </summary>
+ IPrimitiveMap Properties
+ {
+ get;
+ }
+
+ /// <summary>
+ /// The correlation ID used to correlate messages from conversations or long running business processes
+ /// </summary>
+ string JMSCorrelationID
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// The destination of the message
+ /// </summary>
+ IDestination JMSDestination
+ {
+ get;
+ }
+
+ /// <summary>
+ /// The time in milliseconds that this message should expire in
+ /// </summary>
+ long JMSExpiration
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// The message ID which is set by the provider
+ /// </summary>
+ string JMSMessageId
+ {
+ get;
+ }
+
+ /// <summary>
+ /// Whether or not this message is persistent
+ /// </summary>
+ bool JMSPersistent
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// The Priority on this message
+ /// </summary>
+ byte JMSPriority
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// Returns true if this message has been redelivered to this or another consumer before being acknowledged successfully.
+ /// </summary>
+ bool JMSRedelivered
+ {
+ get;
+ }
+
+
+ /// <summary>
+ /// The destination that the consumer of this message should send replies to
+ /// </summary>
+ IDestination JMSReplyTo
+ {
+ get;
+ set;
+ }
+
+
+ /// <summary>
+ /// The timestamp the broker added to the message
+ /// </summary>
+ long JMSTimestamp
+ {
+ get;
+ }
+
+ /// <summary>
+ /// The type name of this message
+ /// </summary>
+ string JMSType
+ {
+ get;
+ set;
+ }
+
+
+ // JMS Extension headers
+
+ /// <summary>
+ /// Returns the number of times this message has been redelivered to other consumers without being acknowledged successfully.
+ /// </summary>
+ int JMSXDeliveryCount
+ {
+ get;
+ }
+
+
+ /// <summary>
+ /// The Message Group ID used to group messages together to the same consumer for the same group ID value
+ /// </summary>
+ string JMSXGroupID
+ {
+ get;
+ set;
+ }
+ /// <summary>
+ /// The Message Group Sequence counter to indicate the position in a group
+ /// </summary>
+ int JMSXGroupSeq
+ {
+ get;
+ set;
+ }
+
+ /// <summary>
+ /// Returns the ID of the producers transaction
+ /// </summary>
+ string JMSXProducerTXID
+ {
+ get;
+ }
+
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageConsumer.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageConsumer.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageConsumer.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageConsumer.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using System;
+
+
+namespace JMS
+{
+ public delegate void MessageListener(IMessage message);
+}
+
+/// <summary>
+/// A consumer of messages
+/// </summary>
+namespace JMS
+{
+ public interface IMessageConsumer : IDisposable
+ {
+
+ /// <summary>
+ /// Waits until a message is available and returns it
+ /// </summary>
+ IMessage Receive();
+
+ /// <summary>
+ /// If a message is available within the timeout duration it is returned otherwise this method returns null
+ /// </summary>
+ IMessage Receive(int timeout);
+
+ /// <summary>
+ /// If a message is available immediately it is returned otherwise this method returns null
+ /// </summary>
+ IMessage ReceiveNoWait();
+
+ /// <summary>
+ /// An asynchronous listener which can be used to consume messages asynchronously
+ /// </summary>
+ event MessageListener Listener;
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageProducer.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageProducer.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageProducer.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IMessageProducer.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using System;
+
+
+/// <summary>
+/// An object capable of sending messages to some destination
+/// </summary>
+namespace JMS
+{
+ public interface IMessageProducer : IDisposable
+ {
+
+ /// <summary>
+ /// Sends the message to the default destination for this producer
+ /// </summary>
+ void Send(IMessage message);
+
+ /// <summary>
+ /// Sends the message to the given destination
+ /// </summary>
+ void Send(IDestination destination, IMessage message);
+
+ bool Persistent
+ {
+ get;
+ set;
+ }
+
+ long TimeToLive
+ {
+ get;
+ set;
+ }
+
+ int Priority
+ {
+ get;
+ set;
+ }
+
+ bool DisableMessageID
+ {
+ get;
+ set;
+ }
+
+ bool DisableMessageTimestamp
+ {
+ get;
+ set;
+ }
+
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IPrimitiveMap.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IPrimitiveMap.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IPrimitiveMap.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IPrimitiveMap.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,85 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using System.Collections;
+
+
+/// <summary>
+/// Represents a Map of primitive types where the keys are all string instances
+/// and the values are strings or numbers.
+/// </summary>
+namespace JMS
+{
+ public interface IPrimitiveMap
+ {
+
+ void Clear();
+
+ bool Contains(object key);
+
+ void Remove(object key);
+
+ int Count
+ {
+ get;
+ }
+
+ ICollection Keys
+ {
+ get;
+ }
+
+ ICollection Values
+ {
+ get;
+ }
+
+ object this[string key]
+ {
+ get;
+ set;
+ }
+
+ string GetString(string key);
+ void SetString(string key, string value);
+
+ bool GetBool(string key);
+ void SetByte(string key, bool value);
+
+ byte GetByte(string key);
+ void SetByte(string key, byte value);
+
+ char GetChar(string key);
+ void SetChar(string key, char value);
+
+ short GetShort(string key);
+ void SetShort(string key, short value);
+
+ int GetInt(string key);
+ void SetInt(string key, int value);
+
+ long GetLong(string key);
+ void SetLong(string key, long value);
+
+ float GetFloat(string key);
+ void SetFloat(string key, float value);
+
+ double GetDouble(string key);
+ void SetDouble(string key, double value);
+
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IQueue.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IQueue.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IQueue.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IQueue.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using System;
+
+
+/// <summary>
+/// Summary description for IQueue.
+/// </summary>
+namespace JMS
+{
+ public interface IQueue : IDestination
+ {
+
+ String QueueName
+ {
+ get;
+ }
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/ISession.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/ISession.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/ISession.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/ISession.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using System;
+
+
+/// <summary>
+/// Represents a single unit of work on an IConnection.
+/// So the ISession can be used to perform transactional receive and sends
+/// </summary>
+namespace JMS
+{
+ public interface ISession : IDisposable
+ {
+
+ /// <summary>
+ /// Creates a producer of messages
+ /// </summary>
+ IMessageProducer CreateProducer();
+
+ /// <summary>
+ /// Creates a producer of messages on a given destination
+ /// </summary>
+ IMessageProducer CreateProducer(IDestination destination);
+
+ /// <summary>
+ /// Creates a consumer of messages on a given destination
+ /// </summary>
+ IMessageConsumer CreateConsumer(IDestination destination);
+
+ /// <summary>
+ /// Creates a consumer of messages on a given destination with a selector
+ /// </summary>
+ IMessageConsumer CreateConsumer(IDestination destination, string selector);
+
+ /// <summary>
+ /// Creates a named durable consumer of messages on a given destination with a selector
+ /// </summary>
+ IMessageConsumer CreateDurableConsumer(ITopic destination, string name, string selector, bool noLocal);
+
+ /// <summary>
+ /// Returns the queue for the given name
+ /// </summary>
+ IQueue GetQueue(string name);
+
+ /// <summary>
+ /// Returns the topic for the given name
+ /// </summary>
+ ITopic GetTopic(string name);
+
+
+ /// <summary>
+ /// Creates a temporary queue
+ /// </summary>
+ ITemporaryQueue CreateTemporaryQueue();
+
+ /// <summary>
+ /// Creates a temporary topic
+ /// </summary>
+ ITemporaryTopic CreateTemporaryTopic();
+
+
+ // Factory methods to create messages
+
+ /// <summary>
+ /// Creates a new message with an empty body
+ /// </summary>
+ IMessage CreateMessage();
+
+ /// <summary>
+ /// Creates a new text message with an empty body
+ /// </summary>
+ ITextMessage CreateTextMessage();
+
+ /// <summary>
+ /// Creates a new text message with the given body
+ /// </summary>
+ ITextMessage CreateTextMessage(string text);
+
+ /// <summary>
+ /// Creates a new Map message which contains primitive key and value pairs
+ /// </summary>
+ IMapMessage CreateMapMessage();
+
+ /// <summary>
+ /// Creates a new binary message
+ /// </summary>
+ IBytesMessage CreateBytesMessage();
+
+ /// <summary>
+ /// Creates a new binary message with the given body
+ /// </summary>
+ IBytesMessage CreateBytesMessage(byte[] body);
+
+
+ // Transaction methods
+
+ /// <summary>
+ /// If this is a transactional session then commit all message
+ /// send and acknowledgements for producers and consumers in this session
+ /// </summary>
+ void Commit();
+
+ /// <summary>
+ /// If this is a transactional session then rollback all message
+ /// send and acknowledgements for producers and consumers in this session
+ /// </summary>
+ void Rollback();
+
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IStartable.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IStartable.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IStartable.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IStartable.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+namespace JMS
+{
+ public interface IStartable
+ {
+ void Start();
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/IStoppable.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/IStoppable.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/IStoppable.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/IStoppable.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+namespace JMS
+{
+ public interface IStoppable
+ {
+ void Stop();
+ }
+}
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryQueue.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryQueue.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryQueue.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryQueue.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+
+
+/// <summary>
+/// Summary description for ITemporaryQueue.
+/// </summary>
+namespace JMS
+{
+ public interface ITemporaryQueue : IDestination
+ {
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryTopic.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryTopic.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryTopic.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/ITemporaryTopic.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+
+
+/// <summary>
+/// Summary description for TemporaryTopic.
+/// </summary>
+namespace JMS
+{
+ public interface ITemporaryTopic : IDestination
+ {
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/ITextMessage.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/ITextMessage.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/ITextMessage.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/ITextMessage.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+
+
+/// <summary>
+/// Represents a text based message
+/// </summary>
+namespace JMS
+{
+ public interface ITextMessage : IMessage
+ {
+
+ string Text
+ {
+ get;
+ set;
+ }
+ }
+}
+
Added: incubator/activemq/trunk/openwire-dotnet/src/JMS/ITopic.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/JMS/ITopic.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/JMS/ITopic.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/src/JMS/ITopic.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using System;
+
+
+/// <summary>
+/// Summary description for ITopic.
+/// </summary>
+namespace JMS
+{
+ public interface ITopic : IDestination
+ {
+
+ String TopicName
+ {
+ get;
+ }
+ }
+}
+
Modified: incubator/activemq/trunk/openwire-dotnet/src/src.csproj
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/src/src.csproj?rev=383295&r1=383294&r2=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/src/src.csproj (original)
+++ incubator/activemq/trunk/openwire-dotnet/src/src.csproj Sun Mar 5 00:28:53 2006
@@ -34,27 +34,63 @@
<Import Project="$(MSBuildBinPath)\Microsoft.CSHARP.Targets"/>
<ItemGroup>
<Compile Include="ActiveMQ\BrokerException.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQBytesMessage.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQDestination.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQMapMessage.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQMessage.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQObjectMessage.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQQueue.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQStreamMessage.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQTempDestination.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQTempQueue.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQTempTopic.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQTextMessage.cs"/>
+ <Compile Include="ActiveMQ\Commands\ActiveMQTopic.cs"/>
+ <Compile Include="ActiveMQ\Commands\BaseCommand.cs"/>
+ <Compile Include="ActiveMQ\Commands\BrokerId.cs"/>
+ <Compile Include="ActiveMQ\Commands\BrokerInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\ConnectionError.cs"/>
+ <Compile Include="ActiveMQ\Commands\ConnectionId.cs"/>
+ <Compile Include="ActiveMQ\Commands\ConnectionInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\ConsumerId.cs"/>
+ <Compile Include="ActiveMQ\Commands\ConsumerInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\ControlCommand.cs"/>
+ <Compile Include="ActiveMQ\Commands\DataArrayResponse.cs"/>
+ <Compile Include="ActiveMQ\Commands\DataResponse.cs"/>
+ <Compile Include="ActiveMQ\Commands\DestinationInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\DiscoveryEvent.cs"/>
+ <Compile Include="ActiveMQ\Commands\ExceptionResponse.cs"/>
+ <Compile Include="ActiveMQ\Commands\FlushCommand.cs"/>
+ <Compile Include="ActiveMQ\Commands\IntegerResponse.cs"/>
+ <Compile Include="ActiveMQ\Commands\JournalQueueAck.cs"/>
+ <Compile Include="ActiveMQ\Commands\JournalTopicAck.cs"/>
+ <Compile Include="ActiveMQ\Commands\JournalTrace.cs"/>
+ <Compile Include="ActiveMQ\Commands\JournalTransaction.cs"/>
+ <Compile Include="ActiveMQ\Commands\KeepAliveInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\LocalTransactionId.cs"/>
+ <Compile Include="ActiveMQ\Commands\Message.cs"/>
+ <Compile Include="ActiveMQ\Commands\MessageAck.cs"/>
+ <Compile Include="ActiveMQ\Commands\MessageDispatch.cs"/>
+ <Compile Include="ActiveMQ\Commands\MessageDispatchNotification.cs"/>
+ <Compile Include="ActiveMQ\Commands\MessageId.cs"/>
+ <Compile Include="ActiveMQ\Commands\ProducerId.cs"/>
+ <Compile Include="ActiveMQ\Commands\ProducerInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\RemoveInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\RemoveSubscriptionInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\Response.cs"/>
+ <Compile Include="ActiveMQ\Commands\SessionId.cs"/>
+ <Compile Include="ActiveMQ\Commands\SessionInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\ShutdownInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\SubscriptionInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\TransactionId.cs"/>
+ <Compile Include="ActiveMQ\Commands\TransactionInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\WireFormatInfo.cs"/>
+ <Compile Include="ActiveMQ\Commands\XATransactionId.cs"/>
<Compile Include="ActiveMQ\Connection.cs"/>
<Compile Include="ActiveMQ\ConnectionClosedException.cs"/>
<Compile Include="ActiveMQ\ConnectionFactory.cs"/>
<Compile Include="ActiveMQ\ConsumerClosedException.cs"/>
<Compile Include="ActiveMQ\DestinationFilter.cs"/>
- <Compile Include="ActiveMQ\IBytesMessage.cs"/>
- <Compile Include="ActiveMQ\IConnection.cs"/>
- <Compile Include="ActiveMQ\IConnectionFactory.cs"/>
- <Compile Include="ActiveMQ\IDestination.cs"/>
- <Compile Include="ActiveMQ\IMapMessage.cs"/>
- <Compile Include="ActiveMQ\IMessage.cs"/>
- <Compile Include="ActiveMQ\IMessageConsumer.cs"/>
- <Compile Include="ActiveMQ\IMessageProducer.cs"/>
- <Compile Include="ActiveMQ\IPrimitiveMap.cs"/>
- <Compile Include="ActiveMQ\IQueue.cs"/>
- <Compile Include="ActiveMQ\ISession.cs"/>
- <Compile Include="ActiveMQ\IStartable.cs"/>
- <Compile Include="ActiveMQ\ITemporaryQueue.cs"/>
- <Compile Include="ActiveMQ\ITemporaryTopic.cs"/>
- <Compile Include="ActiveMQ\ITextMessage.cs"/>
- <Compile Include="ActiveMQ\ITopic.cs"/>
<Compile Include="ActiveMQ\MessageConsumer.cs"/>
<Compile Include="ActiveMQ\MessageProducer.cs"/>
<Compile Include="ActiveMQ\OpenWire\AbstractCommand.cs"/>
@@ -62,70 +98,15 @@
<Compile Include="ActiveMQ\OpenWire\BooleanStream.cs"/>
<Compile Include="ActiveMQ\OpenWire\BrokerError.cs"/>
<Compile Include="ActiveMQ\OpenWire\Command.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQBytesMessage.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQDestination.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQMapMessage.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQMessage.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQObjectMessage.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQQueue.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQStreamMessage.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQTempDestination.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQTempQueue.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQTempTopic.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQTextMessage.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ActiveMQTopic.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\BaseCommand.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\BrokerId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\BrokerInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ConnectionError.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ConnectionId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ConnectionInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ConsumerId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ConsumerInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ControlCommand.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\DataArrayResponse.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\DataResponse.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\DestinationInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\DiscoveryEvent.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ExceptionResponse.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\FlushCommand.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\IntegerResponse.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\JournalQueueAck.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\JournalTopicAck.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\JournalTrace.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\JournalTransaction.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\KeepAliveInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\LocalTransactionId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\Message.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\MessageAck.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\MessageDispatch.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\MessageDispatchNotification.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\MessageId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ProducerId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ProducerInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\RemoveInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\RemoveSubscriptionInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\Response.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\SessionId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\SessionInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\ShutdownInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\SubscriptionInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\TransactionId.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\TransactionInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\WireFormatInfo.cs"/>
- <Compile Include="ActiveMQ\OpenWire\Commands\XATransactionId.cs"/>
<Compile Include="ActiveMQ\OpenWire\DataStructure.cs"/>
<Compile Include="ActiveMQ\OpenWire\DataStructureSupport.cs"/>
<Compile Include="ActiveMQ\OpenWire\Dispatcher.cs"/>
<Compile Include="ActiveMQ\OpenWire\FutureResponse.cs"/>
<Compile Include="ActiveMQ\OpenWire\ISynchronization.cs"/>
- <Compile Include="ActiveMQ\OpenWire\ITransport.cs"/>
<Compile Include="ActiveMQ\OpenWire\MarshallAware.cs"/>
<Compile Include="ActiveMQ\OpenWire\MessagePropertyHelper.cs"/>
<Compile Include="ActiveMQ\OpenWire\OpenWireFormat.cs"/>
<Compile Include="ActiveMQ\OpenWire\PrimitiveMap.cs"/>
- <Compile Include="ActiveMQ\OpenWire\SocketTransport.cs"/>
- <Compile Include="ActiveMQ\OpenWire\TransactionContext.cs"/>
<Compile Include="ActiveMQ\OpenWire\V1\ActiveMQBytesMessageMarshaller.cs"/>
<Compile Include="ActiveMQ\OpenWire\V1\ActiveMQDestinationMarshaller.cs"/>
<Compile Include="ActiveMQ\OpenWire\V1\ActiveMQMapMessageMarshaller.cs"/>
@@ -182,5 +163,25 @@
<Compile Include="ActiveMQ\OpenWire\V1\XATransactionIdMarshaller.cs"/>
<Compile Include="ActiveMQ\OpenWireException.cs"/>
<Compile Include="ActiveMQ\Session.cs"/>
+ <Compile Include="ActiveMQ\TransactionContext.cs"/>
+ <Compile Include="ActiveMQ\Transport\ITransport.cs"/>
+ <Compile Include="ActiveMQ\Transport\SocketTransport.cs"/>
+ <Compile Include="JMS\IBytesMessage.cs"/>
+ <Compile Include="JMS\IConnection.cs"/>
+ <Compile Include="JMS\IConnectionFactory.cs"/>
+ <Compile Include="JMS\IDestination.cs"/>
+ <Compile Include="JMS\IMapMessage.cs"/>
+ <Compile Include="JMS\IMessage.cs"/>
+ <Compile Include="JMS\IMessageConsumer.cs"/>
+ <Compile Include="JMS\IMessageProducer.cs"/>
+ <Compile Include="JMS\IPrimitiveMap.cs"/>
+ <Compile Include="JMS\IQueue.cs"/>
+ <Compile Include="JMS\ISession.cs"/>
+ <Compile Include="JMS\IStartable.cs"/>
+ <Compile Include="JMS\IStoppable.cs"/>
+ <Compile Include="JMS\ITemporaryQueue.cs"/>
+ <Compile Include="JMS\ITemporaryTopic.cs"/>
+ <Compile Include="JMS\ITextMessage.cs"/>
+ <Compile Include="JMS\ITopic.cs"/>
</ItemGroup>
</Project>
Copied: incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/Commands/CommandTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/CommandTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/Commands/CommandTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/Commands/CommandTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/CommandTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/CommandTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/Commands/CommandTest.cs Sun Mar 5 00:28:53 2006
@@ -14,15 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+using ActiveMQ.Commands;
using NUnit.Framework;
using System.Collections;
-using ActiveMQ.OpenWire;
-using ActiveMQ.OpenWire.Commands;
-namespace ActiveMQ
+namespace ActiveMQ.Commands
{
- [TestFixture]
+ [TestFixture]
public class CommandTest
{
@@ -61,3 +60,4 @@
}
}
}
+
Modified: incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/BooleanStreamTest.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/BooleanStreamTest.cs?rev=383295&r1=383294&r2=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/BooleanStreamTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/BooleanStreamTest.cs Sun Mar 5 00:28:53 2006
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+using JMS;
+using NUnit.Framework;
using System;
using System.IO;
-using NUnit.Framework;
-
namespace ActiveMQ.OpenWire
{
[TestFixture]
- public class BooleanStreamTest : TestSupport
+ public class BooleanStreamTest
{
protected OpenWireFormat openWireformat;
protected int endOfStreamMarker = 0x12345678;
Copied: incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/EndianTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/EndianTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/EndianTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/EndianTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/EndianTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/EndianTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/OpenWire/EndianTest.cs Sun Mar 5 00:28:53 2006
@@ -14,15 +14,14 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+using ActiveMQ.OpenWire;
using NUnit.Framework;
using System;
-using ActiveMQ.OpenWire;
-using ActiveMQ.OpenWire.Commands;
-namespace ActiveMQ
+namespace ActiveMQ.OpenWire
{
- [TestFixture]
+ [TestFixture]
public class EndianTest
{
@@ -74,5 +73,6 @@
}
}
}
+
Modified: incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TestMain.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TestMain.cs?rev=383295&r1=383294&r2=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TestMain.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TestMain.cs Sun Mar 5 00:28:53 2006
@@ -14,11 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+using ActiveMQ.Commands;
+using JMS;
using System;
-using System.IO;
-
-using ActiveMQ.OpenWire;
-using ActiveMQ.OpenWire.Commands;
namespace ActiveMQ
{
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/AsyncConsumeTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/AsyncConsumeTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/AsyncConsumeTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/AsyncConsumeTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/AsyncConsumeTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/AsyncConsumeTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/AsyncConsumeTest.cs Sun Mar 5 00:28:53 2006
@@ -13,54 +13,51 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-*/
+ */
+using JMS;
+using NUnit.Framework;
using System;
-using System.IO;
using System.Threading;
-using NUnit.Framework;
-namespace ActiveMQ
+namespace JMS
{
- [TestFixture]
- public class AsyncConsumeTest : TestSupport
+ [TestFixture]
+ public class AsyncConsumeTest : JMSTestSupport
{
protected Object semaphore = new Object();
protected bool received;
+ [SetUp]
+ virtual public void SetUp()
+ {
+ base.SetUp();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ base.TearDown();
+ }
+
[Test]
public void TestAsynchronousConsume()
{
- IConnectionFactory factory = new ConnectionFactory("localhost", 61616);
- Assert.IsTrue(factory != null, "no factory created");
-
- using (IConnection connection = factory.CreateConnection())
- {
- Assert.IsTrue(connection != null, "no connection created");
- Console.WriteLine("Connected to ActiveMQ!");
- ISession session = connection.CreateSession();
- IDestination destination = CreateDestination(session);
- Assert.IsTrue(destination != null, "No queue available!");
-
- // lets create an async consumer
- // START SNIPPET: demo
- IMessageConsumer consumer = session.CreateConsumer(destination);
- consumer.Listener += new MessageListener(OnMessage);
- // END SNIPPET: demo
-
-
- // now lets send a message
- session = connection.CreateSession();
- IMessageProducer producer = session.CreateProducer(destination);
- IMessage request = CreateMessage(session);
- request.JMSCorrelationID = "abc";
- request.JMSType = "Test";
- producer.Send(request);
-
-
- WaitForMessageToArrive();
- }
+ // lets create an async consumer
+ // START SNIPPET: demo
+ IMessageConsumer consumer = session.CreateConsumer(this.Destination);
+ consumer.Listener += new MessageListener(OnMessage);
+ // END SNIPPET: demo
+
+ // now lets send a message
+ IMessageProducer producer = CreateProducer();
+ IMessage request = CreateMessage();
+ request.JMSCorrelationID = "abc";
+ request.JMSType = "Test";
+ producer.Send(request);
+
+ WaitForMessageToArrive();
}
@@ -81,11 +78,12 @@
{
if (!received)
{
- Monitor.Wait(semaphore, 10000);
+ Monitor.Wait(semaphore, receiveTimeout);
}
- }
- Assert.AreEqual(true, received, "Should have received a message by now!");
+ Assert.AreEqual(true, received, "Should have received a message by now!");
+ }
}
}
}
+
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/BadConsumeTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/BadConsumeTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/BadConsumeTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/BadConsumeTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/BadConsumeTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/BadConsumeTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/BadConsumeTest.cs Sun Mar 5 00:28:53 2006
@@ -13,37 +13,44 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-*/
+ */
+using JMS;
using NUnit.Framework;
using System;
-namespace ActiveMQ
+
+namespace JMS
{
- [TestFixture]
- public class BadConsumeTest : TestSupport
+ [TestFixture]
+ public class BadConsumeTest : JMSTestSupport
{
+ [SetUp]
+ virtual public void SetUp()
+ {
+ base.SetUp();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ base.TearDown();
+ }
+
[Test]
public void TestBadConsumeOperationToTestExceptions()
{
- IConnectionFactory factory = new ConnectionFactory("localhost", 61616);
- using (IConnection connection = factory.CreateConnection())
- {
- ISession session = connection.CreateSession();
-
- try
- {
- IMessageConsumer consumer = session.CreateConsumer(null);
- Console.WriteLine("Created consumer: " + consumer);
-
- Assert.Fail("Should have thrown an exception!");
- }
- catch (BrokerException e)
- {
- Console.WriteLine("Caught expected exception: " + e);
- Console.WriteLine("Stack: " + e.StackTrace);
- Console.WriteLine("Java Stack: " + e.JavaStackTrace);
- }
- }
+ try
+ {
+ IMessageConsumer consumer = session.CreateConsumer(null);
+ Console.WriteLine("Created consumer: " + consumer);
+ Assert.Fail("Should have thrown an exception!");
+ }
+ catch (Exception e)
+ {
+ Console.WriteLine("Caught expected exception: " + e);
+ Console.WriteLine("Stack: " + e.StackTrace);
+ }
}
}
}
+
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/BytesMessageTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/BytesMessageTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/BytesMessageTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/BytesMessageTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/BytesMessageTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/BytesMessageTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/BytesMessageTest.cs Sun Mar 5 00:28:53 2006
@@ -13,26 +13,38 @@
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
-*/
+ */
+using JMS;
+using NUnit.Framework;
using System;
-using System.IO;
-using NUnit.Framework;
-namespace ActiveMQ
+namespace JMS
{
- [ TestFixture ]
- public class BytesMessageTest : TestSupport
+ [ TestFixture ]
+ public class BytesMessageTest : JMSTestSupport
{
byte[] expected = {1, 2, 3, 4, 5, 6, 7, 8};
-
+
+ [SetUp]
+ virtual public void SetUp()
+ {
+ base.SetUp();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ base.TearDown();
+ }
+
[ Test ]
public override void SendAndSyncReceive()
{
base.SendAndSyncReceive();
}
- protected override IMessage CreateMessage(ISession session)
+ protected override IMessage CreateMessage()
{
IBytesMessage request = session.CreateBytesMessage(expected);
return request;
@@ -52,4 +64,5 @@
}
}
+
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/ConsumerTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/ConsumerTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/ConsumerTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/ConsumerTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/ConsumerTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/ConsumerTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/ConsumerTest.cs Sun Mar 5 00:28:53 2006
@@ -14,48 +14,49 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-using System;
-using System.IO;
-
+using JMS;
using NUnit.Framework;
-namespace ActiveMQ
+
+namespace JMS
{
- [TestFixture]
- public class ConsumerTest : TestSupport
+ [TestFixture]
+ public class ConsumerTest : JMSTestSupport
{
- IConnectionFactory factory;
- IConnection connection;
- IDestination destination;
-
- [SetUp]
- protected void SetUp()
+ [SetUp]
+ virtual public void SetUp()
{
- factory = new ConnectionFactory("localhost", 61616);
- connection = factory.CreateConnection();
+ base.SetUp();
}
-
+
[TearDown]
- protected void TearDown()
+ virtual public void TearDown()
{
- connection.Dispose();
+ base.TearDown();
}
-
+
+ protected override IConnection CreateConnection()
+ {
+ IConnection connection = base.CreateConnection();
+ connection.ClientId = "test";
+ return connection;
+ }
+
+ protected override IDestination CreateDestination()
+ {
+ return session.GetTopic(CreateDestinationName());
+ }
+
+
[Test]
[Ignore("Not fully implemented yet.")]
public void testDurableConsumerSelectorChange()
{
-
- // Receive a message with the JMS API
- connection.ClientId="test";
- connection.Start();
- ISession session = connection.CreateSession(AcknowledgementMode.AutoAcknowledge);
- destination = session.GetTopic("foo");
- IMessageProducer producer = session.CreateProducer(destination);
+ IMessageProducer producer = session.CreateProducer(Destination);
producer.Persistent = true;
- IMessageConsumer consumer = session.CreateDurableConsumer((ITopic)destination, "test", "color='red'", false);
-
+ IMessageConsumer consumer = session.CreateDurableConsumer((ITopic)Destination, "test", "color='red'", false);
+
// Send the messages
ITextMessage message = session.CreateTextMessage("1st");
//message.SetStringProperty("color", "red");
@@ -63,19 +64,19 @@
IMessage m = consumer.Receive(1000);
Assert.IsNotNull(m);
- Assert.AreEqual("1st", ((ITextMessage)m).Text );
-
+ Assert.AreEqual("1st", ((ITextMessage)m).Text);
+
// Change the subscription.
consumer.Dispose();
- consumer = session.CreateDurableConsumer((ITopic)destination, "test", "color='blue'", false);
+ consumer = session.CreateDurableConsumer((ITopic)Destination, "test", "color='blue'", false);
message = session.CreateTextMessage("2nd");
// message.setStringProperty("color", "red");
producer.Send(message);
message = session.CreateTextMessage("3rd");
- // message.setStringProperty("color", "blue");
+ // message.setStringProperty("color", "blue");
producer.Send(message);
-
+
// Selector should skip the 2nd message.
m = consumer.Receive(1000);
Assert.IsNotNull(m);
@@ -83,7 +84,8 @@
Assert.IsNull(consumer.ReceiveNoWait());
}
-
+
}
}
+
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSPropertyTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/JMSPropertyTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSPropertyTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSPropertyTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/JMSPropertyTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/JMSPropertyTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSPropertyTest.cs Sun Mar 5 00:28:53 2006
@@ -14,15 +14,16 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+//using ActiveMQ;
+using JMS;
+using NUnit.Framework;
using System;
-using System.IO;
-using NUnit.Framework;
-namespace ActiveMQ
+namespace JMS
{
- [ TestFixture ]
- public class JMSPropertyTest : TestSupport
+ [ TestFixture ]
+ public class JMSPropertyTest : JMSTestSupport
{
// standard JMS properties
string expectedText = "Hey this works!";
@@ -43,13 +44,25 @@
long custom5 = 0x1234567812345678;
char custom6 = 'J';
+ [SetUp]
+ virtual public void SetUp()
+ {
+ base.SetUp();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ base.TearDown();
+ }
+
[ Test ]
public override void SendAndSyncReceive()
{
base.SendAndSyncReceive();
}
- protected override IMessage CreateMessage(ISession session)
+ protected override IMessage CreateMessage()
{
ITextMessage message = session.CreateTextMessage(expectedText);
replyTo = session.CreateTemporaryQueue();
@@ -121,4 +134,5 @@
}
}
}
+
Added: incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSTestSupport.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSTestSupport.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSTestSupport.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/JMSTestSupport.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,174 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using NUnit.Framework;
+using System;
+
+/// <summary>
+/// useful base class for test cases
+/// </summary>
+namespace JMS
+{
+ [ TestFixture ]
+ public abstract class JMSTestSupport
+ {
+
+ protected IConnectionFactory factory;
+ protected IConnection connection;
+ protected ISession session;
+ private IDestination destination;
+ protected int receiveTimeout = 1000;
+ protected AcknowledgementMode acknowledgementMode = AcknowledgementMode.ClientAcknowledge;
+
+ [SetUp]
+ virtual public void SetUp()
+ {
+ Connect();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ Disconnect();
+ }
+
+
+ virtual protected void Connect()
+ {
+ Console.WriteLine("Connectting...");
+ factory = CreateConnectionFactory();
+ Assert.IsNotNull(factory, "no factory created");
+ connection = CreateConnection();
+ Assert.IsNotNull(connection, "no connection created");
+ connection.Start();
+ session = connection.CreateSession(acknowledgementMode);
+ Assert.IsNotNull(connection != null, "no session created");
+ Console.WriteLine("Connected.");
+ }
+
+
+ virtual protected void Disconnect()
+ {
+ if (connection != null)
+ {
+ Console.WriteLine("Disconnectting...");
+ connection.Dispose();
+ connection = null;
+ Console.WriteLine("Disconnectted.");
+ }
+ }
+
+ virtual protected void Reconnect()
+ {
+ Disconnect();
+ Connect();
+ }
+
+ protected virtual void Drain()
+ {
+ using (ISession session = connection.CreateSession())
+ {
+ // Tries to consume any messages on the Destination
+ IMessageConsumer consumer = session.CreateConsumer(Destination);
+
+ // Should only need to wait for first message to arrive due to the way
+ // prefetching works.
+ IMessage msg = consumer.Receive(receiveTimeout);
+ while (msg!= null)
+ {
+ msg = consumer.ReceiveNoWait();
+ }
+ }
+ }
+
+ public virtual void SendAndSyncReceive()
+ {
+ using (ISession session = connection.CreateSession())
+ {
+
+ IMessageConsumer consumer = session.CreateConsumer(Destination);
+ IMessageProducer producer = session.CreateProducer(Destination);
+
+ IMessage request = CreateMessage();
+ producer.Send(request);
+
+ IMessage message = consumer.Receive(receiveTimeout);
+ Assert.IsNotNull(message, "No message returned!");
+ AssertValidMessage(message);
+ }
+ }
+
+ protected virtual IConnectionFactory CreateConnectionFactory() {
+ return new ActiveMQ.ConnectionFactory("localhost", 61616);
+ }
+
+ protected virtual IConnection CreateConnection()
+ {
+ return factory.CreateConnection();
+ }
+
+ protected virtual IMessageProducer CreateProducer()
+ {
+ IMessageProducer producer = session.CreateProducer(destination);
+ return producer;
+ }
+
+ protected virtual IMessageConsumer CreateConsumer()
+ {
+ IMessageConsumer consumer = session.CreateConsumer(destination);
+ return consumer;
+ }
+
+ protected virtual IDestination CreateDestination()
+ {
+ return session.GetQueue(CreateDestinationName());
+ }
+
+ protected virtual string CreateDestinationName()
+ {
+ return "Test.DotNet." + GetType().Name;
+ }
+
+ protected virtual IMessage CreateMessage()
+ {
+ return session.CreateMessage();
+ }
+
+ protected virtual void AssertValidMessage(IMessage message)
+ {
+ Assert.IsNotNull(message, "Null Message!");
+ }
+
+
+ public IDestination Destination
+ {
+ get {
+ if( destination == null ) {
+ destination = CreateDestination();
+ Assert.IsNotNull(destination, "No destination available!");
+ Console.WriteLine("Using destination: " + destination);
+ }
+ return destination;
+ }
+ set {
+ destination = value;
+ }
+ }
+
+ }
+}
+
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/MapMessageTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/MapMessageTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/MapMessageTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/MapMessageTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/MapMessageTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/MapMessageTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/MapMessageTest.cs Sun Mar 5 00:28:53 2006
@@ -14,15 +14,15 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
+using JMS;
+using NUnit.Framework;
using System;
-using System.IO;
-using NUnit.Framework;
-namespace ActiveMQ
+namespace JMS
{
- [ TestFixture ]
- public class MapMessageTest : TestSupport
+ [ TestFixture ]
+ public class MapMessageTest : JMSTestSupport
{
bool a = true;
byte b = 123;
@@ -32,13 +32,25 @@
long f = 0x1234567812345678;
string g = "Hello World!";
+ [SetUp]
+ virtual public void SetUp()
+ {
+ base.SetUp();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ base.TearDown();
+ }
+
[ Test ]
public override void SendAndSyncReceive()
{
base.SendAndSyncReceive();
}
-
- protected override IMessage CreateMessage(ISession session)
+
+ protected override IMessage CreateMessage()
{
IMapMessage message = session.CreateMapMessage();
@@ -60,7 +72,7 @@
Console.WriteLine("Received MapMessage: " + message);
Console.WriteLine("Received Count: " + mapMessage.Body.Count);
-
+
Assert.AreEqual(ToHex(f), ToHex(mapMessage.Body.GetLong("f")), "map entry: f as hex");
// use generic API to access entries
@@ -90,3 +102,4 @@
}
}
}
+
Added: incubator/activemq/trunk/openwire-dotnet/tests/JMS/TextMessage.cs
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/TextMessage.cs?rev=383295&view=auto
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/JMS/TextMessage.cs (added)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/TextMessage.cs Sun Mar 5 00:28:53 2006
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2006 The Apache Software Foundation or its licensors, as
+ * applicable.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+using JMS;
+using NUnit.Framework;
+using System;
+
+
+namespace JMS
+{
+ [ TestFixture ]
+ public class TextMessage : JMSTestSupport
+ {
+ string expected = "Hello World!";
+
+ [SetUp]
+ virtual public void SetUp()
+ {
+ base.SetUp();
+ }
+
+ [TearDown]
+ virtual public void TearDown()
+ {
+ base.TearDown();
+ }
+
+ [ Test ]
+ public override void SendAndSyncReceive()
+ {
+ base.SendAndSyncReceive();
+ }
+
+ protected override IMessage CreateMessage()
+ {
+ IMessage request = session.CreateTextMessage(expected);
+ return request;
+ }
+
+ protected override void AssertValidMessage(IMessage message)
+ {
+ ITextMessage textMessage = (ITextMessage) message;
+ String text = textMessage.Text;
+ Console.WriteLine("Received message with text: " + text);
+ Assert.AreEqual(expected, text, "the message text");
+ }
+
+ }
+}
+
+
Copied: incubator/activemq/trunk/openwire-dotnet/tests/JMS/TransactionTest.cs (from r383283, incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TransactionTest.cs)
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/JMS/TransactionTest.cs?p2=incubator/activemq/trunk/openwire-dotnet/tests/JMS/TransactionTest.cs&p1=incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TransactionTest.cs&r1=383283&r2=383295&rev=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/ActiveMQ/TransactionTest.cs (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/JMS/TransactionTest.cs Sun Mar 5 00:28:53 2006
@@ -14,45 +14,36 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-using System;
-using System.IO;
-
+using JMS;
using NUnit.Framework;
+using System;
using System.Collections;
-namespace ActiveMQ
+namespace JMS
{
- [TestFixture]
- public class TransactionTest : TestSupport
+ [TestFixture]
+ public class TransactionTest : JMSTestSupport
{
private static int destinationCounter;
- IDestination destination;
- IConnection connection;
- ISession session;
IMessageProducer producer;
IMessageConsumer consumer;
[SetUp]
- public void SetUp()
+ public override void SetUp()
{
- Connect();
-
- // lets consume any outstanding messages from previous test runs
- while (consumer.Receive(1000) != null)
- {
- }
- session.Commit();
+ acknowledgementMode = AcknowledgementMode.Transactional;
+ base.SetUp();
+ Drain();
}
-
-
-
+
[TearDown]
- public void TearDown()
+ virtual public void TearDown()
{
- Disconnect();
+ base.TearDown();
}
-
+
+
[Test]
public void TestSendRollback()
{
@@ -248,40 +239,13 @@
Assert.AreEqual(expectedText, actualText, message);
}
- protected void Connect()
- {
- IConnectionFactory factory = new ConnectionFactory("localhost", 61616);
-
- connection = factory.CreateConnection();
-
- session = connection.CreateSession(AcknowledgementMode.Transactional);
-
- // reuse the same destination if we reconnect
- if (destination == null)
- {
- destination = CreateDestination(session);
- }
-
- consumer = session.CreateConsumer(destination);
-
- producer = session.CreateProducer(destination);
- }
-
-
- protected void Disconnect()
+ protected override void Connect()
{
- if (connection != null)
- {
- connection.Dispose();
- connection = null;
- }
- }
-
- protected void Reconnect()
- {
- Disconnect();
- Connect();
+ base.Connect();
+ consumer = session.CreateConsumer(Destination);
+ producer = session.CreateProducer(Destination);
}
}
}
+
Modified: incubator/activemq/trunk/openwire-dotnet/tests/tests.csproj
URL: http://svn.apache.org/viewcvs/incubator/activemq/trunk/openwire-dotnet/tests/tests.csproj?rev=383295&r1=383294&r2=383295&view=diff
==============================================================================
--- incubator/activemq/trunk/openwire-dotnet/tests/tests.csproj (original)
+++ incubator/activemq/trunk/openwire-dotnet/tests/tests.csproj Sun Mar 5 00:28:53 2006
@@ -41,18 +41,18 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
- <Compile Include="ActiveMQ\AsyncConsumeTest.cs"/>
- <Compile Include="ActiveMQ\BadConsumeTest.cs"/>
- <Compile Include="ActiveMQ\BytesMessageTest.cs"/>
- <Compile Include="ActiveMQ\ClientTest.cs"/>
- <Compile Include="ActiveMQ\CommandTest.cs"/>
- <Compile Include="ActiveMQ\ConsumerTest.cs"/>
- <Compile Include="ActiveMQ\EndianTest.cs"/>
- <Compile Include="ActiveMQ\JMSPropertyTest.cs"/>
- <Compile Include="ActiveMQ\MapMessageTest.cs"/>
+ <Compile Include="ActiveMQ\Commands\CommandTest.cs"/>
<Compile Include="ActiveMQ\OpenWire\BooleanStreamTest.cs"/>
+ <Compile Include="ActiveMQ\OpenWire\EndianTest.cs"/>
<Compile Include="ActiveMQ\TestMain.cs"/>
- <Compile Include="ActiveMQ\TestSupport.cs"/>
- <Compile Include="ActiveMQ\TransactionTest.cs"/>
+ <Compile Include="JMS\AsyncConsumeTest.cs"/>
+ <Compile Include="JMS\BadConsumeTest.cs"/>
+ <Compile Include="JMS\BytesMessageTest.cs"/>
+ <Compile Include="JMS\ConsumerTest.cs"/>
+ <Compile Include="JMS\JMSPropertyTest.cs"/>
+ <Compile Include="JMS\JMSTestSupport.cs"/>
+ <Compile Include="JMS\MapMessageTest.cs"/>
+ <Compile Include="JMS\TextMessage.cs"/>
+ <Compile Include="JMS\TransactionTest.cs"/>
</ItemGroup>
</Project>