private static Map<String, Set<ClassFileInfo>> loadExtensionClassesFromJar() {
		ResourceFile appRoot = Application.getApplicationRootDirectory();
		ResourceFile extensionClassesFile = new ResourceFile(appRoot, "EXTENSION_POINT_CLASSES");
		try {
			List<String> classNames = FileUtilities.getLines(extensionClassesFile);
			Set<ClassFileInfo> extensionClasses = new HashSet<>();
			for (String className : classNames) {
				String epName = getExtensionPointSuffix(className);
				if (epName != null) {
					extensionClasses
							.add(new ClassFileInfo(appRoot.getAbsolutePath(), className, epName));
				}
			}
			return extensionClasses.stream()
					.collect(Collectors.groupingBy(ClassFileInfo::suffix, Collectors.toSet()));

		}
		catch (IOException e) {
			throw new AssertException(
				"Unexpected IOException reading extension class file " + extensionClassesFile, e);
		}
	}
Sorts the given {@link List} of {@link Class}es first by their defined priority, then by
their name.

@param list The {@link List} of {@link Class}es to sort. This {@link List} will be modified.
Ghidra/Framework/Generic/src/main/java/ghidra/util/classfinder/ClassSearcher.java