diff --git a/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderMapperSpi.java b/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderMapperSpi.java index e660700a1a..44fb65d5ed 100755 --- a/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderMapperSpi.java +++ b/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderMapperSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class IdentityProviderMapperSpi implements Spi { + @Override + public boolean isPrivate() { + return false; + } + @Override public String getName() { return "identity-provider-mapper"; diff --git a/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderSpi.java b/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderSpi.java index de9872aea8..b507e551c2 100644 --- a/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderSpi.java +++ b/broker/core/src/main/java/org/keycloak/broker/provider/IdentityProviderSpi.java @@ -28,6 +28,11 @@ public class IdentityProviderSpi implements Spi { public static final String IDENTITY_PROVIDER_SPI_NAME = "identity_provider"; + @Override + public boolean isPrivate() { + return false; + } + @Override public String getName() { return IDENTITY_PROVIDER_SPI_NAME; diff --git a/connections/file/src/main/java/org/keycloak/connections/file/FileConnectionSpi.java b/connections/file/src/main/java/org/keycloak/connections/file/FileConnectionSpi.java index 4558be3059..ec64192281 100644 --- a/connections/file/src/main/java/org/keycloak/connections/file/FileConnectionSpi.java +++ b/connections/file/src/main/java/org/keycloak/connections/file/FileConnectionSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class FileConnectionSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsFile"; diff --git a/connections/http-client/src/main/java/org/keycloak/connections/httpclient/HttpClientSpi.java b/connections/http-client/src/main/java/org/keycloak/connections/httpclient/HttpClientSpi.java index d9f42287c2..510b1648bc 100755 --- a/connections/http-client/src/main/java/org/keycloak/connections/httpclient/HttpClientSpi.java +++ b/connections/http-client/src/main/java/org/keycloak/connections/httpclient/HttpClientSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class HttpClientSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsHttpClient"; diff --git a/connections/infinispan/src/main/java/org/keycloak/connections/infinispan/InfinispanConnectionSpi.java b/connections/infinispan/src/main/java/org/keycloak/connections/infinispan/InfinispanConnectionSpi.java index 71f915d59c..f76c070673 100644 --- a/connections/infinispan/src/main/java/org/keycloak/connections/infinispan/InfinispanConnectionSpi.java +++ b/connections/infinispan/src/main/java/org/keycloak/connections/infinispan/InfinispanConnectionSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class InfinispanConnectionSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsInfinispan"; diff --git a/connections/jpa/src/main/java/org/keycloak/connections/jpa/JpaConnectionSpi.java b/connections/jpa/src/main/java/org/keycloak/connections/jpa/JpaConnectionSpi.java index 83859abd86..d565357534 100644 --- a/connections/jpa/src/main/java/org/keycloak/connections/jpa/JpaConnectionSpi.java +++ b/connections/jpa/src/main/java/org/keycloak/connections/jpa/JpaConnectionSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class JpaConnectionSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsJpa"; diff --git a/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterSpi.java b/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterSpi.java index e95242aac9..c9bd8ee380 100644 --- a/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterSpi.java +++ b/connections/jpa/src/main/java/org/keycloak/connections/jpa/updater/JpaUpdaterSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class JpaUpdaterSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsJpaUpdater"; diff --git a/connections/mongo/src/main/java/org/keycloak/connections/mongo/MongoConnectionSpi.java b/connections/mongo/src/main/java/org/keycloak/connections/mongo/MongoConnectionSpi.java index 031076d629..f391dfd651 100644 --- a/connections/mongo/src/main/java/org/keycloak/connections/mongo/MongoConnectionSpi.java +++ b/connections/mongo/src/main/java/org/keycloak/connections/mongo/MongoConnectionSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class MongoConnectionSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsMongo"; diff --git a/connections/mongo/src/main/java/org/keycloak/connections/mongo/updater/MongoUpdaterSpi.java b/connections/mongo/src/main/java/org/keycloak/connections/mongo/updater/MongoUpdaterSpi.java index da89b4d8f8..830aaa339c 100644 --- a/connections/mongo/src/main/java/org/keycloak/connections/mongo/updater/MongoUpdaterSpi.java +++ b/connections/mongo/src/main/java/org/keycloak/connections/mongo/updater/MongoUpdaterSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class MongoUpdaterSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "connectionsMongoUpdater"; diff --git a/events/api/src/main/java/org/keycloak/events/EventListenerSpi.java b/events/api/src/main/java/org/keycloak/events/EventListenerSpi.java index 70cdea4385..a16ad46bde 100644 --- a/events/api/src/main/java/org/keycloak/events/EventListenerSpi.java +++ b/events/api/src/main/java/org/keycloak/events/EventListenerSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class EventListenerSpi implements Spi { + @Override + public boolean isPrivate() { + return false; + } + @Override public String getName() { return "eventsListener"; diff --git a/events/api/src/main/java/org/keycloak/events/EventStoreSpi.java b/events/api/src/main/java/org/keycloak/events/EventStoreSpi.java index 573fc86124..af5f59f018 100644 --- a/events/api/src/main/java/org/keycloak/events/EventStoreSpi.java +++ b/events/api/src/main/java/org/keycloak/events/EventStoreSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class EventStoreSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "eventsStore"; diff --git a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ExportSpi.java b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ExportSpi.java index 6ec29606d9..208cc6aa61 100644 --- a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ExportSpi.java +++ b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ExportSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class ExportSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "export"; diff --git a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ImportSpi.java b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ImportSpi.java index b562f3fcbe..90cb6ac79e 100644 --- a/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ImportSpi.java +++ b/export-import/export-import-api/src/main/java/org/keycloak/exportimport/ImportSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class ImportSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "import"; diff --git a/forms/account-api/src/main/java/org/keycloak/account/AccountSpi.java b/forms/account-api/src/main/java/org/keycloak/account/AccountSpi.java index e956b14e61..2c9843ebc1 100644 --- a/forms/account-api/src/main/java/org/keycloak/account/AccountSpi.java +++ b/forms/account-api/src/main/java/org/keycloak/account/AccountSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class AccountSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "account"; diff --git a/forms/common-freemarker/src/main/java/org/keycloak/freemarker/ThemeSpi.java b/forms/common-freemarker/src/main/java/org/keycloak/freemarker/ThemeSpi.java index c3d738bb56..94db863159 100644 --- a/forms/common-freemarker/src/main/java/org/keycloak/freemarker/ThemeSpi.java +++ b/forms/common-freemarker/src/main/java/org/keycloak/freemarker/ThemeSpi.java @@ -8,6 +8,12 @@ import org.keycloak.provider.Spi; * @author Stian Thorgersen */ public class ThemeSpi implements Spi { + + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "theme"; diff --git a/forms/email-api/src/main/java/org/keycloak/email/EmailSpi.java b/forms/email-api/src/main/java/org/keycloak/email/EmailSpi.java index cb2877bb6b..cde73cec0f 100644 --- a/forms/email-api/src/main/java/org/keycloak/email/EmailSpi.java +++ b/forms/email-api/src/main/java/org/keycloak/email/EmailSpi.java @@ -8,6 +8,12 @@ import org.keycloak.provider.Spi; * @author Stian Thorgersen */ public class EmailSpi implements Spi { + + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "email"; diff --git a/forms/login-api/src/main/java/org/keycloak/login/LoginFormsSpi.java b/forms/login-api/src/main/java/org/keycloak/login/LoginFormsSpi.java index 74f5b4a3e8..f99292aeb1 100644 --- a/forms/login-api/src/main/java/org/keycloak/login/LoginFormsSpi.java +++ b/forms/login-api/src/main/java/org/keycloak/login/LoginFormsSpi.java @@ -8,6 +8,12 @@ import org.keycloak.provider.Spi; * @author Stian Thorgersen */ public class LoginFormsSpi implements Spi { + + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "login"; diff --git a/model/api/src/main/java/org/keycloak/migration/MigrationSpi.java b/model/api/src/main/java/org/keycloak/migration/MigrationSpi.java index f6b768c61d..e599146a89 100644 --- a/model/api/src/main/java/org/keycloak/migration/MigrationSpi.java +++ b/model/api/src/main/java/org/keycloak/migration/MigrationSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class MigrationSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "migration"; diff --git a/model/api/src/main/java/org/keycloak/models/RealmSpi.java b/model/api/src/main/java/org/keycloak/models/RealmSpi.java index 1c1429c229..f531cd918f 100755 --- a/model/api/src/main/java/org/keycloak/models/RealmSpi.java +++ b/model/api/src/main/java/org/keycloak/models/RealmSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class RealmSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "realm"; diff --git a/model/api/src/main/java/org/keycloak/models/UserFederationSpi.java b/model/api/src/main/java/org/keycloak/models/UserFederationSpi.java index 6a22337f3e..c17c02a393 100755 --- a/model/api/src/main/java/org/keycloak/models/UserFederationSpi.java +++ b/model/api/src/main/java/org/keycloak/models/UserFederationSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class UserFederationSpi implements Spi { + @Override + public boolean isPrivate() { + return false; + } + @Override public String getName() { return "userFederation"; diff --git a/model/api/src/main/java/org/keycloak/models/UserSessionSpi.java b/model/api/src/main/java/org/keycloak/models/UserSessionSpi.java index e470db542c..8755660fad 100644 --- a/model/api/src/main/java/org/keycloak/models/UserSessionSpi.java +++ b/model/api/src/main/java/org/keycloak/models/UserSessionSpi.java @@ -11,6 +11,11 @@ public class UserSessionSpi implements Spi { public static final String NAME = "userSessions"; + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return NAME; diff --git a/model/api/src/main/java/org/keycloak/models/UserSpi.java b/model/api/src/main/java/org/keycloak/models/UserSpi.java index e68299c650..1d6cd74545 100755 --- a/model/api/src/main/java/org/keycloak/models/UserSpi.java +++ b/model/api/src/main/java/org/keycloak/models/UserSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class UserSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "user"; diff --git a/model/api/src/main/java/org/keycloak/provider/Spi.java b/model/api/src/main/java/org/keycloak/provider/Spi.java index 03b9afcc24..be68251697 100644 --- a/model/api/src/main/java/org/keycloak/provider/Spi.java +++ b/model/api/src/main/java/org/keycloak/provider/Spi.java @@ -5,6 +5,7 @@ package org.keycloak.provider; */ public interface Spi { + public boolean isPrivate(); public String getName(); public Class getProviderClass(); public Class getProviderFactoryClass(); diff --git a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheRealmProviderSpi.java b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheRealmProviderSpi.java index f6bbfd5742..300b8f0d1b 100755 --- a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheRealmProviderSpi.java +++ b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheRealmProviderSpi.java @@ -10,6 +10,11 @@ import org.keycloak.provider.Spi; */ public class CacheRealmProviderSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "realmCache"; diff --git a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheUserProviderSpi.java b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheUserProviderSpi.java index 6c0fae5950..9e0affa8e6 100755 --- a/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheUserProviderSpi.java +++ b/model/invalidation-cache/model-adapters/src/main/java/org/keycloak/models/cache/CacheUserProviderSpi.java @@ -10,6 +10,11 @@ import org.keycloak.provider.Spi; */ public class CacheUserProviderSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "userCache"; diff --git a/services/src/main/java/org/keycloak/exportimport/ClientImportSpi.java b/services/src/main/java/org/keycloak/exportimport/ClientImportSpi.java index 6fe071e536..e59a45af74 100755 --- a/services/src/main/java/org/keycloak/exportimport/ClientImportSpi.java +++ b/services/src/main/java/org/keycloak/exportimport/ClientImportSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class ClientImportSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "client-import"; diff --git a/services/src/main/java/org/keycloak/protocol/LoginProtocolSpi.java b/services/src/main/java/org/keycloak/protocol/LoginProtocolSpi.java index ef73b34d35..6ac5496f60 100755 --- a/services/src/main/java/org/keycloak/protocol/LoginProtocolSpi.java +++ b/services/src/main/java/org/keycloak/protocol/LoginProtocolSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class LoginProtocolSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "login-protocol"; diff --git a/services/src/main/java/org/keycloak/protocol/ProtocolMapperSpi.java b/services/src/main/java/org/keycloak/protocol/ProtocolMapperSpi.java index 421319e3ca..1b98e07dc8 100755 --- a/services/src/main/java/org/keycloak/protocol/ProtocolMapperSpi.java +++ b/services/src/main/java/org/keycloak/protocol/ProtocolMapperSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class ProtocolMapperSpi implements Spi { + @Override + public boolean isPrivate() { + return false; + } + @Override public String getName() { return "protocol-mapper"; diff --git a/services/src/main/java/org/keycloak/wellknown/WellKnownSpi.java b/services/src/main/java/org/keycloak/wellknown/WellKnownSpi.java index 7cb962d7f9..7734f48d14 100755 --- a/services/src/main/java/org/keycloak/wellknown/WellKnownSpi.java +++ b/services/src/main/java/org/keycloak/wellknown/WellKnownSpi.java @@ -9,6 +9,11 @@ import org.keycloak.provider.Spi; */ public class WellKnownSpi implements Spi { + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "well-known"; diff --git a/social/core/src/main/java/org/keycloak/social/SocialProviderSpi.java b/social/core/src/main/java/org/keycloak/social/SocialProviderSpi.java index 949fea7432..fd500a8458 100644 --- a/social/core/src/main/java/org/keycloak/social/SocialProviderSpi.java +++ b/social/core/src/main/java/org/keycloak/social/SocialProviderSpi.java @@ -28,6 +28,11 @@ public class SocialProviderSpi implements Spi { public static final String SOCIAL_SPI_NAME = "social"; + @Override + public boolean isPrivate() { + return false; + } + @Override public String getName() { return SOCIAL_SPI_NAME; diff --git a/testsuite/integration/src/test/java/org/keycloak/testsuite/utils/ListSpi.java b/testsuite/integration/src/test/java/org/keycloak/testsuite/utils/ListSpi.java new file mode 100644 index 0000000000..82695bc974 --- /dev/null +++ b/testsuite/integration/src/test/java/org/keycloak/testsuite/utils/ListSpi.java @@ -0,0 +1,34 @@ +package org.keycloak.testsuite.utils; + +import org.keycloak.provider.Spi; + +import java.util.Collections; +import java.util.LinkedList; +import java.util.List; +import java.util.ServiceLoader; + +/** + * @author Stian Thorgersen + */ +public class ListSpi { + + public static void main(String[] args) { + List l = new LinkedList<>(); + for (Spi s : ServiceLoader.load(Spi.class)) { + l.add(fixedLength(s.getName()) + s.isPrivate()); + } + Collections.sort(l); + System.out.println(fixedLength("SPI") + "Private"); + System.out.println("-------------------------------------"); + for (String s : l) { + System.out.println(s); + } + } + + public static String fixedLength(String s) { + while (s.length() < 30) { + s = s + " "; + } + return s; + } +} diff --git a/timer/api/src/main/java/org/keycloak/timer/TimerSpi.java b/timer/api/src/main/java/org/keycloak/timer/TimerSpi.java index d0e57f93f0..ac92339573 100644 --- a/timer/api/src/main/java/org/keycloak/timer/TimerSpi.java +++ b/timer/api/src/main/java/org/keycloak/timer/TimerSpi.java @@ -8,6 +8,12 @@ import org.keycloak.provider.Spi; * @author Stian Thorgersen */ public class TimerSpi implements Spi { + + @Override + public boolean isPrivate() { + return true; + } + @Override public String getName() { return "timer";