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;