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 6cb819db509a1e35972b2b531725c33a4a7002c7..2c929e9ecafd6f60152e5d8f501fbb0667f0bf30 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>() {