Method Invocation Remoting is hosted on GitHub.

Release History

Version Date Description 2016-07-17 Changed instances of 'throw e' in exception handling in C# code to 'throw', to correctly preserve exception stacktrace. 2015-06-07

Made Java projects compatible with Java 1.8.

Added method CancelBegin() to the ApplicationMetrics.IMetricLogger interface and all implementing classes (NullMetricLogger, ConsoleMetricLogger, FileMetricLogger, MicrosoftAccessMetricLogger, and PerformanceCounterMetricLogger).

All classes in MethodInvocationRemoting updated to utilize the IMetricLogger.CancelBegin() method.

Refactored the ApplicationMetrics.MetricLoggerBuffer class to decouple the worker thread buffer processing strategy from the class itself, by defining the buffer processing strategy using interface IBufferProcessingStrategy.

Created 2 implementations of IBufferProcessingStrategy: LoopingWorkerThreadBufferProcessor and SizeLimitedBufferProcessor.

All classes deriving from ApplicationMetrics.MetricLoggerBuffer (ConsoleMetricLogger, FileMetricLogger, MicrosoftAccessMetricLogger, and PerformanceCounterMetricLogger) allow injecting an implementation of IBufferProcessingStrategy into their constructor.

Added overload of Stop() method Stop(bool processRemainingBufferedMetricEvents) to interface ApplicationMetrics.IBufferProcessingStrategy.

Corrected missing comments on methods in C# class ApplicationLogging.Adapters.ApplicationLoggingLog4NetAdapter.

Correction to C# MethodInvocationRemoting.MethodInvocationSerializer methods Deserialize() and DeserializeReturnValue(). Put closing of 'reader' variable in a 'finally' block.

Adding missing comments to various Java methods. 2014-09-15

Added the ApplicationMetrics and ApplicationMetricsUnitTests projects.

Added support for metric logging to all main classes in MethodInvocationRemoting. Added the MethodInvocationRemotingMetrics project which contains definitions of all metrics used in MethodInvocationRemoting, and the MethodInvocationRemotingMetricsTests project containing unit tests for metric logging functionality.

Corrected placement of statements disposing of managed objects in several of the Dispose() methods in the C# classes.

Removed unused private IApplicationLogger members in several C# classes. 2014-03-23

Added RemoteSenderCompressor and RemoteReceiverDecompressor classes.

Added ApplicationLogging, ApplicationLogging.Adapters, and ApplicationLoggingUnitTests projects.

Added project MethodInvocationRemotingLoggingTests to test event logging in the MethodInvocationRemoting classes.

Modified relevant MethodInvocationRemoting classes to write log events via ApplicationLogging.

Added Ant build script 'AntBuild.xml' to Java to allow for compiling with or without logging enabled.

Relevant Java classes now implement the AutoCloseable interface.

C# classes which use underlying IDisposable objects use the 'using' statement.

Java classes which use underlying AutoCloseable objects use the 'try with resources' statement.

Fixed bug in Java MethodInvocationSerializer class where BigDecimal objects would occasionally be serialized using exponential notation. Now convert to string using the toPlainString() method. 2013-12-30

Updated NMock2 to version 2.1.

Added classes FileRemoteSender and FileRemoteReceiver to allow transporting method invocations via the file system.

Added classes TcpRemoteSender and TcpRemoteReceiver to allow transporting method invocations via a TCP network.

Created new project called OperatingSystemAbstraction (package net.alastairwyse.operatingsystemabstraction in Java). This project contains classes which abstract underlying .NET and Java classes which interface to the operating system (e.g. file system classes, and TCP socket classes), and allows mocking of these classes in unit tests.

Updated sample application 2 to allow using the file system or TCP network as the transport mechanism, in addition to ActiveMQ. 2013-08-08 First released version.

Note - as of version, the ApplicationMetrics project has been upgraded to .NET 4.0, and moved to its own GitHub repository. It is also available as a Nuget package.


Method Invocation Remoting is licensed under the Apache License, Version 2.0.