Author: brett
Date: Wed Jan  4 08:56:40 2012
New Revision: 1227086

URL: http://svn.apache.org/viewvc?rev=1227086&view=rev
Log:
[NPANDAY-519] references should not be silently dropped if they can't be 
resolved from the local repository or the GAC. Add a warning to the importer 
dialog instead

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/IPomConverter.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/WebPomConverter.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbnormalProject.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbstractProjectAlgorithm.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatMultiModuleProject.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatSingleModuleProject.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/IProjectTypeImporter.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalMultiModuleProject.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalSingleProject.cs
    
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs

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=1227086&r1=1227085&r2=1227086&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
 Wed Jan  4 08:56:40 2012
@@ -67,6 +67,13 @@ namespace NPanday.ProjectImporter.Conver
             get { return projectDigest; }
         }
 
+        private List<Reference> missingReferences;
+
+        public List<Reference> GetMissingReferences()
+        {
+            return missingReferences;
+        }
+        
         protected NPanday.Model.Pom.Model model;
 
         public NPanday.Model.Pom.Model Model
@@ -91,6 +98,7 @@ namespace NPanday.ProjectImporter.Conver
             // Add build Tag
             this.model.build = new NPanday.Model.Pom.Build();
 
+            this.missingReferences = new List<Reference>();
         }
 
         #region AddEmbeddedResources
@@ -443,14 +451,19 @@ namespace NPanday.ProjectImporter.Conver
             }
         }
 
-        protected virtual void AddProjectReferenceDependency(Reference 
reference)
+        protected Dependency GetProjectReferenceDependency(Reference reference)
         {
             Dependency refDependency = ResolveDependency(reference);
             if (refDependency == null)
             {
-                return;
-            }
+                missingReferences.Add(reference);
 
+                // TODO: check if reference.Version is always set - 
ResolveDependency does some filename parsing that we should factor out so it's 
not done multiple times
+                refDependency = new Dependency();
+                refDependency.groupId = reference.Name;
+                refDependency.artifactId = reference.Name;
+                refDependency.version = reference.Version;
+            }
 
             if (!("library".Equals(refDependency.type, 
StringComparison.OrdinalIgnoreCase)
                   || "dotnet-library".Equals(refDependency.type, 
StringComparison.OrdinalIgnoreCase)))
@@ -458,15 +471,21 @@ namespace NPanday.ProjectImporter.Conver
                 // ignore gac if already in the RSP 
                 if (rspUtil.IsRspIncluded(refDependency.artifactId, 
projectDigest.Language))
                 {
-                    return;
+                    return null;
                 }
             }
 
-            AddDependency(refDependency);
-
-
+            return refDependency;
         }
 
+        protected virtual void AddProjectReferenceDependency(Reference 
reference)
+        {
+            Dependency dep = GetProjectReferenceDependency(reference);
+            if (dep != null)
+            {
+                AddDependency(dep);
+            }
+        }
 
         protected void AddProjectReferenceDependenciesToList()
         {
@@ -930,9 +949,6 @@ namespace NPanday.ProjectImporter.Conver
 
             return string.Join(",", defines.ToArray());
         }
-
-
-
     }
 
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/IPomConverter.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/IPomConverter.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/IPomConverter.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/IPomConverter.cs
 Wed Jan  4 08:56:40 2012
@@ -44,5 +44,6 @@ namespace NPanday.ProjectImporter.Conver
             get;
         }
 
+        List<Reference> GetMissingReferences();
     }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/WebPomConverter.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/WebPomConverter.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/WebPomConverter.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/Algorithms/WebPomConverter.cs
 Wed Jan  4 08:56:40 2012
@@ -175,28 +175,15 @@ namespace NPanday.ProjectImporter.Conver
         // override to insert only an NPanday artifact
         protected override void AddProjectReferenceDependency(Reference 
reference)
         {
-
-            Dependency refDependency = ResolveDependency(reference);
-            if (refDependency == null)
+            Dependency dep = GetProjectReferenceDependency(reference);
+            if (dep != null)
             {
-                return;
-            }
-
-            if (!("library".Equals(refDependency.type, 
StringComparison.OrdinalIgnoreCase)
-                  || "dotnet-library".Equals(refDependency.type, 
StringComparison.OrdinalIgnoreCase)))
-            {
-                // ignore gac if already in the RSP 
-                if (rspUtil.IsRspIncluded(refDependency.artifactId, 
projectDigest.Language))
+                if (!("library".Equals(dep.type, 
StringComparison.OrdinalIgnoreCase)
+                      || "dotnet-library".Equals(dep.type, 
StringComparison.OrdinalIgnoreCase)))
                 {
-                    return;
+                    AddDependency(dep);
                 }
-
-                // insert only NPanday Artifact
-                AddDependency(refDependency);
-                return;
             }
-
         }
-
     }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/Converter/PomConverter.cs
 Wed Jan  4 08:56:40 2012
@@ -255,7 +255,7 @@ namespace NPanday.ProjectImporter.Conver
 
 
 
-        public static NPanday.Model.Pom.Model[] 
ConvertProjectsToPomModels(ProjectDigest[] projectDigests, string mainPomFile, 
NPanday.Model.Pom.Model parent, string groupId, bool writePoms, string scmTag)
+        public static NPanday.Model.Pom.Model[] 
ConvertProjectsToPomModels(ProjectDigest[] projectDigests, string mainPomFile, 
NPanday.Model.Pom.Model parent, string groupId, bool writePoms, string scmTag, 
List<Reference> missingReferences)
         {
             try
             {
@@ -264,7 +264,7 @@ namespace NPanday.ProjectImporter.Conver
                 List<NPanday.Model.Pom.Model> models = new 
List<NPanday.Model.Pom.Model>();
                 foreach (ProjectDigest projectDigest in projectDigests)
                 {
-                    NPanday.Model.Pom.Model model = 
ConvertProjectToPomModel(projectDigest, mainPomFile, parent, groupId, 
writePoms,scmTag);
+                    NPanday.Model.Pom.Model model = 
ConvertProjectToPomModel(projectDigest, mainPomFile, parent, groupId, 
writePoms, scmTag, missingReferences);
                     
                     models.Add(model);
                 }
@@ -276,7 +276,7 @@ namespace NPanday.ProjectImporter.Conver
             }
         }
 
-        public static NPanday.Model.Pom.Model 
ConvertProjectToPomModel(ProjectDigest projectDigest, string mainPomFile, 
NPanday.Model.Pom.Model parent, string groupId, bool writePom, string scmTag)
+        public static NPanday.Model.Pom.Model 
ConvertProjectToPomModel(ProjectDigest projectDigest, string mainPomFile, 
NPanday.Model.Pom.Model parent, string groupId, bool writePom, string scmTag, 
List<Reference> missingReferences)
         {
             if (!__converterAlgorithms.ContainsKey(projectDigest.ProjectType))
             {
@@ -304,6 +304,8 @@ namespace NPanday.ProjectImporter.Conver
 
                converter.ConvertProjectToPomModel(scmTag);
 
+               missingReferences.AddRange(converter.GetMissingReferences());
+
                return converter.Model;
            }
         }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbnormalProject.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbnormalProject.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbnormalProject.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbnormalProject.cs
 Wed Jan  4 08:56:40 2012
@@ -41,7 +41,7 @@ namespace NPanday.ProjectImporter.Import
     public class AbnormalProject : AbstractProjectAlgorithm
     {
 
-        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom)
+        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom, List<Reference> missingReferences)
         {
             if (prjDigests.Length.Equals(0))
             {

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbstractProjectAlgorithm.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbstractProjectAlgorithm.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbstractProjectAlgorithm.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/AbstractProjectAlgorithm.cs
 Wed Jan  4 08:56:40 2012
@@ -44,18 +44,18 @@ namespace NPanday.ProjectImporter.Import
 
         #region IProjectTypeImporter Members
 
-        public abstract string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version,string 
scmTag, bool writePom);
+        public abstract string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom, List<Reference> missingReferences);
 
         #endregion
 
         #region Helper Methods
 
-        public string[] GenerateChildPoms(ProjectDigest[] prjDigests, string 
groupId, string parentPomFilename, NPanday.Model.Pom.Model parentPomModel, bool 
writePom,string scmTag)
+        public string[] GenerateChildPoms(ProjectDigest[] prjDigests, string 
groupId, string parentPomFilename, NPanday.Model.Pom.Model parentPomModel, bool 
writePom, string scmTag, List<Reference> missingReferences)
         {
             List<string> generatedPoms = new List<string>();
 
             // make the child pom
-            NPanday.Model.Pom.Model[] models = 
PomConverter.ConvertProjectsToPomModels(prjDigests, parentPomFilename, 
parentPomModel, groupId, writePom, scmTag);
+            NPanday.Model.Pom.Model[] models = 
PomConverter.ConvertProjectsToPomModels(prjDigests, parentPomFilename, 
parentPomModel, groupId, writePom, scmTag, missingReferences);
 
             if (models != null && models.Length > 0)
             {

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatMultiModuleProject.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatMultiModuleProject.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatMultiModuleProject.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatMultiModuleProject.cs
 Wed Jan  4 08:56:40 2012
@@ -40,7 +40,7 @@ namespace NPanday.ProjectImporter.Import
 {
     public class FlatMultiModuleProject : AbstractProjectAlgorithm
     {
-        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom)
+        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom, List<Reference> missingReferences)
         {
             List<string> generatedPoms = new List<string>();
 
@@ -51,7 +51,7 @@ namespace NPanday.ProjectImporter.Import
 
 
             generatedPoms.AddRange(
-                GenerateChildPoms(prjDigests, groupId, pomFileName, mainModel, 
writePom, scmTag)
+                GenerateChildPoms(prjDigests, groupId, pomFileName, mainModel, 
writePom, scmTag, missingReferences)
             );
 
             return generatedPoms.ToArray();

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatSingleModuleProject.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatSingleModuleProject.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatSingleModuleProject.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/FlatSingleModuleProject.cs
 Wed Jan  4 08:56:40 2012
@@ -40,9 +40,9 @@ namespace NPanday.ProjectImporter.Import
 {
     public class FlatSingleModuleProject : AbstractProjectAlgorithm
     {
-        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom)
+        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom, List<Reference> missingReferences)
         {
-            return GenerateChildPoms(prjDigests, groupId, null, null, 
writePom, scmTag);
+            return GenerateChildPoms(prjDigests, groupId, null, null, 
writePom, scmTag, missingReferences);
         }
     }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/IProjectTypeImporter.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/IProjectTypeImporter.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/IProjectTypeImporter.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/IProjectTypeImporter.cs
 Wed Jan  4 08:56:40 2012
@@ -51,6 +51,6 @@ namespace NPanday.ProjectImporter.Import
         /// <param name="version"></param>
         /// <param name="writePom"></param>
         /// <returns>returns a list of pom files generated</returns>
-        string[] ImportProjectType(ProjectDigest[] prjDigests, string 
solutionFile, string groupId, string artifactId, string version,string scmTag, 
bool writePom);
+        string[] ImportProjectType(ProjectDigest[] prjDigests, string 
solutionFile, string groupId, string artifactId, string version, string scmTag, 
bool writePom, List<Reference> missingReferences);
     }
 }

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalMultiModuleProject.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalMultiModuleProject.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalMultiModuleProject.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalMultiModuleProject.cs
 Wed Jan  4 08:56:40 2012
@@ -40,7 +40,7 @@ namespace NPanday.ProjectImporter.Import
 {
     public class NormalMultiModuleProject : AbstractProjectAlgorithm
     {
-        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom)
+        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom, List<Reference> missingReferences)
         {
             List<string> generatedPoms = new List<string>();
 
@@ -51,7 +51,7 @@ namespace NPanday.ProjectImporter.Import
 
 
             generatedPoms.AddRange(
-                GenerateChildPoms(prjDigests, groupId, pomFileName, mainModel, 
writePom, scmTag)
+                GenerateChildPoms(prjDigests, groupId, pomFileName, mainModel, 
writePom, scmTag, missingReferences)
             );
 
             return generatedPoms.ToArray();

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalSingleProject.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalSingleProject.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalSingleProject.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/ImportProjectStructureAlgorithms/NormalSingleProject.cs
 Wed Jan  4 08:56:40 2012
@@ -44,7 +44,7 @@ namespace NPanday.ProjectImporter.Import
     /// </summary>
     public class NormalSingleProject : AbstractProjectAlgorithm
     {
-        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom)
+        public override string[] ImportProjectType(ProjectDigest[] prjDigests, 
string solutionFile, string groupId, string artifactId, string version, string 
scmTag, bool writePom, List<Reference> missingReferences)
         {
             List<string> generatedPoms = new List<string>();
 
@@ -55,7 +55,7 @@ namespace NPanday.ProjectImporter.Import
 
 
             generatedPoms.AddRange(
-                GenerateChildPoms(prjDigests, groupId, pomFileName, mainModel, 
writePom, scmTag)
+                GenerateChildPoms(prjDigests, groupId, pomFileName, mainModel, 
writePom, scmTag, missingReferences)
             );
 
             return generatedPoms.ToArray();

Modified: 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs
URL: 
http://svn.apache.org/viewvc/incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs?rev=1227086&r1=1227085&r2=1227086&view=diff
==============================================================================
--- 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs
 (original)
+++ 
incubator/npanday/trunk/dotnet/assemblies/NPanday.ProjectImporter/Engine/src/main/csharp/NPandayImporter.cs
 Wed Jan  4 08:56:40 2012
@@ -46,8 +46,8 @@ namespace NPanday.ProjectImporter
     {
         #region Import Project Type Strategy Pattern
         // A strategy pattern with a twists, using c# delegates
-        
-        delegate string[] ImportProjectTypeDelegate(ProjectDigest[] 
prjDigests, string solutionFile, string groupId, string artifactId, string 
version, string scmTag, bool writePom);
+
+        delegate string[] ImportProjectTypeDelegate(ProjectDigest[] 
prjDigests, string solutionFile, string groupId, string artifactId, string 
version, string scmTag, bool writePom, List<Reference> missingReferences);
         static Dictionary<ProjectStructureType, ImportProjectTypeDelegate> 
_importProject;
 
         /// <summary>
@@ -65,9 +65,9 @@ namespace NPanday.ProjectImporter
         }
 
 
-        public static string[] ImportProjectType(ProjectStructureType 
structureType, ProjectDigest[] prjDigests, string solutionFile, string groupId, 
string artifactId, string version, string scmTag)
+        public static string[] ImportProjectType(ProjectStructureType 
structureType, ProjectDigest[] prjDigests, string solutionFile, string groupId, 
string artifactId, string version, string scmTag, List<Reference> 
missingReferences)
         {
-            return _importProject[structureType](prjDigests, solutionFile, 
groupId, artifactId, version, scmTag, true);
+            return _importProject[structureType](prjDigests, solutionFile, 
groupId, artifactId, version, scmTag, true, missingReferences);
         }
 
         #endregion
@@ -234,7 +234,17 @@ namespace NPanday.ProjectImporter
                verifyProjectToImport(ref prjDigests, structureType, 
solutionFile, ref groupId, ref artifactId, ref version);
             }
 
-            result =ImportProjectType(structureType, 
filteredPrjDigests.ToArray(), solutionFile, groupId, artifactId, version, 
scmTag);
+            List<Reference> missingReferences = new List<Reference>();
+            result = ImportProjectType(structureType, 
filteredPrjDigests.ToArray(), solutionFile, groupId, artifactId, version, 
scmTag, missingReferences);
+            if (missingReferences.Count > 0)
+            {
+                warningMsg += "\nThe following references could not be 
resolved from Maven or the GAC:";
+                foreach (Reference missingReference in missingReferences)
+                {
+                    warningMsg += "\n\t" + missingReference.Name + " (" + 
missingReference.Version + ")";
+                }
+                warningMsg += "\nPlease update the defaults in pom.xml and 
re-sync references, or re-add them using 'Add Maven Artifact'.";
+            }
 
             return result;
 


Reply via email to