diff --git a/src/NMS.AMQP/Meta/TransactionInfo.cs b/src/NMS.AMQP/Meta/TransactionInfo.cs
index b1aa252..f54187b 100644
--- a/src/NMS.AMQP/Meta/TransactionInfo.cs
+++ b/src/NMS.AMQP/Meta/TransactionInfo.cs
@@ -1,3 +1,20 @@
+/*
+ * 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.AMQP.Util;
 
diff --git a/src/NMS.AMQP/NmsDurableTopicSubscriber.cs b/src/NMS.AMQP/NmsDurableTopicSubscriber.cs
index f39d7ea..a3cd119 100644
--- a/src/NMS.AMQP/NmsDurableTopicSubscriber.cs
+++ b/src/NMS.AMQP/NmsDurableTopicSubscriber.cs
@@ -1,3 +1,20 @@
+/*
+ * 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 Apache.NMS.AMQP.Util;
 
 namespace Apache.NMS.AMQP
diff --git a/src/PingPong/Ping.cs b/src/PingPong/Ping.cs
index 888f4a9..ff2fa4f 100644
--- a/src/PingPong/Ping.cs
+++ b/src/PingPong/Ping.cs
@@ -1,3 +1,20 @@
+/*
+ * 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 System.Diagnostics;
 using System.Threading.Tasks;
diff --git a/src/PingPong/PingPong.csproj b/src/PingPong/PingPong.csproj
index f5ec638..1e3ab20 100644
--- a/src/PingPong/PingPong.csproj
+++ b/src/PingPong/PingPong.csproj
@@ -1,4 +1,20 @@
-﻿<Project Sdk="Microsoft.NET.Sdk">
+﻿<!--
+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 Sdk="Microsoft.NET.Sdk">
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
diff --git a/src/PingPong/Pong.cs b/src/PingPong/Pong.cs
index 55f955e..b1e4500 100644
--- a/src/PingPong/Pong.cs
+++ b/src/PingPong/Pong.cs
@@ -1,3 +1,20 @@
+/*
+ * 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;
 
diff --git a/src/PingPong/Program.cs b/src/PingPong/Program.cs
index 0054f57..aafbb10 100644
--- a/src/PingPong/Program.cs
+++ b/src/PingPong/Program.cs
@@ -1,4 +1,21 @@
-﻿using System;
+﻿/*
+ * 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 System.Threading.Tasks;
 using Apache.NMS.AMQP;
 
diff --git a/src/PingPong/Stats.cs b/src/PingPong/Stats.cs
index 5d5c201..fbedf7f 100644
--- a/src/PingPong/Stats.cs
+++ b/src/PingPong/Stats.cs
@@ -1,3 +1,20 @@
+/*
+ * 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;
 
 namespace PingPong
diff --git a/test/Apache-NMS-AMQP-Test/Integration/MessageExpirationIntegrationTest.cs b/test/Apache-NMS-AMQP-Test/Integration/MessageExpirationIntegrationTest.cs
index cf2de5d..6d71939 100755
--- a/test/Apache-NMS-AMQP-Test/Integration/MessageExpirationIntegrationTest.cs
+++ b/test/Apache-NMS-AMQP-Test/Integration/MessageExpirationIntegrationTest.cs
@@ -1,4 +1,21 @@
-﻿using System;
+﻿/*
+ * 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 System.Threading;
 using Amqp.Framing;
 using Apache.NMS;
diff --git a/test/Apache-NMS-AMQP-Test/NLog.config b/test/Apache-NMS-AMQP-Test/NLog.config
index 71b7c9c..b180c12 100644
--- a/test/Apache-NMS-AMQP-Test/NLog.config
+++ b/test/Apache-NMS-AMQP-Test/NLog.config
@@ -1,5 +1,20 @@
 <?xml version="1.0" encoding="utf-8"?>
-
+<!--
+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.
+  -->
 <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
 
     <targets>
diff --git a/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/ConnectionError.cs b/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/ConnectionError.cs
index 6889a62..ce14f10 100644
--- a/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/ConnectionError.cs
+++ b/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/ConnectionError.cs
@@ -1,3 +1,20 @@
+/*
+ * 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 Amqp.Types;
 
 namespace NMS.AMQP.Test.TestAmqp.BasicTypes
diff --git a/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/FrameCodes.cs b/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/FrameCodes.cs
index 4956027..db7b7aa 100644
--- a/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/FrameCodes.cs
+++ b/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/FrameCodes.cs
@@ -1,3 +1,20 @@
+/*
+ * 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 Amqp.Framing;
 
 namespace NMS.AMQP.Test.TestAmqp.BasicTypes
diff --git a/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/TerminusExpiryPolicy.cs b/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/TerminusExpiryPolicy.cs
index 9392b52..20cbc6d 100644
--- a/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/TerminusExpiryPolicy.cs
+++ b/test/Apache-NMS-AMQP-Test/TestAmqp/BasicTypes/TerminusExpiryPolicy.cs
@@ -1,3 +1,20 @@
+/*
+ * 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 Amqp.Types;
 
 namespace NMS.AMQP.Test.TestAmqp.BasicTypes
diff --git a/test/Apache-NMS-AMQP-Test/TestAmqp/NLogAdapter.cs b/test/Apache-NMS-AMQP-Test/TestAmqp/NLogAdapter.cs
index 326be86..e8c3f6f 100644
--- a/test/Apache-NMS-AMQP-Test/TestAmqp/NLogAdapter.cs
+++ b/test/Apache-NMS-AMQP-Test/TestAmqp/NLogAdapter.cs
@@ -1,3 +1,20 @@
+/*
+ * 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 Apache.NMS;
 using NLog;
 
diff --git a/test/Apache-NMS-AMQP-Test/TestSuite.config b/test/Apache-NMS-AMQP-Test/TestSuite.config
deleted file mode 100644
index a2d4ddc..0000000
--- a/test/Apache-NMS-AMQP-Test/TestSuite.config
+++ /dev/null
@@ -1,39 +0,0 @@
-<Configuration>
-  <Global LogLevel="warn" FrameTrace="false">
-    
-    <!-- DataConfig configures limits on Test Data -->
-    <!-- 
-         GenerateChunkSize sets the max structured data capacity 
-         for Message Tests. Eg, Map size, List size, array size, etc.
-         Supported values are [65535-2147483647]. Any value outside
-         will result in undefined behaviour for the test suite.
-         The Default value is 524288 (512KiB).
-    -->
-    <!--
-    <DataConfig GenerateChunkSize="65535" />
-    -->
-  </Global>
-  <!-- Example Secure Broker configuration
-    For more hints on configuring a secure broker and sample certificates
-    see test/config/cert/ReadMe.md
-    -->
-  <Broker Scheme="amqps://" IPAddress="127.0.0.1" Port="5671" Name="NMS Test">
-    <!-- Example Client Configuration -->
-    <Client
-        Username="guest"
-        Password="password"
-        AcceptInvalidServerCert="false"
-        ClientCertFileName="config/cert/client.crt"
-    />  <!-- End of Client -->
-  </Broker>
-
-  
-  <!-- Example Broker configuration foe plain-text connections
-    -->
-  <!--
-  <Broker Scheme="amqp://" IPAddress="127.0.0.1" Port="5672">
-    <Client Username="guest" Password="password" />
-  </Broker>
-  -->
-  
-</Configuration>
diff --git a/test/Apache-NMS-AMQP-Test/config/Adapter.runsettings b/test/Apache-NMS-AMQP-Test/config/Adapter.runsettings
deleted file mode 100644
index c30a7c6..0000000
--- a/test/Apache-NMS-AMQP-Test/config/Adapter.runsettings
+++ /dev/null
@@ -1,10 +0,0 @@
-﻿<?xml version='1.0' encoding='utf-8'?>
-<RunSettings>
-  <!-- Parameters used by tests at runtime -->
-  <TestRunParameters>
-    <!-- TestSuiteConfigurationPath should point to the directory containing the TestSuiteConfigurationFileName -->
-    <Parameter name ="TestSuiteConfigurationPath" value="D:\sb\github\activemq-nms-amqp\test\bin\Debug\net452" />
-    <!-- Default value for TestSuiteConfigurationFileName is TestSuite.config -->
-    <Parameter name ="TestSuiteConfigurationFileName" value="TestSuite.config" />
-  </TestRunParameters>
-</RunSettings>
