From 6ac2a77610c0bd48fc49b7debb432718c3629d83 Mon Sep 17 00:00:00 2001 From: felmer <franz-josef.elmer@id.ethz.ch> Date: Wed, 20 Mar 2019 08:32:47 +0100 Subject: [PATCH] SSDM-7238: adapt ApiClassesProvider to changes in reflections (part II) --- .../generic/sharedapi/v3/ApiClassesProvider.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/openbis_api/sourceTest/java/ch/ethz/sis/openbis/generic/sharedapi/v3/ApiClassesProvider.java b/openbis_api/sourceTest/java/ch/ethz/sis/openbis/generic/sharedapi/v3/ApiClassesProvider.java index 6cb819db509..2c929e9ecaf 100644 --- a/openbis_api/sourceTest/java/ch/ethz/sis/openbis/generic/sharedapi/v3/ApiClassesProvider.java +++ b/openbis_api/sourceTest/java/ch/ethz/sis/openbis/generic/sharedapi/v3/ApiClassesProvider.java @@ -61,15 +61,17 @@ public class ApiClassesProvider }; 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() { List<ClassLoader> classLoadersList = new LinkedList<ClassLoader>(); - classLoadersList.add(ClasspathHelper.getContextClassLoader()); - classLoadersList.add(ClasspathHelper.getStaticClassLoader()); + classLoadersList.add(ClasspathHelper.contextClassLoader()); + 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(".*")); FilterBuilder filterBuilder = new FilterBuilder(); @@ -83,7 +85,7 @@ public class ApiClassesProvider .setUrls(ClasspathHelper.forClassLoader(classLoadersList.toArray(new ClassLoader[0]))) .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>() { -- GitLab