summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2019-06-20 09:54:44 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2019-06-20 09:54:44 +0200
commita22f03a4b4d054f12118c7c1d03ac8ec4ccfea56 (patch)
tree6454ea6098151e06161cb1b8b0e63c717bc01c67 /controller-api
parent76c3454dcc9b691149ebfc3910d0b7674f202b15 (diff)
Test and fix parsing, and rename to MavenRepository
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MavenRepository.java (renamed from controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Repository.java)2
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Metadata.java5
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMavenRepository.java (renamed from controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockRepository.java)4
-rw-r--r--controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MetadataTest.java56
4 files changed, 61 insertions, 6 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Repository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MavenRepository.java
index 41a13d41814..ef667bac8c5 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Repository.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MavenRepository.java
@@ -5,7 +5,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.maven;
*
* @author jonmv
*/
-public interface Repository {
+public interface MavenRepository {
Metadata getMetadata(ArtifactId id);
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Metadata.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Metadata.java
index e837eaf875e..fd84a05db6a 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Metadata.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/maven/Metadata.java
@@ -31,12 +31,11 @@ public class Metadata {
/** Creates a new Metadata object from the given XML document. */
public static Metadata fromXml(String xml) {
- Element root = XML.getDocument(xml).getDocumentElement();
- Element metadata = XML.getChild(root, "metadata");
+ Element metadata = XML.getDocument(xml).getDocumentElement();
ArtifactId id = new ArtifactId(XML.getValue(XML.getChild(metadata, "groupId")),
XML.getValue(XML.getChild(metadata, "artifactId")));
List<Version> versions = new ArrayList<>();
- for (Element version : XML.getChildren(XML.getChild(metadata, "versioning"), "versions"))
+ for (Element version : XML.getChildren(XML.getChild(XML.getChild(metadata, "versioning"), "versions")))
versions.add(Version.fromString(XML.getValue(version)));
return new Metadata(id, versions);
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockRepository.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMavenRepository.java
index 9a93cd94aaa..2a8b47af777 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockRepository.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockMavenRepository.java
@@ -3,7 +3,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.stubs;
import com.yahoo.component.Version;
import com.yahoo.vespa.hosted.controller.api.integration.maven.ArtifactId;
import com.yahoo.vespa.hosted.controller.api.integration.maven.Metadata;
-import com.yahoo.vespa.hosted.controller.api.integration.maven.Repository;
+import com.yahoo.vespa.hosted.controller.api.integration.maven.MavenRepository;
import java.util.List;
@@ -12,7 +12,7 @@ import java.util.List;
*
* @author jonmv
*/
-public class MockRepository implements Repository {
+public class MockMavenRepository implements MavenRepository {
@Override
public Metadata getMetadata(ArtifactId id) {
diff --git a/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MetadataTest.java b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MetadataTest.java
new file mode 100644
index 00000000000..17d0694538c
--- /dev/null
+++ b/controller-api/src/test/java/com/yahoo/vespa/hosted/controller/api/integration/maven/MetadataTest.java
@@ -0,0 +1,56 @@
+package com.yahoo.vespa.hosted.controller.api.integration.maven;
+
+import com.yahoo.component.Version;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.net.URI;
+import java.nio.file.Path;
+
+import static org.junit.Assert.assertEquals;
+
+public class MetadataTest {
+
+ @Test
+ public void testParsing() {
+ Metadata metadata = Metadata.fromXml(metadataXml);
+ assertEquals("com.yahoo.vespa", metadata.id().groupId());
+ assertEquals("tenant-base", metadata.id().artifactId());
+ assertEquals(Version.fromString("6.297.80"), metadata.versions().get(0));
+ assertEquals(Version.fromString("7.61.10"), metadata.versions().get(metadata.versions().size() - 1));
+ }
+
+ private static final String metadataXml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" +
+ "<metadata>\n" +
+ " <groupId>com.yahoo.vespa</groupId>\n" +
+ " <artifactId>tenant-base</artifactId>\n" +
+ " <versioning>\n" +
+ " <latest>7.61.10</latest>\n" +
+ " <release>7.61.10</release>\n" +
+ " <versions>\n" +
+ " <version>6.297.80</version>\n" +
+ " <version>6.300.15</version>\n" +
+ " <version>6.301.8</version>\n" +
+ " <version>6.303.29</version>\n" +
+ " <version>6.304.14</version>\n" +
+ " <version>6.305.35</version>\n" +
+ " <version>6.328.65</version>\n" +
+ " <version>6.329.64</version>\n" +
+ " <version>6.330.51</version>\n" +
+ " <version>7.3.19</version>\n" +
+ " <version>7.18.17</version>\n" +
+ " <version>7.20.129</version>\n" +
+ " <version>7.21.18</version>\n" +
+ " <version>7.22.18</version>\n" +
+ " <version>7.38.38</version>\n" +
+ " <version>7.39.5</version>\n" +
+ " <version>7.40.41</version>\n" +
+ " <version>7.41.15</version>\n" +
+ " <version>7.57.40</version>\n" +
+ " <version>7.60.51</version>\n" +
+ " <version>7.61.10</version>\n" +
+ " </versions>\n" +
+ " <lastUpdated>20190619054245</lastUpdated>\n" +
+ " </versioning>\n" +
+ "</metadata>\n";
+}