diff --git a/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/AbstractAmpMojo.java b/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/AbstractAmpMojo.java index efe17628..f9916024 100644 --- a/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/AbstractAmpMojo.java +++ b/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/AbstractAmpMojo.java @@ -231,7 +231,7 @@ public abstract class AbstractAmpMojo extends AbstractMojo Overlay overlay = (Overlay) it.next(); if ( overlay.isCurrentProject() ) { - packagingTasks.add( new AmpProjectPackagingTask( mAmpResources, mModuleProperties) ); + packagingTasks.add( new AmpProjectPackagingTask( mAmpResources, mModuleProperties, mFileMappingProperties) ); } else { @@ -332,7 +332,13 @@ public abstract class AbstractAmpMojo extends AbstractMojo * @parameter expression="${maven.amp.moduleProperties}" default-value="${project.basedir}/module.properties" */ private File mModuleProperties; - + + /** + * The path to the web.xml file to use. + * + * @parameter expression="${maven.amp.fileMappingProperties}" default-value="${project.basedir}/file-mapping.properties" + */ + private File mFileMappingProperties; /** * Directory to unpack dependent AMPs into if needed @@ -661,6 +667,16 @@ public abstract class AbstractAmpMojo extends AbstractMojo } + public File getmFileMappingProperties() + { + return mFileMappingProperties; + } + + public void setmFileMappingProperties(File mFileMappingProperties) + { + this.mFileMappingProperties = mFileMappingProperties; + } + public String getOutputFileNameMapping() { return mOutputFileNameMapping; diff --git a/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/packaging/AmpProjectPackagingTask.java b/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/packaging/AmpProjectPackagingTask.java index 962000b5..24f6863d 100644 --- a/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/packaging/AmpProjectPackagingTask.java +++ b/plugins/maven-amp-plugin/src/main/java/org/alfresco/maven/plugin/amp/packaging/AmpProjectPackagingTask.java @@ -45,16 +45,19 @@ public class AmpProjectPackagingTask private final File moduleProperties; + private final File fileMappingProperties; + private final String id; - public AmpProjectPackagingTask( Resource[] webResources, File moduleProperties) + public AmpProjectPackagingTask( Resource[] webResources, File moduleProperties, File fileMappingProperties) { if ( webResources != null ) { this.webResources = webResources; } this.moduleProperties = moduleProperties; + this.fileMappingProperties = fileMappingProperties; this.id = Overlay.currentProjectInstance().getId(); } @@ -167,7 +170,17 @@ public class AmpProjectPackagingTask { try { - File fileMapping = new File(context.getAmpDirectory(), FILE_MAPPING); + if ( fileMappingProperties != null && StringUtils.isNotEmpty( fileMappingProperties.getName() ) ) + { + if ( fileMappingProperties.exists() ) + { + context.getLog().info("Existing " + FILE_MAPPING + " found, performing property expansion"); + copyFilteredFile(id, context, fileMappingProperties, FILE_MAPPING); + return; + } + } + File fileMapping = new File(context.getAmpDirectory(), FILE_MAPPING); + context.getLog().info("No " + FILE_MAPPING + " found, synthesizing one"); OutputStream out = null; fileMapping.createNewFile(); // Note: ignore if the file already exists - we simply overwrite its existing contents