@Override public void copy(final Path pathToPomXML, final String newName, final String comment) { try { final org.uberfire.java.nio.file.Path projectDirectory = Paths.convert(pathToPomXML).getParent(); final org.uberfire.java.nio.file.Path newProjectPath = projectDirectory.resolveSibling(newName); final POM content = pomService.load(pathToPomXML); if (newProjectPath.equals(projectDirectory)) { return; } if (ioService.exists(newProjectPath)) { throw new FileAlreadyExistsException(newProjectPath.toString()); } content.setName(newName); final Path newPathToPomXML = Paths.convert(newProjectPath.resolve("pom.xml")); ioService.startBatch(); ioService.copy(projectDirectory, newProjectPath, makeCommentedOption(comment)); pomService.save(newPathToPomXML, content, null, comment); ioService.endBatch(); final Project newProject = resolveProject(Paths.convert(newProjectPath)); newProjectEvent.fire(new NewProjectEvent(newProject, sessionInfo)); } catch (final Exception e) { throw ExceptionUtilities.handleException(e); } }