244 for (Spi spi : spiList) {
247 Map<String, ProviderFactory> factories =
new HashMap<String, ProviderFactory>();
250 String
provider = Config.getProvider(spi.getName());
251 if (provider != null) {
252 this.provider.put(spi.getProviderClass(),
provider);
254 ProviderFactory factory = pm.load(spi, provider);
255 if (factory == null) {
256 throw new RuntimeException(
"Failed to find provider " + provider +
" for " + spi.getName());
259 Config.Scope scope = Config.scope(spi.getName(),
provider);
262 if (spi.isInternal() && !
isInternal(factory)) {
263 ServicesLogger.LOGGER.spiMayChange(factory.getId(), factory.getClass().getName(), spi.getName());
266 factories.put(factory.getId(), factory);
268 logger.debugv(
"Loaded SPI {0} (provider = {1})", spi.getName(),
provider);
270 for (ProviderFactory factory : pm.load(spi)) {
271 Config.Scope scope = Config.scope(spi.getName(), factory.getId());
272 if (scope.getBoolean(
"enabled",
true)) {
275 if (spi.isInternal() && !
isInternal(factory)) {
276 ServicesLogger.LOGGER.spiMayChange(factory.getId(), factory.getClass().getName(), spi.getName());
279 factories.put(factory.getId(), factory);
281 logger.debugv(
"SPI {0} provider {1} disabled", spi.getName(), factory.getId());
285 if (factories.size() == 1) {
286 provider = factories.values().iterator().next().getId();
287 this.provider.put(spi.getProviderClass(),
provider);
289 logger.debugv(
"Loaded SPI {0} (provider = {1})", spi.getName(),
provider);
291 logger.debugv(
"Loaded SPI {0} (providers = {1})", spi.getName(), factories.keySet());
Map< Class<? extends Provider >, String > provider
Definition: DefaultKeycloakSessionFactory.java:49
volatile Map< Class<? extends Provider >, Map< String, ProviderFactory > > factoriesMap
Definition: DefaultKeycloakSessionFactory.java:50
static final Logger logger
Definition: DefaultKeycloakSessionFactory.java:46
Set< Spi > spis
Definition: DefaultKeycloakSessionFactory.java:48
boolean isInternal(ProviderFactory<?> factory)
Definition: DefaultKeycloakSessionFactory.java:369