[NPANDAY-592] add portable class library to importer

git-svn-id: https://svn.apache.org/repos/asf/incubator/npanday/trunk@1500916 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs
index 35e80a2..ed248cd 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs
@@ -555,6 +555,18 @@
             return plugin;
         }
 
+        protected Plugin GetPlugin(string groupId, string artifactId)
+        {
+            foreach (Plugin plugin in model.build.plugins)
+            {
+                if (plugin.groupId == groupId && plugin.artifactId == artifactId)
+                {
+                    return plugin;
+                }
+            }
+            return null;
+        }
+
         /// <summary>
         /// Adds PluginExecution
         /// </summary>
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/PortablePomConverter.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/PortablePomConverter.cs
new file mode 100644
index 0000000..55b720f
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/PortablePomConverter.cs
@@ -0,0 +1,51 @@
+#region Apache License, Version 2.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.
+//
+#endregion
+using System.IO;
+using NPanday.Model.Pom;
+using NPanday.ProjectImporter.Digest.Model;
+using NPanday.Utils;
+using System.Collections.Generic;
+
+namespace NPanday.ProjectImporter.Converter.Algorithms
+{
+    public class PortablePomConverter : NormalPomConverter
+    {
+        public PortablePomConverter(ProjectDigest projectDigest, string mainPomFile, NPanday.Model.Pom.Model parent, string groupId) 
+            : base(projectDigest,mainPomFile,parent, groupId)
+        {
+        }
+
+        public override void ConvertProjectToPomModel(bool writePom, string scmTag)
+        {
+            // just call the base, but dont write it we still need some minor adjustments for it
+            base.ConvertProjectToPomModel(false,scmTag);
+
+            string profile = ".NETPortable," + projectDigest.TargetFrameworkProfile;
+            Plugin compilePlugin = GetPlugin("org.apache.npanday.plugins", "maven-compile-plugin");
+            AddPluginConfiguration(compilePlugin, "profile", profile);
+
+            if (writePom)
+            {
+                PomHelperUtility.WriteModelToPom(new FileInfo(Path.GetDirectoryName(projectDigest.FullFileName) + @"\pom.xml"), Model);
+            }
+        }
+    }
+}
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
index e359576..24b30e2 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
@@ -181,6 +181,16 @@
                 VisualStudioProjectTypeEnum.Silverlight | VisualStudioProjectTypeEnum.Windows__VbDotNet,
                 typeof(SilverlightPomConverter)
             );
+
+            __converterAlgorithms.Add(
+                VisualStudioProjectTypeEnum.PortableClassLibrary | VisualStudioProjectTypeEnum.Windows__CSharp,
+                typeof(PortablePomConverter)
+            );
+
+            __converterAlgorithms.Add(
+                VisualStudioProjectTypeEnum.PortableClassLibrary | VisualStudioProjectTypeEnum.Windows__VbDotNet,
+                typeof(PortablePomConverter)
+            );
         }
 
 
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Algorithms/NormalProjectDigestAlgorithm.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Algorithms/NormalProjectDigestAlgorithm.cs
index fc5332e..525d872 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Algorithms/NormalProjectDigestAlgorithm.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Algorithms/NormalProjectDigestAlgorithm.cs
@@ -687,6 +687,10 @@
             {
                 projectDigest.TargetFrameworkIdentifier = buildProperty.Value;
             }
+            else if ("TargetFrameworkProfile".Equals(buildProperty.Name, StringComparison.OrdinalIgnoreCase))
+            {
+                projectDigest.TargetFrameworkProfile = buildProperty.Value;
+            }
             else if ("TargetFrameworkVersion".Equals(buildProperty.Name, StringComparison.OrdinalIgnoreCase) && projectDigest.TargetFramework == null)
             {
                 // Raw value from project
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs
index aed4873..26a7a4f 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs
@@ -491,6 +491,13 @@
             set { targetFrameworkVersion = value; }
         }
 
+        private string targetFrameworkProfile;
+        public string TargetFrameworkProfile
+        {
+            get { return targetFrameworkProfile; }
+            set { targetFrameworkProfile = value; }
+        }
+
         private Compile[] compiles;
         public Compile[] Compiles
         {
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPanday.ProjectImporterEngine.csproj b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPanday.ProjectImporterEngine.csproj
index 1d8bc7c..f100382 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPanday.ProjectImporterEngine.csproj
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPanday.ProjectImporterEngine.csproj
@@ -60,6 +60,7 @@
     <Compile Include="Converter\Algorithms\ASPNetPomConverter.cs" />
     <Compile Include="Converter\Algorithms\AzurePomConverter.cs" />
     <Compile Include="Converter\Algorithms\AzureWorkerPomConverter.cs" />
+    <Compile Include="Converter\Algorithms\PortablePomConverter.cs" />
     <Compile Include="Converter\Algorithms\SilverlightPomConverter.cs" />
     <Compile Include="Converter\Algorithms\WebWithVbOrCsProjectFilePomConverter.cs" />
     <Compile Include="DependencySearchConfiguration.cs" />
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectType.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectType.cs
index 46a80db..9091a5e 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectType.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectType.cs
@@ -222,6 +222,11 @@
             __visualStudioProjectTypes.Add("A1591282-1198-4647-A2B1-27E5FF5F6F3B", VisualStudioProjectTypeEnum.Silverlight);
             __visualStudioProjectTypeGuids.Add(VisualStudioProjectTypeEnum.Silverlight, "A1591282-1198-4647-A2B1-27E5FF5F6F3B");
             __visualStudioProjectTypeSupported.Add("A1591282-1198-4647-A2B1-27E5FF5F6F3B", true);
+
+            //Portable Class Library {786C8304-07A1-408B-BD7F-6EE04809D6DB}
+            __visualStudioProjectTypes.Add("786C830F-07A1-408B-BD7F-6EE04809D6DB", VisualStudioProjectTypeEnum.PortableClassLibrary);
+            __visualStudioProjectTypeGuids.Add(VisualStudioProjectTypeEnum.PortableClassLibrary, "786C830F-07A1-408B-BD7F-6EE04809D6DB");
+            __visualStudioProjectTypeSupported.Add("786C830F-07A1-408B-BD7F-6EE04809D6DB", true);
         }
 
 
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectTypeEnum.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectTypeEnum.cs
index aac70e1..5a03d3a 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectTypeEnum.cs
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Parser/VisualStudioProjectTypes/VisualStudioProjectTypeEnum.cs
@@ -225,6 +225,12 @@
 
         WindowsAzure_Worker = 1L << 32,
 
+        // <summary>
+        // Project Type: Portable Class Library
+        // GUID: {786C830F-07A1-408B-BD7F-6EE04809D6DB}
+        // </summary>
+        PortableClassLibrary = 1L << 33,
+
         // TODO: refactor so this is an enum of the GUIDs instead
     }
 }
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/PortableClassLibraryTest.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/PortableClassLibraryTest.cs
new file mode 100644
index 0000000..ba41a36
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/ImporterTests/PortableClassLibraryTest.cs
@@ -0,0 +1,53 @@
+//
+// 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.Collections.Generic;
+using System.Text;
+using NUnit.Framework;
+
+namespace NPanday.ProjectImporter.ImporterTests
+{
+    [TestFixture]
+    public class PortableClassLibraryTest : AbstractProjectImportTest
+    {
+        public override void CheckFrameworkVersion()
+        {
+            if (Environment.Version.Major < 4)
+            {
+                Assert.Ignore("Test only runs on .NET 4.0, but is: " + Environment.Version.ToString());
+            }
+        }
+     
+        public override string SolutionFileRelativePath
+        {
+            get { return @"PortableClassLibrary1\PortableClassLibrary1.sln"; }
+        }
+
+        [Test]
+        public override void ShouldGenerateTheExpectedNumberOfPoms()
+        {
+            ProjectImporterAssertions.AssertPomCount(2, GeneratedPomFiles);
+        }
+
+        public override string TestResourcePath
+        {
+            get { return @"src\test\resource\PortableClassLibrary1\"; }
+        }
+    }
+}
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/NPanday.ProjectImporterEngine-Test.csproj b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/NPanday.ProjectImporterEngine-Test.csproj
index 8cbb393..c6f689e 100644
--- a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/NPanday.ProjectImporterEngine-Test.csproj
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/csharp/NPanday.ProjectImporterEngine-Test.csproj
@@ -55,6 +55,7 @@
     <Compile Include="ImporterTests\AzureImportOneWebRoleTest.cs" />
     <Compile Include="ImporterTests\AzureImportWorkerRoleTest.cs" />
     <Compile Include="ImporterTests\AzureImportMultipleRolesTest.cs" />
+    <Compile Include="ImporterTests\PortableClassLibraryTest.cs" />
     <Compile Include="ImporterTests\WpfBrowserApplicationTest.cs" />
     <Compile Include="ImporterTests\WebAppWithCultureResTest.cs" />
     <Compile Include="ImporterTests\WindowsExecutableTest.cs" />
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1.sln b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1.sln
new file mode 100644
index 0000000..8385a57
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1.sln
@@ -0,0 +1,20 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2012
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PortableClassLibrary1", "PortableClassLibrary1\PortableClassLibrary1.csproj", "{B8D377B7-EF16-48E8-9251-B51F50CD1A31}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{B8D377B7-EF16-48E8-9251-B51F50CD1A31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{B8D377B7-EF16-48E8-9251-B51F50CD1A31}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{B8D377B7-EF16-48E8-9251-B51F50CD1A31}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{B8D377B7-EF16-48E8-9251-B51F50CD1A31}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/Class1.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/Class1.cs
new file mode 100644
index 0000000..110261c
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/Class1.cs
@@ -0,0 +1,11 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace PortableClassLibrary1
+{
+    public class Class1
+    {
+    }
+}
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/PortableClassLibrary1.csproj b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/PortableClassLibrary1.csproj
new file mode 100644
index 0000000..f6db861
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/PortableClassLibrary1.csproj
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <MinimumVisualStudioVersion>10.0</MinimumVisualStudioVersion>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{B8D377B7-EF16-48E8-9251-B51F50CD1A31}</ProjectGuid>
+    <OutputType>Library</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>PortableClassLibrary1</RootNamespace>
+    <AssemblyName>PortableClassLibrary1</AssemblyName>
+    <TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
+    <TargetFrameworkProfile>Profile4</TargetFrameworkProfile>
+    <FileAlignment>512</FileAlignment>
+    <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <!-- A reference to the entire .NET Framework is automatically included -->
+    <WebReferences Include="Web References\" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="Class1.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+  </ItemGroup>
+  <Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>
\ No newline at end of file
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/Properties/AssemblyInfo.cs b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/Properties/AssemblyInfo.cs
new file mode 100644
index 0000000..f764ddb
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/Properties/AssemblyInfo.cs
@@ -0,0 +1,30 @@
+using System.Resources;
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("PortableClassLibrary1")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("PortableClassLibrary1")]
+[assembly: AssemblyCopyright("Copyright ©  2013")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+[assembly: NeutralResourcesLanguage("en")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/pom.test b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/pom.test
new file mode 100644
index 0000000..f68d43d
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/PortableClassLibrary1/pom.test
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://maven.apache.org/POM/4.0.0">
+  <parent>
+    <artifactId>test-parent</artifactId>
+    <groupId>test.group</groupId>
+    <version>1.2.3-SNAPSHOT</version>
+    <relativePath>..\pom.xml</relativePath>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <artifactId>PortableClassLibrary1</artifactId>
+  <packaging>dotnet-library</packaging>
+  <name>test.group : PortableClassLibrary1</name>
+  <build>
+    <sourceDirectory>./</sourceDirectory>
+    <plugins>
+      <plugin>
+        <groupId>org.apache.npanday.plugins</groupId>
+        <artifactId>maven-compile-plugin</artifactId>
+        <extensions>true</extensions>
+        <configuration>
+          <frameworkVersion>4.0</frameworkVersion>
+          <define>DEBUG;TRACE</define>
+          <includeSources>
+            <includeSource>Class1.cs</includeSource>
+            <includeSource>Properties\AssemblyInfo.cs</includeSource>
+          </includeSources>
+          <profile>.NETPortable,Profile4</profile>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
diff --git a/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/pom.test b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/pom.test
new file mode 100644
index 0000000..2f62c27
--- /dev/null
+++ b/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/PortableClassLibrary1/pom.test
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://maven.apache.org/POM/4.0.0">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>test.group</groupId>
+  <artifactId>test-parent</artifactId>
+  <packaging>pom</packaging>
+  <name>test.group : test-parent</name>
+  <version>1.2.3-SNAPSHOT</version>
+  <modules>
+    <module>PortableClassLibrary1</module>
+  </modules>
+</project>