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;