public static IEnumerable<string> GetJarsFromPOM(this IMavenArtifactHandler handler, MavenPartialPOM pom) { if (handler == null) { throw new ArgumentNullException("handler"); } if (pom == null) { throw new ArgumentNullException("pom"); } ISet<string> jarFilePaths = new HashSet<string>(StringComparer.OrdinalIgnoreCase); foreach (MavenDependency dependency in pom.Dependencies) { string jarFilePath = handler.FetchArtifactJarFile(dependency); if (jarFilePath != null) { Debug.Assert(!jarFilePaths.Contains(jarFilePath, StringComparer.OrdinalIgnoreCase), "Expecting full jar paths to be unique"); Debug.Assert(!jarFilePaths.Any(j => Path.GetFileName(j).Equals(Path.GetFileName(jarFilePath), StringComparison.OrdinalIgnoreCase)), "Expecting jars file names to be unique"); jarFilePaths.Add(jarFilePath); } } return jarFilePaths; }
private static MavenPartialPOM SafeLoad(XmlSerializer serializer, Stream stream) { MavenPartialPOM data = null; try { data = serializer.Deserialize(stream) as MavenPartialPOM; } catch (InvalidOperationException) { } return(data); }
private static MavenPartialPOM TryLoad(Stream stream) { // Try to load with namespace XmlSerializer serializer = new XmlSerializer(typeof(MavenPartialPOM), PomNamespace); MavenPartialPOM data = SafeLoad(serializer, stream); // If that fails, try to load without the namespace (some POMs are // not well formed) if (data == null) { stream.Position = 0; serializer = new XmlSerializer(typeof(MavenPartialPOM)); data = SafeLoad(serializer, stream); } return(data); }
public void MavenPOM_SaveAndReload_Succeeds() { // Arrange string testDir = TestUtils.CreateTestDirectory(this.TestContext); string filePath = Path.Combine(testDir, "pom1.txt"); MavenPartialPOM originalPOM = new MavenPartialPOM() { ArtifactId = "artifact.id", Description = "description", Name = "name", ModelVersion = "1.0.0", Packaging = "jar" }; originalPOM.Parent = new MavenCoordinate("parent.group.id", "parent.artifact.id", "1.0.0-parent"); MavenDependency desc1 = new MavenDependency("group.id.1", "artifact.id.1", "1.0.0-desc1"); MavenDependency desc2 = new MavenDependency("group.id.2", "artifact.id.2", "1.0.0-desc2"); originalPOM.Dependencies.Add(desc1); originalPOM.Dependencies.Add(desc2); MavenCoordinate exclusion1 = new MavenCoordinate("ex-group", "ex-artifact", "1.0.0-ex"); desc1.Exclusions.Add(exclusion1); originalPOM.Save(filePath); Assert.IsTrue(File.Exists(filePath), "File was not created: {0}", filePath); this.TestContext.AddResultFile(filePath); // Act MavenPartialPOM reloadedPOM = MavenPartialPOM.Load(filePath); // Assert Assert.IsNotNull(reloadedPOM, "Reloaded object should not be null"); AssertExpectedDescriptor(reloadedPOM.Parent, "parent.group.id", "parent.artifact.id", "1.0.0-parent"); Assert.IsNotNull(reloadedPOM.Dependencies, "Failed to reload the dependencies"); Assert.AreEqual(2, reloadedPOM.Dependencies.Count); AssertExpectedDescriptor(reloadedPOM.Dependencies[0], "group.id.1", "artifact.id.1", "1.0.0-desc1"); AssertExpectedDescriptor(reloadedPOM.Dependencies[1], "group.id.2", "artifact.id.2", "1.0.0-desc2"); Assert.IsNotNull(reloadedPOM.Dependencies[0].Exclusions, "Exclusions were not reloaded successfully"); AssertExpectedDescriptor(reloadedPOM.Dependencies[0].Exclusions.FirstOrDefault(), "ex-group", "ex-artifact", "1.0.0-ex"); }
public static MavenPartialPOM Load(string filePath) { if (string.IsNullOrWhiteSpace(filePath)) { throw new ArgumentNullException("filePath"); } MavenPartialPOM data = null; using (Stream stream = new FileStream(filePath, FileMode.Open, FileAccess.Read, FileShare.Read)) { data = TryLoad(stream); } if (data != null) { data.FilePath = filePath; } return(data); }
public static MavenPartialPOM GetPOMFromResource(this IMavenArtifactHandler handler, Assembly resourceAssembly, string resourceName) { if (handler == null) { throw new ArgumentNullException("handler"); } if (resourceAssembly == null) { throw new ArgumentNullException("resourceAssembly"); } if (string.IsNullOrWhiteSpace(resourceName)) { throw new ArgumentNullException("resourceName"); } MavenPartialPOM pom = null; using (Stream stream = resourceAssembly.GetManifestResourceStream(resourceName)) { pom = MavenPartialPOM.Load(stream); } return(pom); }
private IEnumerable<string> GetJarsFromPOM(MavenPartialPOM pom) { Debug.Assert(pom != null); IList<string> jarFilePaths = new List<string>(); MavenArtifactHandler handler = new MavenArtifactHandler(this.logger); foreach (MavenDependency dependency in pom.Dependencies) { string jarFilePath = handler.FetchArtifactJarFile(dependency); jarFilePaths.Add(jarFilePath); } return jarFilePaths; }
public static IEnumerable <string> GetJarsFromPOM(this IMavenArtifactHandler handler, MavenPartialPOM pom) { if (handler == null) { throw new ArgumentNullException("handler"); } if (pom == null) { throw new ArgumentNullException("pom"); } ISet <string> jarFilePaths = new HashSet <string>(StringComparer.OrdinalIgnoreCase); foreach (MavenDependency dependency in pom.Dependencies) { string jarFilePath = handler.FetchArtifactJarFile(dependency); if (jarFilePath != null) { Debug.Assert(!jarFilePaths.Contains(jarFilePath, StringComparer.OrdinalIgnoreCase), "Expecting full jar paths to be unique"); Debug.Assert(!jarFilePaths.Any(j => Path.GetFileName(j).Equals(Path.GetFileName(jarFilePath), StringComparison.OrdinalIgnoreCase)), "Expecting jars file names to be unique"); jarFilePaths.Add(jarFilePath); } } return(jarFilePaths); }