@Override
	public boolean isEclipseFeatureInstalled(FilenameFilter filter) throws FileNotFoundException {
		File eclipseInstallDir = getEclipseInstallDir();

		// Build up a list of directories to search.  It will consist of the main features 
		// directory, the top-level dropins directory (plugins can live here too), and any 
		// features directories found in the dropins directories.
		List<File> featuresDirs = new ArrayList<>();
		File mainFeaturesDir = new File(eclipseInstallDir, "features");
		if (mainFeaturesDir.isDirectory()) {
			featuresDirs.add(mainFeaturesDir);
		}
		File dropinsDir = getEclipseDropinsDir();
		if (dropinsDir.isDirectory()) {
			featuresDirs.add(dropinsDir);
			for (File dir : dropinsDir.listFiles(File::isDirectory)) {
				for (File subdir : dir.listFiles(File::isDirectory)) {
					if (subdir.getName().equals("features")) {
						featuresDirs.add(subdir);
						break;
					}
				}
			}
		}

		// Search the discovered features directories
		for (File featuresDir : featuresDirs) {
			File[] matches = featuresDir.listFiles(filter);
			if (matches != null && matches.length > 0) {
				return true;
			}
		}

		return false;
	}
Plugin responsible for providing Eclipse-related services to other Ghidra plugins.
Ghidra/Features/Base/src/main/java/ghidra/app/plugin/core/eclipse/EclipseIntegrationPlugin.java