public List<Class<?>> loadClassesFromDefaultLocation() { return loadClasses(EXTENSION_DESCRIPTOR_PATH); }
public List<Class<?>> loadClasses(String descriptorPath) { Map<String, URL> discoveredClasses = new HashMap<>(); List<Class<?>> extClasses = new ArrayList<>(); for (URL url : locateDescriptors(descriptorPath)) { for (String className : readDescriptor(url)) { if (discoveredClasses.containsKey(className)) { throw new ExtensionException("Duplicated Extension declaration for [%s]\nSource 1: %s\nSource 2: %s\n" + "This is most likely caused by having two different version of a library on the classpath." ).withArgs(className, url, discoveredClasses.get(className)); } discoveredClasses.put(className, url); extClasses.add(loadExtensionClass(className)); } } return extClasses; }
private static RunContext createBottomContext() { File spockUserHome = SpockUserHomeUtil.getSpockUserHome(); DelegatingScript script = new ConfigurationScriptLoader(spockUserHome).loadAutoDetectedScript(); List<Class<?>> classes = new ExtensionClassesLoader().loadClassesFromDefaultLocation(); return new RunContext("default", spockUserHome, script, classes); } }