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 extends TraversableResolver> jpaAwareResolverClass = (Class extends TraversableResolver>)
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) {