diff --git a/hibernate-validator/pom.xml b/hibernate-validator/pom.xml index ebed4c63e8..ff64575e0a 100644 --- a/hibernate-validator/pom.xml +++ b/hibernate-validator/pom.xml @@ -47,10 +47,6 @@ javax.validation validation-api - - org.slf4j - slf4j-api - org.jboss.logging jboss-logging @@ -114,6 +110,11 @@ h2 test + + org.slf4j + slf4j-api + test + org.slf4j slf4j-log4j12 diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConfigurationImpl.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConfigurationImpl.java index 5c2ea7e688..b0659621aa 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConfigurationImpl.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConfigurationImpl.java @@ -31,19 +31,18 @@ import javax.validation.spi.ConfigurationState; import javax.validation.spi.ValidationProvider; -import org.slf4j.Logger; - import org.hibernate.validator.HibernateValidatorConfiguration; import org.hibernate.validator.cfg.ConstraintMapping; import org.hibernate.validator.internal.engine.resolver.DefaultTraversableResolver; -import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator; -import org.hibernate.validator.resourceloading.PlatformResourceBundleLocator; -import org.hibernate.validator.resourceloading.ResourceBundleLocator; import org.hibernate.validator.internal.util.CollectionHelper; -import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.Version; +import org.hibernate.validator.internal.util.logging.Log; +import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.xml.ValidationBootstrapParameters; import org.hibernate.validator.internal.xml.ValidationXmlParser; +import org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator; +import org.hibernate.validator.resourceloading.PlatformResourceBundleLocator; +import org.hibernate.validator.resourceloading.ResourceBundleLocator; /** * Hibernate specific {@code Configuration} implementation. @@ -59,7 +58,7 @@ public class ConfigurationImpl implements HibernateValidatorConfiguration, Confi Version.touch(); } - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private final ResourceBundleLocator defaultResourceBundleLocator = new PlatformResourceBundleLocator( ResourceBundleMessageInterpolator.USER_VALIDATION_MESSAGES @@ -196,7 +195,7 @@ public final ValidatorFactory buildValidatorFactory() { in.close(); } catch ( IOException io ) { - log.warn( "Unable to close input stream." ); + log.unableToCloseInputStream(); } } } @@ -263,7 +262,8 @@ private boolean isSpecificProvider() { */ private void parseValidationXml() { if ( ignoreXmlConfiguration ) { - log.info( "Ignoring XML configuration." ); + log.ignoringXmlConfiguration(); + // make sure we use the defaults in case they haven't been provided yet if ( validationBootstrapParameters.getMessageInterpolator() == null ) { validationBootstrapParameters.setMessageInterpolator( defaultMessageInterpolator ); diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConstraintTree.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConstraintTree.java index 3225def0e2..1ffaf189f8 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConstraintTree.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/ConstraintTree.java @@ -32,13 +32,12 @@ import javax.validation.ValidationException; import javax.validation.metadata.ConstraintDescriptor; -import org.slf4j.Logger; - import org.hibernate.validator.constraints.CompositionType; import org.hibernate.validator.internal.metadata.descriptor.ConstraintDescriptorImpl; import org.hibernate.validator.internal.util.CollectionHelper; import org.hibernate.validator.internal.util.LRUMap; import org.hibernate.validator.internal.util.TypeHelper; +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; import static org.hibernate.validator.constraints.CompositionType.ALL_FALSE; @@ -52,10 +51,11 @@ * @author Hardy Ferentschik * @author Federico Mancini * @author Dag Hovland + * @author Kevin Pollet (C) 2012 SERLI */ public class ConstraintTree { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private static final int MAX_TYPE_CACHE_SIZE = 20; private final ConstraintTree parent; @@ -138,8 +138,8 @@ private > void validateConstraints(Val && ( !executionContext.isFailFastModeEnabled() || constraintViolations.isEmpty() ) ) { if ( log.isTraceEnabled() ) { - log.trace( - "Validating value {} against constraint defined by {}", + log.tracef( + "Validating value %s against constraint defined by %s.", valueContext.getCurrentValidatedValue(), descriptor ); @@ -330,10 +330,8 @@ private ConstraintValidator getInitializedValidator(Type validatedValu constraintValidatorCache.put( key, constraintValidator ); } else { - if ( log.isTraceEnabled() ) { - log.trace( "Constraint validator {} found in cache" ); - } constraintValidator = (ConstraintValidator) constraintValidatorCache.get( key ); + log.tracef( "Constraint validator %s found in cache.", constraintValidator ); } return constraintValidator; } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/DefaultTraversableResolver.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/DefaultTraversableResolver.java index 0aae9fe079..03faac84df 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/DefaultTraversableResolver.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/DefaultTraversableResolver.java @@ -22,10 +22,9 @@ import javax.validation.TraversableResolver; import javax.validation.ValidationException; -import org.slf4j.Logger; - -import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.ReflectionHelper; +import org.hibernate.validator.internal.util.logging.Log; +import org.hibernate.validator.internal.util.logging.LoggerFactory; /** * A JPA 2 aware {@code TraversableResolver}. @@ -35,7 +34,7 @@ */ public class DefaultTraversableResolver implements TraversableResolver { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); /** * Class to load to check whether JPA is on the classpath. @@ -72,8 +71,8 @@ private void detectJPA() { persistenceClass = ReflectionHelper.loadClass( PERSISTENCE_CLASS_NAME, this.getClass() ); } catch ( ValidationException e ) { - log.debug( - "Cannot find {} on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.", + log.debugf( + "Cannot find %s on classpath. Assuming non JPA 2 environment. All properties will per default be traversable.", PERSISTENCE_CLASS_NAME ); return; @@ -82,8 +81,8 @@ private void detectJPA() { // check whether Persistence contains getPersistenceUtil Method persistenceUtilGetter = ReflectionHelper.getMethod( persistenceClass, PERSISTENCE_UTIL_METHOD ); if ( persistenceUtilGetter == null ) { - log.debug( - "Found {} on classpath, but no method '{}'. Assuming JPA 1 environment. All properties will per default be traversable.", + log.debugf( + "Found %s on classpath, but no method '%s'. Assuming JPA 1 environment. All properties will per default be traversable.", PERSISTENCE_CLASS_NAME, PERSISTENCE_UTIL_METHOD ); @@ -97,15 +96,15 @@ private void detectJPA() { ReflectionHelper.getValue(persistenceUtilGetter, persistence ); } catch ( Exception e ) { - log.debug( - "Unable to invoke {}.{}. Inconsistent JPA environment. All properties will per default be traversable.", + log.debugf( + "Unable to invoke %s.%s. Inconsistent JPA environment. All properties will per default be traversable.", PERSISTENCE_CLASS_NAME, PERSISTENCE_UTIL_METHOD ); } - log.debug( - "Found {} on classpath containing '{}'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver", + log.debugf( + "Found %s on classpath containing '%s'. Assuming JPA 2 environment. Trying to instantiate JPA aware TraversableResolver", PERSISTENCE_CLASS_NAME, PERSISTENCE_UTIL_METHOD ); @@ -115,13 +114,13 @@ private void detectJPA() { Class jpaAwareResolverClass = (Class) ReflectionHelper.loadClass( JPA_AWARE_TRAVERSABLE_RESOLVER_CLASS_NAME, this.getClass() ); jpaTraversableResolver = ReflectionHelper.newInstance( jpaAwareResolverClass, "" ); - log.debug( - "Instantiated JPA aware TraversableResolver of type {}.", JPA_AWARE_TRAVERSABLE_RESOLVER_CLASS_NAME + log.debugf( + "Instantiated JPA aware TraversableResolver of type %s.", JPA_AWARE_TRAVERSABLE_RESOLVER_CLASS_NAME ); } catch ( ValidationException e ) { - log.debug( - "Unable to load or instantiate JPA aware resolver {}. All properties will per default be traversable.", + log.debugf( + "Unable to load or instantiate JPA aware resolver %s. All properties will per default be traversable.", JPA_AWARE_TRAVERSABLE_RESOLVER_CLASS_NAME ); } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java index ba451d6f37..e87e622111 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/engine/resolver/JPATraversableResolver.java @@ -21,8 +21,7 @@ import javax.validation.Path; import javax.validation.TraversableResolver; -import org.slf4j.Logger; - +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; /** @@ -35,7 +34,7 @@ * @author Emmanuel Bernard */ public class JPATraversableResolver implements TraversableResolver { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); public final boolean isReachable(Object traversableObject, Path.Node traversableProperty, @@ -43,8 +42,8 @@ public final boolean isReachable(Object traversableObject, Path pathToTraversableObject, ElementType elementType) { if ( log.isTraceEnabled() ) { - log.trace( - "Calling isReachable on object {} with node name {}", + log.tracef( + "Calling isReachable on object %s with node name %s.", traversableObject, traversableProperty.getName() ); diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/aggregated/BeanMetaDataImpl.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/aggregated/BeanMetaDataImpl.java index 8ac2ce2060..1cdf88f2f8 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/aggregated/BeanMetaDataImpl.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/aggregated/BeanMetaDataImpl.java @@ -32,8 +32,6 @@ import javax.validation.metadata.BeanDescriptor; import javax.validation.metadata.PropertyDescriptor; -import org.slf4j.Logger; - import org.hibernate.validator.group.DefaultGroupSequenceProvider; import org.hibernate.validator.internal.metadata.aggregated.ConstraintMetaData.ConstraintMetaDataKind; import org.hibernate.validator.internal.metadata.core.ConstraintHelper; @@ -47,11 +45,12 @@ import org.hibernate.validator.internal.metadata.raw.ConstrainedField; import org.hibernate.validator.internal.metadata.raw.ConstrainedMethod; import org.hibernate.validator.internal.metadata.raw.ConstrainedType; -import org.hibernate.validator.method.metadata.MethodDescriptor; -import org.hibernate.validator.method.metadata.TypeDescriptor; import org.hibernate.validator.internal.util.CollectionHelper.Partitioner; -import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.ReflectionHelper; +import org.hibernate.validator.internal.util.logging.Log; +import org.hibernate.validator.internal.util.logging.LoggerFactory; +import org.hibernate.validator.method.metadata.MethodDescriptor; +import org.hibernate.validator.method.metadata.TypeDescriptor; import static org.hibernate.validator.internal.util.CollectionHelper.newArrayList; import static org.hibernate.validator.internal.util.CollectionHelper.newHashMap; @@ -71,7 +70,7 @@ */ public final class BeanMetaDataImpl implements BeanMetaData { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); /** * The root bean class for this meta data. @@ -390,8 +389,8 @@ else if ( group.getName().equals( Default.class.getName() ) ) { throw new GroupDefinitionException( beanClass.getName() + " must be part of the redefined default group sequence." ); } if ( log.isTraceEnabled() ) { - log.trace( - "Members of the default group sequence for bean {} are: {}", + log.tracef( + "Members of the default group sequence for bean %s are: %s.", beanClass.getName(), validDefaultGroupSequence ); diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/core/AnnotationIgnores.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/core/AnnotationIgnores.java index 35845aef3f..45f96be982 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/core/AnnotationIgnores.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/core/AnnotationIgnores.java @@ -23,8 +23,7 @@ import java.util.List; import java.util.Map; -import org.slf4j.Logger; - +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; /** @@ -36,7 +35,7 @@ */ public class AnnotationIgnores { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); /** * Keeps track whether the 'ignore-annotations' flag is set on bean level in the xml configuration. If 'ignore-annotations' @@ -102,7 +101,10 @@ private void logMessage(Member member, Class clazz) { else { type = "Property"; } - log.debug( type + " level annotations are getting ignored for " + clazz.getName() + "." + member.getName() ); + + if ( log.isDebugEnabled() ) { + log.debugf( "%s level annotations are getting ignored for %s.%s.", type, clazz.getName(), member.getName() ); + } } public void setIgnoreAnnotationsOnClass(Class clazz, boolean b) { @@ -118,7 +120,7 @@ public boolean isIgnoreAnnotations(Class clazz) { ignoreAnnotation = getDefaultIgnoreAnnotation( clazz ); } if ( log.isDebugEnabled() && ignoreAnnotation ) { - log.debug( "Class level annotation are getting ignored for " + clazz.getName() ); + log.debugf( "Class level annotation are getting ignored for %s.", clazz.getName() ); } return ignoreAnnotation; } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/descriptor/ConstraintDescriptorImpl.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/descriptor/ConstraintDescriptorImpl.java index 584cb20e14..8e0c442e27 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/descriptor/ConstraintDescriptorImpl.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/metadata/descriptor/ConstraintDescriptorImpl.java @@ -42,16 +42,15 @@ import javax.validation.groups.Default; import javax.validation.metadata.ConstraintDescriptor; -import org.slf4j.Logger; - import org.hibernate.validator.constraints.CompositionType; import org.hibernate.validator.constraints.ConstraintComposition; import org.hibernate.validator.internal.metadata.core.ConstraintHelper; import org.hibernate.validator.internal.metadata.core.ConstraintOrigin; -import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.ReflectionHelper; import org.hibernate.validator.internal.util.annotationfactory.AnnotationDescriptor; import org.hibernate.validator.internal.util.annotationfactory.AnnotationFactory; +import org.hibernate.validator.internal.util.logging.Log; +import org.hibernate.validator.internal.util.logging.LoggerFactory; import static org.hibernate.validator.constraints.CompositionType.AND; @@ -66,7 +65,7 @@ public class ConstraintDescriptorImpl implements ConstraintDescriptor, Serializable { private static final long serialVersionUID = -2563102960314069246L; - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private static final int OVERRIDES_PARAMETER_DEFAULT_INDEX = -1; private static final String GROUPS = "groups"; private static final String PAYLOAD = "payload"; @@ -416,7 +415,7 @@ private Set> parseComposingConstraints() { if ( constraintHelper.isConstraintComposition( declaredAnnotationType ) ) { this.setCompositionType( ( (ConstraintComposition) declaredAnnotation ).value() ); if ( log.isDebugEnabled() ) { - log.debug( "Adding Bool" + declaredAnnotationType.getName() ); + log.debugf( "Adding Bool %s.", declaredAnnotationType.getName() ); } continue; } @@ -427,9 +426,7 @@ private Set> parseComposingConstraints() { declaredAnnotation, overrideParameters, OVERRIDES_PARAMETER_DEFAULT_INDEX ); composingConstraintsSet.add( descriptor ); - if ( log.isDebugEnabled() ) { - log.debug( "Adding composing constraint: " + descriptor ); - } + log.debugf( "Adding composing constraint: %s.", descriptor ); } else if ( constraintHelper.isMultiValueConstraint( declaredAnnotationType ) ) { List multiValueConstraints = constraintHelper.getMultiValueConstraints( declaredAnnotation ); @@ -439,9 +436,7 @@ else if ( constraintHelper.isMultiValueConstraint( declaredAnnotationType ) ) { constraintAnnotation, overrideParameters, index ); composingConstraintsSet.add( descriptor ); - if ( log.isDebugEnabled() ) { - log.debug( "Adding composing constraint: " + descriptor ); - } + log.debugf( "Adding composing constraint: %s.", descriptor ); index++; } } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/LazyValidatorFactory.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/LazyValidatorFactory.java index 8d80b55bc1..be09f4157a 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/LazyValidatorFactory.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/LazyValidatorFactory.java @@ -39,9 +39,8 @@ import javax.validation.ValidatorFactory; import javax.validation.spi.ValidationProvider; -import org.slf4j.Logger; - import org.hibernate.validator.HibernateValidator; +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.privilegedactions.GetClassLoader; import org.hibernate.validator.internal.util.privilegedactions.LoadClass; @@ -61,7 +60,7 @@ * @author Hardy Ferentschik */ public class LazyValidatorFactory implements ValidatorFactory { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private final Configuration configuration; private volatile ValidatorFactory delegate; //use as a barrier @@ -168,7 +167,7 @@ private List> instantiateProviders(List providerNa catch ( ValidationException e ) { // ignore - we don't want to fail the whole loading because of a black sheep. Hibernate Validator // will be added either way - log.warn( "Unable to load provider class " + providerName ); + log.unableToLoadProviderClass( providerName ); continue; } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/Version.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/Version.java index 57a724f2c0..bafa9a034d 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/Version.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/Version.java @@ -20,10 +20,11 @@ /** * @author Hardy Ferentschik + * @author Kevin Pollet (C) 2012 SERLI */ public final class Version { static { - LoggerFactory.make().info( "Hibernate Validator {}", getVersionString() ); + LoggerFactory.make().version( getVersionString() ); } public static String getVersionString() { diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/Log.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/Log.java new file mode 100644 index 0000000000..cf08e37d5d --- /dev/null +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/Log.java @@ -0,0 +1,78 @@ +/* + * JBoss, Home of Professional Open Source + * Copyright 2012, Red Hat, Inc. and/or its affiliates, and individual contributors + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * 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.hibernate.validator.internal.util.logging; + +import org.jboss.logging.BasicLogger; +import org.jboss.logging.LogMessage; +import org.jboss.logging.Message; +import org.jboss.logging.MessageLogger; + +import static org.jboss.logging.Logger.Level.INFO; +import static org.jboss.logging.Logger.Level.WARN; + +/** + * The logger interface for JBoss Logging. + * + * @author Kevin Pollet (C) 2012 SERLI + */ +@MessageLogger(projectCode = "HV") +public interface Log extends BasicLogger { + + @LogMessage(level = INFO) + @Message(id = 1, value = "Hibernate Validator %s") + void version(String version); + + @LogMessage(level = INFO) + @Message(id = 2, value = "Ignoring XML configuration.") + void ignoringXmlConfiguration(); + + @LogMessage(level = INFO) + @Message(id = 3, value = "Using %s as constraint factory.") + void usingConstraintFactory(String constraintFactoryClassName); + + @LogMessage(level = INFO) + @Message(id = 4, value = "Using %s as message interpolator.") + void usingMessageInterpolator(String messageInterpolatorClassName); + + @LogMessage(level = INFO) + @Message(id = 5, value = "Using %s as traversable resolver.") + void usingTraversableResolver(String traversableResolverClassName); + + @LogMessage(level = INFO) + @Message(id = 6, value = "Using %s as validation provider.") + void usingValidationProvider(String validationProviderClassName); + + @LogMessage(level = INFO) + @Message(id = 7, value = "%s found. Parsing XML based configuration.") + void parsingXMLFile(String fileName); + + @LogMessage(level = WARN) + @Message(id = 8, value = "Unable to close input stream.") + void unableToCloseInputStream(); + + @LogMessage(level = WARN) + @Message(id = 9, value = "Unable to load provider class %s.") + void unableToLoadProviderClass(String providerName); + + @LogMessage(level = WARN) + @Message(id = 10, value = "Unable to close input stream for %s.") + void unableToCloseXMLFileInputStream(String fileName); + + @LogMessage(level = WARN) + @Message(id = 11, value = "Unable to create schema for %1$s: %2$s") + void unableToCreateSchema(String fileName, String message); +} diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/LoggerFactory.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/LoggerFactory.java index a4a478fb6c..ea2231c792 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/LoggerFactory.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/util/logging/LoggerFactory.java @@ -1,37 +1,35 @@ -// :$ /* -* JBoss, Home of Professional Open Source -* Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual contributors -* by the @authors tag. See the copyright.txt in the distribution for a -* full listing of individual contributors. -* -* 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. -*/ + * Copyright 2009, Red Hat, Inc. and/or its affiliates, and individual contributors + * by the @authors tag. See the copyright.txt in the distribution for a + * full listing of individual contributors. + * + * 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.hibernate.validator.internal.util.logging; -import org.slf4j.Logger; +import org.jboss.logging.Logger; /** * @author Hardy Ferentschik + * @author Kevin Pollet (C) 2012 SERLI */ public final class LoggerFactory { - public static Logger make() { + public static Log make() { Throwable t = new Throwable(); StackTraceElement directCaller = t.getStackTrace()[1]; - return org.slf4j.LoggerFactory.getLogger( directCaller.getClassName() ); + return Logger.getMessageLogger( Log.class, directCaller.getClassName() ); } // private constructor to avoid instantiation private LoggerFactory(){ - } } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/ValidationXmlParser.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/ValidationXmlParser.java index a0c141aded..7219a6bf8c 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/ValidationXmlParser.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/ValidationXmlParser.java @@ -32,11 +32,11 @@ import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; -import org.slf4j.Logger; import org.xml.sax.SAXException; -import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.ReflectionHelper; +import org.hibernate.validator.internal.util.logging.Log; +import org.hibernate.validator.internal.util.logging.LoggerFactory; /** * Parser for validation.xml using JAXB. @@ -45,7 +45,7 @@ */ public class ValidationXmlParser { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private static final String VALIDATION_XML_FILE = "META-INF/validation.xml"; private static final String VALIDATION_CONFIGURATION_XSD = "META-INF/validation-configuration-1.0.xsd"; @@ -83,7 +83,7 @@ private void setConstraintFactoryFromXml(ValidationConfigType config, Validation clazz, "constraint factory class" ) ); - log.info( "Using {} as constraint factory.", constraintFactoryClass ); + log.usingConstraintFactory( constraintFactoryClass ); } catch ( ValidationException e ) { throw new ValidationException( @@ -96,8 +96,8 @@ private void setConstraintFactoryFromXml(ValidationConfigType config, Validation private void setPropertiesFromXml(ValidationConfigType config, ValidationBootstrapParameters xmlParameters) { for ( PropertyType property : config.getProperty() ) { if ( log.isDebugEnabled() ) { - log.debug( - "Found property '{}' with value '{}' in validation.xml.", + log.debugf( + "Found property '%s' with value '%s' in validation.xml.", property.getName(), property.getValue() ); @@ -108,11 +108,8 @@ private void setPropertiesFromXml(ValidationConfigType config, ValidationBootstr private void setMappingStreamsFromXml(ValidationConfigType config, ValidationBootstrapParameters xmlParameters) { for ( String mappingFileName : config.getConstraintMapping() ) { - if ( log.isDebugEnabled() ) { - log.debug( - "Trying to open input stream for {}.", mappingFileName - ); - } + log.debugf( "Trying to open input stream for %s.", mappingFileName); + InputStream in = getInputStreamForPath( mappingFileName ); if ( in == null ) { throw new ValidationException( "Unable to open input stream for mapping file " + mappingFileName + "." ); @@ -130,7 +127,7 @@ private void setMessageInterpolatorFromXml(ValidationConfigType config, Validati messageInterpolatorClass, this.getClass() ); xmlParameters.setMessageInterpolator( clazz.newInstance() ); - log.info( "Using {} as message interpolator.", messageInterpolatorClass ); + log.usingMessageInterpolator( messageInterpolatorClass ); } catch ( ValidationException e ) { throw new ValidationException( @@ -159,7 +156,7 @@ private void setTraversableResolverFromXml(ValidationConfigType config, Validati traversableResolverClass, this.getClass() ); xmlParameters.setTraversableResolver( clazz.newInstance() ); - log.info( "Using {} as traversable resolver.", traversableResolverClass ); + log.usingTraversableResolver( traversableResolverClass ); } catch ( ValidationException e ) { throw new ValidationException( @@ -189,7 +186,7 @@ private void setProviderClassFromXml(ValidationConfigType config, ValidationBoot providerClassName, this.getClass() ) ); - log.info( "Using {} as validation provider.", providerClassName ); + log.usingValidationProvider( providerClassName ); } catch ( Exception e ) { throw new ValidationException( @@ -200,14 +197,14 @@ private void setProviderClassFromXml(ValidationConfigType config, ValidationBoot } private ValidationConfigType getValidationConfig() { - log.debug( "Trying to load {} for XML based Validator configuration.", VALIDATION_XML_FILE ); + log.debugf( "Trying to load %s for XML based Validator configuration.", VALIDATION_XML_FILE ); InputStream inputStream = getInputStreamForPath( VALIDATION_XML_FILE ); if ( inputStream == null ) { - log.debug( "No {} found. Using annotation based configuration only", VALIDATION_XML_FILE ); + log.debugf( "No %s found. Using annotation based configuration only.", VALIDATION_XML_FILE ); return null; } - log.info( "{} found. Parsing XML based configuration.", VALIDATION_XML_FILE ); + log.parsingXMLFile( VALIDATION_XML_FILE ); ValidationConfigType validationConfig; Schema schema = getValidationConfigurationSchema(); @@ -220,7 +217,6 @@ private ValidationConfigType getValidationConfig() { validationConfig = root.getValue(); } catch ( JAXBException e ) { - log.error( "Error parsing {}: {}", VALIDATION_XML_FILE, e.getMessage() ); throw new ValidationException( "Unable to parse " + VALIDATION_XML_FILE, e ); } finally { @@ -228,7 +224,7 @@ private ValidationConfigType getValidationConfig() { inputStream.close(); } catch ( IOException io ) { - log.warn( "Unable to close input stream for " + VALIDATION_XML_FILE ); + log.unableToCloseXMLFileInputStream( VALIDATION_XML_FILE ); } } return validationConfig; @@ -269,7 +265,7 @@ private Schema getValidationConfigurationSchema() { schema = sf.newSchema( schemaUrl ); } catch ( SAXException e ) { - log.warn( "Unable to create schema for {}: {}", VALIDATION_CONFIGURATION_XSD, e.getMessage() ); + log.unableToCreateSchema( VALIDATION_CONFIGURATION_XSD, e.getMessage() ); } return schema; } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/XmlMappingParser.java b/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/XmlMappingParser.java index 887122f8f7..d27586d5cd 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/XmlMappingParser.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/internal/xml/XmlMappingParser.java @@ -41,19 +41,19 @@ import javax.xml.validation.Schema; import javax.xml.validation.SchemaFactory; -import org.slf4j.Logger; import org.xml.sax.SAXException; import org.hibernate.validator.internal.metadata.core.AnnotationIgnores; +import org.hibernate.validator.internal.metadata.core.ConstraintHelper; import org.hibernate.validator.internal.metadata.core.ConstraintOrigin; import org.hibernate.validator.internal.metadata.core.MetaConstraint; import org.hibernate.validator.internal.metadata.descriptor.ConstraintDescriptorImpl; -import org.hibernate.validator.internal.metadata.core.ConstraintHelper; import org.hibernate.validator.internal.metadata.location.BeanConstraintLocation; -import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.internal.util.ReflectionHelper; import org.hibernate.validator.internal.util.annotationfactory.AnnotationDescriptor; import org.hibernate.validator.internal.util.annotationfactory.AnnotationFactory; +import org.hibernate.validator.internal.util.logging.Log; +import org.hibernate.validator.internal.util.logging.LoggerFactory; import static org.hibernate.validator.internal.util.CollectionHelper.newArrayList; import static org.hibernate.validator.internal.util.CollectionHelper.newHashMap; @@ -64,7 +64,7 @@ */ public class XmlMappingParser { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private static final String VALIDATION_MAPPING_XSD = "META-INF/validation-mapping-1.0.xsd"; private static final String MESSAGE_PARAM = "message"; private static final String GROUPS_PARAM = "groups"; @@ -590,9 +590,7 @@ private ConstraintMappingsType getValidationConfig(InputStream in) { constraintMappings = root.getValue(); } catch ( JAXBException e ) { - String msg = "Error parsing mapping file."; - log.error( msg ); - throw new ValidationException( msg, e ); + throw new ValidationException( "Error parsing mapping file.", e ); } return constraintMappings; } @@ -606,7 +604,7 @@ private Schema getMappingSchema() { schema = sf.newSchema( schemaUrl ); } catch ( SAXException e ) { - log.warn( "Unable to create schema for {}: {}", VALIDATION_MAPPING_XSD, e.getMessage() ); + log.unableToCreateSchema( VALIDATION_MAPPING_XSD, e.getMessage() ); } return schema; } diff --git a/hibernate-validator/src/main/java/org/hibernate/validator/resourceloading/PlatformResourceBundleLocator.java b/hibernate-validator/src/main/java/org/hibernate/validator/resourceloading/PlatformResourceBundleLocator.java index ed5baa1351..a28f1305fa 100644 --- a/hibernate-validator/src/main/java/org/hibernate/validator/resourceloading/PlatformResourceBundleLocator.java +++ b/hibernate-validator/src/main/java/org/hibernate/validator/resourceloading/PlatformResourceBundleLocator.java @@ -22,8 +22,7 @@ import java.util.MissingResourceException; import java.util.ResourceBundle; -import org.slf4j.Logger; - +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; /** @@ -35,8 +34,7 @@ */ public class PlatformResourceBundleLocator implements ResourceBundleLocator { - private static final Logger log = LoggerFactory.make(); - + private static final Log log = LoggerFactory.make(); private String bundleName; public PlatformResourceBundleLocator(String bundleName) { @@ -67,13 +65,11 @@ public ResourceBundle getResourceBundle(Locale locale) { + " not found by validator classloader" ); } - if ( log.isDebugEnabled() ) { - if ( rb != null ) { - log.debug( bundleName + " found" ); - } - else { - log.debug( bundleName + " not found." ); - } + if ( rb != null ) { + log.debugf( "%s found.", bundleName ); + } + else { + log.debugf( "%s not found.", bundleName ); } return rb; } diff --git a/hibernate-validator/src/test/java/org/hibernate/validator/ValidationMessages.java b/hibernate-validator/src/test/java/org/hibernate/validator/ValidationMessages.java index 6811f9103e..a81624e922 100644 --- a/hibernate-validator/src/test/java/org/hibernate/validator/ValidationMessages.java +++ b/hibernate-validator/src/test/java/org/hibernate/validator/ValidationMessages.java @@ -24,8 +24,7 @@ import java.util.PropertyResourceBundle; import java.util.ResourceBundle; -import org.slf4j.Logger; - +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; /** @@ -33,7 +32,7 @@ */ public class ValidationMessages extends ResourceBundle { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private static final String DEFAULT_PROPERTIES_FILE_NAME = "/org/hibernate/validator/ValidationMessages.properties"; @@ -43,7 +42,7 @@ public ValidationMessages() throws Exception { log.info( "For test purposes are we proxying the built-in messages!" ); addTestPropertiesToBundle(); - log.info( "Adding the following properties to default properties {}", messages ); + log.infof( "Adding the following properties to default properties %s", messages ); loadDefaultValidationProperties(); } diff --git a/hibernate-validator/src/test/java/org/hibernate/validator/test/internal/engine/failfast/FailFastTest.java b/hibernate-validator/src/test/java/org/hibernate/validator/test/internal/engine/failfast/FailFastTest.java index 8fa813742f..12eec35714 100644 --- a/hibernate-validator/src/test/java/org/hibernate/validator/test/internal/engine/failfast/FailFastTest.java +++ b/hibernate-validator/src/test/java/org/hibernate/validator/test/internal/engine/failfast/FailFastTest.java @@ -34,7 +34,6 @@ import javax.validation.constraints.NotNull; import javax.validation.constraints.Pattern; -import org.slf4j.Logger; import org.testng.annotations.Test; import org.hibernate.validator.HibernateValidator; @@ -42,6 +41,7 @@ import org.hibernate.validator.HibernateValidatorFactory; import org.hibernate.validator.constraints.Email; import org.hibernate.validator.constraints.NotBlank; +import org.hibernate.validator.internal.util.logging.Log; import org.hibernate.validator.internal.util.logging.LoggerFactory; import org.hibernate.validator.method.MethodConstraintViolationException; import org.hibernate.validator.method.MethodValidator; @@ -64,7 +64,7 @@ * @author Hardy Ferentschik */ public class FailFastTest { - private static final Logger log = LoggerFactory.make(); + private static final Log log = LoggerFactory.make(); private final A testInstance = new A(); @@ -280,7 +280,7 @@ public void testFailSafePerformance() { } long timeOfFailFast = System.nanoTime() - start; - log.debug( "Regular = " + timeOfRegular + "\n FailFast:" + timeOfFailFast ); + log.debugf( "Regular = %d\n FailFast: %d", timeOfRegular, timeOfFailFast ); } private void validateBatch(Validator validator) {