/** * Generate the initial artifact by running maven assembly plugin on pre installed artifacts in * archetype * * @param applicationId application id * @param workingDirectory current working directory. this is where we do all application related * file operations * @param archetypeDir location of the archetypes generated * @throws AppFactoryException */ protected void initialDeployArtifactGeneration( String applicationId, String workingDirectory, File archetypeDir) throws AppFactoryException { List<String> goals = new ArrayList<String>(); goals.add(AppFactoryConstants.MVN_GOAL_CLEAN); goals.add(AppFactoryConstants.MVN_GOAL_INSTALL); goals.add(AppFactoryConstants.MVN_GOAL_ASSEMBLY); File projectDir = new File(archetypeDir.getAbsolutePath() + File.separator + applicationId); File initialArtifact = new File( archetypeDir.getAbsolutePath() + File.separator + applicationId + AppFactoryConstants.AF_ARCHETYPE_INITIAL_ARTIFACT_LOCATION); boolean isInitialArtifactGenerationSuccess = ProjectUtils.initialDeployArtifactGeneration( applicationId, projectDir, initialArtifact, new File(workingDirectory), goals); if (isInitialArtifactGenerationSuccess) { try { File initialArtifactSource = new File( projectDir + File.separator + AppFactoryConstants.AF_ARCHETYPE_INITIAL_ARTIFACT_SOURCE_LOCATION); FileUtils.deleteDirectory(initialArtifactSource); File assemblyFile = new File( projectDir + File.separator + AppFactoryConstants.AF_ARCHETYPE_INITIAL_ARTIFACT_ASSEMBLY_XML_LOCATION); FileUtils.forceDelete(assemblyFile); File assemblyDescriptorFile = new File( projectDir + File.separator + AppFactoryConstants.AF_ARCHETYPE_INITIAL_ARTIFACT_BIN_XML_LOCATION); FileUtils.forceDelete(assemblyDescriptorFile); } catch (IOException e) { String msg = "Error occurred while deleting files used in deploy artifact generation"; log.error(msg, e); throw new AppFactoryException(msg, e); } } }