/*
* JBoss, Home of Professional Open Source.
* Copyright 2014 Red Hat, Inc., and individual contributors
* as indicated by the @author tags.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.modules;
import java.io.File;
import java.net.URL;
import org.jboss.modules.maven.ArtifactCoordinates;
import org.jboss.modules.maven.MavenArtifactUtil;
import org.jboss.modules.maven.MavenSettingsTest;
import org.jboss.modules.util.Util;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
/**
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
* @version $Revision: 1 $
*/
public class MavenResourceTest {
protected static final ModuleIdentifier MODULE_ID = ModuleIdentifier.fromString("test.maven");
protected static final ModuleIdentifier MODULE_ID2 = ModuleIdentifier.fromString("test.maven:non-main");
@Rule
public TemporaryFolder tmpdir = new TemporaryFolder();
private ModuleLoader moduleLoader;
@Before
public void setupRepo() throws Exception {
final File repoRoot = Util.getResourceFile(getClass(), "test/repo");
moduleLoader = new LocalModuleLoader(new File[]{repoRoot});
}
@Test
public void testWithPassedRepository() throws Exception {
System.setProperty("maven.repo.local", tmpdir.newFolder("repository").getAbsolutePath());
System.setProperty("remote.maven.repo", "http://repository.jboss.org/nexus/content/groups/public/,https://maven-central.storage.googleapis.com/");
try {
Module module = moduleLoader.loadModule(MODULE_ID);
URL url = module.getResource("org/jboss/resteasy/plugins/providers/jackson/ResteasyJacksonProvider.class");
System.out.println(url);
Assert.assertNotNull(url);
} finally {
System.clearProperty("maven.repo.local");
System.clearProperty("remote.repository");
}
}
@Test
public void testDefaultRepositories() throws Exception {
try {
URL settingsXmlUrl = MavenSettingsTest.class.getResource("jboss-settings.xml");
System.setProperty("jboss.modules.settings.xml.url", settingsXmlUrl.toExternalForm());
Module module = moduleLoader.loadModule(MODULE_ID2);
URL url = module.getResource("org/jboss/resteasy/plugins/providers/jackson/ResteasyJacksonProvider.class");
System.out.println(url);
Assert.assertNotNull(url);
} finally {
System.clearProperty("jboss.modules.settings.xml.url");
}
}
/**
* we test if it uses repostiory user has configured in user.home/.m2/settings.xml or M2_HOME/conf/settings.xml
*
* @throws Exception
*/
@Test
@Ignore("Test is mostly meant for manual testing, as snapshot are not parmanent")
public void testCustomRepository() throws Exception {
File f = MavenArtifactUtil.resolveJarArtifact(ArtifactCoordinates.fromString("org.wildfly.core:wildfly-version:2.0.5.Final-20151222.144931-1"));
Assert.assertNotNull("Should resolve", f);
System.out.println("f = " + f);
}
}