Skip to content
Snippets Groups Projects
Commit 6ac2a776 authored by felmer's avatar felmer
Browse files

SSDM-7238: adapt ApiClassesProvider to changes in reflections (part II)

parent d2d8070d
No related branches found
No related tags found
No related merge requests found
...@@ -61,15 +61,17 @@ public class ApiClassesProvider ...@@ -61,15 +61,17 @@ public class ApiClassesProvider
}; };
private static final Set<Class<?>> NON_SERIALIZABLE_CLASSES = private static final Set<Class<?>> NON_SERIALIZABLE_CLASSES =
new HashSet<>(Arrays.asList(FastDownloader.class, FastDownloadResult.class, FastDownloadUtils.class));; new HashSet<>(Arrays.asList(FastDownloader.class, FastDownloadResult.class, FastDownloadUtils.class));
public static Collection<Class<?>> getPublicClasses() public static Collection<Class<?>> getPublicClasses()
{ {
List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>(); List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>();
classLoadersList.add(ClasspathHelper.getContextClassLoader()); classLoadersList.add(ClasspathHelper.contextClassLoader());
classLoadersList.add(ClasspathHelper.getStaticClassLoader()); classLoadersList.add(ClasspathHelper.staticClassLoader());
SubTypesScanner subTypesScanner = new SubTypesScanner(); // There is some magic (or may be a bug in reflections 0.9.11: The original SubTypeScanner
// retrieves unwanted classes like java.util.Collection. But the anonymous subclass works.
SubTypesScanner subTypesScanner = new SubTypesScanner() {};
subTypesScanner.filterResultsBy(new FilterBuilder().include(".*")); subTypesScanner.filterResultsBy(new FilterBuilder().include(".*"));
FilterBuilder filterBuilder = new FilterBuilder(); FilterBuilder filterBuilder = new FilterBuilder();
...@@ -83,7 +85,7 @@ public class ApiClassesProvider ...@@ -83,7 +85,7 @@ public class ApiClassesProvider
.setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0]))) .setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0])))
.filterInputsBy(filterBuilder)); .filterInputsBy(filterBuilder));
Multimap<String, String> map = reflections.getStore().get(SubTypesScanner.class); Multimap<String, String> map = reflections.getStore().get(subTypesScanner.getClass().getSimpleName());
Collection<String> nonInnerClassesAndTestClasses = Collections2.filter(map.values(), new Predicate<String>() Collection<String> nonInnerClassesAndTestClasses = Collections2.filter(map.values(), new Predicate<String>()
{ {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment