You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by mi...@apache.org on 2019/09/05 11:10:24 UTC
[activemq-nms-amqp] branch master updated: NO-JIRA: Update docs
This is an automated email from the ASF dual-hosted git repository.
michaelpearce pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/activemq-nms-amqp.git
The following commit(s) were added to refs/heads/master by this push:
new 9c1c58c NO-JIRA: Update docs
new 3c7ecd5 Merge pull request #25 from Havret/update_docs
9c1c58c is described below
commit 9c1c58c20695b97c41feb40c15347a20dfe5382d
Author: Havret <h4...@gmail.com>
AuthorDate: Tue Sep 3 23:20:55 2019 +0200
NO-JIRA: Update docs
---
README.md | 55 ++++++++++------------
.../AmqpTestSupport.cs | 6 +--
2 files changed, 27 insertions(+), 34 deletions(-)
diff --git a/README.md b/README.md
index 0ca158c..38e0e7d 100644
--- a/README.md
+++ b/README.md
@@ -19,49 +19,41 @@ Apache-NMS-AMQP uses [AmqpNetLite](https://github.com/Azure/amqpnetlite) as the
Apache-NMS-AMQP should bridge the familiar NMS concepts to AMQP protocol concepts as described in the document [amqp-bindmap-jms-v1.0-wd09.pdf](https://www.oasis-open.org/committees/download.php/60574/amqp-bindmap-jms-v1.0-wd09.pdf).
So in general most of the top level classes that implement the Apache.NMS interface _Connection, Session, MessageProducer,_ etc create, manage, and destroy the amqpnetlite equivalent object _Connection, Session, Link,_ etc.
-### Building With Visual Studio 2017
-There are multiple projects: Apache-NMS-AMQP, Apache-NMS-AMQP.Test, and HelloWorld. All projects use the new csproj format available in Visual Studio 2017.
+### Building With Visual Studio 2019
+There are multiple projects: Apache-NMS-AMQP, Apache-NMS-AMQP.Test, and HelloWorld. All projects use the new csproj format available in Visual Studio 2019.
Apache-NMS-AMQP is the library which implements The Apache.NMS Interface using AmqpNetLite.
Apache-NMS-AMQP.Test produces an NUnit dll for unit testing.
HelloWorld is a sample application using the NMS library which can send messages to an AMQP Message Broker.
-To build, launch Visual Studio 2017 with the nms-amqp.sln file and build the solution.
+To build, launch Visual Studio 2019 with the nms-amqp.sln file and build the solution.
Build artifacts will be under `<root_folder>\<project_folder>\bin\$(Configuration)\$(TargetFramework)`.
### Building With DotNet SDK
-Alternatively, to build without Visual Studio 2017 the project can be built using [.NET Core sdk tool](https://www.microsoft.com/net/download/windows), version 2.1.+.
-Execute the dotnet sdk command to build all projects :
+Alternatively, to build without Visual Studio 2019 the project can be built using [.NET Core sdk tool](https://www.microsoft.com/net/download/windows), version 2.2.+.
+Execute the dotnet sdk command to build all projects:
```
-C:\<root_folder>>dotnet build nms-amqp.sln
+<root_folder>>dotnet build nms-amqp.sln
```
-__Note__ The .Net Framework SDK must be downloaded and installed to build the solution. This means that the solution can only be built on a Windows platform. The solution, nms-amqp.sln and the all the soure in this project is compatible with .NET Core. The project files, _*.csproj_, can be modified to include the appropriate 'netcoreapp2.0' or 'netstandard2.0' Framework in the target <TargetFrames> element. However as the NMS API does not have a .NET Core build, the dependency will p [...]
-
-```
-Apache-NMS-AMQP.csproj : warning NU1701: Package 'Apache.NMS 1.7.1' was restored using '.NETFramework,Version=v4.6.1' instead of the project target framework '.NETStandard,Version=v2.0'. This package may not be fully compatible with your project.
-```
-The resulting DLL will __not__ run.
-
-When a .NET Standard build of the NMS API is available, this project can be built
-on any platform.
### Testing
-Tests use the NUnit Framework. The tests include both unit and system tests (require a broker). The test configuration is read from 'TestSuite.config' in the current directory. For convenience the build copies 'test/TestSuite.config' to the 'bin' directory.
+Tests use the NUnit Framework. The tests include both unit and system tests (require a broker).
-The Apache-NMS-AMQP.Test project builds a NUnit 3.7.0 unit test dll to be used by NUnit console, 3.7.0 or 3.8.0.
-To run the unit tests use the nunit3-console.exe under the `<nuget_packages_location>\nunit.consolerunner\3.7.0\tools\` folder.
-**Eg:**
-```
-C:\Users\me\nms-amqp\test\bin\Debug\net452> nunit3-console.exe NMS.AMQP.Test.dll
-```
-#### Configuring ActiveMQ
+Apache-NMS-AMQP-Test contains only unit tests and doesn't require any configuration and dependencies.
+
+Apache-NMS-AMQP-Interop-Test contains system tests and require broker to be up and running. Broker can be configured either directly from the code (to do so you have to edit _AmqpTestSupport_ base class), or using environment variables:
-The distributed 'TestSuite.config' expects to connect using a plain text socket to the broker at 127.0.0.1:5672. Secure connections are configured at 127.0.0.1:5671. More information on secure connections can be found in _test/config/cert/ReadMe.md_.
+| Variable | Meaning |
+|----------|---------|
+|NMS_AMQP_TEST_URI|Broker uri|
+|NMS_AMQP_TEST_CU|Username|
+|NMS_AMQP_TEST_CPWD|Password|
-#### VS2017 Test Explorer
-Visual Studio 2017 will also run nunit tests with the built-in TestExplorer tool. If you wish to run tests inside VS2017 (useful for debugging) then you must configure _Test->Test Settings->Select Test Settings File_. The *Test Settings File* is _test/config/Adapter.runsettings_.
+```
+NUNIT3-CONSOLE Apache-NMS-AMQP-Interop-Test.dll -p:uri=brokerUri -p:cu=userName -p:cpwd=password
+```
-The file _Adapter.runsettings_ must be modified to reflect your local directory
-structure.
+#### VS2019 Test Explorer
+Visual Studio 2019 will also run NUnit tests with the built-in TestExplorer tool.
#### dotnet test
@@ -76,13 +68,13 @@ dotnet test filter=<Test Name>
|---------------|:---------:|:-----------------|
| TLS/SSL | Y | Configuration is supported using transport properties. |
| Client Certificate Authentication | Y | Configuration is supported using transport properties. |
-| Transactions (AcknowledgementMode.Transactional) | N | Session will throw NotSupportedException should a session's AcknowledgeMode be set to Transactional. |
+| Transactions (AcknowledgementMode.Transactional) | Y |
| Distributed Transactions (INetTxConnectionFactory, INetTxConnection, INetTxSession) | N | |
| AcknowledgementMode.AutoAcknowledge | Y | |
| AcknowledgementMode.DupsOkAcknowledge | Y | |
| AcknowledgementMode.ClientAcknowledge | Y | |
| AcknowledgementMode.IndividualAcknowledge | Y | |
-| IObjectMessage | Y * | Amqp value object bodies and dotnet serializable object bodies are supported. Java serialized objects can not be read by by the provider and are not supported. |
+| IObjectMessage | Y * | Amqp value object bodies and dotnet serializable object bodies are supported. |
| IBytesMessage | Y | |
| IStreamMessage | Y | |
| IMapMessage | Y | |
@@ -92,7 +84,7 @@ dotnet test filter=<Test Name>
| IConnection | Y | The ConnectionInterruptedListener event and the ConnectionResumedListener are not supported. |
| ProducerTransformerDelegate | N | Any member access should throw a NotSupportedException. |
| ConsumerTransformerDelegate | N | Any member access should throw a NotSupportedException. |
-| ISession | Y | Note all methods and events related to AcknowledgementMode.Transactional are not supported and should throw a NotSupportedException. |
+| ISession | Y |
| IQueue | Y | |
| ITopic | Y | |
| ITemporaryQueue | Y | |
@@ -106,6 +98,7 @@ dotnet test filter=<Test Name>
| Configurable NMSMessageID and amqp serializtion | N | For future consideration. The prodiver will generate a MessageID from a sequence and serialize it as a string. |
| Flow control configuration | N | For future consideration. The provider will use amqpnetlite defaults except for initial link credits which is 200. |
| Object Deserialization Policy | N | For future consideration. The provider considers all Dotnet serialized objects in Object Message bodies are safe to deserialize. |
+| Failover | Y
# Licensing
diff --git a/test/Apache-NMS-AMQP-Interop-Test/AmqpTestSupport.cs b/test/Apache-NMS-AMQP-Interop-Test/AmqpTestSupport.cs
index 035c105..73e49e6 100644
--- a/test/Apache-NMS-AMQP-Interop-Test/AmqpTestSupport.cs
+++ b/test/Apache-NMS-AMQP-Interop-Test/AmqpTestSupport.cs
@@ -38,9 +38,9 @@ namespace NMS.AMQP.Test
protected IConnection CreateAmqpConnection()
{
- string brokerUri = TestContext.Parameters.Get("uri", "amqp://127.0.0.1:5672");
- string userName = TestContext.Parameters.Get("cu", "admin");
- string password = TestContext.Parameters.Get("cpwd", "admin");
+ string brokerUri = Environment.GetEnvironmentVariable("NMS_AMQP_TEST_URI") ?? "amqp://127.0.0.1:5672";
+ string userName = Environment.GetEnvironmentVariable("NMS_AMQP_TEST_CU") ?? "admin";
+ string password = Environment.GetEnvironmentVariable("NMS_AMQP_TEST_CPWD") ?? "admin";
NmsConnectionFactory factory = new NmsConnectionFactory(brokerUri);
return factory.CreateConnection(userName, password);