You are viewing a plain text version of this content. The canonical link for it is here.
Posted to npanday-commits@incubator.apache.org by br...@apache.org on 2013/03/02 01:34:44 UTC
svn commit: r1451812 - in
/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src:
main/csharp/Converter/Algorithms/ main/csharp/Digest/Model/
test/resource/MvcApplication1/MvcApplication1/
test/resource/NPANDAY-445-NET40GAC/NPAND...
Author: brett
Date: Sat Mar 2 01:34:44 2013
New Revision: 1451812
URL: http://svn.apache.org/r1451812
Log:
[NPDANY-578] support for AssemblyFoldersEx resolution
Modified:
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/SilverlightPomConverter.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/MvcApplication1/MvcApplication1/pom.test
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY-445-NET40GAC/NPANDAY-445-NET40GAC/pom.test
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY_571/WorkerRole1/pom.test
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs?rev=1451812&r1=1451811&r2=1451812&view=diff
==============================================================================
--- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs (original)
+++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/AbstractPomConverter.cs Sat Mar 2 01:34:44 2013
@@ -28,6 +28,8 @@ using NPanday.Artifact;
using NPanday.Model.Pom;
using NPanday.ProjectImporter.Digest.Model;
using NPanday.Utils;
+using Microsoft.Win32;
+using System.Text.RegularExpressions;
/// Author: Leopoldo Lee Agdeppa III
@@ -763,6 +765,7 @@ namespace NPanday.ProjectImporter.Conver
// - Files from artifact repository
// - The hintpath (step 3 above)
// - The target framework directories (step 4 above)
+ // - The registered assembly directories (step 5 above)
// - The GAC (step 7 above)
Dependency refDependency;
@@ -776,7 +779,11 @@ namespace NPanday.ProjectImporter.Conver
// resolve from target framework directories
if (refDependency == null)
- refDependency = ResolveDependencyFromTargetFrameworkDirectories(reference);
+ refDependency = ResolveDependencyFromDirectories(reference, GetTargetFrameworkDirectories());
+
+ // resolve from registered assembly directories
+ if (refDependency == null)
+ refDependency = ResolveDependencyFromDirectories(reference, GetTargetFrameworkAssemblyFoldersEx());
// resolve from GAC
if (refDependency == null)
@@ -788,11 +795,44 @@ namespace NPanday.ProjectImporter.Conver
return refDependency;
}
- private Dependency ResolveDependencyFromTargetFrameworkDirectories(Reference reference)
+ private Dictionary<string,string> GetTargetFrameworkAssemblyFoldersEx()
+ {
+ Dictionary<string,string> directories = new Dictionary<string,string>();
+
+ RegistryKey root = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\" + projectDigest.TargetFrameworkIdentifier);
+ bool found = false;
+ foreach (string key in root.GetSubKeyNames())
+ {
+ if (key.StartsWith(projectDigest.TargetFrameworkVersion))
+ {
+ RegistryKey assemblyFolderEx = root.OpenSubKey(key + "\\AssemblyFoldersEx");
+ GetTargetFrameworkDirectoriesAssemblyFoldersEx(directories, assemblyFolderEx);
+ found = true;
+ }
+ }
+
+ if (!found)
+ log.WarnFormat("No AssemblyFoldersEx registry key found for {0} {1}", projectDigest.TargetFrameworkIdentifier, projectDigest.TargetFrameworkVersion);
+
+ return directories;
+ }
+
+ protected static void GetTargetFrameworkDirectoriesAssemblyFoldersEx(Dictionary<string, string> targetFrameworkDirectories, RegistryKey assemblyFolderEx)
{
- Dictionary<string,string> directories = GetTargetFrameworkDirectories();
+ foreach (string key in assemblyFolderEx.GetSubKeyNames())
+ {
+ string v = (string)assemblyFolderEx.OpenSubKey(key).GetValue(null);
+ if (v != null)
+ {
+ // strip non-alphanumeric characters to make a property
+ targetFrameworkDirectories.Add(new Regex("[^A-Za-z0-9]").Replace(key, ""), v);
+ }
+ }
+ }
- foreach (KeyValuePair<string,string> entry in directories)
+ private Dependency ResolveDependencyFromDirectories(Reference reference, Dictionary<string, string> directories)
+ {
+ foreach (KeyValuePair<string, string> entry in directories)
{
string directory = entry.Value;
string path = Path.Combine(directory, reference.Name + ".dll");
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/SilverlightPomConverter.cs
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/SilverlightPomConverter.cs?rev=1451812&r1=1451811&r2=1451812&view=diff
==============================================================================
--- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/SilverlightPomConverter.cs (original)
+++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/SilverlightPomConverter.cs Sat Mar 2 01:34:44 2013
@@ -26,7 +26,6 @@ using System.Collections.Generic;
using log4net;
using Microsoft.Win32;
using System;
-using System.Text.RegularExpressions;
namespace NPanday.ProjectImporter.Converter.Algorithms
{
@@ -123,15 +122,7 @@ namespace NPanday.ProjectImporter.Conver
log.Warn("Unable to find Silverlight framework in registry");
RegistryKey assemblyFolderEx = root.OpenSubKey("AssemblyFoldersEx");
- foreach (string key in assemblyFolderEx.GetSubKeyNames())
- {
- string v = (string)assemblyFolderEx.OpenSubKey(key).GetValue(null);
- if (v != null)
- {
- // strip non-alphanumeric characters to make a property
- targetFrameworkDirectories.Add(new Regex("[^A-Za-z0-9]").Replace(key, ""), v);
- }
- }
+ GetTargetFrameworkDirectoriesAssemblyFoldersEx(targetFrameworkDirectories, assemblyFolderEx);
}
catch (Exception e)
{
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs?rev=1451812&r1=1451811&r2=1451812&view=diff
==============================================================================
--- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs (original)
+++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Digest/Model/ProjectDigest.cs Sat Mar 2 01:34:44 2013
@@ -586,7 +586,7 @@ namespace NPanday.ProjectImporter.Digest
set { cloudConfig = value; }
}
- private string targetFrameworkIdentifier;
+ private string targetFrameworkIdentifier = ".NETFramework";
public string TargetFrameworkIdentifier
{
get { return targetFrameworkIdentifier; }
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/MvcApplication1/MvcApplication1/pom.test
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/MvcApplication1/MvcApplication1/pom.test?rev=1451812&r1=1451811&r2=1451812&view=diff
==============================================================================
--- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/MvcApplication1/MvcApplication1/pom.test (original)
+++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/MvcApplication1/MvcApplication1/pom.test Sat Mar 2 01:34:44 2013
@@ -70,22 +70,25 @@
<groupId>System.Web.Mvc</groupId>
<artifactId>System.Web.Mvc</artifactId>
<version>3.0.0.0</version>
- <type>gac_msil4</type>
- <classifier>31bf3856ad364e35</classifier>
+ <type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.ASPNETMVC3}/System.Web.Mvc.dll</systemPath>
</dependency>
<dependency>
<groupId>System.Web.WebPages</groupId>
<artifactId>System.Web.WebPages</artifactId>
<version>1.0.0.0</version>
- <type>gac_msil4</type>
- <classifier>31bf3856ad364e35</classifier>
+ <type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.ASPNETWebPages}/System.Web.WebPages.dll</systemPath>
</dependency>
<dependency>
<groupId>System.Web.Helpers</groupId>
<artifactId>System.Web.Helpers</artifactId>
<version>1.0.0.0</version>
- <type>gac_msil4</type>
- <classifier>31bf3856ad364e35</classifier>
+ <type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.ASPNETWebPages}/System.Web.Helpers.dll</systemPath>
</dependency>
<dependency>
<groupId>System.Web.DynamicData</groupId>
@@ -138,5 +141,7 @@
</dependencies>
<properties>
<npanday.Framework40>C:\Windows\Microsoft.NET\Framework\v4.0.30319</npanday.Framework40>
+ <npanday.ASPNETMVC3>c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\</npanday.ASPNETMVC3>
+ <npanday.ASPNETWebPages>c:\Program Files\Microsoft ASP.NET\ASP.NET Web Pages\v1.0\Assemblies\</npanday.ASPNETWebPages>
</properties>
</project>
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY-445-NET40GAC/NPANDAY-445-NET40GAC/pom.test
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY-445-NET40GAC/NPANDAY-445-NET40GAC/pom.test?rev=1451812&r1=1451811&r2=1451812&view=diff
==============================================================================
--- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY-445-NET40GAC/NPANDAY-445-NET40GAC/pom.test (original)
+++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY-445-NET40GAC/NPANDAY-445-NET40GAC/pom.test Sat Mar 2 01:34:44 2013
@@ -49,11 +49,13 @@
<groupId>System.Web.Mvc</groupId>
<artifactId>System.Web.Mvc</artifactId>
<version>2.0.0.0</version>
- <type>gac_msil</type>
- <classifier>31bf3856ad364e35</classifier>
+ <type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.ASPNETMVC3}/System.Web.Mvc.dll</systemPath>
</dependency>
</dependencies>
<properties>
<npanday.Framework40>C:\Windows\Microsoft.NET\Framework\v4.0.30319</npanday.Framework40>
+ <npanday.ASPNETMVC3>c:\Program Files\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\</npanday.ASPNETMVC3>
</properties>
</project>
Modified: incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY_571/WorkerRole1/pom.test
URL: http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY_571/WorkerRole1/pom.test?rev=1451812&r1=1451811&r2=1451812&view=diff
==============================================================================
--- incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY_571/WorkerRole1/pom.test (original)
+++ incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/test/resource/NPANDAY_571/WorkerRole1/pom.test Sat Mar 2 01:34:44 2013
@@ -48,24 +48,33 @@
<artifactId>Microsoft.WindowsAzure.Configuration</artifactId>
<version>1.7.0.0</version>
<type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.WindowsAzureLibrariesforNETv17NET40CacheclientReferenceAssembliesforVisualStudio}/Microsoft.WindowsAzure.Configuration.dll</systemPath>
</dependency>
<dependency>
<groupId>Microsoft.WindowsAzure.Diagnostics</groupId>
<artifactId>Microsoft.WindowsAzure.Diagnostics</artifactId>
<version>1.7.0.0</version>
<type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.WindowsAzureLibrariesforNETv17NET40CacheclientReferenceAssembliesforVisualStudio}/Microsoft.WindowsAzure.Diagnostics.dll</systemPath>
</dependency>
<dependency>
<groupId>Microsoft.WindowsAzure.ServiceRuntime</groupId>
<artifactId>Microsoft.WindowsAzure.ServiceRuntime</artifactId>
<version>1.7.0.0</version>
<type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.WindowsAzureLibrariesforNETv17NET40CacheclientReferenceAssembliesforVisualStudio}/Microsoft.WindowsAzure.ServiceRuntime.dll</systemPath>
+ </dependency>
</dependency>
<dependency>
<groupId>Microsoft.WindowsAzure.StorageClient</groupId>
<artifactId>Microsoft.WindowsAzure.StorageClient</artifactId>
<version>1.7.0.0</version>
<type>dotnet-library</type>
+ <scope>system</scope>
+ <systemPath>${npanday.WindowsAzureLibrariesforNETv17NET40CacheclientReferenceAssembliesforVisualStudio}/Microsoft.WindowsAzure.StorageClient.dll</systemPath>
</dependency>
<dependency>
<groupId>System.Data.Services.Client</groupId>
@@ -77,6 +86,7 @@
</dependency>
</dependencies>
<properties>
+ <npanday.WindowsAzureLibrariesforNETv17NET40CacheclientReferenceAssembliesforVisualStudio>C:\Program Files\Microsoft SDKs\Windows Azure\.NET SDK\2012-06\ref\</npanday.WindowsAzureLibrariesforNETv17NET40CacheclientReferenceAssembliesforVisualStudio>
<npanday.Framework40>C:\Windows\Microsoft.NET\Framework\v4.0.30319</npanday.Framework40>
</properties>
</project>