use of org.apache.maven.archetype.catalog.ArchetypeCatalog in project maven-archetype by apache.
the class LocalCatalogArchetypeDataSourceTest method setUp.
protected void setUp() throws Exception {
super.setUp();
File catalogDirectory = getTestFile("target/test-classes/repositories/test-catalog");
catalogDirectory.mkdirs();
ArchetypeCatalog catalog = new ArchetypeCatalog();
Archetype generatedArchetype = new Archetype();
generatedArchetype.setGroupId("groupId");
generatedArchetype.setArtifactId("artifactId");
generatedArchetype.setVersion("1");
generatedArchetype.setRepository("http://localhost:0/repo/");
catalog.addArchetype(generatedArchetype);
File catalogFile = new File(catalogDirectory, "archetype-catalog.xml");
ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
Writer writer = new FileWriter(catalogFile);
catalogWriter.write(writer, catalog);
IOUtils.closeQuietly(writer);
}
use of org.apache.maven.archetype.catalog.ArchetypeCatalog in project maven-archetype by apache.
the class LocalCatalogArchetypeDataSourceTest method testLocalCatalog.
public void testLocalCatalog() throws Exception {
ArchetypeManager archetype = lookup(ArchetypeManager.class);
ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManager(getTestFile("target/test-classes/repositories/test-catalog")));
buildingRequest.setRepositorySession(repositorySession);
ArchetypeCatalog result = archetype.getLocalCatalog(buildingRequest);
assertEquals(1, result.getArchetypes().size());
assertEquals("groupId", result.getArchetypes().get(0).getGroupId());
assertEquals("artifactId", result.getArchetypes().get(0).getArtifactId());
assertEquals("1", result.getArchetypes().get(0).getVersion());
assertEquals("http://localhost:0/repo/", result.getArchetypes().get(0).getRepository());
}
use of org.apache.maven.archetype.catalog.ArchetypeCatalog in project maven-archetype by apache.
the class RemoteCatalogArchetypeDataSourceTest method setUp.
protected void setUp() throws Exception {
super.setUp();
System.setProperty("org.apache.maven.archetype.repository.directory", getTestPath("target/test-classes/repositories/test-catalog"));
// Start Jetty
server = new Server(0);
WebAppContext webapp = new WebAppContext();
webapp.setContextPath("/repo");
webapp.setWar("target/wars/archetype-repository.war");
server.setHandler(webapp);
server.start();
port = server.getConnectors()[0].getLocalPort();
File catalogDirectory = getTestFile("target/test-classes/repositories/test-catalog");
catalogDirectory.mkdirs();
getTestFile("target/test-classes/repositories/test-catalog/dummy").createNewFile();
ArchetypeCatalog catalog = new ArchetypeCatalog();
Archetype generatedArchetype = new Archetype();
generatedArchetype.setGroupId("groupId");
generatedArchetype.setArtifactId("artifactId");
generatedArchetype.setVersion("1");
generatedArchetype.setRepository("http://localhost:" + port + "/repo/");
catalog.addArchetype(generatedArchetype);
File catalogFile = new File(catalogDirectory, "archetype-catalog.xml");
ArchetypeCatalogXpp3Writer catalogWriter = new ArchetypeCatalogXpp3Writer();
Writer writer = new FileWriter(catalogFile);
catalogWriter.write(writer, catalog);
IOUtils.closeQuietly(writer);
}
use of org.apache.maven.archetype.catalog.ArchetypeCatalog in project maven-archetype by apache.
the class ArchetypeGenerationTest method testProjectGenerationFromAnArchetype.
public void testProjectGenerationFromAnArchetype() throws Exception {
ArchetypeManager archetype = (ArchetypeManager) lookup(ArchetypeManager.ROLE);
// In the embedder the localRepository will be retrieved from the embedder itself and users won't
// have to go through this muck.
ArtifactRepository localRepository = createRepository(new File(getBasedir(), "target/test-classes/repositories/local").toURI().toURL().toExternalForm(), "local-repo");
ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManager("target/test-classes/repositories/central"));
buildingRequest.setRepositorySession(repositorySession);
ArchetypeCatalog catalog = archetype.getLocalCatalog(buildingRequest);
System.err.println("archetypes => " + catalog.getArchetypes());
// Here I am just grabbing a OldArchetype but in a UI you would take the OldArchetype objects and present
// them to the user.
Archetype selection = (Archetype) catalog.getArchetypes().get(catalog.getArchetypes().size() - 1);
System.err.println("Selected OldArchetype = " + selection);
// Now you will present a dialog, or whatever, and grab the following values.
String groupId = "com.mycompany";
String artifactId = "app";
String version = "1.0.0";
String packageName = "org.mycompany.app";
// With the selected OldArchetype and the parameters you can create a generation request as follows:
File outputDirectory = new File(getBasedir(), "target/test-classes/projects/archetyper-generate-1");
FileUtils.forceDelete(outputDirectory);
ArchetypeGenerationRequest agr = new ArchetypeGenerationRequest(selection).setOutputDirectory(outputDirectory.getAbsolutePath()).setLocalRepository(localRepository).setGroupId(groupId).setArtifactId(artifactId).setVersion(version).setPackage(packageName);
Properties archetypeRequiredProperties = new Properties();
archetypeRequiredProperties.setProperty("property-with-default-1", "value-1");
archetypeRequiredProperties.setProperty("property-with-default-2", "value-2");
archetypeRequiredProperties.setProperty("property-with-default-3", "value-3");
archetypeRequiredProperties.setProperty("property-with-default-4", "value-4");
archetypeRequiredProperties.setProperty("property-without-default-1", "some-value-1");
archetypeRequiredProperties.setProperty("property-without-default-2", "some-value-2");
archetypeRequiredProperties.setProperty("property-without-default-3", "some-value-3");
archetypeRequiredProperties.setProperty("property-without-default-4", "some-value-4");
archetypeRequiredProperties.setProperty("property_underscored_1", "prop1");
archetypeRequiredProperties.setProperty("property_underscored-2", "prop2");
agr.setProperties(archetypeRequiredProperties);
agr.setProjectBuildingRequest(buildingRequest);
// Then generate away!
ArchetypeGenerationResult result = archetype.generateProjectFromArchetype(agr);
if (result.getCause() != null) {
result.getCause().printStackTrace(System.err);
fail(result.getCause().getMessage());
}
}
use of org.apache.maven.archetype.catalog.ArchetypeCatalog in project maven-archetype by apache.
the class InternalCatalogArchetypesVerificationTest method testInternalCatalog.
public void testInternalCatalog() throws Exception {
ArtifactRepository localRepository = createRepository(new File(getBasedir(), "target/test-classes/repositories/local").toURI().toURL().toExternalForm(), "local-repo");
File outputDirectory = new File(getBasedir(), "target/internal-archetypes-projects");
outputDirectory.mkdirs();
FileUtils.cleanDirectory(outputDirectory);
ArchetypeManager archetype = (ArchetypeManager) lookup(ArchetypeManager.class.getName());
ArchetypeCatalog catalog = archetype.getInternalCatalog();
int count = 1;
for (Archetype a : catalog.getArchetypes()) {
Archetype ar = new Archetype();
ar.setGroupId(a.getGroupId());
ar.setArtifactId(a.getArtifactId());
ar.setVersion(a.getVersion());
ar.setDescription(a.getDescription());
ar.setGoals(a.getGoals());
ar.setProperties(a.getProperties());
ar.setRepository(a.getRepository());
if (ar.getRepository() == null) {
ar.setRepository(CENTRAL);
}
ArchetypeGenerationRequest request = new ArchetypeGenerationRequest(ar).setGroupId("org.apache.maven.archetype.test").setArtifactId("archetype" + count).setVersion("1.0-SNAPSHOT").setPackage("com.acme").setOutputDirectory(outputDirectory.getPath()).setLocalRepository(localRepository);
ProjectBuildingRequest buildingRequest = new DefaultProjectBuildingRequest();
MavenRepositorySystemSession repositorySession = new MavenRepositorySystemSession();
repositorySession.setLocalRepositoryManager(new SimpleLocalRepositoryManager(localRepository.getBasedir()));
buildingRequest.setRepositorySession(repositorySession);
request.setProjectBuildingRequest(buildingRequest);
ArchetypeGenerationResult generationResult = archetype.generateProjectFromArchetype(request);
assertTrue("Archetype wasn't generated successfully", generationResult.getCause() == null);
count++;
}
}
Aggregations