private static Iterator<IndexQueryStrategySPI> getInxexQueryStrategyList() { return new SPIServiceRegistry(GeoWavePluginConfig.class).load(IndexQueryStrategySPI.class); }
public <T> Iterator<T> load(final Class<T> service) { final Set<ClassLoader> checkset = new HashSet<ClassLoader>(); final Set<ClassLoader> clSet = getClassLoaders(); final Iterator<ClassLoader> loaderIt = clSet.iterator(); return new Iterator<T>() { Iterator<T> spiIT = null; @Override public boolean hasNext() { while ((spiIT == null || !spiIT.hasNext()) && (loaderIt.hasNext())) { final ClassLoader l = loaderIt.next(); if (checkset.contains(l)) continue; checkset.add(l); spiIT = (Iterator<T>) ServiceRegistry.lookupProviders(service, l); } return spiIT != null && spiIT.hasNext(); } @Override public T next() { return (T) spiIT.next(); } @Override public void remove() {} }; }
public static void initClassLoader() throws MalformedURLException { synchronized (MUTEX) { ClassLoader myCl = URLClassloaderUtils.class.getClassLoader(); if (initializedClassLoaders.contains(myCl)) { return; } final ClassLoader classLoader = ClasspathUtils.transformClassLoader(myCl); if (classLoader != null) { SPIServiceRegistry.registerClassLoader(classLoader); } initializedClassLoaders.add(myCl); } }
private static Iterator<AuthorizationFactorySPI> getAuthorizationFactoryList() { return new SPIServiceRegistry(GeoWaveRasterConfig.class).load(AuthorizationFactorySPI.class); }
private static Iterator<AuthorizationFactorySPI> getAuthorizationFactoryList() { return new SPIServiceRegistry(GeoWavePluginConfig.class).load(AuthorizationFactorySPI.class); }
private static Iterator<LockingManagementFactory> getLockManagementFactoryList() { return new SPIServiceRegistry(GeoWavePluginConfig.class).load(LockingManagementFactory.class); }
@SuppressWarnings({"rawtypes", "unchecked"}) public static final <T> ColumnVisibilityManagementSpi<T> loadVisibilityManagement() { Iterator<ColumnVisibilityManagementSpi> managers = new SPIServiceRegistry(VisibilityManagementHelper.class).load( ColumnVisibilityManagementSpi.class); if (!managers.hasNext()) return new JsonDefinitionColumnVisibilityManagement<T>(); return (ColumnVisibilityManagementSpi<T>) managers.next(); } }
@SuppressWarnings("rawtypes") private static void initPluginProviderRegistry() { pluginProviderRegistry = new HashMap<String, IngestFormatPluginProviderSpi<?, ?>>(); final Iterator<IngestFormatPluginProviderSpi> pluginProviders = new SPIServiceRegistry(IngestFormatPluginRegistry.class).load( IngestFormatPluginProviderSpi.class); while (pluginProviders.hasNext()) { final IngestFormatPluginProviderSpi pluginProvider = pluginProviders.next(); pluginProviderRegistry.put( ConfigUtils.cleanOptionName(pluginProvider.getIngestFormatName()), pluginProvider); } }
public static synchronized ClassLoader transformClassLoader(final ClassLoader classLoader) { if (transformerList == null) { final Iterator<ClassLoaderTransformerSpi> transformers = new SPIServiceRegistry(ClassLoaderTransformerSpi.class).load( ClassLoaderTransformerSpi.class); transformerList = new ArrayList<>(); while (transformers.hasNext()) { transformerList.add(transformers.next()); } } for (final ClassLoaderTransformerSpi t : transformerList) { final ClassLoader cl = t.transform(classLoader); if (cl != null) { return cl; } } return null; } }
public static synchronized PersistableFactory getInstance() { if (singletonInstance == null) { final PersistableFactory internalFactory = new PersistableFactory(); final Iterator<PersistableRegistrySpi> persistableRegistries = new SPIServiceRegistry(PersistableFactory.class).load(PersistableRegistrySpi.class); while (persistableRegistries.hasNext()) { final PersistableRegistrySpi persistableRegistry = persistableRegistries.next(); if (persistableRegistry != null) { internalFactory.addRegistry(persistableRegistry); } } singletonInstance = internalFactory; } return singletonInstance; }
private static <T extends GenericFactory> Map<String, T> getRegisteredFactories( final Class<T> cls, Map<String, T> registeredFactories) { if (registeredFactories == null) { registeredFactories = new HashMap<>(); final Iterator<T> storeFactories = new SPIServiceRegistry(GeoWaveStoreFinder.class).load(cls); while (storeFactories.hasNext()) { final T storeFactory = storeFactories.next(); if (storeFactory != null) { final String name = storeFactory.getType(); registeredFactories.put(ConfigUtils.cleanOptionName(name), storeFactory); } } } return registeredFactories; } }
fieldWriterRegistry = new HashMap<Class<?>, FieldWriter<?, ?>>(); final Iterator<FieldSerializationProviderSpi> serializationProviders = new SPIServiceRegistry(FieldSerializationProviderSpi.class).load( FieldSerializationProviderSpi.class); while (serializationProviders.hasNext()) {
private static synchronized void initDimensionalityTypeRegistry() { registeredDimensionalityTypes = new HashMap<String, DimensionalityTypeProviderSpi>(); final Iterator<DimensionalityTypeProviderSpi> dimensionalityTypesProviders = new SPIServiceRegistry(DimensionalityTypeRegistry.class).load( DimensionalityTypeProviderSpi.class); int currentDefaultPriority = Integer.MIN_VALUE; while (dimensionalityTypesProviders.hasNext()) { final DimensionalityTypeProviderSpi dimensionalityTypeProvider = dimensionalityTypesProviders.next(); if (registeredDimensionalityTypes.containsKey( dimensionalityTypeProvider.getDimensionalityTypeName())) { LOGGER.warn( "Dimensionality type '" + dimensionalityTypeProvider.getDimensionalityTypeName() + "' already registered. Unable to register type provided by " + dimensionalityTypeProvider.getClass().getName()); } else { registeredDimensionalityTypes.put( dimensionalityTypeProvider.getDimensionalityTypeName(), dimensionalityTypeProvider); if (dimensionalityTypeProvider.getPriority() > currentDefaultPriority) { currentDefaultPriority = dimensionalityTypeProvider.getPriority(); defaultDimensionalityType = dimensionalityTypeProvider.getDimensionalityTypeName(); } } } }