public void execute() throws MojoExecutionException { AetherUtil.setRepositorySystemSession(repoSession); AetherUtil.setRepositorySystem(repoSystem); mergerComponent = new KevoreeMergerComponent(); ContainerRoot model = KevoreeFactory.createContainerRoot(); if (sourceMarShellDirectory != null) { ContainerRoot model2 = executeOnDirectory(sourceMarShellDirectory); mergerComponent.merge(model, model2); } if (sourceMarShellDirectory2 != null) { ContainerRoot model2 = executeOnDirectory(sourceMarShellDirectory2); mergerComponent.merge(model, model2); } if (!sourceOutputDirectory.exists() && !sourceOutputDirectory.mkdirs()) { throw new MojoExecutionException( "Unable to build target packages " + sourceOutputDirectory.getAbsolutePath()); } KevoreeXmiHelper.save( sourceOutputDirectory.getAbsolutePath() + File.separator + "lib.kev", model); Resource resource = new Resource(); resource.setTargetPath("KEV-INF"); resource.setDirectory(sourceOutputDirectory.getAbsolutePath()); project.addResource(resource); }
private ContainerRoot executeOnDirectory(File dir) throws MojoExecutionException { ContainerRoot mergedModel = KevoreeFactory.createContainerRoot(); if (dir.listFiles() != null) { for (File f : dir.listFiles()) { if (f.isDirectory()) { ContainerRoot model = executeOnDirectory(f); mergedModel = mergerComponent.merge(mergedModel, model); } else { // try { ContainerRoot model = ModelGenerator.generate(f.getAbsolutePath(), project); mergedModel = mergerComponent.merge(mergedModel, model); /*} catch (Exception e) { getLog().error("Unable to parse the source file", e); }*/ } } } return mergedModel; }