From 27ad9dcdd1ecc94770d7d09c79ab62fcfc890b1b Mon Sep 17 00:00:00 2001 From: Stan Silvert Date: Tue, 19 Jan 2016 08:39:53 -0500 Subject: [PATCH] KEYCLOAK-1280: i18n logging for org.keycloak.services --- .../services/DefaultKeycloakSession.java | 18 +++++++++- .../DefaultKeycloakSessionFactory.java | 36 +++++++++++++------ .../DefaultKeycloakTransactionManager.java | 22 ++++++++++-- .../org/keycloak/services/ServicesLogger.java | 8 +++++ 4 files changed, 70 insertions(+), 14 deletions(-) mode change 100755 => 100644 services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java mode change 100755 => 100644 services/src/main/java/org/keycloak/services/DefaultKeycloakSessionFactory.java diff --git a/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java b/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java old mode 100755 new mode 100644 index c8eb3baa04..779b779f90 --- a/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java +++ b/services/src/main/java/org/keycloak/services/DefaultKeycloakSession.java @@ -1,3 +1,19 @@ +/* + * Copyright 2016 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @author tags. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ package org.keycloak.services; import org.keycloak.models.*; @@ -94,7 +110,7 @@ public class DefaultKeycloakSession implements KeycloakSession { T provider = (T) providers.get(hash); if (provider == null) { ProviderFactory providerFactory = factory.getProviderFactory(clazz, id); - + if (providerFactory != null) { provider = providerFactory.create(this); providers.put(hash, provider); diff --git a/services/src/main/java/org/keycloak/services/DefaultKeycloakSessionFactory.java b/services/src/main/java/org/keycloak/services/DefaultKeycloakSessionFactory.java old mode 100755 new mode 100644 index 7a7974a6ad..1d7616f37a --- a/services/src/main/java/org/keycloak/services/DefaultKeycloakSessionFactory.java +++ b/services/src/main/java/org/keycloak/services/DefaultKeycloakSessionFactory.java @@ -1,6 +1,21 @@ +/* + * Copyright 2016 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @author tags. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ package org.keycloak.services; -import org.jboss.logging.Logger; import org.keycloak.Config; import org.keycloak.models.KeycloakSession; import org.keycloak.models.KeycloakSessionFactory; @@ -10,6 +25,7 @@ import org.keycloak.provider.ProviderEventListener; import org.keycloak.provider.ProviderFactory; import org.keycloak.provider.ProviderManager; import org.keycloak.provider.Spi; +import org.keycloak.services.ServicesLogger; import java.util.HashMap; import java.util.HashSet; @@ -22,7 +38,7 @@ import java.util.concurrent.CopyOnWriteArrayList; public class DefaultKeycloakSessionFactory implements KeycloakSessionFactory { - private static final Logger log = Logger.getLogger(DefaultKeycloakSessionFactory.class); + private static final ServicesLogger logger = ServicesLogger.ROOT_LOGGER; private Map, String> provider = new HashMap, String>(); private Map, Map> factoriesMap = new HashMap, Map>(); @@ -30,7 +46,7 @@ public class DefaultKeycloakSessionFactory implements KeycloakSessionFactory { // TODO: Likely should be changed to int and use Time.currentTime() to be compatible with all our "time" reps protected long serverStartupTimestamp; - + @Override public void register(ProviderEventListener listener) { listeners.add(listener); @@ -50,7 +66,7 @@ public class DefaultKeycloakSessionFactory implements KeycloakSessionFactory { public void init() { serverStartupTimestamp = System.currentTimeMillis(); - + ProviderManager pm = new ProviderManager(getClass().getClassLoader(), Config.scope().getArray("providers")); for (Spi spi : ServiceLoader.load(Spi.class, getClass().getClassLoader())) { @@ -70,12 +86,12 @@ public class DefaultKeycloakSessionFactory implements KeycloakSessionFactory { factory.init(scope); if (spi.isInternal() && !isInternal(factory)) { - log.warnv("{0} ({1}) is implementing the internal SPI {2}. This SPI is internal and may change without notice", factory.getId(), factory.getClass().getName(), spi.getName()); + logger.spiMayChange(factory.getId(), factory.getClass().getName(), spi.getName()); } factories.put(factory.getId(), factory); - log.debugv("Loaded SPI {0} (provider = {1})", spi.getName(), provider); + logger.debugv("Loaded SPI {0} (provider = {1})", spi.getName(), provider); } else { for (ProviderFactory factory : pm.load(spi)) { Config.Scope scope = Config.scope(spi.getName(), factory.getId()); @@ -83,12 +99,12 @@ public class DefaultKeycloakSessionFactory implements KeycloakSessionFactory { factory.init(scope); if (spi.isInternal() && !isInternal(factory)) { - log.warnv("{0} ({1}) is implementing the internal SPI {2}. This SPI is internal and may change without notice", factory.getId(), factory.getClass().getName(), spi.getName()); + logger.spiMayChange(factory.getId(), factory.getClass().getName(), spi.getName()); } factories.put(factory.getId(), factory); } else { - log.debugv("SPI {0} provider {1} disabled", spi.getName(), factory.getId()); + logger.debugv("SPI {0} provider {1} disabled", spi.getName(), factory.getId()); } } @@ -96,9 +112,9 @@ public class DefaultKeycloakSessionFactory implements KeycloakSessionFactory { provider = factories.values().iterator().next().getId(); this.provider.put(spi.getProviderClass(), provider); - log.debugv("Loaded SPI {0} (provider = {1})", spi.getName(), provider); + logger.debugv("Loaded SPI {0} (provider = {1})", spi.getName(), provider); } else { - log.debugv("Loaded SPI {0} (providers = {1})", spi.getName(), factories.keySet()); + logger.debugv("Loaded SPI {0} (providers = {1})", spi.getName(), factories.keySet()); } } } diff --git a/services/src/main/java/org/keycloak/services/DefaultKeycloakTransactionManager.java b/services/src/main/java/org/keycloak/services/DefaultKeycloakTransactionManager.java index c39bc8a947..6618a49477 100755 --- a/services/src/main/java/org/keycloak/services/DefaultKeycloakTransactionManager.java +++ b/services/src/main/java/org/keycloak/services/DefaultKeycloakTransactionManager.java @@ -1,8 +1,24 @@ +/* + * Copyright 2016 Red Hat Inc. and/or its affiliates and other contributors + * as indicated by the @author tags. All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); you may not + * use this file except in compliance with the License. You may obtain a copy of + * the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + */ package org.keycloak.services; -import org.jboss.logging.Logger; import org.keycloak.models.KeycloakTransaction; import org.keycloak.models.KeycloakTransactionManager; +import org.keycloak.services.ServicesLogger; import java.util.LinkedList; import java.util.List; @@ -12,7 +28,7 @@ import java.util.List; */ public class DefaultKeycloakTransactionManager implements KeycloakTransactionManager { - public static final Logger logger = Logger.getLogger(DefaultKeycloakTransactionManager.class); + public static final ServicesLogger logger = ServicesLogger.ROOT_LOGGER; private List transactions = new LinkedList(); private List afterCompletion = new LinkedList(); @@ -75,7 +91,7 @@ public class DefaultKeycloakTransactionManager implements KeycloakTransactionMan try { tx.rollback(); } catch (RuntimeException e) { - logger.error("Exception during rollback", e); + logger.exceptionDuringRollback(e); } } } diff --git a/services/src/main/java/org/keycloak/services/ServicesLogger.java b/services/src/main/java/org/keycloak/services/ServicesLogger.java index fd6c09ec01..86edfdcb9b 100644 --- a/services/src/main/java/org/keycloak/services/ServicesLogger.java +++ b/services/src/main/java/org/keycloak/services/ServicesLogger.java @@ -221,4 +221,12 @@ public interface ServicesLogger extends BasicLogger { @LogMessage(level = WARN) @Message(id=46, value="Multiple values found '%s' for protocol mapper '%s' but expected just single value") void multipleValuesForMapper(String attrValue, String mapper); + + @LogMessage(level = WARN) + @Message(id=47, value="%s (%s) is implementing the internal SPI %s. This SPI is internal and may change without notice") + void spiMayChange(String factoryId, String factoryClass, String spiName); + + @LogMessage(level = ERROR) + @Message(id=48, value="Exception during rollback") + void exceptionDuringRollback(@Cause RuntimeException e); }