/** Returns all registered style handlers. */ public static List<StyleHandler> handlers() { return GeoServerExtensions.extensions(StyleHandler.class); } }
/** * Loads all extensions implementing or extending <code>extensionPoint</code>. * * <p>This method uses the "default" application context to perform the lookup. See {@link * #setApplicationContext(ApplicationContext)}. * * @param extensionPoint The class or interface of the extensions. * @return A collection of the extensions, or an empty collection. */ public static final <T> List<T> extensions(Class<T> extensionPoint) { return extensions(extensionPoint, context); }
private List<? extends CatalogFilter> getCatalogFilters() { if (filters == null) { filters = GeoServerExtensions.extensions(CatalogFilter.class); } return filters; }
public Iterable<CatalogValidator> getValidators() { return GeoServerExtensions.extensions(CatalogValidator.class); }
private List<XStreamPersisterInitializer> getInitializers() { if (initializers == null) { initializers = new ArrayList<XStreamPersisterInitializer>( GeoServerExtensions.extensions(XStreamPersisterInitializer.class)); } return initializers; }
@Override public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { initializers = new ArrayList<XStreamPersisterInitializer>( GeoServerExtensions.extensions( XStreamPersisterInitializer.class, applicationContext)); }
protected Set<HttpSessionListener> listeners() { if (listeners == null) { synchronized (this) { if (listeners == null) { listeners = new LinkedHashSet<HttpSessionListener>( GeoServerExtensions.extensions(HttpSessionListener.class)); } } } return listeners; } }
public static Collection loadKvpRequestReaders() { Collection kvpReaders = GeoServerExtensions.extensions(KvpRequestReader.class); if (!(new HashSet(kvpReaders).size() == kvpReaders.size())) { String msg = "Two identical kvp readers found"; throw new IllegalStateException(msg); } return kvpReaders; }
Collection loadServices() { Collection services = GeoServerExtensions.extensions(Service.class); if (!(new HashSet(services).size() == services.size())) { String msg = "Two identical service descriptors found"; throw new IllegalStateException(msg); } return services; }
public static Set<String> getNotAllowedPrefixes() { if (notAllowedPrefixes != null) return notAllowedPrefixes; synchronized (lock) { if (notAllowedPrefixes != null) return notAllowedPrefixes; notAllowedPrefixes = new HashSet<String>(); for (GeoServerPasswordEncoder enc : GeoServerExtensions.extensions(GeoServerPasswordEncoder.class)) { notAllowedPrefixes.add(enc.getPrefix() + GeoServerPasswordEncoder.PREFIX_DELIMTER); } return notAllowedPrefixes; } }
protected void reloadInitializers(GeoServer geoServer) throws Exception { // reload applicable initializer extensions List<GeoServerReinitializer> initializers = GeoServerExtensions.extensions(GeoServerReinitializer.class); for (GeoServerReinitializer initer : initializers) { try { initer.reinitialize(geoServer); } catch (Throwable t) { LOGGER.log(Level.SEVERE, "Failed to run initializer " + initer, t); } } }
/** * Starts and runs all registered {@link ThreadLocalsTransfer} objects and collects the * associated thread locals in the storage object */ public ThreadLocalsTransfer() { transfers = GeoServerExtensions.extensions(ThreadLocalTransfer.class); for (ThreadLocalTransfer transfer : transfers) { transfer.collect(storage); } }
protected void loadInitializers(GeoServer geoServer) throws Exception { // load initializer extensions List<GeoServerInitializer> initializers = GeoServerExtensions.extensions(GeoServerInitializer.class); for (GeoServerInitializer initer : initializers) { try { initer.initialize(geoServer); } catch (Throwable t) { LOGGER.log(Level.SEVERE, "Failed to run initializer " + initer, t); } } }
public List<GeoServerSecurityProvider> lookupSecurityProviders() { List<GeoServerSecurityProvider> list = new ArrayList<GeoServerSecurityProvider>(); for (GeoServerSecurityProvider provider : GeoServerExtensions.extensions(GeoServerSecurityProvider.class, appContext)) { if (!provider.isAvailable()) { continue; } list.add(provider); } return list; }
/** Returns a list of available services for a resource */ public List<String> getServicesForResource(ResourceInfo resource) { List<String> services = servicesList(); List<ServiceResourceVoter> voters = GeoServerExtensions.extensions(ServiceResourceVoter.class, context); return services.stream() .filter(s -> !isServiceHidden(resource, s, voters)) .collect(Collectors.toCollection(ArrayList::new)); }
/** Returns the list of all the supported output formats */ public List<String> getOutputFormats() { Set<String> formats = new HashSet<String>(); List<CoverageResponseDelegate> delegates = GeoServerExtensions.extensions(CoverageResponseDelegate.class, applicationContext); for (CoverageResponseDelegate delegate : delegates) { if (delegate.isAvailable()) { formats.addAll(delegate.getOutputFormats()); } } List<String> result = new ArrayList<String>(formats); Collections.sort(result); return result; }
public void destroy() throws Exception { for (GeoServerSecurityProvider securityProvider : GeoServerExtensions.extensions(GeoServerSecurityProvider.class)) { securityProvider.destroy(this); } userGroupServices.clear(); roleServices.clear(); userGroupServiceHelper.destroy(); roleServiceHelper.destroy(); rememberMeService = null; keyStoreProvider = null; listeners.clear(); appContext = null; }
/** Locates an encoder for a specific GetCoverage results output format */ public CoverageResponseDelegate encoderFor(String outputFormat) { // lookup the encoders dynamically (the list returned might be subject to dynamic extension // filters, so we don't cache it) List<CoverageResponseDelegate> delegates = GeoServerExtensions.extensions(CoverageResponseDelegate.class, applicationContext); for (CoverageResponseDelegate delegate : delegates) { if (delegate.isAvailable() && delegate.canProduce(outputFormat)) { return delegate; } } return null; }
@Test public void ModuleStatusTest() { GeoServerExtensions gse = new GeoServerExtensions(); List<ModuleStatus> statusBeans = gse.extensions(ModuleStatus.class); assertEquals("gs-main", statusBeans.get(0).getModule()); assertEquals("GeoServer Main", statusBeans.get(0).getName()); } }
@SuppressWarnings("unchecked") @Test public void helperMultipleSingleton() { TestClass o1 = new TestClass(); TestClass o2 = new TestClass(); GeoServerExtensionsHelper.singleton("o1", o1, TestClass.class); GeoServerExtensionsHelper.singleton("o2", o2, TestClass.class); assertThat( GeoServerExtensions.extensions(TestClass.class), containsInAnyOrder(sameInstance(o1), sameInstance(o2))); }