private static void AssertExpectedDescriptor(IMavenCoordinate actual,
                                              string groupId, string artifactId, string version)
 {
     Assert.IsNotNull(actual, "Description should not be null");
     Assert.AreEqual(groupId, actual.GroupId, "Incorrect GroupId");
     Assert.AreEqual(artifactId, actual.ArtifactId, "Incorrect ArtifactId");
     Assert.AreEqual(version, actual.Version, "Incorrect Version");
 }
        private string GetFilePath(IMavenCoordinate coordinate, string extension)
        {
            string filePath = string.Format(System.Globalization.CultureInfo.InvariantCulture,
                                            "{0}-{1}.{2}",
                                            coordinate.ArtifactId,
                                            coordinate.Version,
                                            extension);

            filePath = Path.Combine(this.GetArtifactFolderPath(coordinate), filePath);
            return(filePath);
        }
        /// <summary>
        /// Returns the path to the unique directory for the artifact
        /// </summary>
        private string GetArtifactFolderPath(IMavenCoordinate coordinate)
        {
            string path = string.Format(System.Globalization.CultureInfo.InvariantCulture,
                                        "{0}\\{1}\\{2}",
                                        coordinate.GroupId.Replace(".", "\\"),
                                        coordinate.ArtifactId,
                                        coordinate.Version
                                        );

            path = Path.Combine(this.localCacheDirectory, path);
            return(path);
        }
        private string GetArtifactUrl(IMavenCoordinate coordinate, string extension)
        {
            // Example url: https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.pom
            // i.e. [root]/[groupdId with "/" instead of "."]/[artifactId]/[version]/[artifactId]-[version].pom
            string url = string.Format(System.Globalization.CultureInfo.CurrentCulture,
                                       "https://repo1.maven.org/maven2/{0}/{1}/{2}/{1}-{2}.{3}",
                                       coordinate.GroupId.Replace(".", "/"),
                                       coordinate.ArtifactId,
                                       coordinate.Version,
                                       extension);

            return(url);
        }
        public string FetchArtifactJarFile(IMavenCoordinate coordinate)
        {
            if (coordinate == null)
            {
                throw new ArgumentNullException("coordinate");
            }


            this.logger.LogDebug(MavenResources.MSG_ProcessingArtifact, coordinate);

            string filePath = TryGetJar(coordinate);

            return filePath;
        }
        public string FetchArtifactJarFile(IMavenCoordinate coordinate)
        {
            if (coordinate == null)
            {
                throw new ArgumentNullException("coordinate");
            }


            this.logger.LogDebug(MavenResources.MSG_ProcessingArtifact, coordinate);

            string filePath = TryGetJar(coordinate);

            return(filePath);
        }
        private string TryGetJar(IMavenCoordinate coordinate)
        {
            Debug.Assert(coordinate != null, "Expecting a valid coordinate");
            Debug.Assert(!string.IsNullOrWhiteSpace(coordinate.Version));

            string localJarFilePath = this.GetFilePath(coordinate, JAR_Extension);

            if (File.Exists(localJarFilePath))
            {
                this.logger.LogDebug(MavenResources.MSG_UsingCachedFile, localJarFilePath);
            }
            else
            {
                string url = this.GetArtifactUrl(coordinate, JAR_Extension);
                this.DownloadFile(url, localJarFilePath);

                if (!File.Exists(localJarFilePath))
                {
                    localJarFilePath = null;
                }
            }
            return localJarFilePath;
        }
        private string TryGetJar(IMavenCoordinate coordinate)
        {
            Debug.Assert(coordinate != null, "Expecting a valid coordinate");
            Debug.Assert(!string.IsNullOrWhiteSpace(coordinate.Version));

            string localJarFilePath = this.GetFilePath(coordinate, JAR_Extension);

            if (File.Exists(localJarFilePath))
            {
                this.logger.LogDebug(MavenResources.MSG_UsingCachedFile, localJarFilePath);
            }
            else
            {
                string url = this.GetArtifactUrl(coordinate, JAR_Extension);
                this.DownloadFile(url, localJarFilePath);

                if (!File.Exists(localJarFilePath))
                {
                    localJarFilePath = null;
                }
            }
            return(localJarFilePath);
        }
 private string GetArtifactUrl(IMavenCoordinate coordinate, string extension)
 {
     // Example url: https://repo1.maven.org/maven2/aopalliance/aopalliance/1.0/aopalliance-1.0.pom
     // i.e. [root]/[groupdId with "/" instead of "."]/[artifactId]/[version]/[artifactId]-[version].pom
     string url = string.Format(System.Globalization.CultureInfo.CurrentCulture,
         "https://repo1.maven.org/maven2/{0}/{1}/{2}/{1}-{2}.{3}",
         coordinate.GroupId.Replace(".", "/"),
         coordinate.ArtifactId,
         coordinate.Version,
         extension);
     return url;
 }
 private string GetFilePath(IMavenCoordinate coordinate, string extension)
 {
     string filePath = string.Format(System.Globalization.CultureInfo.InvariantCulture,
         "{0}-{1}.{2}",
         coordinate.ArtifactId,
         coordinate.Version,
         extension);
     filePath = Path.Combine(this.GetArtifactFolderPath(coordinate), filePath);
     return filePath;
 }
        /// <summary>
        /// Returns the path to the unique directory for the artifact
        /// </summary>
        private string GetArtifactFolderPath(IMavenCoordinate coordinate)
        {
            string path = string.Format(System.Globalization.CultureInfo.InvariantCulture,
                "{0}/{1}/{2}",
                coordinate.GroupId.Replace(".", "/"),
                coordinate.ArtifactId,
                coordinate.Version
                );

            path = Path.Combine(path, this.localCacheDirectory);
            return path;
        }
 string IMavenArtifactHandler.FetchArtifactJarFile(IMavenCoordinate coordinate)
 {
     Assert.IsNotNull(coordinate);
     return(this.JarToReturn);
 }
 string IMavenArtifactHandler.FetchArtifactJarFile(IMavenCoordinate coordinate)
 {
     Assert.IsNotNull(coordinate);
     return this.JarToReturn;
 }
 private static void AssertExpectedDescriptor(IMavenCoordinate actual,
     string groupId, string artifactId, string version)
 {
     Assert.IsNotNull(actual, "Description should not be null");
     Assert.AreEqual(groupId, actual.GroupId, "Incorrect GroupId");
     Assert.AreEqual(artifactId, actual.ArtifactId, "Incorrect ArtifactId");
     Assert.AreEqual(version, actual.Version, "Incorrect Version");
 }