diff --git a/biz.aQute.repository/test/aQute/bnd/repository/maven/helpers/MavenRepoTestHelper.java b/biz.aQute.repository/test/aQute/bnd/repository/maven/helpers/MavenRepoTestHelper.java new file mode 100644 index 0000000000..fc3955ee52 --- /dev/null +++ b/biz.aQute.repository/test/aQute/bnd/repository/maven/helpers/MavenRepoTestHelper.java @@ -0,0 +1,33 @@ +package aQute.bnd.repository.maven.helpers; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import java.io.File; + +import aQute.bnd.service.RepositoryPlugin; +import aQute.bnd.version.Version; + +public class MavenRepoTestHelper { + + /** + * This method is called by two maven repo tests to ensure that both repos + * behave the same and can get a resource by bns and gav in case both are + * available. + * + * @param repo + * @throws Exception + */ + public static void assertMavenReposGetViaBSNAndGAV(RepositoryPlugin repo) throws Exception { + assertEquals(1, repo.list("org.apache.commons.cli") + .size()); + System.out.println(repo.list("org.apache.commons.cli")); + System.out.println(repo.versions("org.apache.commons.cli")); + File f12maven = repo.get("commons-cli:commons-cli", new Version("1.2.0"), null); + File f12osgi = repo.get("org.apache.commons.cli", new Version("1.2.0"), null); + + assertEquals("commons-cli-1.2.jar", f12maven.getName()); + assertEquals(f12maven, f12osgi); + + } + +} diff --git a/biz.aQute.repository/test/aQute/bnd/repository/maven/pom/provider/PomRepositoryTest.java b/biz.aQute.repository/test/aQute/bnd/repository/maven/pom/provider/PomRepositoryTest.java index 92382493f6..12f5f292d0 100644 --- a/biz.aQute.repository/test/aQute/bnd/repository/maven/pom/provider/PomRepositoryTest.java +++ b/biz.aQute.repository/test/aQute/bnd/repository/maven/pom/provider/PomRepositoryTest.java @@ -40,6 +40,8 @@ import aQute.bnd.osgi.Jar; import aQute.bnd.osgi.Processor; import aQute.bnd.osgi.repository.XMLResourceParser; +import aQute.bnd.repository.maven.helpers.MavenRepoTestHelper; +import aQute.bnd.repository.maven.provider.MavenBndRepoTest; import aQute.bnd.service.RepositoryListenerPlugin; import aQute.bnd.service.RepositoryPlugin; import aQute.bnd.test.jupiter.InjectTemporaryDirectory; @@ -267,6 +269,31 @@ public void testBndPomRepoFile() throws Exception { } } + + /** + * Commons CLI 1.2 is in there as GAV & as BSN Note: This test should be + * kept in sync with {@link MavenBndRepoTest#testGetViaBSNAndGAV()} + */ + @Test + public void testGetViaBSNAndGAV() throws Exception { + try (BndPomRepository repo = new BndPomRepository()) { + Workspace w = Workspace.createStandaloneWorkspace(new Processor(), tmp.toURI()); + w.setBase(tmp); + repo.setRegistry(w); + + Map config = new HashMap<>(); + config.put("pom", "testdata/pomrepo/simpleGetViaBSNAndGAV.xml"); + config.put("transitive", "false"); + config.put("snapshotUrl", "https://repo.maven.apache.org/maven2/"); + config.put("releaseUrl", "https://repo.maven.apache.org/maven2/"); + config.put("name", "test2"); + repo.setProperties(config); + + MavenRepoTestHelper.assertMavenReposGetViaBSNAndGAV(repo); + } + + } + @Test public void testBndPomRepoFileExistingParent() throws Exception { try (BndPomRepository bpr = new BndPomRepository()) { diff --git a/biz.aQute.repository/test/aQute/bnd/repository/maven/provider/MavenBndRepoTest.java b/biz.aQute.repository/test/aQute/bnd/repository/maven/provider/MavenBndRepoTest.java index 56d9b53b60..a4d066d2e5 100644 --- a/biz.aQute.repository/test/aQute/bnd/repository/maven/provider/MavenBndRepoTest.java +++ b/biz.aQute.repository/test/aQute/bnd/repository/maven/provider/MavenBndRepoTest.java @@ -44,6 +44,8 @@ import aQute.bnd.osgi.Processor; import aQute.bnd.osgi.resource.ResourceUtils; import aQute.bnd.osgi.resource.ResourceUtils.IdentityCapability; +import aQute.bnd.repository.maven.helpers.MavenRepoTestHelper; +import aQute.bnd.repository.maven.pom.provider.PomRepositoryTest; import aQute.bnd.service.RepositoryPlugin.PutOptions; import aQute.bnd.service.RepositoryPlugin.PutResult; import aQute.bnd.service.maven.PomOptions; @@ -619,24 +621,18 @@ public void testGetFileRepo() throws Exception { assertTrue(file.isFile()); } - /* - * Commons CLI 1.2 is in there as GAV & as BSN + /** + * Commons CLI 1.2 is in there as GAV & as BSN Note: This test should be + * kept in sync with {@link PomRepositoryTest#testGetViaBSNAndGAV()} */ @Test public void testGetViaBSNAndGAV() throws Exception { config(null); - assertEquals(1, repo.list("org.apache.commons.cli") - .size()); - System.out.println(repo.list("org.apache.commons.cli")); - System.out.println(repo.versions("org.apache.commons.cli")); - File f12maven = repo.get("commons-cli:commons-cli", new Version("1.2.0"), null); - File f12osgi = repo.get("org.apache.commons.cli", new Version("1.2.0"), null); - - assertEquals("commons-cli-1.2.jar", f12maven.getName()); - assertEquals(f12maven, f12osgi); + MavenRepoTestHelper.assertMavenReposGetViaBSNAndGAV(repo); } + @Test public void testList() throws Exception { config(null); diff --git a/biz.aQute.repository/testdata/pomrepo/simpleGetViaBSNAndGAV.xml b/biz.aQute.repository/testdata/pomrepo/simpleGetViaBSNAndGAV.xml new file mode 100644 index 0000000000..dd4ad94c00 --- /dev/null +++ b/biz.aQute.repository/testdata/pomrepo/simpleGetViaBSNAndGAV.xml @@ -0,0 +1,20 @@ + + + 4.0.0 + test + test + 1.0.0 + pom + + + + + commons-cli + commons-cli + 1.2 + + + + + \ No newline at end of file