/** * Get the {@link DirectoryResource} representing the root directory of this {@link Project}. */ @Deprecated default DirectoryResource getRootDirectory() { Resource<?> root = getRoot(); if (root instanceof DirectoryResource) return (DirectoryResource) root; throw new IllegalStateException("Project root [" + root + "] is not an instance of DirectoryResource"); }
public static File getBaseDir(Project project) { if (project == null) { return null; } Resource<?> root = project.getRoot(); if (root == null) { return null; } return ResourceUtil.getContextFile(root); }
@Override public void evict(Project project) { this.projects.remove(project.getRoot().getFullyQualifiedName()); }
@Override public void store(Project project) { Assert.notNull(project, "Project should not be null"); this.projects.put(project.getRoot().getFullyQualifiedName(), project); }
private void copyModules(UIExecutionContext context, Project project, java.io.File assetDir) throws Exception { final String resourcesDir = String.format("%s/src/main/resources", project.getRoot().getFullyQualifiedName()); final java.io.File resourcesDirFile = new java.io.File(resourcesDir); if (!resourcesDirFile.exists()) { if (!resourcesDirFile.mkdirs()) { getOut(context).err().printf("ERROR CREATING FOLDER: [%s]\n", resourcesDir); return; } } FileUtils.copyDirectory(assetDir, resourcesDirFile); FileUtils.copyFileToDirectory(script.getValue() .getUnderlyingResourceObject(), resourcesDirFile); }
@Override public DirectoryResource getResourceDirectory() { String resFolderName = "src" + File.separator + "main" + File.separator + name; DirectoryResource projectRoot = getFaceted().getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(resFolderName); }
@Override public DirectoryResource getTestResourceDirectory() { String resFolderName = "src" + File.separator + "test" + File.separator + name; DirectoryResource projectRoot = getFaceted().getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(resFolderName); }
@Override public MavenModelResource getModelResource() { return getFaceted().getRoot().getChild("pom.xml").reify(MavenModelResource.class); }
@Override public DirectoryResource getRootTemplateDirectory() { Project project = getFaceted(); return project.getRoot().reify(DirectoryResource.class).getChildDirectory("src" + File.separator + "main" + File.separator + "templates"); }
private Project createSubmoduleProject(final Project parent, String moduleName, String artifactId, Class<? extends ProjectFacet>... requiredProjectFacets) { ProjectFactory projectFactory = getProjectFactory(); MavenBuildSystem buildSystem = getBuildSystem(); DirectoryResource location = parent.getRoot().reify(DirectoryResource.class) .getOrCreateChildDirectory(moduleName); List<Class<? extends ProjectFacet>> facets = new ArrayList<>(); facets.add(ResourcesFacet.class); facets.addAll(Arrays.asList(requiredProjectFacets)); Project project = projectFactory.createProject(location, buildSystem, facets); MetadataFacet metadata = project.getFacet(MetadataFacet.class); metadata.setProjectName(artifactId); return project; }
/** * @param project */ private void generateReadme(Project project) { String readmeTemplate = Streams.toString(getClass().getResourceAsStream("README.asciidoc")); FileResource<?> child = project.getRoot().reify(DirectoryResource.class) .getChildOfType(FileResource.class, "README.asciidoc"); // TODO: Replace with template addon MetadataFacet metadata = project.getFacet(MetadataFacet.class); readmeTemplate = readmeTemplate.replaceAll("\\{\\{ADDON_GROUP_ID\\}\\}", metadata.getProjectGroupName()); readmeTemplate = readmeTemplate.replaceAll("\\{\\{ADDON_ARTIFACT_ID\\}\\}", metadata.getProjectName()); child.createNewFile(); child.setContents(readmeTemplate); }
@Override public boolean isInstalled() { DirectoryResource root = getFaceted().getRoot().reify(DirectoryResource.class); return root != null && root.getChildDirectory(GIT_DIRECTORY).exists(); }
@Override public boolean canAssociate(final Project project, final Resource<?> parent) { return parent.getChild("pom.xml").exists() && project.getRoot().getChild("pom.xml").exists(); } }
private DirectoryResource getTargetDirectory(Project project) { MavenFacet mavenFacet = project.getFacet(MavenFacet.class); Build build = mavenFacet.getModel().getBuild(); String targetFolderName; if (build != null && build.getOutputDirectory() != null) { targetFolderName = mavenFacet.resolveProperties(build.getOutputDirectory()); } else { targetFolderName = "target" + File.separator + "classes"; } DirectoryResource projectRoot = project.getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(targetFolderName); }
protected GitIgnoreResource gitIgnoreResource(UIContext context) { GitIgnoreResource resource = getSelectedProject(context).getRoot().reify(DirectoryResource.class).getChildOfType( GitIgnoreResource.class, GITIGNORE); if (resource == null || !resource.exists()) { resource.createNewFile(); } return resource; }
@Override public boolean isEnabled(UIContext context) { return super.isEnabled(context) && !getSelectedProject(context).getRoot().reify(DirectoryResource.class).getChildDirectory(GIT_DIRECTORY) .exists(); } }
@Override public DirectoryResource getResourceDirectory() { MavenFacet mavenFacet = getFaceted().getFacet(MavenFacet.class); Build build = mavenFacet.getModel().getBuild(); final String resFolderName; if (build != null && !build.getResources().isEmpty() && build.getResources().get(0).getDirectory() != null) { resFolderName = build.getResources().get(0).getDirectory(); } else { resFolderName = "src" + File.separator + "main" + File.separator + "resources"; } DirectoryResource projectRoot = getFaceted().getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(resFolderName); }
@Override public void initializeUI(UIBuilder builder) throws Exception { InputComponentFactory factory = builder.getInputComponentFactory(); projectRoot = factory.createInput("projectRoot", DirectoryResource.class).setLabel("Project directory") .setDescription("The location of the project (contains pom.xml)").setRequired(true); Project project = getSelectedProject(builder); if (project != null) { projectRoot.setDefaultValue(project.getRoot().reify(DirectoryResource.class)); } builder.add(projectRoot); }
@Override public DirectoryResource getSourceDirectory() { MavenFacet mavenFacet = getFaceted().getFacet(MavenFacet.class); Build build = mavenFacet.getModel().getBuild(); String srcFolderName; if (build != null && build.getSourceDirectory() != null) { srcFolderName = mavenFacet.resolveProperties(build.getSourceDirectory()); } else { srcFolderName = "src" + File.separator + "main" + File.separator + "java"; } DirectoryResource projectRoot = getFaceted().getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(srcFolderName); }
@Override public DirectoryResource getTestTargetDirectory() { MavenFacet mavenFacet = getFaceted().getFacet(MavenFacet.class); Build build = mavenFacet.getModel().getBuild(); String targetFolderName; if (build != null && build.getTestOutputDirectory() != null) { targetFolderName = mavenFacet.resolveProperties(build.getTestOutputDirectory()); } else { targetFolderName = "target" + File.separator + "test-classes"; } DirectoryResource projectRoot = getFaceted().getRoot().reify(DirectoryResource.class); return projectRoot.getChildDirectory(targetFolderName); }