Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant-common.xml
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant-common.xml?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant-common.xml (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant-common.xml Wed Jan  6 
02:19:56 2016
@@ -0,0 +1,658 @@
+<?xml version="1.0"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+-->
+<project xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd";>
+
+    <!-- 
============================================================================================
 -->
+    <!--    P R O P E R T Y    D E F I N I T I O N S                           
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <!-- global project settings -->
+    <property name="project.cls.compliant"   value="true" 
unless="${property::exists('project.cls.compliant')}" />
+    <property name="project.release.type"    value="SNAPSHOT" 
unless="${property::exists('project.release.type')}" />
+    <property name="project.version.full"    value="${project.version + 
if(project.release.type == 'snapshot', '-' + project.release.type, '')}" 
dynamic="true" />
+    <property name="project.startyear"       value="2005" />
+    <property name="build.dir"               value="${basedir}/build" />
+    <property name="doc.dir"                 value="${build.dir}/doc" />
+    <property name="lib.dir"                 value="${path::combine(basedir, 
'lib')}" dynamic="true" />
+    <property name="lib.family.dir"          value="${path::combine(lib.dir, 
framework::get-family(framework::get-target-framework()))}" dynamic="true" />
+    <property name="lib.framework.dir"       
value="${path::combine(lib.family.dir, 
version::to-string(framework::get-version(framework::get-target-framework())))}"
 dynamic="true" />
+    <property name="package.dir"             value="${basedir}/package" />
+    <property name="src.package.name"        value="${project.name + '-' + 
project.version + if(project.release.type == 'SNAPSHOT', '-' + 
project.release.type, '') + '-src.zip'}" />
+    <property name="bin.package.name"        value="${project.name + '-' + 
project.version + if(project.release.type == 'SNAPSHOT', '-' + 
project.release.type, '') + '-bin.zip'}" />
+
+    <!-- default configuration -->
+    <property name="build.defines"           value="" />
+    <property name="build.noskip"            value="false" />
+    <property name="build.skip"              value="false" />
+    <property name="build.skip.release"      value="false" 
unless="${property::exists('build.skip.release')}" />
+    <property name="download.skip"           value="false" 
unless="${property::exists('download.skip')}"/>
+    <property name="install.skip"            value="false" 
unless="${property::exists('install.skip')}"/>
+    <property name="compile.skip"            value="false" 
unless="${property::exists('compile.skip')}" />
+    <property name="current.build.config"    value="${if(project.release.type 
== 'release', 'release', 'debug')}" overwrite="false" />
+    <property name="current.build.framework" 
value="${framework::get-target-framework()}" overwrite="false" />
+    <property name="current.build.defines"   value="${build.defines}" />
+    <property name="build.framework.strings" 
value="net-2.0,net-3.5,net-4.0,mono-2.0,mono-4.0,netcf-2.0,netcf-3.5" 
unless="${property::exists('build.framework.strings')}"/>
+    <property name="current.build.framework.assembly.dir" 
value="${framework::get-assembly-directory(framework::get-target-framework())}" 
dynamic="true" />
+
+    <property name="build.config.strings"    
value="${if(property::exists('configuration'), configuration, 
if(build.skip.release == 'true', 'debug', 'debug,release'))}" dynamic="true" />
+
+    <!-- Figure out the user's HOME directory -->
+    <property name="user.home" value="${environment::get-variable('HOME')}"
+            if="${environment::variable-exists('HOME') and 
platform::is-unix()}"
+            unless="${property::exists('user.home')}" />
+    <property name="user.home" 
value="${environment::get-variable('USERPROFILE')}"
+            if="${environment::variable-exists('USERPROFILE') and 
platform::is-windows()}"
+            unless="${property::exists('user.home')}" />
+    <fail message="The HOME environment variable is not defined.  Please set 
it to your home directory."
+            unless="${property::exists('user.home')}" 
if="${platform::is-unix()}" />
+    <fail message="The USERPROFILE environment variable is not defined.  
Please set it to your home directory."
+            unless="${property::exists('user.home')}" 
if="${platform::is-windows()}" />
+
+    <!-- Figure out the NANT repositories -->
+    <property name="nant.remote.repo" 
value="${environment::get-variable('NANT_REMOTE_REPO')}"
+            if="${environment::variable-exists('NANT_REMOTE_REPO')}"
+            unless="${property::exists('nant.remote.repo')}" />
+    <property name="nant.local.repo" 
value="${environment::get-variable('NANT_REPO')}/local"
+            if="${environment::variable-exists('NANT_REPO')}"
+            unless="${property::exists('nant.local.repo')}" />
+    <property name="nant.local.repo" 
value="${user.home}/.nant/repository/local"
+            unless="${property::exists('nant.local.repo')}" />
+
+    <!-- Figure out the keyfile location -->
+    <property name="snk.file" 
value="${environment::get-variable('ACTIVEMQ_DOTNET_SNK')}"
+            if="${environment::variable-exists('ACTIVEMQ_DOTNET_SNK')}"
+            unless="${property::exists('snk.file')}" />
+    <property name="snk.file" value="${basedir}/keyfile/NMSKey.snk"
+            if="${not property::exists('snk.file')}" />
+
+    <!-- 
============================================================================================
 -->
+    <!--      I N I T I A L I Z A T I O N     T A R G E T S                    
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="init" description="Initializes build properties">
+        <!-- enabled the release or debug configuration -->
+        <call target="set-${current.build.config}-configuration" />
+
+        <!-- Check to see if our build setup for the target framework -->
+        <if 
test="${not(target::exists('set-'+current.build.framework+'-framework-configuration'))}">
+            <fail message="The '${current.build.framework}' framework is not 
supported by this version of ActiveMQ .NET" />
+        </if>
+        <call target="set-${current.build.framework}-framework-configuration" 
/>
+
+        <!-- Check to see current platform supports the target framework -->
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="build.skip" value="false" />
+        </if>
+        <if test="${not framework::exists(current.build.framework)}">
+            <if test="${build.noskip}">
+                <fail message="${current.build.framework.name} is not 
available." />
+            </if>
+            <if test="${not(build.noskip)}">
+                <echo message="${current.build.framework.name} is not 
available. Build skipped." />
+                <property name="build.skip" value="true" />
+            </if>
+        </if>
+
+        <!-- Check to see if we should skip this build framework. -->
+        <if test="${not(build.skip)}">
+            <if 
test="${property::exists('build.'+current.build.framework+'.skip')}">
+                <property name="build.skip" value="true" />
+                <echo message="The '${current.build.framework}' framework is 
not supported by this version of ActiveMQ .NET" />
+            </if>
+        </if>
+
+        <property name="current.build.keysign" 
value="${current.build.framework.sign}" />
+        <property name="build.bin.dir" 
value="${build.dir}/${current.build.framework}/${current.build.config}" />
+        <if test="${not(build.skip)}">
+            <echo message="Doing ${if(current.build.keysign,'a signed','an 
unsigned')} ${current.build.config} build for the 
${current.build.framework.name} framework" />
+            <mkdir dir="${build.bin.dir}" />
+        </if>
+        <call target="dependency-init" />
+    </target>
+
+    <!-- Generate four-digit build number -->
+    <target name="generate-build-number">
+        <if test="${not property::exists('project.version.numeric')}">
+            <script language="C#">
+                <imports>
+                    <import namespace="System.Globalization" />
+                    <import namespace="System.Threading" />
+                </imports>
+                <code>
+                    <!-- Format for assembly revision is the number of days 
from the year the project 'started', property project.startyear.  -->
+                    <![CDATA[
+                        public static void ScriptMain(Project project)
+                        {
+                            int startYear = 
Convert.ToInt32(project.Properties["project.startyear"]);
+                            DateTime start = new DateTime(startYear, 1, 1);
+                            TimeSpan ts = DateTime.Now - start;
+                            project.Properties["project.version.numeric"] = 
project.Properties["project.version"].ToString() + "." + ts.Days.ToString();
+                        }
+                    ]]>
+                </code>
+            </script>
+        </if>
+    </target>
+
+    <!-- Generate assemblyinfo.cs files -->
+    <target name="generate-assemblyinfo" depends="generate-build-number" 
description="Generate the assembly info for the path in assemblyinfo.filename">
+        <asminfo output="${assemblyinfo.filename}" language="CSharp">
+            <imports>
+                <import namespace="System" />
+                <import namespace="System.Reflection" />
+                <import namespace="System.Runtime.InteropServices" />
+            </imports>
+            <attributes>
+                <attribute type="ComVisibleAttribute" value="false" />
+                <attribute type="CLSCompliantAttribute" 
value="${project.cls.compliant}" />
+                <attribute type="AssemblyTitleAttribute" 
value="${project.short_description}" />
+                <attribute type="AssemblyDescriptionAttribute" 
value="${project.description}" />
+                <attribute type="AssemblyConfigurationAttribute" 
value="${project.release.type}" />
+                <attribute type="AssemblyCompanyAttribute" 
value="http://activemq.apache.org/nms"; />
+                <attribute type="AssemblyProductAttribute" 
value="${project.short_description}" />
+                <attribute type="AssemblyCopyrightAttribute" value="Copyright 
(C) ${project.startyear}-${datetime::get-year(datetime::now())} Apache Software 
Foundation" />
+                <attribute type="AssemblyTrademarkAttribute" value="" />
+                <attribute type="AssemblyCultureAttribute" value="" />
+                <attribute type="AssemblyVersionAttribute" 
value="${project.version.numeric}" />
+                <attribute type="AssemblyInformationalVersionAttribute" 
value="${project.version}" />
+            </attributes>
+        </asminfo>
+    </target>
+
+    <!-- 
============================================================================================
 -->
+    <!--    C O N F I G U R A T I O N     T A R G E T S                        
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="set-noskip-configuration" description="Disable skipping 
builds">
+        <property name="project.noskip" value="true" />
+    </target>
+
+    <target name="set-debug-configuration" description="Enabled 'debug' 
builds">
+        <property name="current.build.config" value="debug" />
+        <property name="current.build.config.debug" value="true" />
+        <property name="current.build.config.release" value="false" />
+        <property name="current.build.defines" 
value="${build.defines}DEBUG,TRACE," dynamic="true" />
+        <property name="csc.debug" value="Full" />
+        <property name="csc.optimize" value="false" />
+    </target>
+
+    <target name="set-release-configuration" description="Enabled 'release' 
builds">
+        <property name="current.build.config" value="release" />
+        <property name="current.build.config.release" value="true" />
+        <property name="current.build.config.debug" value="false" />
+        <property name="csc.debug" value="Full" />
+        <property name="csc.optimize" value="true" />
+    </target>
+
+    <target name="set-net-2.0-framework-configuration">
+        <property name="current.build.framework" value="net-2.0" />
+        <property name="current.build.framework.name" value=".NET 2.0" />
+        <property name="current.build.defines" 
value="${build.defines}NET,NET_2_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v2_0" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+        <!-- Use the .NET 3.5 compiler for improved language features.  Still 
targets same runtime. -->
+        <if test="${framework::exists('net-3.5')}">
+            <property name="nant.settings.currentframework" value="net-3.5" />
+        </if>
+    </target>
+
+    <target name="set-net-3.5-framework-configuration">
+        <property name="current.build.framework" value="net-3.5" />
+        <property name="current.build.framework.name" value=".NET 3.5" />
+        <property name="current.build.defines" 
value="${build.defines}NET,NET_2_0,NET_3_5" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v6_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-net-4.0-framework-configuration">
+        <property name="current.build.framework" value="net-4.0" />
+        <property name="current.build.framework.name" value=".NET 4.0" />
+        <property name="current.build.defines" 
value="${build.defines}NET,NET_2_0,NET_3_5,NET_4_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v7_0" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-netcf-2.0-framework-configuration">
+        <property name="current.build.framework" value="netcf-2.0" />
+        <property name="current.build.framework.name" value=".NET Compact 
Framework 2.0" />
+        <property name="current.build.defines" 
value="${build.defines}PocketPC,NETCF,NETCF_2_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v1_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-netcf-3.5-framework-configuration">
+        <property name="current.build.framework" value="netcf-3.5" />
+        <property name="current.build.framework.name" value=".NET Compact 
Framework 3.5" />
+        <property name="current.build.defines" 
value="${build.defines}PocketPC,NETCF,NETCF_3_5" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v3_5" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-mono-2.0-framework-configuration">
+        <property name="current.build.framework" value="mono-2.0" />
+        <property name="current.build.framework.name" value="Mono 2.0" />
+        <property name="current.build.defines" 
value="${build.defines}MONO,MONO_2_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v1_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <target name="set-mono-4.0-framework-configuration">
+        <property name="current.build.framework" value="mono-4.0" />
+        <property name="current.build.framework.name" value="Mono 4.0" />
+        <property name="current.build.defines" 
value="${build.defines}MONO,MONO_4_0" dynamic="true" />
+        <property name="current.build.framework.sign" value="true" />
+        <property name="link.sdkdoc.version" value="SDK_v1_1" />
+        <property name="link.sdkdoc.web" value="true" />
+        <if test="${framework::exists(current.build.framework)}">
+            <property name="nant.settings.currentframework" 
value="${current.build.framework}" />
+        </if>
+    </target>
+
+    <!-- 
============================================================================================
 -->
+    <!--     C O M P I L E    T A R G E T S                                    
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="compile-all" description="Compile all build configurations 
for all runtime configurations">
+        <echo message="Compiling all build configurations for all runtime 
configurations." />
+        <foreach item="String" in="${build.framework.strings}" delim="," 
property="current.build.framework">
+            <foreach item="String" in="${build.config.strings}" delim="," 
property="current.build.config">
+                <call target="compile-target" />
+            </foreach>
+        </foreach>
+    </target>
+
+    <target name="compile-target" depends="init, download-vendor, 
conditional-compile" />
+
+    <target name="conditional-compile" depends="init" unless="${build.skip or 
compile.skip}"
+            description="Conditionaly compiles all the modules if build 
framework and type are supported">
+        <call target="compile" />
+    </target>
+
+    <target name="compile" description="Compile everything">
+        <call target="compile-main" cascade="false" />
+        <call target="compile-test" cascade="false" />
+    </target>
+
+    <target name="compile-main" depends="init" description="Build the main 
library">
+        <echo message="Building the ${project.name} library" />
+        <property name="assemblyinfo.filename" 
value="src/main/csharp/CommonAssemblyInfo.cs" />
+        <call target="generate-assemblyinfo" />
+
+        <csc if="${current.build.keysign}" keyfile="${snk.file}" 
target="library"
+                define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.dll" 
doc="${build.bin.dir}/${project.name}.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for 
missing XML comments -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/main/csharp/**.cs" />
+            </sources>
+            <references refid="dependencies" />
+        </csc>
+        <csc if="${not current.build.keysign}" target="library"
+                define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.dll" 
doc="${build.bin.dir}/${project.name}.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for 
missing XML comments -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/main/csharp/**.cs" />
+            </sources>
+            <references refid="dependencies" />
+        </csc>
+        <call target="copy-content" />
+    </target>
+
+    <!-- Compile the nms-test module -->
+    <target name="compile-test" depends="compile-main" description="Build the 
test library">
+        <echo message="Building the ${project.name}.Test library" />
+        <property name="assemblyinfo.filename" 
value="src/test/csharp/CommonAssemblyInfo.cs" />
+        <call target="generate-assemblyinfo" />
+
+        <csc if="${current.build.keysign}" keyfile="${snk.file}" 
target="library"
+                define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.Test.dll" 
doc="${build.bin.dir}/${project.name}.Test.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for 
missing XML comments -->
+                <warning number="3016" /> <!-- do not report warnings for 
array parameters  -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/test/csharp/**.cs" />
+            </sources>
+            <references refid="test.dependencies" />
+        </csc>
+        <csc if="${not current.build.keysign}" target="library"
+                define="${current.build.defines}" warnaserror="false" 
debug="${csc.debug}" optimize="${csc.optimize}"
+                output="${build.bin.dir}/${project.name}.Test.dll" 
doc="${build.bin.dir}/${project.name}.Test.xml">
+            <nowarn>
+                <warning number="1591" /> <!-- do not report warnings for 
missing XML comments -->
+                <warning number="3016" /> <!-- do not report warnings for 
array parameters  -->
+            </nowarn>
+            <sources failonempty="true">
+                <include name="src/test/csharp/**.cs" />
+            </sources>
+            <references refid="test.dependencies" />
+        </csc>
+        <call target="copy-content" />
+    </target>
+
+    <target name="copy-content">
+        <foreach item="File" property="content.filename">
+            <in>
+                <items refid="content.filenames" />
+            </in>
+            <do>
+                <copy todir="${build.bin.dir}" file="${content.filename}" 
if="${not file::up-to-date(content.filename, 
'${build.bin.dir}/${content.filename}')}" />
+            </do>
+        </foreach>
+    </target>
+
+    <!-- 
============================================================================================
 -->
+    <!--      I N S T A L L     T A R G E T S                                  
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="install-all" description="Install all build configurations 
for all runtime configurations">
+        <echo message="Installing all build configurations for all runtime 
configurations." />
+        <foreach item="String" in="${build.framework.strings}" delim="," 
property="current.build.framework">
+            <foreach item="String" in="${build.config.strings}" delim="," 
property="current.build.config">
+                <call target="install" />
+            </foreach>
+        </foreach>
+    </target>
+
+    <!-- Install the modules to the local repo -->
+    <target name="install" depends="init, compile-target, conditional-install"
+            description="Install the artifacts into the nant repo" />
+
+    <target name="conditional-install" unless="${build.skip or install.skip}"
+            description="Install the artifacts into the nant repo">
+        <property name="path" 
value="${project.group}/${project.name}/${project.version.full}/${current.build.framework}/${current.build.config}"
 />
+        <foreach item="File" property="install.filename">
+            <in>
+                <items refid="install.filenames" />
+            </in>
+            <do>
+                <property name="repo.task.artifact" 
value="${path}/${path::get-file-name(install.filename)}" />
+                <property name="repo.task.src" value="${install.filename}" />
+                <property name="repo.task.dest" 
value="${nant.local.repo}/${repo.task.artifact}" />
+                <mkdir 
dir="${directory::get-parent-directory(repo.task.dest)}" />
+                <copy file="${repo.task.src}" tofile="${repo.task.dest}" />
+            </do>
+        </foreach>
+    </target>
+
+    <!-- 
============================================================================================
 -->
+    <!--      R E P O    D O W N L O A D     T A R G E T S                     
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="download-vendor-all" description="Download vendor files for 
all runtime configurations">
+        <echo message="Downloading vendor files for all runtime 
configurations." />
+        <property name="current.build.config" value="release" />
+        <foreach item="String" in="${build.framework.strings}" delim="," 
property="current.build.framework">
+            <call target="download-vendor" />
+        </foreach>
+    </target>
+
+    <target name="download-vendor" depends="vendor-init, conditional-download"
+                description="Download the vendor artifacts from the nant repo" 
/>
+
+    <target name="conditional-download" unless="${build.skip or download.skip}"
+                description="Download the artifacts from the nant repo">
+        <!-- Iterate over the defined vendor filesets. -->
+        <foreach item="String" in="${vendor.fileset.names}" delim="," 
property="current.vendor">
+            <property name="vendor.name" 
value="${property::get-value(current.vendor + '.name')}" />
+            <property name="vendor.group" 
value="${property::get-value(current.vendor + '.group')}" />
+            <property name="vendor.version" 
value="${property::get-value(current.vendor + '.version')}" />
+            <property name="vendor.filenames" 
value="${property::get-value(current.vendor + '.filenames')}" />
+            <property name="local.repo.vendor.path" 
value="${nant.local.repo}/${vendor.group}/${vendor.name}/${vendor.version}/${current.build.framework}/${current.build.config}"
 />
+            <property name="lib.path" 
value="lib/${vendor.name}/${current.build.framework}" />
+            <!--
+            Update the LIB folder with the latest version of the file.  If 
there is a newer version
+            installed in the local repository, then that version will be 
copied into the LIB folder.
+            -->
+            <foreach item="String" in="${vendor.filenames}" delim="," 
property="repo.task.artifact">
+                <property name="lib.task.dest" 
value="${lib.path}/${repo.task.artifact}" />
+                <mkdir dir="${directory::get-parent-directory(lib.task.dest)}" 
/>
+                <property name="repo.task.src" 
value="${local.repo.vendor.path}/${repo.task.artifact}" />
+                <copy file="${repo.task.src}" tofile="${lib.task.dest}" 
if="${file::exists(repo.task.src)}" />
+                <if test="${not file::exists(lib.task.dest)}">
+                    <echo message="Required dependent assembly 
${repo.task.artifact} from ${vendor.name} for ${current.build.framework} is not 
available. Build skipped." />
+                    <property name="build.skip" value="true" />
+                </if>
+            </foreach>
+        </foreach>
+    </target>
+
+    <!-- 
============================================================================================
 -->
+    <!--      T E S T     T A R G E T S                                        
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="test" depends="test-debug" description="Alias test target to 
test-debug" />
+
+    <target name="test-all" depends="test-debug, test-release" 
description="Test all build configurations for all runtime configurations" />
+
+    <target name="test-debug" depends="" description="Test debug build 
configurations for all runtime configurations">
+        <property name="current.build.config" value="debug" />
+        <call target="test-frameworks" />
+    </target>
+
+    <target name="test-release" depends="" description="Test release build 
configurations for all runtime configurations">
+        <property name="current.build.config" value="release" />
+        <call target="test-frameworks" />
+    </target>
+
+    <target name="test-frameworks">
+        <foreach item="String" in="${build.framework.strings}" delim="," 
property="current.build.framework">
+            <call target="init" />
+            <if test="${not build.skip}">
+                <exec program="nunit-console" failonerror="true" 
workingdir="build/${current.build.framework}/${current.build.config}">
+                    <arg value="${NUnit.Projectfile}" />
+                    <arg value="-labels" />
+                    <arg value="-exclude=Manual,LongRunning" />
+                    <arg value="-xml=Nunit.TestOutput.xml" />
+                </exec>
+            </if>
+        </foreach>
+    </target>
+
+    <!-- 
============================================================================================
 -->
+    <!--      M I S C E L L A N E O U S    T A R G E T S                       
                       -->
+    <!-- 
============================================================================================
 -->
+
+    <target name="build" depends="default" description="Build the project." />
+
+    <target name="rebuild" depends="clean,build" description="Rebuild the 
project." />
+
+    <target name="clean" description="Deletes build">
+        <if test="${target::exists('clean-init')}">
+            <call target="clean-init" />
+        </if>
+        <foreach item="String" in="${build.framework.strings}" delim="," 
property="current.build.framework">
+            <foreach item="String" in="${build.config.strings}" delim="," 
property="current.build.config">
+                <call target="clean-proj" />
+            </foreach>
+        </foreach>
+    </target>
+
+    <target name="clean-proj" depends="init" description="Deletes specific 
project build">
+        <property name="clean.dir" 
value="build/${current.build.framework}/${current.build.config}" />
+        <delete dir="${clean.dir}" if="${directory::exists(clean.dir)}" />
+        <property name="clean.dir" value="package/${current.build.config}" />
+        <delete dir="${clean.dir}" if="${directory::exists(clean.dir)}" />
+    </target>
+
+    <target name="package" description="Bundle the source and binary 
distributions.">
+        <mkdir dir="${package.dir}"
+                if="${not directory::exists(package.dir)}" />
+        <zip zipfile="${package.dir}/${bin.package.name}">
+            <fileset refid="bin.package.contents"/>
+        </zip>
+        <zip zipfile="${package.dir}/${src.package.name}">
+            <fileset refid="src.package.contents"/>
+        </zip>
+    </target>
+
+    <target name="doc" depends="build">
+        <mkdir dir="${doc.dir}" />
+        <ndoc failonerror="false">
+            <assemblies basedir="${build.bin.dir}">
+                <include name="${project.name}.dll" />
+            </assemblies>
+            <summaries basedir="${basedir}/src/main/ndoc">
+                <include name="NamespaceSummary.xml" />
+            </summaries>
+            <documenters>
+                <documenter name="MSDN">
+                    <property name="OutputDirectory" value="${doc.dir}" />
+                    <property name="HtmlHelpName" value="${project.name}" />
+                    <property name="HtmlHelpCompilerFilename" value="hhc.exe" 
/>
+                    <property name="IncludeFavorites" value="False" />
+                    <property name="Title" 
value="${project.short_description}" />
+                    <property name="SplitTOCs" value="False" />
+                    <property name="DefaulTOC" value="" />
+                    <!--
+                    <property name="ShowVisualBasic" value="True" />
+                    <property name="ShowMissingSummaries" value="True" />
+                    <property name="ShowMissingRemarks" value="True" />
+                    <property name="ShowMissingParams" value="True" />
+                    <property name="ShowMissingReturns" value="True" />
+                    <property name="ShowMissingValues" value="True" />
+                    -->
+                    <property name="DocumentInternals" value="False" />
+                    <property name="DocumentProtected" value="True" />
+                    <property name="DocumentPrivates" value="False" />
+                    <property name="DocumentEmptyNamespaces" value="False" />
+                    <property name="IncludeAssemblyVersion" value="True" />
+                    <property name="CopyrightText" value="" />
+                    <property name="CopyrightHref" value="" />
+                </documenter>
+            </documenters>
+        </ndoc>
+    </target>
+
+    <target name="sandcastle" depends="set-release-configuration, init, 
conditional-compile">
+        <!-- Directories -->
+        <property name="sandcastle.style" value="vs2005" 
unless="${property::exists('sandcastle.style')}" />
+        <property name="documentation.dir" value="${build.bin.dir}" />
+        <property name="bin.intern.dir" value="${build.bin.dir}" />
+        <property name="bin.extern.dir" value="${basedir}\lib\NUnit\net-2.0" />
+        <property name="sandcastle.dir" 
value="${environment::get-variable('DXROOT')}" />
+        <property name="sandcastle.workingdir" 
value="${build.dir}\doc\${sandcastle.style}" />
+        <property name="sandcastle.output.dir" 
value="${sandcastle.workingdir}\Output" />
+
+        <!-- Executables -->
+        <property name="sandcastle.mrefbuilder.exe" 
value="${sandcastle.dir}\productiontools\mrefbuilder.exe" />
+        <property name="sandcastle.buildassembler.exe" 
value="${sandcastle.dir}\productiontools\buildassembler.exe" />
+        <property name="sandcastle.xsltransform.exe" 
value="${sandcastle.dir}\productiontools\xsltransform.exe" />
+        <property name="sandcastle.productiontransforms.dir" 
value="${sandcastle.dir}\ProductionTransforms" />
+
+        <!-- Create or Cleanup Working Directory -->
+        <mkdir dir="${sandcastle.workingdir}"
+                if="${not directory::exists(sandcastle.workingdir)}" />
+        <delete>
+            <fileset basedir="${sandcastle.workingdir}">
+                <include name="**\*" />
+            </fileset>
+        </delete>
+
+        <!-- Copy configuration file, and hard code references -->
+        <copy 
file="${sandcastle.dir}/Presentation/${sandcastle.style}/Configuration/Sandcastle.config"
+                tofile="${sandcastle.workingdir}/Sandcastle.config">
+            <filterchain>
+                <replacestring from="&quot;..\..\" 
to="&quot;${sandcastle.dir}\" />
+                <replacestring from="&quot;..\" 
to="&quot;${sandcastle.dir}\Examples\" />
+                <replacestring from="&quot;.\comments.xml" 
to="&quot;${documentation.dir}\${project.name}.xml" />
+                <replacestring 
from="&quot;%DXROOT%\Presentation\${sandcastle.style}\content\feedback_content.xml&quot;"
 to="&quot;${basedir}/src/main/sandcastle/feedback_content.xml&quot;" />
+            </filterchain>
+        </copy>
+
+        <!-- Run MRefBuilder (introspection on assemblies) to create basic 
Reflection XML -->
+        <exec program="${sandcastle.mrefbuilder.exe}" 
workingdir="${sandcastle.workingdir}">
+            <arg value="${bin.intern.dir}/${project.name}.dll" />
+            <arg value="/out:reflection.int.xml" />
+            <arg value="/dep:${bin.extern.dir}\*.dll" />
+        </exec>
+
+        <!-- Create Reflection XML -->
+        <exec program="${sandcastle.xsltransform.exe}" 
workingdir="${sandcastle.workingdir}">
+            <arg 
value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyVSDocModel.xsl&quot;"
 if="${sandcastle.style != 'prototype'}" />
+            <arg 
value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ApplyPrototypeDocModel.xsl&quot;"
 if="${sandcastle.style == 'prototype'}" />
+            <arg 
value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddFriendlyFilenames.xsl&quot;"
 /> <!-- if="${sandcastle.style != 'prototype'}" /> -->
+            <arg 
value="/xsl:&quot;${sandcastle.productiontransforms.dir}\AddGuidFilenames.xsl&quot;"
 if="${sandcastle.style == 'disabled'}" />
+            <arg value="reflection.int.xml" />
+            <arg value="/out:reflection.xml" />
+            <arg value="/arg:IncludeAllMembersTopic=true" />
+            <arg value="/arg:IncludeInheritedOverloadTopics=true" />
+        </exec>
+
+        <!-- Create Manifest (list of Topics) -->
+        <exec program="${sandcastle.xsltransform.exe}" 
workingdir="${sandcastle.workingdir}">
+            <arg 
value="/xsl:&quot;${sandcastle.productiontransforms.dir}\ReflectionToManifest.xsl&quot;"
 />
+            <arg value="reflection.xml" />
+            <arg value="/out:manifest.xml" />
+        </exec>
+
+        <!-- Create Output Environment -->
+        <mkdir dir="${sandcastle.output.dir}" />
+        <mkdir dir="${sandcastle.output.dir}/html" />
+        <copy todir="${sandcastle.output.dir}">
+            <fileset 
basedir="${sandcastle.dir}/Presentation/${sandcastle.style}">
+                <include name="icons/*" />
+                <include name="media/*" />
+                <include name="scripts/*" />
+                <include name="styles/*" />
+            </fileset>
+        </copy>
+
+        <!-- Run BuildAssembler (create html topic files) -->
+        <exec program="${sandcastle.buildassembler.exe}" 
workingdir="${sandcastle.workingdir}">
+            <arg value="/config:Sandcastle.config" />
+            <arg value="manifest.xml" />
+        </exec>
+    </target>
+
+    <target name="sandcastle-all" description="Generate all formats of the 
Sandcastle documentation files.">
+        <foreach item="String" in="vs2005,prototype,hana" delim="," 
property="sandcastle.style">
+            <call target="sandcastle" />
+        </foreach>
+    </target>
+</project>

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant.build
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant.build?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant.build (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/nant.build Wed Jan  6 
02:19:56 2016
@@ -0,0 +1,189 @@
+<?xml version="1.0"?>
+<!--
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You 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.
+-->
+<project name="Apache.NMS.XMS" default="default" 
xmlns="http://nant.sourceforge.net/release/0.85/nant.xsd";>
+       <!-- 
============================================================================================
 -->
+       <!--      I N I T I A L I Z A T I O N                                   
                          -->
+       <!-- 
============================================================================================
 -->
+       <property name="basedir" value="${project::get-base-directory()}" />
+       <property name="project.name" value="Apache.NMS.XMS" />
+       <property name="project.group" value="org.apache.activemq" />
+       <property name="project.version" value="1.8.0" 
unless="${property::exists('project.version')}" />
+       <property name="project.release.type" value="SNAPSHOT" 
unless="${property::exists('project.release.type')}" />
+       <property name="project.short_description" value="Apache NMS for XMS 
Class Library" />
+       <property name="project.description" value="Apache NMS for XMS Class 
Library (.Net Messaging Library Implementation): An implementation of the NMS 
API for XMS" />
+       <!-- The XMS module is not CLS compliant yet -->
+       <property name="project.cls.compliant" value="false" />
+       <!-- Repository organized as: 
organization/module/version/plaform/artifact, platform might be something like 
'all' or 'net-4.0/release' -->
+       <property name="nunit.dll" 
value="${basedir}/lib/NUnit/${current.build.framework}/nunit.framework.dll" 
dynamic="true" />
+       <property name="Apache.NMS.dll" 
value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.dll" 
dynamic="true" />
+       <property name="Apache.NMS.pdb" 
value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.pdb" 
dynamic="true" />
+       <!--<property name="Apache.NMS.Test.dll" 
value="${basedir}/lib/Apache.NMS/${current.build.framework}//Apache.NMS.Test.dll"
 dynamic="true" />-->
+       <!--<property name="Apache.NMS.Test.pdb" 
value="${basedir}/lib/Apache.NMS/${current.build.framework}/Apache.NMS.Test.pdb"
 dynamic="true" />-->
+       <property name="IBM.XMS.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Impl.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Impl.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Core.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Core.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Util.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Util.dll" 
dynamic="true" />
+       <property name="IBM.XMS.NLS.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.NLS.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Provider.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Provider.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Client.Impl.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Client.Impl.dll"
 dynamic="true" />
+       <property name="IBM.XMS.Client.WMQ.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Client.WMQ.dll"
 dynamic="true" />
+       <property name="IBM.XMS.Admin.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Admin.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Admin.Objects.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Admin.Objects.dll"
 dynamic="true" />
+       <property name="IBM.XMS.Comms.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Comms.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Comms.RMM.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Comms.RMM.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Comms.SSL.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Comms.SSL.dll" 
dynamic="true" />
+       <property name="IBM.XMS.Formats.JMF.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Formats.JMF.dll"
 dynamic="true" />
+       <property name="IBM.XMS.Formats.MFP.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Formats.MFP.dll"
 dynamic="true" />
+       <property name="IBM.XMS.Match.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.Match.dll" 
dynamic="true" />
+       <property name="IBM.XMS.SIB.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.SIB.dll" 
dynamic="true" />
+       <property name="IBM.XMS.WCF.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.WCF.dll" 
dynamic="true" />
+       <property name="IBM.XMS.WCF.NLS.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.WCF.NLS.dll" 
dynamic="true" />
+       <property name="IBM.XMS.WMQI.dll" 
value="${basedir}/lib/IBM.XMS/${current.build.framework}/IBM.XMS.WMQI.dll" 
dynamic="true" />
+       <property name="NUnit.Projectfile" value="Apache.NMS.XMS.Test.nunit" />
+       <!-- Skip certain frameworks, since IBM XMS client is not supported on 
those platforms. -->
+       <property name="build.netcf-2.0.skip" value="true" />
+       <property name="build.netcf-3.5.skip" value="true" />
+       <property name="build.mono-2.0.skip" value="true" />
+       <!-- Possibly supported (cf. 
http://stackoverflow.com/questions/10138267/ibm-mqs-net-xms-and-mono) but not 
tested -->
+       <property name="build.mono-4.0.skip" value="true" />
+       <!-- Possibly supported (cf. 
http://stackoverflow.com/questions/10138267/ibm-mqs-net-xms-and-mono) but not 
tested -->
+       <property name="build.net-2.0.skip" value="true" />
+       <!-- Possibly supported but not tested -->
+       <property name="build.net-3.5.skip" value="true" />
+       <!-- Possibly supported but not tested -->
+       <target name="vendor-init" description="Initializes Vendor library from 
local repository.">
+               <!--
+                  Vendor specific info.  The prefix of 'vendor.apache.org' is 
taken from the property
+                  'vendor.fileset.names'.  This comma-delimited list is 
iterated, and properties with
+                  well-known suffixes are used to access and copy down vendor 
file dependencies.
+               -->
+               <property name="vendor.fileset.names" 
value="vendor.apache.org,vendor.nunit.org,vendor.ibm.org" />
+               <!-- Property grouping for 'vendor.apache.org' -->
+               <property name="vendor.apache.org.name" value="Apache.NMS" />
+               <property name="vendor.apache.org.group" 
value="org.apache.activemq" />
+               <property name="vendor.apache.org.version" value="1.8.0" />
+               <property name="vendor.apache.org.filenames" 
value="Apache.NMS.dll,Apache.NMS.pdb,Apache.NMS.Test.dll,Apache.NMS.Test.pdb" />
+               <!-- Property grouping for 'vendor.nunit.org' -->
+               <property name="vendor.nunit.org.name" value="NUnit" />
+               <property name="vendor.nunit.org.group" value="org.nunit" />
+               <property name="vendor.nunit.org.version" value="2.5.8" />
+               <property name="vendor.nunit.org.filenames" 
value="nunit.framework.dll" />
+               <!-- Property grouping for 'vendor.ibm.org' -->
+               <property name="vendor.ibm.org.name" value="IBM.XMS" />
+               <property name="vendor.ibm.org.group" value="org.ibm.xms" />
+               <property name="vendor.ibm.org.version" value="8.0.0" />
+               <property name="vendor.ibm.org.filenames" 
value="IBM.XMS.dll,IBM.XMS.Impl.dll,IBM.XMS.Core.dll,IBM.XMS.Util.dll,IBM.XMS.NLS.dll,IBM.XMS.Provider.dll,IBM.XMS.Client.Impl.dll,IBM.XMS.Client.WMQ.dll,IBM.XMS.Admin.dll,IBM.XMS.Admin.Objects.dll,IBM.XMS.Comms.dll,IBM.XMS.Comms.RMM.dll,IBM.XMS.Comms.SSL.dll,IBM.XMS.Formats.JMF.dll,IBM.XMS.Formats.MFP.dll,IBM.XMS.Match.dll,IBM.XMS.SIB.dll,IBM.XMS.WCF.dll,IBM.XMS.WCF.NLS.dll,IBM.XMS.WMQI.dll"
 />
+       </target>
+       <target name="dependency-init" description="Initializes build 
dependencies">
+               <assemblyfileset failonempty="true" id="dependencies">
+                       <include 
name="${current.build.framework.assembly.dir}/mscorlib.dll" />
+                       <include 
name="${current.build.framework.assembly.dir}/System.dll" />
+                       <include 
name="${current.build.framework.assembly.dir}/System.Xml.dll" />
+                       <include name="${IBM.XMS.dll}" />
+                       <include name="${IBM.XMS.Impl.dll}" />
+                       <include name="${IBM.XMS.Core.dll}" />
+                       <include name="${IBM.XMS.Util.dll}" />
+                       <include name="${IBM.XMS.NLS.dll}" />
+                       <include name="${IBM.XMS.Provider.dll}" />
+                       <include name="${IBM.XMS.Client.Impl.dll}" />
+                       <include name="${IBM.XMS.Client.WMQ.dll}" />
+                       <include name="${IBM.XMS.Admin.dll}" />
+                       <include name="${IBM.XMS.Admin.Objects.dll}" />
+                       <include name="${IBM.XMS.Comms.dll}" />
+                       <include name="${IBM.XMS.Comms.RMM.dll}" />
+                       <include name="${IBM.XMS.Comms.SSL.dll}" />
+                       <include name="${IBM.XMS.Formats.JMF.dll}" />
+                       <include name="${IBM.XMS.Formats.MFP.dll}" />
+                       <include name="${IBM.XMS.Match.dll}" />
+                       <include name="${IBM.XMS.SIB.dll}" />
+                       <include name="${IBM.XMS.WCF.dll}" />
+                       <include name="${IBM.XMS.WCF.NLS.dll}" />
+                       <include name="${IBM.XMS.WMQI.dll}" />
+                       <include name="${Apache.NMS.dll}" />
+               </assemblyfileset>
+               <assemblyfileset failonempty="true" id="test.dependencies">
+                       <include 
name="${current.build.framework.assembly.dir}/mscorlib.dll" />
+                       <include 
name="${current.build.framework.assembly.dir}/System.dll" />
+                       <include 
name="${current.build.framework.assembly.dir}/System.Xml.dll" />
+                       <include name="${IBM.XMS.dll}" />
+                       <include name="${IBM.XMS.Impl.dll}" />
+                       <include name="${IBM.XMS.Core.dll}" />
+                       <include name="${IBM.XMS.Util.dll}" />
+                       <include name="${IBM.XMS.NLS.dll}" />
+                       <include name="${IBM.XMS.Provider.dll}" />
+                       <include name="${IBM.XMS.Client.Impl.dll}" />
+                       <include name="${IBM.XMS.Client.WMQ.dll}" />
+                       <include name="${IBM.XMS.Admin.dll}" />
+                       <include name="${IBM.XMS.Admin.Objects.dll}" />
+                       <include name="${IBM.XMS.Comms.dll}" />
+                       <include name="${IBM.XMS.Comms.RMM.dll}" />
+                       <include name="${IBM.XMS.Comms.SSL.dll}" />
+                       <include name="${IBM.XMS.Formats.JMF.dll}" />
+                       <include name="${IBM.XMS.Formats.MFP.dll}" />
+                       <include name="${IBM.XMS.Match.dll}" />
+                       <include name="${IBM.XMS.SIB.dll}" />
+                       <include name="${IBM.XMS.WCF.dll}" />
+                       <include name="${IBM.XMS.WCF.NLS.dll}" />
+                       <include name="${IBM.XMS.WMQI.dll}" />
+                       <include name="${Apache.NMS.dll}" />
+                       <!--<include name="${Apache.NMS.Test.dll}" />-->
+                       <include name="${build.bin.dir}/${project.name}.dll" />
+                       <include name="${nunit.dll}" />
+               </assemblyfileset>
+               <fileset id="content.filenames">
+                       <include name="LICENSE.txt" />
+                       <include name="NOTICE.txt" />
+                       <include name="nmsprovider-*.config" />
+                       <include name="${IBM.XMS.dll}" />
+                       <include name="${IBM.XMS.Impl.dll}" />
+                       <include name="${IBM.XMS.Core.dll}" />
+                       <include name="${IBM.XMS.Util.dll}" />
+                       <include name="${IBM.XMS.NLS.dll}" />
+                       <include name="${IBM.XMS.Provider.dll}" />
+                       <include name="${IBM.XMS.Client.Impl.dll}" />
+                       <include name="${IBM.XMS.Client.WMQ.dll}" />
+                       <include name="${IBM.XMS.Admin.dll}" />
+                       <include name="${IBM.XMS.Admin.Objects.dll}" />
+                       <include name="${IBM.XMS.Comms.dll}" />
+                       <include name="${IBM.XMS.Comms.RMM.dll}" />
+                       <include name="${IBM.XMS.Comms.SSL.dll}" />
+                       <include name="${IBM.XMS.Formats.JMF.dll}" />
+                       <include name="${IBM.XMS.Formats.MFP.dll}" />
+                       <include name="${IBM.XMS.Match.dll}" />
+                       <include name="${IBM.XMS.SIB.dll}" />
+                       <include name="${IBM.XMS.WCF.dll}" />
+                       <include name="${IBM.XMS.WCF.NLS.dll}" />
+                       <include name="${IBM.XMS.WMQI.dll}" />
+                       <include name="${Apache.NMS.dll}" />
+                       <include name="${Apache.NMS.pdb}" />
+                       <!--<include name="${Apache.NMS.Test.dll}" />-->
+                       <!--<include name="${Apache.NMS.Test.pdb}" />-->
+                       <include name="${nunit.dll}" />
+                       <include name="${NUnit.Projectfile}" />
+               </fileset>
+               <fileset id="install.filenames">
+                       <include name="LICENSE.txt" />
+                       <include name="NOTICE.txt" />
+                       <include name="${build.bin.dir}/${project.name}.dll" />
+                       <include name="${build.bin.dir}/${project.name}.pdb" />
+               </fileset>
+       </target>
+       <target name="default" depends="install-all" />
+       <!-- Load the common target definitions  -->
+       <include buildfile="${basedir}/nant-common.xml" />
+</project>

Added: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/package.ps1
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/package.ps1?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/package.ps1 (added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/package.ps1 Wed Jan  6 
02:19:56 2016
@@ -0,0 +1,61 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You 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.
+
+$pkgname = "Apache.NMS.XMS"
+$pkgver = "1.8-SNAPSHOT"
+$configurations = "release", "debug"
+$frameworks = "net-4.0"
+
+write-progress "Creating package directory." "Initializing..."
+if(!(test-path package))
+{
+       md package
+}
+
+if(test-path build)
+{
+       pushd build
+
+       $pkgdir = "..\package"
+
+       write-progress "Packaging Application files." "Scanning..."
+       $zipfile = "$pkgdir\$pkgname-$pkgver-bin.zip"
+       zip -9 -u -j "$zipfile" ..\LICENSE.txt
+       zip -9 -u -j "$zipfile" ..\NOTICE.txt
+       foreach($configuration in $configurations)
+       {
+               foreach($framework in $frameworks)
+               {
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\$pkgname.dll"
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\$pkgname.xml"
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\xmsprovider*.config"
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\$pkgname.Test.dll"
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\$pkgname.Test.xml"
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\$pkgname.pdb"
+                       zip -9 -u "$zipfile" 
"$framework\$configuration\$pkgname.Test.pdb"
+               }
+       }
+
+       popd
+}
+
+write-progress "Packaging Source code files." "Scanning..."
+$pkgdir = "package"
+$zipfile = "$pkgdir\$pkgname-$pkgver-src.zip"
+
+zip -9 -u "$zipfile" LICENSE.txt NOTICE.txt nant-common.xml nant.build 
package.ps1 vs2013-xms-test.csproj vs2013-xms.csproj vs2013-xms.sln
+zip -9 -u -r "$zipfile" keyfile src
+
+write-progress -Completed "Packaging" "Complete."

Propchange: activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/
------------------------------------------------------------------------------
--- svn:ignore (added)
+++ svn:ignore Wed Jan  6 02:19:56 2016
@@ -0,0 +1 @@
+CommonAssemblyInfo.cs

Added: 
activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/BytesMessage.cs
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/BytesMessage.cs?rev=1723221&view=auto
==============================================================================
--- 
activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/BytesMessage.cs 
(added)
+++ 
activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/BytesMessage.cs 
Wed Jan  6 02:19:56 2016
@@ -0,0 +1,187 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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;
+using Apache.NMS;
+using Apache.NMS.Util;
+using Apache.NMS.XMS.Util;
+using IBM.XMS;
+
+namespace Apache.NMS.XMS
+{
+       class BytesMessage : Apache.NMS.XMS.Message, Apache.NMS.IBytesMessage
+       {
+               public IBM.XMS.IBytesMessage xmsBytesMessage
+               {
+                       get { return (IBM.XMS.IBytesMessage)this.xmsMessage; }
+                       set { this.xmsMessage = value; }
+               }
+
+               public BytesMessage(IBM.XMS.IBytesMessage message)
+                       : base(message)
+               {
+               }
+
+               #region IBytesMessage Members
+
+               public byte[] Content
+               {
+                       get
+                       {
+                               int contentLength = (int) 
this.xmsBytesMessage.BodyLength;
+                               byte[] msgContent = new byte[contentLength];
+
+                               this.xmsBytesMessage.Reset();
+                               this.xmsBytesMessage.ReadBytes(msgContent, 
contentLength);
+                               return msgContent;
+                       }
+
+                       set
+                       {
+                               this.ReadOnlyBody = false;
+                               this.xmsBytesMessage.ClearBody();
+                               this.xmsBytesMessage.WriteBytes(value, 0, 
value.Length);
+                       }
+               }
+
+               public long BodyLength
+               {
+                       get { return this.xmsBytesMessage.BodyLength; }
+               }
+
+               public bool ReadBoolean()
+               {
+                       return this.xmsBytesMessage.ReadBoolean();
+               }
+
+               public byte ReadByte()
+               {
+                       return (byte) this.xmsBytesMessage.ReadByte();
+               }
+
+               public int ReadBytes(byte[] value, int length)
+               {
+                       return this.xmsBytesMessage.ReadBytes(value, length);
+               }
+
+               public int ReadBytes(byte[] value)
+               {
+                       return this.xmsBytesMessage.ReadBytes(value);
+               }
+
+               public char ReadChar()
+               {
+                       return this.xmsBytesMessage.ReadChar();
+               }
+
+               public double ReadDouble()
+               {
+                       return this.xmsBytesMessage.ReadDouble();
+               }
+
+               public short ReadInt16()
+               {
+                       return this.xmsBytesMessage.ReadShort();
+               }
+
+               public int ReadInt32()
+               {
+                       return this.xmsBytesMessage.ReadInt();
+               }
+
+               public long ReadInt64()
+               {
+                       return this.xmsBytesMessage.ReadLong();
+               }
+
+               public float ReadSingle()
+               {
+                       return this.xmsBytesMessage.ReadFloat();
+               }
+
+               public string ReadString()
+               {
+                       return this.xmsBytesMessage.ReadUTF();
+               }
+
+               public void Reset()
+               {
+                       this.xmsBytesMessage.Reset();
+               }
+
+               public void WriteBoolean(bool value)
+               {
+                       this.xmsBytesMessage.WriteBoolean(value);
+               }
+
+               public void WriteByte(byte value)
+               {
+                       this.xmsBytesMessage.WriteByte(value);
+               }
+
+               public void WriteBytes(byte[] value, int offset, int length)
+               {
+                       this.xmsBytesMessage.WriteBytes(value, offset, length);
+               }
+
+               public void WriteBytes(byte[] value)
+               {
+                       this.xmsBytesMessage.WriteBytes(value);
+               }
+
+               public void WriteChar(char value)
+               {
+                       this.xmsBytesMessage.WriteChar(value);
+               }
+
+               public void WriteDouble(double value)
+               {
+                       this.xmsBytesMessage.WriteDouble(value);
+               }
+
+               public void WriteInt16(short value)
+               {
+                       this.xmsBytesMessage.WriteShort(value);
+               }
+
+               public void WriteInt32(int value)
+               {
+                       this.xmsBytesMessage.WriteInt(value);
+               }
+
+               public void WriteInt64(long value)
+               {
+                       this.xmsBytesMessage.WriteLong(value);
+               }
+
+               public void WriteObject(object value)
+               {
+                       this.xmsBytesMessage.WriteObject(value);
+               }
+
+               public void WriteSingle(float value)
+               {
+                       this.xmsBytesMessage.WriteFloat(value);
+               }
+
+               public void WriteString(string value)
+               {
+                       this.xmsBytesMessage.WriteUTF(value);
+               }
+
+               #endregion
+       }
+}

Added: 
activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Connection.cs
URL: 
http://svn.apache.org/viewvc/activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Connection.cs?rev=1723221&view=auto
==============================================================================
--- activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Connection.cs 
(added)
+++ activemq/activemq-dotnet/Apache.NMS.XMS/trunk/src/main/csharp/Connection.cs 
Wed Jan  6 02:19:56 2016
@@ -0,0 +1,461 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You 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;
+using Apache.NMS;
+using Apache.NMS.Util;
+using Apache.NMS.XMS.Util;
+using IBM.XMS;
+
+namespace Apache.NMS.XMS
+{
+       /// <summary>
+       /// Represents an NMS connection to IBM MQ.
+       /// </summary>
+       ///
+       public class Connection : Apache.NMS.IConnection
+       {
+               private Apache.NMS.AcknowledgementMode acknowledgementMode;
+               public readonly IBM.XMS.IConnection xmsConnection;
+               private IRedeliveryPolicy redeliveryPolicy;
+               private ConnectionMetaData metaData = null;
+               private readonly Atomic<bool> started = new Atomic<bool>(false);
+               private bool closed = false;
+               private bool disposed = false;
+               
+               #region Constructors
+               
+               /// <summary>
+               /// Constructs a connection object.
+               /// </summary>
+               public Connection(IBM.XMS.IConnection xmsConnection)
+               {
+                       this.xmsConnection = xmsConnection;
+                       this.xmsConnection.ExceptionListener = 
this.HandleXmsException;
+               }
+               
+               /// <summary>
+               /// "Destructs" or "finalizes" a connection object.
+               /// </summary>
+               ~Connection()
+               {
+                       Dispose(false);
+               }
+               
+               #endregion
+               
+               #region IStartable Members
+               
+               /// <summary>
+               /// Starts message delivery for this connection.
+               /// </summary>
+               public void Start()
+               {
+                       if(started.CompareAndSet(false, true))
+                       {
+                               try
+                               {
+                                       this.xmsConnection.Start();
+                               }
+                               catch(Exception ex)
+                               {
+                                       
ExceptionUtil.WrapAndThrowNMSException(ex);
+                               }
+                       }
+               }
+               
+               public bool IsStarted
+               {
+                       get { return this.started.Value; }
+               }
+               
+               #endregion
+               
+               #region IStoppable Members
+               
+               /// <summary>
+               /// Stop message delivery for this connection.
+               /// </summary>
+               public void Stop()
+               {
+                       try
+                       {
+                               if(started.CompareAndSet(true, false))
+                               {
+                                       this.xmsConnection.Stop();
+                               }
+                       }
+                       catch(Exception ex)
+                       {
+                               ExceptionUtil.WrapAndThrowNMSException(ex);
+                       }
+               }
+               
+               #endregion
+               
+               #region IConnection Members
+               
+               /// <summary>
+               /// Creates a new session to work on this connection
+               /// </summary>
+               public Apache.NMS.ISession CreateSession()
+               {
+                       return CreateSession(acknowledgementMode);
+               }
+               
+               /// <summary>
+               /// Creates a new session to work on this connection
+               /// </summary>
+               public Apache.NMS.ISession CreateSession(
+                       Apache.NMS.AcknowledgementMode mode)
+               {
+                       try
+                       {
+                               bool isTransacted =
+                                       (mode == 
Apache.NMS.AcknowledgementMode.Transactional);
+                               return XMSConvert.ToNMSSession(
+                                       this.xmsConnection.CreateSession(
+                                               isTransacted, 
XMSConvert.ToAcknowledgeMode(mode)));
+                       }
+                       catch(Exception ex)
+                       {
+                               ExceptionUtil.WrapAndThrowNMSException(ex);
+                               return null;
+                       }
+               }
+               
+               public void Close()
+               {
+                       lock(this)
+                       {
+                               if(closed)
+                               {
+                                       return;
+                               }
+               
+                               try
+                               {
+                                       this.xmsConnection.ExceptionListener = 
null;
+                                       this.xmsConnection.Stop();
+                                       this.xmsConnection.Close();
+                               }
+                               catch(Exception ex)
+                               {
+                                       
ExceptionUtil.WrapAndThrowNMSException(ex);
+                               }
+                               finally
+                               {
+                                       closed = true;
+                               }
+                       }
+               }
+               
+               public void PurgeTempDestinations()
+               {
+               }
+               
+               #endregion
+               
+               #region IDisposable Members
+               
+               public void Dispose()
+               {
+                       Dispose(true);
+                       GC.SuppressFinalize(this);
+               }
+               
+               protected void Dispose(bool disposing)
+               {
+                       if(disposed)
+                       {
+                               return;
+                       }
+               
+                       if(disposing)
+                       {
+                               // Dispose managed code here.
+                       }
+               
+                       try
+                       {
+                               Close();
+                       }
+                       catch
+                       {
+                               // Ignore errors.
+                       }
+               
+                       disposed = true;
+               }
+               
+               #endregion
+               
+               #region Attributes
+               
+               /// <summary>
+               /// The default timeout for network requests.
+               /// </summary>
+               public TimeSpan RequestTimeout
+               {
+                       get { return 
Apache.NMS.NMSConstants.defaultRequestTimeout; }
+                       set { }
+               }
+               
+               public Apache.NMS.AcknowledgementMode AcknowledgementMode
+               {
+                       get { return acknowledgementMode; }
+                       set { acknowledgementMode = value; }
+               }
+               
+               public string ClientId
+               {
+                       get
+                       {
+                               try
+                               {
+                                       return this.xmsConnection.ClientID;
+                               }
+                               catch(Exception ex)
+                               {
+                                       
ExceptionUtil.WrapAndThrowNMSException(ex);
+                                       return null;
+                               }
+                       }
+                       set
+                       {
+                               try
+                               {
+                                       this.xmsConnection.ClientID = value;
+                               }
+                               catch(Exception ex)
+                               {
+                                       
ExceptionUtil.WrapAndThrowNMSException(ex);
+                               }
+                       }
+               }
+               
+               /// <summary>
+               /// Get/or set the redelivery policy for this connection.
+               /// </summary>
+               public IRedeliveryPolicy RedeliveryPolicy
+               {
+                       get { return this.redeliveryPolicy; }
+                       set { this.redeliveryPolicy = value; }
+               }
+               
+               /// <summary>
+               /// Gets the Meta Data for the NMS Connection instance.
+               /// </summary>
+               public IConnectionMetaData MetaData
+               {
+                       get { return this.metaData ?? (this.metaData = new 
ConnectionMetaData()); }
+               }
+               
+               #endregion
+               
+               #region Properties
+               
+               // 
http://www-01.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.msc.doc/props_conn.htm?lang=en
+               
+               #region Common properties
+               
+               /// <summary>
+               /// This property is used to obtain the name of the queue 
manager
+               /// to which it is connected.
+               /// </summary>
+               public string ResolvedQueueManagerName
+               {
+                       get { return 
this.xmsConnection.GetStringProperty(XMSC.WMQ_RESOLVED_QUEUE_MANAGER); }
+                       set { 
this.xmsConnection.SetStringProperty(XMSC.WMQ_RESOLVED_QUEUE_MANAGER, value); }
+               }
+               
+               /// <summary>
+               /// This property is populated with the ID of the queue manager
+               /// after the connection.
+               /// </summary>
+               public string ResolvedQueueManagerId
+               {
+                       get { return 
this.xmsConnection.GetStringProperty(XMSC.WMQ_RESOLVED_QUEUE_MANAGER_ID); }
+                       set { 
this.xmsConnection.SetStringProperty(XMSC.WMQ_RESOLVED_QUEUE_MANAGER_ID, 
value); }
+               }
+               
+               #endregion
+               
+               #region WPM-specific properties
+               
+               /// <summary>
+               /// The communications protocol used for the connection to the
+               /// messaging engine. This property is read-only.
+               /// </summary>
+               public Int32 XMSConnectionProtocol
+               {
+                       get { return 
this.xmsConnection.GetIntProperty(XMSC.WPM_CONNECTION_PROTOCOL); }
+               }
+               
+               /// <summary>
+               /// The communications protocol used for the connection to the
+               /// messaging engine. This property is read-only.
+               /// </summary>
+               public WPMConnectionProtocol ConnectionProtocol
+               {
+                       get { return 
XMSConvert.ToWPMConnectionProtocol(this.XMSConnectionProtocol); }
+               }
+               
+               /// <summary>
+               /// The host name or IP address of the system that contains the
+               /// messaging engine to which the application is connected. This
+               /// property is read-only.
+               /// </summary>
+               public string HostName
+               {
+                       get { return 
this.xmsConnection.GetStringProperty(XMSC.WPM_HOST_NAME); }
+               }
+               
+               /// <summary>
+               /// The name of the messaging engine to which the application is
+               /// connected. This property is read-only.
+               /// </summary>
+               public string MessagingEngineName
+               {
+                       get { return 
this.xmsConnection.GetStringProperty(XMSC.WPM_ME_NAME); }
+               }
+               
+               /// <summary>
+               /// The number of the port listened on by the messaging engine 
to
+               /// which the application is connected. This property is 
read-only.
+               /// </summary>
+               public Int32 Port
+               {
+                       get { return 
this.xmsConnection.GetIntProperty(XMSC.WPM_PORT); }
+               }
+               
+               #endregion
+               
+               #endregion
+               
+               #region Event Listeners, Handlers and Delegates
+               
+               /// <summary>
+               /// A delegate that can receive transport level exceptions.
+               /// </summary>
+               public event ExceptionListener ExceptionListener;
+               
+               /// <summary>
+               /// Handles XMS connection exceptions.
+               /// </summary>
+               private void HandleXmsException(Exception exception)
+               {
+                       if(ExceptionListener != null)
+                       {
+                               // Return codes MQRC_RECONNECTING and 
MQRC_RECONNECTED
+                               // are not defined in XMS.
+                               // const int MQRC_RECONNECTING = 2544;
+                               // const int MQRC_RECONNECTED = 2545;
+                               // According to 
http://www-01.ibm.com/support/knowledgecenter/#!/SSFKSJ_8.0.0/com.ibm.mq.con.doc/q017800_.htm
+                               // Except for JMS and XMS clients, if a client 
application has
+                               // access to reconnection options, it can also 
create an event
+                               // handler to handle reconnection events.
+                               ExceptionListener(exception);
+                       }
+                       else
+                       {
+                               Apache.NMS.Tracer.Error(exception);
+                       }
+               }
+               
+               /// <summary>
+               /// An asynchronous listener that is notified when a fault 
tolerant
+               /// connection has been interrupted.
+               /// </summary>
+               /// <remarks>
+               /// IBM XMS does not handle disconnection / reconnection 
notifications.
+               /// This delegate will never be called.
+               /// </remarks>
+               public event ConnectionInterruptedListener 
ConnectionInterruptedListener;
+               
+               private void HandleTransportInterrupted()
+               {
+                       Tracer.Debug("Transport has been interrupted.");
+               
+                       if(this.ConnectionInterruptedListener != null && 
!this.closed)
+                       {
+                               try
+                               {
+                                       this.ConnectionInterruptedListener();
+                               }
+                               catch
+                               {
+                               }
+                       }
+               }
+               
+               /// <summary>
+               /// An asynchronous listener that is notified when a fault 
tolerant
+               /// connection has been resumed.
+               /// </summary>
+               /// <remarks>
+               /// IBM XMS does not handle disconnection / reconnection 
notifications.
+               /// This delegate will never be called.
+               /// </remarks>
+               public event ConnectionResumedListener 
ConnectionResumedListener;
+               
+               private void HandleTransportResumed()
+               {
+                       Tracer.Debug("Transport has resumed normal operation.");
+               
+                       if(this.ConnectionResumedListener != null && 
!this.closed)
+                       {
+                               try
+                               {
+                                       this.ConnectionResumedListener();
+                               }
+                               catch
+                               {
+                               }
+                       }
+               }
+               
+               private ConsumerTransformerDelegate consumerTransformer;
+               /// <summary>
+               /// A Delegate that is called each time a Message is dispatched 
to allow the client to do
+               /// any necessary transformations on the received message 
before it is delivered.  The
+               /// ConnectionFactory sets the provided delegate instance on 
each Connection instance that
+               /// is created from this factory, each connection in turn 
passes the delegate along to each
+               /// Session it creates which then passes that along to the 
Consumers it creates.
+               /// </summary>
+               public ConsumerTransformerDelegate ConsumerTransformer
+               {
+                       get { return this.consumerTransformer; }
+                       set { this.consumerTransformer = value; }
+               }
+               
+               private ProducerTransformerDelegate producerTransformer;
+               /// <summary>
+               /// A delegate that is called each time a Message is sent from 
this Producer which allows
+               /// the application to perform any needed transformations on 
the Message before it is sent.
+               /// The ConnectionFactory sets the provided delegate instance 
on each Connection instance that
+               /// is created from this factory, each connection in turn 
passes the delegate along to each
+               /// Session it creates which then passes that along to the 
Producers it creates.
+               /// </summary>
+               public ProducerTransformerDelegate ProducerTransformer
+               {
+                       get { return this.producerTransformer; }
+                       set { this.producerTransformer = value; }
+               }
+               
+               #endregion
+       }
+}


Reply via email to