try { for (ContentEntry entry : model.getContentEntries()) { if (contentRootsToClean.contains(entry.getFile())) { model.removeContentEntry(entry);
private static <P extends JpsElement> void addSourceFolderIfNotIgnored( @NotNull final ContentEntry contentEntry, @NotNull final File testSrcDir, @NotNull final JpsModuleSourceRootType<P> rootType, @NotNull P properties, @NotNull final List<File> dirsToIgnore ) { if (dirsToIgnore.stream().noneMatch(it -> FileUtil.isAncestor(it, testSrcDir, false))) { contentEntry.addSourceFolder( VfsUtil.pathToUrl(testSrcDir.getAbsolutePath()), rootType, properties ); } }
if (existingContentEntry.isPresent()) { ContentEntry contentEntry = existingContentEntry.get(); Optional.ofNullable(contentEntry.getFile()) .map(f -> f.findChild("source")) .ifPresent(sourcePath -> contentEntry.addSourceFolder(sourcePath, MONKEY_SOURCE_ROOT_TYPE));
protected void configureAdditionalRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final String directoryName, @NotNull final ContentEntry contentEntry, @NotNull final File parentDirectory ) { Validate.notNull(moduleDescriptor); Validate.notNull(directoryName); Validate.notNull(contentEntry); Validate.notNull(parentDirectory); final File additionalModuleDirectory = new File(parentDirectory, directoryName); if (!additionalModuleDirectory.exists() || additionalModuleDirectory.isFile()) { return; } final File additionalClassesDirectory = new File(additionalModuleDirectory, CLASSES_DIRECTORY); contentEntry.addExcludeFolder( VfsUtil.pathToUrl(additionalClassesDirectory.getAbsolutePath()) ); final File additionalResourcesDirectory = new File(additionalModuleDirectory, RESOURCES_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(additionalResourcesDirectory.getAbsolutePath()), JavaResourceRootType.RESOURCE ); }
protected void configurePlatformRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry ) { Validate.notNull(moduleDescriptor); Validate.notNull(contentEntry); if (!HybrisConstants.PLATFORM_EXTENSION_NAME.equalsIgnoreCase(moduleDescriptor.getName())) { return; } final File rootDirectory = moduleDescriptor.getRootDirectory(); final File platformBootstrapDirectory = new File(rootDirectory, PLATFORM_BOOTSTRAP_DIRECTORY); if (!moduleDescriptor.getRootProjectDescriptor().isImportOotbModulesInReadOnlyMode()) { final File platformBootstrapResourcesDirectory = new File(platformBootstrapDirectory, RESOURCES_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(platformBootstrapResourcesDirectory.getAbsolutePath()), JavaResourceRootType.RESOURCE ); } excludeDirectory(contentEntry, new File(platformBootstrapDirectory, PLATFORM_MODEL_CLASSES_DIRECTORY)); File tomcat6 = new File(rootDirectory, PLATFORM_TOMCAT_6_DIRECTORY); if (tomcat6.exists()) { excludeDirectory(contentEntry, tomcat6); } else { excludeDirectory(contentEntry, new File(rootDirectory, PLATFORM_TOMCAT_DIRECTORY)); } contentEntry.addExcludePattern("apache-ant-*"); }
private static void toggleGrammarKitSrc(Module module, String testDataPath) { String absolutePath = new File("").getAbsolutePath(); JavaPsiFacade facade = JavaPsiFacade.getInstance(module.getProject()); boolean add = facade.findPackage("org.intellij.grammar.psi") == null; if (add) { VfsRootAccess.allowRootAccess(absolutePath); } else { VfsRootAccess.disallowRootAccess(absolutePath); } WriteAction.run(() -> { ModifiableRootModel model = ModuleRootManager.getInstance(module).getModifiableModel(); String supportUrl = getUrl(testDataPath + "/../../src"); String genUrl = getUrl(testDataPath + "/../../gen"); if (add) { model.addContentEntry(supportUrl).addSourceFolder(supportUrl, false); model.addContentEntry(genUrl).addSourceFolder(genUrl, false); } else { for (ContentEntry entry : model.getContentEntries()) { if (supportUrl.equals(entry.getUrl()) || genUrl.equals(entry.getUrl())) { model.removeContentEntry(entry); } } } model.commit(); }); assertTrue("GrammarKit src problem", add == (null != facade.findPackage("org.intellij.grammar.psi"))); }
@Nullable public static SourceFolder getSourceFolder(@CheckForNull VirtualFile source, Module module) { if (source == null) { return null; } for (ContentEntry entry : ModuleRootManager.getInstance(module).getContentEntries()) { for (SourceFolder folder : entry.getSourceFolders()) { if (source.equals(folder.getFile())) { return folder; } } } return null; }
private static void excludeDirectory(@NotNull final ContentEntry contentEntry, @NotNull final File dir) { contentEntry.addExcludeFolder(VfsUtil.pathToUrl(dir.getAbsolutePath())); }
protected void configureAdditionalRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final String directoryName, @NotNull final ContentEntry contentEntry, @NotNull final File parentDirectory ) { Validate.notNull(moduleDescriptor); Validate.notNull(directoryName); Validate.notNull(contentEntry); Validate.notNull(parentDirectory); final File additionalModuleDirectory = new File(parentDirectory, directoryName); if (!additionalModuleDirectory.exists() || additionalModuleDirectory.isFile()) { return; } final File additionalSrcDirectory = new File(additionalModuleDirectory, SRC_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(additionalSrcDirectory.getAbsolutePath()), JavaSourceRootType.SOURCE ); final File additionalResourcesDirectory = new File(additionalModuleDirectory, RESOURCES_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(additionalResourcesDirectory.getAbsolutePath()), JavaResourceRootType.RESOURCE ); excludeDirectory(contentEntry, new File(additionalModuleDirectory, CLASSES_DIRECTORY)); }
List<VirtualFile> resourcePaths = findResourcePaths(contentEntry.getFile()); for (VirtualFile resourcePath : resourcePaths) { contentEntry.addSourceFolder(resourcePath, MONKEY_RESOURCE_ROOT_TYPE); if (contentEntry != null) { VirtualFile sourcePath = createSourcePath("source"); contentEntry.addSourceFolder(sourcePath, MONKEY_SOURCE_ROOT_TYPE); contentEntry.addSourceFolder(resourcePath, MONKEY_RESOURCE_ROOT_TYPE);
protected void configureBackOfficeRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry, @NotNull final List<File> dirsToIgnore ) { Validate.notNull(moduleDescriptor); Validate.notNull(contentEntry); final File backOfficeModuleDirectory = new File( moduleDescriptor.getRootDirectory(), BACK_OFFICE_MODULE_DIRECTORY ); final File hmcClassesDirectory = new File(backOfficeModuleDirectory, CLASSES_DIRECTORY); contentEntry.addExcludeFolder( VfsUtil.pathToUrl(hmcClassesDirectory.getAbsolutePath()) ); final File hmcResourcesDirectory = new File(backOfficeModuleDirectory, RESOURCES_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(hmcResourcesDirectory.getAbsolutePath()), JavaResourceRootType.RESOURCE ); }
private Collection<String> findTestFolderPrefixes() { Collection<String> testFolderPrefix = new ArrayList<>(); for (ContentEntry contentEntry : moduleRootManager.getContentEntries()) { final SourceFolder[] sourceFolders = contentEntry.getSourceFolders(); for (SourceFolder sourceFolder : sourceFolders) { final VirtualFile file = sourceFolder.getFile(); if (file != null && sourceFolder.isTestSource()) { testFolderPrefix.add(file.getPath()); } } } return testFolderPrefix; }
@Override protected void configureRegularWebRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry, @NotNull final List<File> dirsToIgnore ) { final File webModuleDirectory = new File(moduleDescriptor.getRootDirectory(), WEB_MODULE_DIRECTORY); final File webAddonSrcDirectory = new File(webModuleDirectory, ADDON_SRC_DIRECTORY); contentEntry.addExcludeFolder( VfsUtil.pathToUrl(webAddonSrcDirectory.getAbsolutePath()) ); final File webTestClassesDirectory = new File(webModuleDirectory, TEST_CLASSES_DIRECTORY); contentEntry.addExcludeFolder( VfsUtil.pathToUrl(webTestClassesDirectory.getAbsolutePath()) ); final File commonWebSrcDirectory = new File(webModuleDirectory, COMMON_WEB_SRC_DIRECTORY); contentEntry.addExcludeFolder( VfsUtil.pathToUrl(commonWebSrcDirectory.getAbsolutePath()) ); } }
protected void configureBackOfficeRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry, @NotNull final List<File> dirsToIgnore ) { Validate.notNull(moduleDescriptor); Validate.notNull(contentEntry); final File backOfficeModuleDirectory = new File( moduleDescriptor.getRootDirectory(), BACK_OFFICE_MODULE_DIRECTORY ); final File backOfficeSrcDirectory = new File(backOfficeModuleDirectory, SRC_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(backOfficeSrcDirectory.getAbsolutePath()), JavaSourceRootType.SOURCE ); if (moduleDescriptor instanceof CustomHybrisModuleDescriptor || !moduleDescriptor.getRootProjectDescriptor() .isExcludeTestSources()) { addTestSourceRoots(contentEntry, backOfficeModuleDirectory, dirsToIgnore); } else { excludeTestSourceRoots(contentEntry, backOfficeModuleDirectory); } final File hmcResourcesDirectory = new File(backOfficeModuleDirectory, RESOURCES_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(hmcResourcesDirectory.getAbsolutePath()), JavaResourceRootType.RESOURCE ); excludeDirectory(contentEntry, new File(backOfficeModuleDirectory, CLASSES_DIRECTORY)); }
private File checkModuleContentRoots(final Module module, final String fileName) { ModuleRootManager rootManager = ModuleRootManager.getInstance(module); if (rootManager.getContentEntries().length > 0) { for (final ContentEntry contentEntry : rootManager.getContentEntries()) { if (contentEntry.getFile() == null) { continue; } final File contentEntryPath = new File(contentEntry.getFile().getPath(), fileName); if (contentEntryPath.exists()) { return contentEntryPath; } } } return null; }
protected void configureWebModuleRoots( @NotNull final HybrisModuleDescriptor moduleDescriptor, @NotNull final ContentEntry contentEntry, @NotNull final File webModuleDirectory, @NotNull final List<File> dirsToIgnore ) { Validate.notNull(moduleDescriptor); final File webSrcDirectory = new File(webModuleDirectory, SRC_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(webSrcDirectory.getAbsolutePath()), JavaSourceRootType.SOURCE ); final File webGenSrcDirectory = new File(webModuleDirectory, GEN_SRC_DIRECTORY); contentEntry.addSourceFolder( VfsUtil.pathToUrl(webGenSrcDirectory.getAbsolutePath()), JavaSourceRootType.SOURCE, JpsJavaExtensionService.getInstance().createSourceRootProperties("", true) ); if (moduleDescriptor instanceof CustomHybrisModuleDescriptor || !moduleDescriptor.getRootProjectDescriptor() .isExcludeTestSources()) { addTestSourceRoots(contentEntry, webModuleDirectory, dirsToIgnore); } else { excludeTestSourceRoots(contentEntry, webModuleDirectory); } excludeSubDirectories(contentEntry, webModuleDirectory, Arrays.asList( ADDON_SRC_DIRECTORY, TEST_CLASSES_DIRECTORY, COMMON_WEB_SRC_DIRECTORY )); configureWebInf(contentEntry, moduleDescriptor, webModuleDirectory); }
.refreshAndFindFileByPath(FileUtil.toSystemIndependentName(first)); if (sourceRoot != null) { contentEntry.addSourceFolder(sourceRoot, false, sourcePath.second);
FileUtil.toSystemIndependentName(packageDir.getAbsolutePath())); if (sourceRoot != null) { contentEntry.addSourceFolder(sourceRoot, false); final Project project = rootModel.getProject(); MathematicaTemplateProperties props = MathematicaTemplateProperties.create();
= LocalFileSystem.getInstance().refreshAndFindFileByPath(FileUtil.toSystemIndependentName(path)); if (sourceRoot != null) { contentEntry.addSourceFolder(sourceRoot, false, sourcePath.second);