@Test public void testReImport() throws Exception { when(path.getFileName()).thenReturn("pom.xml"); when(path.toURI()).thenReturn("file://project1/pom.xml"); when(resourceResolver.resolveProject(any(Path.class))).thenReturn(project); abstractProjectService.reImport(path); verify(invalidateDMOCache).fire(any(InvalidateDMOProjectCacheEvent.class)); }
@Override public void reImport(final Path pathToPomXML) { try { final org.uberfire.java.nio.file.Path projectDirectory = Paths.convert(pathToPomXML).getParent(); final Path path = Paths.convert(projectDirectory); final Project project = resourceResolver.resolveProject(path); invalidateDMOCache.fire(new InvalidateDMOProjectCacheEvent(sessionInfo, project, path)); } catch (final Exception e) { throw ExceptionUtilities.handleException(e); } } }
@Override public org.guvnor.common.services.project.model.Package resolvePackage(final Path resource) { try { //Null resource paths cannot resolve to a Project if (resource == null) { return null; } //If Path is not within a Project we cannot resolve a package final Project project = resolveProject(resource); if (project == null) { return null; } //pom.xml is not inside a package if (isPom(resource)) { return null; } return makePackage(project, resource); } catch (Exception e) { throw ExceptionUtilities.handleException(e); } }
@Test public void testRenameEventFiredBeforeDeleteEvent() { when(path.getFileName()).thenReturn("pom.xml"); when(path.toURI()).thenReturn("file://project1/pom.xml"); when(resourceResolver.resolveProject(any(Path.class))).thenReturn(project); when(pomService.load(any())).thenReturn(mock(POM.class)); final InOrder inOrder = inOrder(renameProjectEvent, ioService); abstractProjectService.rename(path, "newName", "comment"); inOrder.verify(renameProjectEvent).fire(any()); inOrder.verify(ioService).endBatch(); } }
@Override public boolean isPom(final Path resource) { try { //Null resource paths cannot resolve to a Project if (resource == null) { return false; } //Check if path equals pom.xml final Project project = resolveProject(resource); //It's possible that the Incremental Build attempts to act on a Project file before the project has been fully created. //This should be a short-term issue that will be resolved when saving a project batches pom.xml, kmodule.xml and project.imports //etc into a single git-batch. At present they are saved individually leading to multiple Incremental Build requests. if (project == null) { return false; } final org.uberfire.java.nio.file.Path path = Paths.convert(resource).normalize(); final org.uberfire.java.nio.file.Path pomFilePath = Paths.convert(project.getPomXMLPath()); return path.startsWith(pomFilePath); } catch (Exception e) { throw ExceptionUtilities.handleException(e); } }
public Set<Project> getProjects(final Repository repository, String branch, boolean secure) { final Set<Project> authorizedProjects = new HashSet<Project>(); if (repository == null) { return authorizedProjects; } final Path repositoryRoot = repository.getBranchRoot(branch); final DirectoryStream<org.uberfire.java.nio.file.Path> nioRepositoryPaths = ioService.newDirectoryStream(Paths.convert(repositoryRoot)); try { for (org.uberfire.java.nio.file.Path nioRepositoryPath : nioRepositoryPaths) { if (Files.isDirectory(nioRepositoryPath)) { final org.uberfire.backend.vfs.Path projectPath = Paths.convert(nioRepositoryPath); final Project project = resourceResolver.resolveProject(projectPath); if (project != null) { if (!secure || authorizationManager.authorize(project, sessionInfo.getIdentity())) { POM projectPom = pomService.load(project.getPomXMLPath()); project.setPom(projectPom); authorizedProjects.add(project); } } } } } finally { nioRepositoryPaths.close(); } return authorizedProjects; }
final Project oldProject = resourceResolver.resolveProject(oldProjectDir); throw e; } finally { final Project newProject = resourceResolver.resolveProject(Paths.convert(newProjectPath)); renameProjectEvent.fire(new RenameProjectEvent(oldProject, newProject));
ioService.endBatch(); final Project newProject = resourceResolver.resolveProject(Paths.convert(newProjectPath)); newProjectEvent.fire(new NewProjectEvent(newProject, commentedOptionFactory.getSafeSessionId(),
@Override public void delete(final Path pathToPomXML, final String comment) { try { final org.uberfire.java.nio.file.Path projectDirectory = Paths.convert(pathToPomXML).getParent(); final Project project2Delete = resourceResolver.resolveProject(Paths.convert(projectDirectory)); final org.uberfire.java.nio.file.Path parentPom = projectDirectory.getParent().resolve(POM_PATH); POM parent = null; if (ioService.exists(parentPom)) { parent = pomService.load(Paths.convert(parentPom)); } ioService.delete(projectDirectory, StandardDeleteOption.NON_EMPTY_DIRECTORIES, commentedOptionFactory.makeCommentedOption(comment)); //Note we do *not* raise a DeleteProjectEvent here, as that is handled by DeleteProjectObserverBridge if (parent != null) { parent.setPackaging("pom"); parent.getModules().remove(project2Delete.getProjectName()); pomService.save(Paths.convert(parentPom), parent, null, "Removing child module " + project2Delete.getProjectName()); } } catch (final Exception e) { throw ExceptionUtilities.handleException(e); } }