use of org.apache.maven.plugins.war.overlay.OverlayManager in project maven-plugins by apache.
the class OverlayManagerTest method testSimpleOverlay.
public void testSimpleOverlay() throws Exception {
final MavenProjectArtifactsStub project = new MavenProjectArtifactsStub();
final ArtifactStub first = newWarArtifact("test", "test-webapp");
project.addArtifact(first);
final List<Overlay> overlays = new ArrayList<Overlay>();
overlays.add(new DefaultOverlay(first));
try {
final Overlay currentProjectOverlay = Overlay.createInstance();
OverlayManager manager = new OverlayManager(overlays, project, DEFAULT_INCLUDES, DEFAULT_EXCLUDES, currentProjectOverlay);
assertNotNull(manager.getOverlays());
assertEquals(2, manager.getOverlays().size());
assertEquals(Overlay.createInstance(), manager.getOverlays().get(0));
assertEquals(overlays.get(0), manager.getOverlays().get(1));
} catch (InvalidOverlayConfigurationException e) {
e.printStackTrace();
fail("Should not have failed to validate a valid overlay config " + e.getMessage());
}
}
use of org.apache.maven.plugins.war.overlay.OverlayManager in project maven-plugins by apache.
the class OverlayManagerTest method testOverlaysWithSameArtifactAndGroupId.
public void testOverlaysWithSameArtifactAndGroupId() throws Exception {
final MavenProjectArtifactsStub project = new MavenProjectArtifactsStub();
final ArtifactStub first = newWarArtifact("test", "test-webapp");
final ArtifactStub second = newWarArtifact("test", "test-webapp", "my-classifier");
project.addArtifact(first);
project.addArtifact(second);
final List<Overlay> overlays = new ArrayList<Overlay>();
overlays.add(new DefaultOverlay(first));
overlays.add(new DefaultOverlay(second));
try {
final Overlay currentProjectOverlay = Overlay.createInstance();
OverlayManager manager = new OverlayManager(overlays, project, DEFAULT_INCLUDES, DEFAULT_EXCLUDES, currentProjectOverlay);
assertNotNull(manager.getOverlays());
assertEquals(3, manager.getOverlays().size());
assertEquals(currentProjectOverlay, manager.getOverlays().get(0));
assertEquals(overlays.get(0), manager.getOverlays().get(1));
assertEquals(overlays.get(1), manager.getOverlays().get(2));
} catch (InvalidOverlayConfigurationException e) {
e.printStackTrace();
fail("Should not have failed to validate a valid overlay config " + e.getMessage());
}
}
use of org.apache.maven.plugins.war.overlay.OverlayManager in project maven-plugins by apache.
the class AbstractWarMojo method buildWebapp.
/**
* Builds the webapp for the specified project with the new packaging task thingy.
* Classes, libraries and tld files are copied to the <tt>webappDirectory</tt> during this phase.
*
* @param mavenProject the maven project
* @param webapplicationDirectory the target directory
* @throws MojoExecutionException if an error occurred while packaging the webapp
* @throws MojoFailureException if an unexpected error occurred while packaging the webapp
* @throws IOException if an error occurred while copying the files
*/
public void buildWebapp(MavenProject mavenProject, File webapplicationDirectory) throws MojoExecutionException, MojoFailureException, IOException {
WebappStructure cache;
if (useCache && cacheFile.exists()) {
// CHECKSTYLE_OFF: LineLength
cache = new WebappStructure(mavenProject.getDependencies(), webappStructureSerialier.fromXml(cacheFile));
// CHECKSTYLE_ON: LineLength
} else {
cache = new WebappStructure(mavenProject.getDependencies(), null);
}
// CHECKSTYLE_OFF: LineLength
final long startTime = System.currentTimeMillis();
getLog().info("Assembling webapp [" + mavenProject.getArtifactId() + "] in [" + webapplicationDirectory + "]");
final OverlayManager overlayManager = new OverlayManager(overlays, mavenProject, getDependentWarIncludes(), getDependentWarExcludes(), currentProjectOverlay);
final List<WarPackagingTask> packagingTasks = getPackagingTasks(overlayManager);
// CHECKSTYLE_ON: LineLength
List<FileUtils.FilterWrapper> defaultFilterWrappers;
try {
MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution();
mavenResourcesExecution.setEscapeString(escapeString);
mavenResourcesExecution.setSupportMultiLineFiltering(supportMultiLineFiltering);
mavenResourcesExecution.setMavenProject(mavenProject);
// if these are NOT set, just use the defaults, which are '${*}' and '@'.
mavenResourcesExecution.setDelimiters(delimiters, useDefaultDelimiters);
if (nonFilteredFileExtensions != null) {
mavenResourcesExecution.setNonFilteredFileExtensions(nonFilteredFileExtensions);
}
if (filters == null) {
filters = getProject().getBuild().getFilters();
}
mavenResourcesExecution.setFilters(filters);
mavenResourcesExecution.setEscapedBackslashesInFilePath(escapedBackslashesInFilePath);
mavenResourcesExecution.setMavenSession(this.session);
mavenResourcesExecution.setEscapeString(this.escapeString);
mavenResourcesExecution.setSupportMultiLineFiltering(supportMultiLineFiltering);
defaultFilterWrappers = mavenFileFilter.getDefaultFilterWrappers(mavenResourcesExecution);
} catch (MavenFilteringException e) {
getLog().error("fail to build filering wrappers " + e.getMessage());
throw new MojoExecutionException(e.getMessage(), e);
}
final WarPackagingContext context = new DefaultWarPackagingContext(webapplicationDirectory, cache, overlayManager, defaultFilterWrappers, getNonFilteredFileExtensions(), filteringDeploymentDescriptors, this.artifactFactory, resourceEncoding, useJvmChmod);
for (WarPackagingTask warPackagingTask : packagingTasks) {
warPackagingTask.performPackaging(context);
}
// Post packaging
final List<WarPostPackagingTask> postPackagingTasks = getPostPackagingTasks();
for (WarPostPackagingTask task : postPackagingTasks) {
task.performPostPackaging(context);
}
getLog().info("Webapp assembled in [" + (System.currentTimeMillis() - startTime) + " msecs]");
}
use of org.apache.maven.plugins.war.overlay.OverlayManager in project maven-plugins by apache.
the class OverlayManagerTest method testUnknonwnOverlay.
public void testUnknonwnOverlay() throws Exception {
final MavenProjectArtifactsStub project = new MavenProjectArtifactsStub();
final ArtifactStub first = newWarArtifact("test", "test-webapp");
project.addArtifact(first);
final List<Overlay> overlays = new ArrayList<Overlay>();
overlays.add(new Overlay("test", "test-webapp-2"));
try {
final Overlay currentProjectOVerlay = Overlay.createInstance();
new OverlayManager(overlays, project, DEFAULT_INCLUDES, DEFAULT_EXCLUDES, currentProjectOVerlay);
fail("Should have failed to validate an unknown overlay");
} catch (InvalidOverlayConfigurationException e) {
// OK
}
}
use of org.apache.maven.plugins.war.overlay.OverlayManager in project maven-plugins by apache.
the class OverlayManagerTest method testAutodetectSimpleOverlay.
public void testAutodetectSimpleOverlay(Overlay currentProjectOverlay) throws Exception {
final MavenProjectArtifactsStub project = new MavenProjectArtifactsStub();
final ArtifactStub first = newWarArtifact("test", "test-webapp");
project.addArtifact(first);
final List<Overlay> overlays = new ArrayList<Overlay>();
try {
final Overlay overlay = currentProjectOverlay;
OverlayManager manager = new OverlayManager(overlays, project, DEFAULT_INCLUDES, DEFAULT_EXCLUDES, overlay);
assertNotNull(manager.getOverlays());
assertEquals(2, manager.getOverlays().size());
assertEquals(overlay, manager.getOverlays().get(0));
assertEquals(new DefaultOverlay(first), manager.getOverlays().get(1));
} catch (InvalidOverlayConfigurationException e) {
e.printStackTrace();
fail("Should not have failed to validate a valid overlay config " + e.getMessage());
}
}
Aggregations