private static List ParseMavenPackages()

in Bootstrap/Bootstrap.cs [132:164]


        private static List<MavenPackage> ParseMavenPackages()
        {
            string xmlns = "{http://maven.apache.org/POM/4.0.0}";
            XElement mavenRoot = XElement.Load("../pom.xml");

            Dictionary<string, string> commonVersions = new Dictionary<string, string>();
            foreach (XElement el in mavenRoot.Descendants(xmlns + "properties").Elements())
            {
                commonVersions.Add("${" + el.Name.ToString().Replace(xmlns, "") + "}", (string)el);
            }

            List<MavenPackage> packages = new List<MavenPackage>();
            foreach (XElement el in mavenRoot.Descendants(xmlns + "dependency"))
            {
                string version = (string)el.Element(xmlns + "version");
                if (commonVersions.ContainsKey(version))
                {
                    packages.Add(new MavenPackage(
                        (string)el.Element(xmlns + "groupId"),
                        (string)el.Element(xmlns + "artifactId"),
                        commonVersions[version]));
                }
                else
                {
                    packages.Add(new MavenPackage(
                        (string)el.Element(xmlns + "groupId"),
                        (string)el.Element(xmlns + "artifactId"),
                        version));
                }
            }

            return packages;
        }