From b0ea4aa5e0b6130432f80d60ae3a09f4594a08bf Mon Sep 17 00:00:00 2001 From: lidongy <1879087903@qq.com> Date: Tue, 28 Mar 2023 11:45:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?REPORT-90336=E3=80=90=E6=9D=A5=E6=BA=90?= =?UTF-8?q?=E5=86=85=E6=B5=8BBUG=E3=80=91=E5=B9=B3=E5=8F=B0=E5=B7=A6?= =?UTF-8?q?=E4=BE=A7=E7=9B=AE=E5=BD=95=E6=90=9C=E7=B4=A2=E5=BE=88=E6=85=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../boot/internal/SessionFactoryBuilderImpl.java | 12 ++++++++++++ .../boot/internal/SessionFactoryOptionsImpl.java | 9 +++++++++ .../boot/internal/SessionFactoryOptionsState.java | 2 ++ .../spi/AbstractDelegatingSessionFactoryOptions.java | 5 +++++ .../hibernate/boot/spi/SessionFactoryOptions.java | 2 ++ .../third/org/hibernate/cfg/AvailableSettings.java | 11 +++++++++++ .../hql/internal/ast/QueryTranslatorImpl.java | 2 +- .../hql/internal/ast/tree/JavaConstantNode.java | 2 +- .../hql/internal/ast/util/LiteralProcessor.java | 2 +- .../hibernate/hql/internal/classic/WhereParser.java | 2 +- .../org/hibernate/internal/util/ReflectHelper.java | 12 +++++++++++- 11 files changed, 56 insertions(+), 5 deletions(-) diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryBuilderImpl.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryBuilderImpl.java index 57a874a82..57a755ef9 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryBuilderImpl.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryBuilderImpl.java @@ -483,6 +483,7 @@ public class SessionFactoryBuilderImpl implements SessionFactoryBuilderImplement private Map querySubstitutions; private boolean strictJpaQueryLanguageCompliance; private boolean namedQueryStartupCheckingEnabled; + private boolean conventionalJavaConstants; private final boolean procedureParameterNullPassingEnabled; private final boolean collectionJoinSubqueryRewriteEnabled; @@ -600,6 +601,8 @@ public class SessionFactoryBuilderImpl implements SessionFactoryBuilderImplement this.querySubstitutions = ConfigurationHelper.toMap( QUERY_SUBSTITUTIONS, " ,=;:\n\t\r\f", configurationSettings ); this.strictJpaQueryLanguageCompliance = cfgService.getSetting( JPAQL_STRICT_COMPLIANCE, BOOLEAN, false ); this.namedQueryStartupCheckingEnabled = cfgService.getSetting( QUERY_STARTUP_CHECKING, BOOLEAN, true ); + this.conventionalJavaConstants = cfgService.getSetting( + CONVENTIONAL_JAVA_CONSTANTS, BOOLEAN, true ); this.procedureParameterNullPassingEnabled = cfgService.getSetting( PROCEDURE_NULL_PARAM_PASSING, BOOLEAN, false ); this.collectionJoinSubqueryRewriteEnabled = cfgService.getSetting( COLLECTION_JOIN_SUBQUERY, BOOLEAN, true ); @@ -851,6 +854,11 @@ public class SessionFactoryBuilderImpl implements SessionFactoryBuilderImplement return namedQueryStartupCheckingEnabled; } + @Override + public boolean isConventionalJavaConstants() { + return conventionalJavaConstants; + } + @Override public boolean isProcedureParameterNullPassingEnabled() { return procedureParameterNullPassingEnabled; @@ -1132,6 +1140,10 @@ public class SessionFactoryBuilderImpl implements SessionFactoryBuilderImplement return options.isNamedQueryStartupCheckingEnabled(); } + @Override + public boolean isConventionalJavaConstants() { + return options.isConventionalJavaConstants(); + } @Override public boolean isProcedureParameterNullPassingEnabled() { return options.isProcedureParameterNullPassingEnabled(); diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsImpl.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsImpl.java index ffaa7a149..f925b5cba 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsImpl.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsImpl.java @@ -88,6 +88,9 @@ public class SessionFactoryOptionsImpl implements SessionFactoryOptions { private final Map querySubstitutions; private final boolean strictJpaQueryLanguageCompliance; private final boolean namedQueryStartupCheckingEnabled; + + private final boolean conventionalJavaConstants; + private final boolean procedureParameterNullPassingEnabled; private final boolean collectionJoinSubqueryRewriteEnabled; @@ -160,6 +163,7 @@ public class SessionFactoryOptionsImpl implements SessionFactoryOptions { this.querySubstitutions = state.getQuerySubstitutions(); this.strictJpaQueryLanguageCompliance = state.isStrictJpaQueryLanguageCompliance(); this.namedQueryStartupCheckingEnabled = state.isNamedQueryStartupCheckingEnabled(); + this.conventionalJavaConstants = state.isConventionalJavaConstants(); this.procedureParameterNullPassingEnabled = state.isProcedureParameterNullPassingEnabled(); this.collectionJoinSubqueryRewriteEnabled = state.isCollectionJoinSubqueryRewriteEnabled(); @@ -339,6 +343,11 @@ public class SessionFactoryOptionsImpl implements SessionFactoryOptions { return namedQueryStartupCheckingEnabled; } + @Override + public boolean isConventionalJavaConstants() { + return conventionalJavaConstants; + } + @Override public boolean isProcedureParameterNullPassingEnabled() { return procedureParameterNullPassingEnabled; diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsState.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsState.java index c73f94f8b..8835f3453 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsState.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/internal/SessionFactoryOptionsState.java @@ -98,6 +98,8 @@ public interface SessionFactoryOptionsState { boolean isNamedQueryStartupCheckingEnabled(); + boolean isConventionalJavaConstants(); + boolean isProcedureParameterNullPassingEnabled(); boolean isCollectionJoinSubqueryRewriteEnabled(); diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/AbstractDelegatingSessionFactoryOptions.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/AbstractDelegatingSessionFactoryOptions.java index 3e8a7f603..97d723488 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/AbstractDelegatingSessionFactoryOptions.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/AbstractDelegatingSessionFactoryOptions.java @@ -198,6 +198,11 @@ public abstract class AbstractDelegatingSessionFactoryOptions implements Session return delegate.isNamedQueryStartupCheckingEnabled(); } + @Override + public boolean isConventionalJavaConstants() { + return delegate.isConventionalJavaConstants(); + } + @Override public boolean isProcedureParameterNullPassingEnabled() { return delegate.isProcedureParameterNullPassingEnabled(); diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/SessionFactoryOptions.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/SessionFactoryOptions.java index 7872aacb7..6c8972464 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/SessionFactoryOptions.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/boot/spi/SessionFactoryOptions.java @@ -122,6 +122,8 @@ public interface SessionFactoryOptions { boolean isNamedQueryStartupCheckingEnabled(); + boolean isConventionalJavaConstants(); + boolean isSecondLevelCacheEnabled(); boolean isQueryCacheEnabled(); diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/cfg/AvailableSettings.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/cfg/AvailableSettings.java index 0ac6a9122..80541d2f1 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/cfg/AvailableSettings.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/cfg/AvailableSettings.java @@ -564,6 +564,17 @@ public interface AvailableSettings { */ String QUERY_STARTUP_CHECKING = "hibernate.query.startup_check"; + /** + * Setting which indicates whether or not Java constant follow the Java Naming conventions. + *

+ * Default is {@code true}. Existing applications may want to disable this (set it {@code false}) if non-conventional Java constants are used. + * However, there is a significant performance overhead for using non-conventional Java constants since Hibernate cannot determine if aliases + * should be treated as Java constants or not. + * + * @since 5.2 + */ + String CONVENTIONAL_JAVA_CONSTANTS = "hibernate.query.conventional_java_constants"; + /** * The {@link com.fr.third.org.hibernate.exception.spi.SQLExceptionConverter} to use for converting SQLExceptions * to Hibernate's JDBCException hierarchy. The default is to use the configured diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java index e7968fcca..ab9c923a8 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/QueryTranslatorImpl.java @@ -612,7 +612,7 @@ public class QueryTranslatorImpl implements FilterTranslator { } private void handleDotStructure(AST dotStructureRoot) { final String expression = ASTUtil.getPathText( dotStructureRoot ); - final Object constant = ReflectHelper.getConstantValue( expression, factory.getServiceRegistry().getService( ClassLoaderService.class ) ); + final Object constant = ReflectHelper.getConstantValue( expression, factory ); if ( constant != null ) { dotStructureRoot.setFirstChild( null ); dotStructureRoot.setType( HqlTokenTypes.JAVA_CONSTANT ); diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/tree/JavaConstantNode.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/tree/JavaConstantNode.java index 2f77663fd..5a678968e 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/tree/JavaConstantNode.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/tree/JavaConstantNode.java @@ -39,7 +39,7 @@ public class JavaConstantNode extends Node implements ExpectedTypeAwareNode, Ses // this method to get called twice. The first time with an empty string if ( StringHelper.isNotEmpty( s ) ) { constantExpression = s; - constantValue = ReflectHelper.getConstantValue( s, factory.getServiceRegistry().getService( ClassLoaderService.class ) ); + constantValue = ReflectHelper.getConstantValue( s, factory ); heuristicType = factory.getTypeResolver().heuristicType( constantValue.getClass().getName() ); super.setText( s ); } diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/util/LiteralProcessor.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/util/LiteralProcessor.java index c414c847f..6fb54838d 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/util/LiteralProcessor.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/ast/util/LiteralProcessor.java @@ -107,7 +107,7 @@ public class LiteralProcessor implements HqlSqlTokenTypes { setSQLValue( node, text, discrim ); } else { - Object value = ReflectHelper.getConstantValue( text, walker.getSessionFactoryHelper().getFactory().getServiceRegistry().getService( ClassLoaderService.class ) ); + Object value = ReflectHelper.getConstantValue( text, walker.getSessionFactoryHelper().getFactory() ); if ( value == null ) { throw new InvalidPathException( "Invalid path: '" + text + "'" ); } diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/classic/WhereParser.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/classic/WhereParser.java index 618950829..7f22b82ee 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/classic/WhereParser.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/hql/internal/classic/WhereParser.java @@ -419,7 +419,7 @@ public class WhereParser implements Parser { Object constant; if ( token.indexOf( '.' ) > -1 && - ( constant = ReflectHelper.getConstantValue( token, q.getFactory().getServiceRegistry().getService( ClassLoaderService.class ) ) ) != null + ( constant = ReflectHelper.getConstantValue( token, q.getFactory() ) ) != null ) { Type type; try { diff --git a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/internal/util/ReflectHelper.java b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/internal/util/ReflectHelper.java index bb9d5aa3a..819fc0358 100644 --- a/fine-hibernate/src/main/java/com/fr/third/org/hibernate/internal/util/ReflectHelper.java +++ b/fine-hibernate/src/main/java/com/fr/third/org/hibernate/internal/util/ReflectHelper.java @@ -13,12 +13,14 @@ import java.lang.reflect.Member; import java.lang.reflect.Method; import java.lang.reflect.Modifier; import java.util.Locale; +import java.util.regex.Pattern; import com.fr.third.org.hibernate.AssertionFailure; import com.fr.third.org.hibernate.MappingException; import com.fr.third.org.hibernate.PropertyNotFoundException; import com.fr.third.org.hibernate.boot.registry.classloading.spi.ClassLoaderService; import com.fr.third.org.hibernate.boot.registry.classloading.spi.ClassLoadingException; +import com.fr.third.org.hibernate.engine.spi.SessionFactoryImplementor; import com.fr.third.org.hibernate.property.access.internal.PropertyAccessStrategyMixedImpl; import com.fr.third.org.hibernate.property.access.spi.Getter; import com.fr.third.org.hibernate.type.PrimitiveType; @@ -32,6 +34,8 @@ import com.fr.third.org.hibernate.type.Type; */ @SuppressWarnings("unchecked") public final class ReflectHelper { + private static final Pattern JAVA_CONSTANT_PATTERN = Pattern.compile( + "[a-z\\d]+\\.([A-Z]+[a-z\\d]+)+\\$?([A-Z]{1}[a-z\\d]+)*\\.[A-Z_\\$]+", Pattern.UNICODE_CHARACTER_CLASS); public static final Class[] NO_PARAM_SIGNATURE = new Class[0]; public static final Object[] NO_PARAMS = new Object[0]; @@ -229,9 +233,15 @@ public final class ReflectHelper { return PropertyAccessStrategyMixedImpl.INSTANCE.buildPropertyAccess( clazz, name ).getGetter(); } - public static Object getConstantValue(String name, ClassLoaderService classLoaderService) { + public static Object getConstantValue(String name, SessionFactoryImplementor factory) { + boolean conventionalJavaConstants = factory.getSessionFactoryOptions().isConventionalJavaConstants(); Class clazz; try { + if ( conventionalJavaConstants && + !JAVA_CONSTANT_PATTERN.matcher( name ).find() ) { + return null; + } + ClassLoaderService classLoaderService = factory.getServiceRegistry().getService( ClassLoaderService.class ); clazz = classLoaderService.classForName( StringHelper.qualifier( name ) ); } catch ( Throwable t ) { From 9e2a9e6fa5be99a343ab17ff86f508c10c8464a6 Mon Sep 17 00:00:00 2001 From: Elijah Date: Fri, 31 Mar 2023 17:33:27 +0800 Subject: [PATCH 2/4] =?UTF-8?q?KERNEL-14695=20fix:=20=E9=93=BE=E8=B7=AF?= =?UTF-8?q?=E8=BF=BD=E8=B8=AASpan=E6=98=AF=E5=90=A6=E5=8F=AF=E4=BB=A5?= =?UTF-8?q?=E5=BF=BD=E7=95=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/apache/skywalking/apm/toolkit/trace/Trace.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fine-skywalking-toolkit-trace/src/main/java/org/apache/skywalking/apm/toolkit/trace/Trace.java b/fine-skywalking-toolkit-trace/src/main/java/org/apache/skywalking/apm/toolkit/trace/Trace.java index a06bdab29..cea21f030 100644 --- a/fine-skywalking-toolkit-trace/src/main/java/org/apache/skywalking/apm/toolkit/trace/Trace.java +++ b/fine-skywalking-toolkit-trace/src/main/java/org/apache/skywalking/apm/toolkit/trace/Trace.java @@ -35,4 +35,9 @@ public @interface Trace { * @return operation name, the default value is blank string. */ String operationName() default ""; + + /** + * 是否可以被忽略 + */ + boolean ignorable() default true; } From da397a5fadbf2448d992acf381a15428c1735957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yuan=2EWang-=E7=8E=8B=E5=9E=A3?= Date: Wed, 12 Apr 2023 19:58:27 +0800 Subject: [PATCH 3/4] =?UTF-8?q?REPORT-91724=20=E5=AF=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E7=9A=84=E5=8F=82=E6=95=B0=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.third_step1-jdk11.gradle | 3 - build.third_step1.gradle | 3 - build.third_step3-jdk11.gradle | 9 +- build.third_step3.gradle | 9 +- fine-classmate/.gitignore | 6 - fine-classmate/README.md | 6 - fine-classmate/pom.xml | 18 - .../classmate/AnnotationConfiguration.java | 115 - .../classmate/AnnotationInclusion.java | 44 - .../classmate/AnnotationOverrides.java | 100 - .../com/fasterxml/classmate/Annotations.java | 132 - .../third/com/fasterxml/classmate/Filter.java | 10 - .../com/fasterxml/classmate/GenericType.java | 25 - .../fasterxml/classmate/MemberResolver.java | 238 -- .../com/fasterxml/classmate/ResolvedType.java | 403 --- .../classmate/ResolvedTypeWithMembers.java | 721 ----- .../com/fasterxml/classmate/TypeBindings.java | 237 -- .../com/fasterxml/classmate/TypeResolver.java | 552 ---- .../classmate/members/HierarchicType.java | 68 - .../classmate/members/RawConstructor.java | 61 - .../fasterxml/classmate/members/RawField.java | 58 - .../classmate/members/RawMember.java | 98 - .../classmate/members/RawMethod.java | 74 - .../members/ResolvedConstructor.java | 26 - .../classmate/members/ResolvedField.java | 36 - .../classmate/members/ResolvedMember.java | 156 - .../classmate/members/ResolvedMethod.java | 65 - .../members/ResolvedParameterizedMember.java | 81 - .../classmate/members/package-info.java | 5 - .../com/fasterxml/classmate/package-info.java | 13 - .../classmate/types/ResolvedArrayType.java | 108 - .../types/ResolvedInterfaceType.java | 162 - .../classmate/types/ResolvedObjectType.java | 287 -- .../types/ResolvedPrimitiveType.java | 157 - .../types/ResolvedRecursiveType.java | 149 - .../classmate/types/TypePlaceHolder.java | 101 - .../classmate/types/package-info.java | 5 - .../fasterxml/classmate/util/ClassKey.java | 69 - .../fasterxml/classmate/util/ClassStack.java | 72 - .../fasterxml/classmate/util/MethodKey.java | 71 - .../classmate/util/ResolvedTypeCache.java | 141 - .../classmate/util/package-info.java | 4 - fine-jboss-logging/.gitignore | 6 - fine-jboss-logging/README.md | 5 - .../lib/jboss-logmanager-1.5.2.Final.jar | Bin 314271 -> 0 bytes fine-jboss-logging/lib/log4j-1.2.17.jar | Bin 489884 -> 0 bytes fine-jboss-logging/lib/log4j-api-2.5.jar | Bin 146761 -> 0 bytes fine-jboss-logging/lib/slf4j-api-1.7.2.jar | Bin 26083 -> 0 bytes fine-jboss-logging/pom.xml | 58 - .../jboss/logging/AbstractLoggerProvider.java | 82 - .../logging/AbstractMdcLoggerProvider.java | 60 - .../third/org/jboss/logging/BasicLogger.java | 1918 ------------ .../com/fr/third/org/jboss/logging/Cause.java | 41 - .../jboss/logging/DelegatingBasicLogger.java | 1052 ------- .../com/fr/third/org/jboss/logging/Field.java | 48 - .../third/org/jboss/logging/FormatWith.java | 52 - .../jboss/logging/JBossLogManagerLogger.java | 68 - .../logging/JBossLogManagerProvider.java | 150 - .../org/jboss/logging/JBossLogRecord.java | 101 - .../fr/third/org/jboss/logging/JDKLevel.java | 45 - .../fr/third/org/jboss/logging/JDKLogger.java | 83 - .../org/jboss/logging/JDKLoggerProvider.java | 26 - .../third/org/jboss/logging/Log4j2Logger.java | 84 - .../jboss/logging/Log4j2LoggerProvider.java | 96 - .../third/org/jboss/logging/Log4jLogger.java | 64 - .../jboss/logging/Log4jLoggerProvider.java | 86 - .../third/org/jboss/logging/LogMessage.java | 56 - .../fr/third/org/jboss/logging/Logger.java | 2594 ----------------- .../org/jboss/logging/LoggerProvider.java | 130 - .../org/jboss/logging/LoggerProviders.java | 166 -- .../third/org/jboss/logging/LoggingClass.java | 42 - .../com/fr/third/org/jboss/logging/MDC.java | 84 - .../fr/third/org/jboss/logging/Message.java | 93 - .../org/jboss/logging/MessageBundle.java | 49 - .../org/jboss/logging/MessageLogger.java | 50 - .../fr/third/org/jboss/logging/Messages.java | 117 - .../com/fr/third/org/jboss/logging/NDC.java | 86 - .../com/fr/third/org/jboss/logging/Param.java | 54 - .../org/jboss/logging/ParameterConverter.java | 42 - .../fr/third/org/jboss/logging/Property.java | 49 - .../org/jboss/logging/SerializedLogger.java | 36 - .../logging/Slf4jLocationAwareLogger.java | 119 - .../third/org/jboss/logging/Slf4jLogger.java | 93 - .../jboss/logging/Slf4jLoggerProvider.java | 69 - .../org/jboss/logging/annotations/Cause.java | 38 - .../logging/annotations/ConstructType.java | 51 - .../org/jboss/logging/annotations/Field.java | 45 - .../jboss/logging/annotations/FormatWith.java | 49 - .../jboss/logging/annotations/LogMessage.java | 55 - .../logging/annotations/LoggingClass.java | 39 - .../jboss/logging/annotations/Message.java | 90 - .../logging/annotations/MessageBundle.java | 57 - .../logging/annotations/MessageLogger.java | 59 - .../org/jboss/logging/annotations/Once.java | 43 - .../org/jboss/logging/annotations/Param.java | 51 - .../org/jboss/logging/annotations/Pos.java | 53 - .../jboss/logging/annotations/Property.java | 46 - .../jboss/logging/annotations/Transform.java | 85 - .../logging/annotations/ValidIdRange.java | 71 - .../logging/annotations/ValidIdRanges.java | 43 - 100 files changed, 7 insertions(+), 13620 deletions(-) delete mode 100644 fine-classmate/.gitignore delete mode 100644 fine-classmate/README.md delete mode 100644 fine-classmate/pom.xml delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationConfiguration.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationInclusion.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationOverrides.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Annotations.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Filter.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/GenericType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/MemberResolver.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedTypeWithMembers.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeBindings.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeResolver.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/HierarchicType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawConstructor.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawField.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMember.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMethod.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedConstructor.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedField.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMember.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMethod.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedParameterizedMember.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/package-info.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/package-info.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedArrayType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedInterfaceType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedObjectType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedPrimitiveType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedRecursiveType.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/TypePlaceHolder.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/package-info.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassKey.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassStack.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/MethodKey.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ResolvedTypeCache.java delete mode 100644 fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/package-info.java delete mode 100644 fine-jboss-logging/.gitignore delete mode 100644 fine-jboss-logging/README.md delete mode 100644 fine-jboss-logging/lib/jboss-logmanager-1.5.2.Final.jar delete mode 100644 fine-jboss-logging/lib/log4j-1.2.17.jar delete mode 100644 fine-jboss-logging/lib/log4j-api-2.5.jar delete mode 100644 fine-jboss-logging/lib/slf4j-api-1.7.2.jar delete mode 100644 fine-jboss-logging/pom.xml delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractLoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractMdcLoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/BasicLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Cause.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/DelegatingBasicLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Field.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/FormatWith.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogRecord.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLevel.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2Logger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2LoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LogMessage.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Logger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProviders.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggingClass.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MDC.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Message.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageBundle.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Messages.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/NDC.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Param.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/ParameterConverter.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Property.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/SerializedLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLocationAwareLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLoggerProvider.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Cause.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ConstructType.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Field.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/FormatWith.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LogMessage.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LoggingClass.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Message.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageBundle.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageLogger.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Once.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Param.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Pos.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Property.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Transform.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRange.java delete mode 100644 fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRanges.java diff --git a/build.third_step1-jdk11.gradle b/build.third_step1-jdk11.gradle index 99b7f7e7d..c318d35b8 100644 --- a/build.third_step1-jdk11.gradle +++ b/build.third_step1-jdk11.gradle @@ -34,7 +34,6 @@ sourceSets{ "${srcDir}/fine-deprecated-utils/src/main/java", "${srcDir}/fine-asm/src/main/java", "${srcDir}/fine-aspectj/src/main/java", - "${srcDir}/fine-classmate/src/main/java", "${srcDir}/fine-commons-math3/src/main/java", "${srcDir}/fine-commons-pool/src/main/java", "${srcDir}/fine-cssparser/src/main/java", @@ -75,8 +74,6 @@ def resourceDirs = [ "${srcDir}/fine-asm/src/main/resources", "${srcDir}/fine-aspectj/src/main/java", "${srcDir}/fine-aspectj/src/main/resources", - "${srcDir}/fine-classmate/src/main/java", - "${srcDir}/fine-classmate/src/main/resources", "${srcDir}/fine-commons-math3/src/main/java", "${srcDir}/fine-commons-math3/src/main/resources", "${srcDir}/fine-commons-pool/src/main/java", diff --git a/build.third_step1.gradle b/build.third_step1.gradle index 9c621d145..ba3d7181d 100644 --- a/build.third_step1.gradle +++ b/build.third_step1.gradle @@ -35,7 +35,6 @@ sourceSets{ "${srcDir}/fine-deprecated-utils/src/main/java", "${srcDir}/fine-asm/src/main/java", "${srcDir}/fine-aspectj/src/main/java", - "${srcDir}/fine-classmate/src/main/java", "${srcDir}/fine-commons-math3/src/main/java", "${srcDir}/fine-commons-pool/src/main/java", "${srcDir}/fine-cssparser/src/main/java", @@ -125,8 +124,6 @@ task copyFiles(type:Copy,dependsOn:'compileJava'){ with dataContent.call("${srcDir}/fine-asm/src/main/resources") with dataContent.call("${srcDir}/fine-aspectj/src/main/java") with dataContent.call("${srcDir}/fine-aspectj/src/main/resources") - with dataContent.call("${srcDir}/fine-classmate/src/main/java") - with dataContent.call("${srcDir}/fine-classmate/src/main/resources") with dataContent.call("${srcDir}/fine-commons-math3/src/main/java") with dataContent.call("${srcDir}/fine-commons-math3/src/main/resources") with dataContent.call("${srcDir}/fine-commons-pool/src/main/java") diff --git a/build.third_step3-jdk11.gradle b/build.third_step3-jdk11.gradle index fc3ae0ee1..c7e3c42c4 100644 --- a/build.third_step3-jdk11.gradle +++ b/build.third_step3-jdk11.gradle @@ -31,8 +31,7 @@ sourceSets{ java{ srcDirs=[ "${srcDir}/fine-itext/src/main/java", - "${srcDir}/fine-jedis/src/main/java", - "${srcDir}/fine-jboss-logging/src/main/java" + "${srcDir}/fine-jedis/src/main/java" ] } } @@ -43,9 +42,7 @@ def resourceDirs = [ "${srcDir}/fine-itext/src/main/java", "${srcDir}/fine-itext/src/main/resources", "${srcDir}/fine-jedis/src/main/java", - "${srcDir}/fine-jedis/src/main/resources", - "${srcDir}/fine-jboss-logging/src/main/java", - "${srcDir}/fine-jboss-logging/src/main/resources" + "${srcDir}/fine-jedis/src/main/resources" ] sourceSets.main.java.outputDir = file('build/classes/3') @@ -78,7 +75,7 @@ String essentialVersion = findProperty("essentialVersion") //指定依赖 dependencies{ compileOnly "com.fr.essential:fine-essential:${essentialVersion}" - compile fileTree(dir:"${srcDir}/fine-jboss-logging/lib",include:'**/*.jar') + //compile fileTree(dir:"${srcDir}/fine-jboss-logging/lib",include:'**/*.jar') compile fileTree(dir:"${srcDir}/build/libs/",include:'**/*.jar') compile fileTree(dir:System.getenv("JAVA_HOME"),include:"lib/tools.jar") compile group: "com.fr.third.server", name: "servlet-api", version: "3.0" diff --git a/build.third_step3.gradle b/build.third_step3.gradle index cb237ec7f..de9cccc68 100644 --- a/build.third_step3.gradle +++ b/build.third_step3.gradle @@ -25,8 +25,7 @@ sourceSets{ java{ srcDirs=[ "${srcDir}/fine-itext/src/main/java", - "${srcDir}/fine-jedis/src/main/java", - "${srcDir}/fine-jboss-logging/src/main/java" + "${srcDir}/fine-jedis/src/main/java" ] } } @@ -59,7 +58,7 @@ String essentialVersion = findProperty("essentialVersion") //指定依赖 dependencies{ compileOnly "com.fr.essential:fine-essential:${essentialVersion}" - compile fileTree(dir:"${srcDir}/fine-jboss-logging/lib",include:'**/*.jar') + //compile fileTree(dir:"${srcDir}/fine-jboss-logging/lib",include:'**/*.jar') compile fileTree(dir:"${srcDir}/build/libs/",include:'**/*.jar') compile fileTree(dir:System.getenv("JAVA_HOME"),include:"lib/tools.jar") compile group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1" @@ -85,8 +84,8 @@ task copyFiles(type:Copy,dependsOn:'compileJava'){ with dataContent.call("${srcDir}/fine-itext/src/main/resources") with dataContent.call("${srcDir}/fine-jedis/src/main/java") with dataContent.call("${srcDir}/fine-jedis/src/main/resources") - with dataContent.call("${srcDir}/fine-jboss-logging/src/main/java") - with dataContent.call("${srcDir}/fine-jboss-logging/src/main/resources") + //with dataContent.call("${srcDir}/fine-jboss-logging/src/main/java") + //with dataContent.call("${srcDir}/fine-jboss-logging/src/main/resources") into "${classesDir}" } } diff --git a/fine-classmate/.gitignore b/fine-classmate/.gitignore deleted file mode 100644 index 5d453cd8b..000000000 --- a/fine-classmate/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.iml -.idea/ -.DS_Store -.project -.classpath -*.gradle \ No newline at end of file diff --git a/fine-classmate/README.md b/fine-classmate/README.md deleted file mode 100644 index a8396408a..000000000 --- a/fine-classmate/README.md +++ /dev/null @@ -1,6 +0,0 @@ -# fine-classmate - -改包名的classmate(1.3.0),以下模块需要依赖该模块: - -- fine-hibernate - diff --git a/fine-classmate/pom.xml b/fine-classmate/pom.xml deleted file mode 100644 index 7acef86fe..000000000 --- a/fine-classmate/pom.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - 4.0.0 - - - com.fr.third - step1 - ${revision} - ../base-third-project/base-third-step1 - - - fine-classmate - ${revision} - - - \ No newline at end of file diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationConfiguration.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationConfiguration.java deleted file mode 100644 index bffd21384..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationConfiguration.java +++ /dev/null @@ -1,115 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.io.Serializable; -import java.lang.annotation.Annotation; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.util.ClassKey; - -/** - * Interface for object that determines handling of annotations in regards - * to inheritance, overrides. - */ -@SuppressWarnings("serial") -public abstract class AnnotationConfiguration implements Serializable -{ - /** - * Method called to figure out how to handle instances of specified annotation - * type when used as class annotation. - */ - public abstract AnnotationInclusion getInclusionForClass(Class annotationType); - - /** - * Method called to figure out how to handle instances of specified annotation - * type when used as constructor annotation. - *

- * Note that constructor annotations can never be inherited so this just determines - * between inclusion or non-inclusion. - */ - public abstract AnnotationInclusion getInclusionForConstructor(Class annotationType); - - /** - * Method called to figure out how to handle instances of specified annotation - * type when used as field annotation. - *

- * Note that field annotations can never be inherited so this just determines - * between inclusion or non-inclusion. - */ - public abstract AnnotationInclusion getInclusionForField(Class annotationType); - - /** - * Method called to figure out how to handle instances of specified annotation - * type when used as method annotation. - *

- * Note that method annotations can be inherited for member methods, but not for static - * methods; for static methods thereby this just determines between inclusion and - * non-inclusion. - */ - public abstract AnnotationInclusion getInclusionForMethod(Class annotationType); - - /** - * Method called to figure out how to handle instances of specified annotation - * type when used as parameter annotation. - *

- * Note that parameter annotations can be inherited for member methods, but not for static - * methods; for static methods thereby this just determines between inclusion and - * non-inclusion. - */ - public abstract AnnotationInclusion getInclusionForParameter(Class annotationType); - - /** - * Simple implementation that can be configured with default behavior - * for unknown annotations, as well as explicit behaviors for - * enumerated annotation types. Same default is used for both class and - * member method annotations (constructor, field and static method - * annotations are never inherited) - */ - public static class StdConfiguration extends AnnotationConfiguration implements Serializable - { - protected final AnnotationInclusion _defaultInclusion; - - protected final HashMap _inclusions = new HashMap(); - - public StdConfiguration(AnnotationInclusion defaultBehavior) - { - _defaultInclusion = defaultBehavior; - } - - @Override - public AnnotationInclusion getInclusionForClass(Class annotationType) { - return _inclusionFor(annotationType); - } - - @Override - public AnnotationInclusion getInclusionForConstructor(Class annotationType) { - return _inclusionFor(annotationType); - } - - @Override - public AnnotationInclusion getInclusionForField(Class annotationType) { - return getInclusionForClass(annotationType); - } - - @Override - public AnnotationInclusion getInclusionForMethod(Class annotationType) { - return getInclusionForClass(annotationType); - } - - @Override - public AnnotationInclusion getInclusionForParameter(Class annotationType) { - return getInclusionForClass(annotationType); - } - - public void setInclusion(Class annotationType, AnnotationInclusion incl) - { - _inclusions.put(new ClassKey(annotationType), incl); - } - - protected AnnotationInclusion _inclusionFor(Class annotationType) - { - ClassKey key = new ClassKey(annotationType); - AnnotationInclusion beh = _inclusions.get(key); - return (beh == null) ? _defaultInclusion : beh; - } - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationInclusion.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationInclusion.java deleted file mode 100644 index d8be03f3a..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationInclusion.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -/** - * Enumeration that defines different settings for handling behavior - * of individual annotations - */ -public enum AnnotationInclusion -{ - /** - * Value that indicates that annotation is to be ignored, not included - * in resolved bean information. - * Applicable to all member types. - */ - DONT_INCLUDE, - - /** - * Value that indicates that annotation is to be included in results, but - * only if directly associated with included member (or attached mix-in); - * will not inherit from supertypes. - * Applicable only to member methods; if used with other members will - * mean basic inclusion. - */ - INCLUDE_BUT_DONT_INHERIT, - - /** - * Value that indicates that annotation is to be included in results, and - * values from overridden members are inherited only if the annotation is - * marked with the {@link java.lang.annotation.Inherited} annotation. - * Applicable only to member methods; if used with other members will - * mean basic inclusion. - */ - INCLUDE_AND_INHERIT_IF_INHERITED, - - /** - * Value that indicates that annotation is to be included in results; and - * values from overridden members are also inherited if not overridden - * by members of subtypes. - * Note that inheritance only matters with member methods; for other types - * it just means "include". - */ - INCLUDE_AND_INHERIT - ; - -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationOverrides.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationOverrides.java deleted file mode 100644 index 74a0f6c7c..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/AnnotationOverrides.java +++ /dev/null @@ -1,100 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.io.Serializable; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.util.ClassKey; - -/** - * Interface for object that can provide mix-ins to override annotations. - */ -@SuppressWarnings("serial") -public abstract class AnnotationOverrides implements Serializable -{ - /* - /********************************************************************** - /* Public API - /********************************************************************** - */ - - /** - * Method called to find out which class(es) are to be used as source - * for annotations to mix in for given type. - * - * @return List of mix-in sources (starting with highest priority); - * can be null or empty list if no mix-ins are to be used. - */ - public List> mixInsFor(Class beanClass) { - return mixInsFor(new ClassKey(beanClass)); - } - - public abstract List> mixInsFor(ClassKey beanClass); - - /** - * Method for constructing builder for creating simple overrides provider - * that just uses direct assignments (target-to-override classes) - */ - public static StdBuilder builder() { - return new StdBuilder(); - } - - /* - /********************************************************************** - /* Helper types - /********************************************************************** - */ - - /** - * To make it easy to use simple override implementation (where overrides - * are direct and explicit), here is a build that allow constructing - * such override instance. - */ - public static class StdBuilder - { - protected final HashMap>> _targetsToOverrides = new HashMap>>(); - - public StdBuilder() { } - - public StdBuilder add(Class target, Class mixin) { - return add(new ClassKey(target), mixin); - } - - public StdBuilder add(ClassKey target, Class mixin) - { - List> mixins = _targetsToOverrides.get(target); - if (mixins == null) { - mixins = new ArrayList>(); - _targetsToOverrides.put(target, mixins); - } - mixins.add(mixin); - return this; - } - - /** - * Method that will construct a {@link AnnotationOverrides} instance using - * mappings that have been added using this builder - */ - public AnnotationOverrides build() { - return new StdImpl(_targetsToOverrides); - } - } - - /** - * Simple implementation configured with explicit associations with - * target class as key, and overrides as ordered list of classes - * (with first entry having precedence over later ones). - */ - public static class StdImpl extends AnnotationOverrides - { - protected final HashMap>> _targetsToOverrides; - - public StdImpl(HashMap>> overrides) { - _targetsToOverrides = new HashMap>>(overrides); - } - - @Override - public List> mixInsFor(ClassKey target) { - return _targetsToOverrides.get(target); - } - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Annotations.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Annotations.java deleted file mode 100644 index 3a5261ccf..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Annotations.java +++ /dev/null @@ -1,132 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.io.Serializable; -import java.lang.annotation.Annotation; -import java.util.*; - -/** - * Container class used for storing set of annotations resolved for types (classes) - * as members (methods, fields, constructors). - * - * @author tatu - */ -@SuppressWarnings("serial") -public class Annotations implements Serializable, Iterable -{ - private final Annotation[] NO_ANNOTATIONS = new Annotation[0]; - - protected LinkedHashMap,Annotation> _annotations; - - /* - /********************************************************************** - /* Life-cycle - /********************************************************************** - */ - - public Annotations() { } - - /** - * Method for adding specified annotation, overriding existing value - * for the annotation type. - */ - public void add(Annotation override) - { - if (_annotations == null) { - _annotations = new LinkedHashMap,Annotation>(); - } - _annotations.put(override.annotationType(), override); - } - - /** - * Method for adding all annotations from specified set, as overrides - * to annotations this set has - */ - public void addAll(Annotations overrides) - { - if (_annotations == null) { - _annotations = new LinkedHashMap,Annotation>(); - } - for (Annotation override : overrides._annotations.values()) { - _annotations.put(override.annotationType(), override); - } - } - - /** - * Method for adding specified annotation if and only if no value - * exists for the annotation type. - */ - public void addAsDefault(Annotation defValue) - { - Class type = defValue.annotationType(); - if (_annotations == null) { - _annotations = new LinkedHashMap,Annotation>(); - _annotations.put(type, defValue); - } else if (!_annotations.containsKey(type)) { - _annotations.put(type, defValue); - } - } - - /* - /********************************************************************** - /* Accessors - /********************************************************************** - */ - - @Override - public Iterator iterator() - { - if (_annotations == null) { - _annotations = new LinkedHashMap,Annotation>(); - } - return _annotations.values().iterator(); - } - - public int size() { - return (_annotations == null) ? 0 : _annotations.size(); - } - - @SuppressWarnings("unchecked") - public A get(Class cls) - { - if (_annotations == null) { - return null; - } - return (A) _annotations.get(cls); - } - - /** - * @since 1.1.1 - */ - public Annotation[] asArray() { - if (_annotations == null || _annotations.isEmpty()) { - return NO_ANNOTATIONS; - } - return _annotations.values().toArray(new Annotation[_annotations.size()]); - } - - /** - * @since 1.1.1 - */ - public List asList() { - if (_annotations == null || _annotations.isEmpty()) { - return Collections.emptyList(); - } - List l = new ArrayList(_annotations.size()); - l.addAll(_annotations.values()); - return l; - } - - /* - /********************************************************************** - /* Standard method overrides - /********************************************************************** - */ - - @Override public String toString() - { - if (_annotations == null) { - return "[null]"; - } - return _annotations.toString(); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Filter.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Filter.java deleted file mode 100644 index 721cd26bb..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/Filter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -/** - * Interface that defines API for basic filtering objects, used to prune set - * of things to include in result sets like flattened member lists. - */ -public interface Filter -{ - public boolean include(T element); -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/GenericType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/GenericType.java deleted file mode 100644 index a2aae0db1..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/GenericType.java +++ /dev/null @@ -1,25 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.io.Serializable; - -/** - * This class is used to pass full generics type information, and - * avoid problems with type erasure (that basically removes most - * usable type references from runtime Class objects). - * It is based on ideas from - * http://gafter.blogspot.com/2006/12/super-type-tokens.html, - *

- * Usage is by sub-classing: here is one way to instantiate reference - * to generic type List<Integer>: - *

- *  GenericType type = new GenericType<List<Integer>>() { };
- *
- * which can be passed to methods that accept GenericReference. - */ -@SuppressWarnings("serial") -public abstract class GenericType - implements Serializable, java.lang.reflect.Type -{ - protected GenericType() { } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/MemberResolver.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/MemberResolver.java deleted file mode 100644 index 9fedb3cc6..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/MemberResolver.java +++ /dev/null @@ -1,238 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.io.Serializable; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.members.RawField; -import com.fr.third.com.fasterxml.classmate.util.ClassKey; -import com.fr.third.com.fasterxml.classmate.members.HierarchicType; -import com.fr.third.com.fasterxml.classmate.members.RawConstructor; -import com.fr.third.com.fasterxml.classmate.members.RawMethod; - -/** - * Builder class used to completely resolve members (fields, methods, - * constructors) of {@link ResolvedType}s (generics-aware classes). - */ -@SuppressWarnings("serial") -public class MemberResolver implements Serializable -{ - - /** - * Type resolved needed for resolving types of member objects - * (method argument and return; field types; constructor argument types) - */ - protected final TypeResolver _typeResolver; - - /* - /********************************************************************** - /* Modifiable configuration - /********************************************************************** - */ - - /** - * Configuration setting that determines whether members from - * {@link java.lang.Object} are included or not; by default - * false meaning that they are not. - */ - protected boolean _cfgIncludeLangObject; - - /** - * Filter used for determining whether given - * field (static or member) - * is to be included in aggregation of all - * fields. - */ - protected Filter _fieldFilter; - - /** - * Filter used for determining whether given - * method (static or member) - * is to be included in aggregation of all - * methods. - */ - protected Filter _methodFilter; - - /** - * Filter used for determining whether given - * constructor - * is to be included in aggregation of all - * constructors. - */ - protected Filter _constructorFilter; - - /* - /********************************************************************** - /* Life cycle (construct and config) - /********************************************************************** - */ - - /** - * Constructor for resolver that does not include java.lang.Object - * in type hierarchy - */ - public MemberResolver(TypeResolver typeResolver) - { - _typeResolver = typeResolver; - } - - /** - * Configuration method for specifying whether members of java.lang.Object - * are to be included in resolution; if false, no members from {@link java.lang.Object} - * are to be included; if true, will be included. - */ - public MemberResolver setIncludeLangObject(boolean state) { - _cfgIncludeLangObject = state; - return this; - } - - public MemberResolver setFieldFilter(Filter f) { - _fieldFilter = f; - return this; - } - - public MemberResolver setMethodFilter(Filter f) { - _methodFilter = f; - return this; - } - - public MemberResolver setConstructorFilter(Filter f) { - _constructorFilter = f; - return this; - } - - /* - /********************************************************************** - /* Public API - /********************************************************************** - */ - - /** - * Method for constructing hierarchy object needed to fully resolve - * member information, including basic type flattening as well as - * addition of mix-in types in appropriate positions. - * - * @param mainType Resolved type that is the starting point (i.e. the leaf class) - * for member resolution. - * @param annotationConfig Configuration of annotation types; which ones to include, how to inherit - * @param annotationOverrides Definitions of annotation overrides to use, if any (may be null) - */ - public ResolvedTypeWithMembers resolve(final ResolvedType mainType, - AnnotationConfiguration annotationConfig, - AnnotationOverrides annotationOverrides) - { - // First: flatten basic type hierarchy (highest to lowest precedence) - HashSet seenTypes = new HashSet(); - ArrayList types = new ArrayList(); - _gatherTypes(mainType, seenTypes, types); - - // Second step: inject mix-ins (keeping order from highest to lowest) - HierarchicType[] htypes; - HierarchicType mainHierarchicType = null; - - // Third step: add mix-ins (if any), reverse order (lowest to highest precedence) - if (annotationOverrides == null) { // just create hierarchic instances: - int len = types.size(); - htypes = new HierarchicType[len]; - for (int i = 0; i < len; ++i) { - // false -> not a mix-in - htypes[i] = new HierarchicType(types.get(i), false, i); - } - mainHierarchicType = htypes[0]; - } else { // need to add mix-ins, reorder - ArrayList typesWithMixins = new ArrayList(); - for (ResolvedType type : types) { - // First add mix-ins (which override type itself) - List> m = annotationOverrides.mixInsFor(type.getErasedType()); - if (m != null) { - for (Class mixinClass : m) { - _addOverrides(typesWithMixins, seenTypes, mixinClass); - } - } - - // Then actual type: - HierarchicType ht = new HierarchicType(type, false, typesWithMixins.size()); - if (mainHierarchicType == null) { - mainHierarchicType = ht; - } - typesWithMixins.add(ht); - } - htypes = typesWithMixins.toArray(new HierarchicType[typesWithMixins.size()]); - } - // And that's about all we need to do; rest computed lazily - return new ResolvedTypeWithMembers(_typeResolver, annotationConfig, mainHierarchicType, htypes, - _constructorFilter, _fieldFilter, _methodFilter); - } - - private void _addOverrides(List typesWithOverrides, Set seenTypes, Class override) - { - ClassKey key = new ClassKey(override); - if (!seenTypes.contains(key)) { - seenTypes.add(key); - ResolvedType resolvedOverride = _typeResolver.resolve(override); - typesWithOverrides.add(new HierarchicType(resolvedOverride, true, typesWithOverrides.size())); - for (ResolvedType r : resolvedOverride.getImplementedInterfaces()) { // interfaces? - _addOverrides(typesWithOverrides, seenTypes, r); - } - ResolvedType superClass = resolvedOverride.getParentClass(); - _addOverrides(typesWithOverrides, seenTypes, superClass); - } - } - - private void _addOverrides(List typesWithOverrides, Set seenTypes, ResolvedType override) - { - if (override == null) return; - // first: may need to exclude Object.class: - Class raw = override.getErasedType(); - if (!_cfgIncludeLangObject && Object.class == raw) return; - ClassKey key = new ClassKey(raw); - if (!seenTypes.contains(key)) { - seenTypes.add(key); - typesWithOverrides.add(new HierarchicType(override, true, typesWithOverrides.size())); - for (ResolvedType r : override.getImplementedInterfaces()) { // interfaces? - _addOverrides(typesWithOverrides, seenTypes, r); - } - ResolvedType superClass = override.getParentClass(); - if (superClass != null) { - _addOverrides(typesWithOverrides, seenTypes, superClass); - } - } - } - - /* - /********************************************************************** - /* Internal methods - /********************************************************************** - */ - - protected void _gatherTypes(ResolvedType currentType, Set seenTypes, List types) - { - // may get called with null if no parent type - if (currentType == null) { - return; - } - Class raw = currentType.getErasedType(); - // Also, don't include Object.class unless that's ok - if (!_cfgIncludeLangObject && raw == Object.class) { - return; - } - // Finally, only include first instance of an interface, so: - ClassKey key = new ClassKey(currentType.getErasedType()); - if (seenTypes.contains(key)) { - return; - } - // If all good so far, append - seenTypes.add(key); - types.add(currentType); - /* and check supertypes; starting with interfaces. Why interfaces? - * So that "highest" interfaces get priority; otherwise we'd recurse - * super-class stack and actually start with the bottom. Usually makes - * little difference, but in cases where it does this seems like the - * correct order. - */ - for (ResolvedType t : currentType.getImplementedInterfaces()) { - _gatherTypes(t, seenTypes, types); - } - // and then superclass - _gatherTypes(currentType.getParentClass(), seenTypes, types); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedType.java deleted file mode 100644 index 31196dbe1..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedType.java +++ /dev/null @@ -1,403 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import com.fr.third.com.fasterxml.classmate.members.RawConstructor; -import com.fr.third.com.fasterxml.classmate.members.RawField; -import com.fr.third.com.fasterxml.classmate.members.RawMethod; - -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; -import java.lang.reflect.Type; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -public abstract class ResolvedType - implements Type -{ - public final static ResolvedType[] NO_TYPES = new ResolvedType[0]; - - protected final static RawConstructor[] NO_CONSTRUCTORS = new RawConstructor[0]; - protected final static RawField[] NO_FIELDS = new RawField[0]; - protected final static RawMethod[] NO_METHODS = new RawMethod[0]; - - protected final Class _erasedType; - - /** - * Type bindings active when resolving members (methods, fields, - * constructors) of this type - */ - protected final TypeBindings _typeBindings; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - protected ResolvedType(Class cls, TypeBindings bindings) - { - _erasedType = cls; - _typeBindings = (bindings == null) ? TypeBindings.emptyBindings() : bindings; - } - - /** - * Method that can be used to check if call to {@link TypeResolver#resolveSubtype(ResolvedType, Class)} - * may ever succeed; if false, it will fail with an exception, if true, it may succeed. - */ - public abstract boolean canCreateSubtypes(); - - /** - * Method that can be used to check if call to {@link TypeResolver#resolveSubtype(ResolvedType, Class)} - * will succeed for specific type; if false, it will fail with an exception; if tru it - * will succeed. - */ - public final boolean canCreateSubtype(Class subtype) { - return canCreateSubtypes() && _erasedType.isAssignableFrom(subtype); - } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - /** - * Returns type-erased Class that this resolved type has. - */ - public Class getErasedType() { return _erasedType; } - - /** - * Returns parent class of this type, if it has one; primitive types - * and interfaces have no parent class, nor does Object type - * {@link java.lang.Object}. - * Also, placeholders for cyclic (recursive) types return null for - * this method. - */ - public abstract ResolvedType getParentClass(); - - /** - * Accessor that must be used to find out actual type in - * case of "self-reference"; case where type refers - * recursive to itself (like, T implements Comparable<T>). - * For all other types returns null but for self-references "real" type. - * Separate accessor is provided to avoid accidental infinite loops. - */ - public abstract ResolvedType getSelfReferencedType(); - - /** - * Method that can be used to access element type of array types; will return - * null for non-array types, and non-null type for array types. - */ - public abstract ResolvedType getArrayElementType(); - - /** - * Returns ordered list of interfaces (in declaration order) that this type - * implements. - * - * @return List of interfaces this type implements, if any; empty list if none - */ - public abstract List getImplementedInterfaces(); - - /** - * Returns list of generic type declarations for this type, in order they - * are declared in class description. - */ - public List getTypeParameters() { - return _typeBindings.getTypeParameters(); - } - - /** - * Method for accessing bindings of type variables to resolved types in context - * of this type. It has same number of entries as return List of - * {@link #getTypeParameters}, accessible using declared name to which they - * bind; for example, {@link java.util.Map} has 2 type bindings; one for - * key type (name "K", from Map.java) and one for value type - * (name "V", from Map.java). - */ - public TypeBindings getTypeBindings() { return _typeBindings; } - - /** - * Method that will try to find type parameterization this type - * has for specified super type - * - * @return List of type parameters for specified supertype (which may - * be empty, if supertype is not a parametric type); null if specified - * type is not a super type of this type - */ - public List typeParametersFor(Class erasedSupertype) - { - ResolvedType type = findSupertype(erasedSupertype); - if (type != null) { - return type.getTypeParameters(); - } - // nope; doesn't look like we extend or implement super type in question - return null; - } - - /** - * Method for finding super type of this type that has specified type - * erased signature. If supertype is an interface which is implemented - * using multiple inheritance paths, preference is given to interfaces - * implemented "highest up the stack" (directly implemented interfaces - * over interfaces superclass implements). - */ - public ResolvedType findSupertype(Class erasedSupertype) - { - if (erasedSupertype == _erasedType) { - return this; - } - // Check super interfaces first: - if (erasedSupertype.isInterface()) { - for (ResolvedType it : getImplementedInterfaces()) { - ResolvedType type = it.findSupertype(erasedSupertype); - if (type != null) { - return type; - } - } - } - // and if not found, super class and its supertypes - ResolvedType pc = getParentClass(); - if (pc != null) { - ResolvedType type = pc.findSupertype(erasedSupertype); - if (type != null) { - return type; - } - } - // nope; doesn't look like we extend or implement super type in question - return null; - } - - /* - /********************************************************************** - /* Accessors for simple properties - /********************************************************************** - */ - - public abstract boolean isInterface(); - public final boolean isConcrete() { return !isAbstract(); } - public abstract boolean isAbstract(); - - /** - * Method that indicates whether this type is an array type. - */ - public abstract boolean isArray(); - - /** - * Method that indicates whether this type is one of small number of primitive - * Java types; not including array types of primitive types but just basic - * primitive types. - */ - public abstract boolean isPrimitive(); - - public final boolean isInstanceOf(Class type) { - return type.isAssignableFrom(_erasedType); - } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - public List getConstructors() { return Collections.emptyList(); } - public List getMemberFields() { return Collections.emptyList(); } - public List getMemberMethods() { return Collections.emptyList(); } - public List getStaticFields() { return Collections.emptyList(); } - public List getStaticMethods() { return Collections.emptyList(); } - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - /** - * Method that returns full generic signature of the type; suitable - * as signature for things like ASM package. - */ - public String getSignature() { - StringBuilder sb = new StringBuilder(); - return appendSignature(sb).toString(); - } - - /** - * Method that returns type erased signature of the type; suitable - * as non-generic signature some packages need - */ - public String getErasedSignature() { - StringBuilder sb = new StringBuilder(); - return appendErasedSignature(sb).toString(); - } - - /** - * Human-readable full description of type, which includes specification - * of super types (in brief format) - */ - public String getFullDescription() { - StringBuilder sb = new StringBuilder(); - return appendFullDescription(sb).toString(); - } - - /** - * Human-readable brief description of type, which does not include - * information about super types. - */ - public String getBriefDescription() { - StringBuilder sb = new StringBuilder(); - return appendBriefDescription(sb).toString(); - } - - public abstract StringBuilder appendBriefDescription(StringBuilder sb); - public abstract StringBuilder appendFullDescription(StringBuilder sb); - public abstract StringBuilder appendSignature(StringBuilder sb); - public abstract StringBuilder appendErasedSignature(StringBuilder sb); - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public String toString() { - return getBriefDescription(); - } - - @Override public int hashCode() { - return _erasedType.getName().hashCode() + _typeBindings.hashCode(); - } - - @Override public boolean equals(Object o) - { - if (o == this) return true; - // sub-types must be same: - if (o == null || o.getClass() != getClass()) return false; - // Should be possible to actually implement here... - ResolvedType other = (ResolvedType) o; - if (other._erasedType != _erasedType) { - return false; - } - // and type bindings must match as well - return _typeBindings.equals(other._typeBindings); - } - - /* - /********************************************************************** - /* Helper methods for sub-classes; string construction - /********************************************************************** - */ - - protected StringBuilder _appendClassSignature(StringBuilder sb) - { - sb.append('L'); - sb = _appendClassName(sb); - int count = _typeBindings.size(); - if (count > 0) { - sb.append('<'); - for (int i = 0; i < count; ++i) { - sb = _typeBindings.getBoundType(i).appendErasedSignature(sb); - } - sb.append('>'); - } - sb.append(';'); - return sb; - } - - protected StringBuilder _appendErasedClassSignature(StringBuilder sb) - { - sb.append('L'); - sb = _appendClassName(sb); - sb.append(';'); - return sb; - } - - protected StringBuilder _appendClassDescription(StringBuilder sb) - { - sb.append(_erasedType.getName()); - int count = _typeBindings.size(); - if (count > 0) { - sb.append('<'); - for (int i = 0; i < count; ++i) { - if (i > 0) { - sb.append(','); - } - sb = _typeBindings.getBoundType(i).appendBriefDescription(sb); - } - sb.append('>'); - } - return sb; - } - - protected StringBuilder _appendClassName(StringBuilder sb) - { - String name = _erasedType.getName(); - for (int i = 0, len = name.length(); i < len; ++i) { - char c = name.charAt(i); - if (c == '.') c = '/'; - sb.append(c); - } - return sb; - } - - /* - /********************************************************************** - /* Helper methods for sub-classes; gathering members - /********************************************************************** - */ - - /** - * @param statics Whether to return static methods (true) or member methods (false) - */ - protected RawField[] _getFields(boolean statics) - { - ArrayList fields = new ArrayList(); - for (Field f : _erasedType.getDeclaredFields()) { - // Only skip synthetic fields, which should not really be exposed - if (!f.isSynthetic()) { - if (Modifier.isStatic(f.getModifiers()) == statics) { - fields.add(new RawField(this, f)); - } - } - } - if (fields.isEmpty()) { - return NO_FIELDS; - } - return fields.toArray(new RawField[fields.size()]); - } - - /** - * @param statics Whether to return static methods (true) or member methods (false) - */ - protected RawMethod[] _getMethods(boolean statics) - { - ArrayList methods = new ArrayList(); - for (Method m : _erasedType.getDeclaredMethods()) { - // Only skip synthetic fields, which should not really be exposed - if (!m.isSynthetic()) { - if (Modifier.isStatic(m.getModifiers()) == statics) { - methods.add(new RawMethod(this, m)); - } - } - } - if (methods.isEmpty()) { - return NO_METHODS; - } - return methods.toArray(new RawMethod[methods.size()]); - } - - protected RawConstructor[] _getConstructors() - { - ArrayList ctors = new ArrayList(); - for (Constructor c : _erasedType.getDeclaredConstructors()) { - // Only skip synthetic fields, which should not really be exposed - if (!c.isSynthetic()) { - ctors.add(new RawConstructor(this, c)); - } - } - if (ctors.isEmpty()) { - return NO_CONSTRUCTORS; - } - return ctors.toArray(new RawConstructor[ctors.size()]); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedTypeWithMembers.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedTypeWithMembers.java deleted file mode 100644 index fbfac6cc1..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/ResolvedTypeWithMembers.java +++ /dev/null @@ -1,721 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.lang.annotation.Annotation; -import java.lang.annotation.Inherited; -import java.lang.reflect.Constructor; -import java.lang.reflect.Field; -import java.lang.reflect.Method; -import java.lang.reflect.Type; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.members.HierarchicType; -import com.fr.third.com.fasterxml.classmate.members.RawConstructor; -import com.fr.third.com.fasterxml.classmate.members.RawField; -import com.fr.third.com.fasterxml.classmate.members.RawMethod; -import com.fr.third.com.fasterxml.classmate.members.ResolvedConstructor; -import com.fr.third.com.fasterxml.classmate.members.ResolvedField; -import com.fr.third.com.fasterxml.classmate.members.ResolvedMethod; -import com.fr.third.com.fasterxml.classmate.util.MethodKey; - -/** - * Class that contains information about fully resolved members of a - * type; resolution meaning that masking is handled for methods, and - * all inheritable annotations are flattened using optional overrides - * as well ("mix-in annotations"). - * Instances are created by {@link MemberResolver}. - *

- * Note that instances are not thread-safe, as the expectation is that instances - * will not be shared (unlike raw members or resolved types) - */ -public class ResolvedTypeWithMembers -{ - private final static ResolvedType[] NO_RESOLVED_TYPES = new ResolvedType[0]; - - private final static ResolvedMethod[] NO_RESOLVED_METHODS = new ResolvedMethod[0]; - private final static ResolvedField[] NO_RESOLVED_FIELDS = new ResolvedField[0]; - private final static ResolvedConstructor[] NO_RESOLVED_CONSTRUCTORS = new ResolvedConstructor[0]; - - /** - * Default annotation configuration is to ignore all annotations types. - */ - protected final static AnnotationConfiguration DEFAULT_ANNOTATION_CONFIG - = new AnnotationConfiguration.StdConfiguration(AnnotationInclusion.DONT_INCLUDE); - - /** - * Need to be able to resolve member types still - */ - protected final TypeResolver _typeResolver; - - /** - * Handler for resolving annotation information - */ - protected final AnnotationHandler _annotationHandler; - - /** - * Leaf of the type hierarchy, i.e. type from which this hierarchy - * was generated. - */ - protected final HierarchicType _mainType; - - /** - * All types that hierarchy contains, in order of increasing precedence - * (that is, later entries override members of earlier members) - */ - protected final HierarchicType[] _types; - - /** - * Filter to use for selecting fields to include - */ - protected Filter _fieldFilter; - - /** - * Filter to use for selecting constructors to include - */ - protected Filter _constructorFilter; - - /** - * Filter to use for selecting methods to include - */ - protected Filter _methodFilter; - - /* - /********************************************************************** - /* Lazily constructed members - /********************************************************************** - */ - - protected ResolvedMethod[] _staticMethods = null; - - protected ResolvedField[] _staticFields = null; - - protected ResolvedMethod[] _memberMethods = null; - - protected ResolvedField[] _memberFields = null; - - protected ResolvedConstructor[] _constructors = null; - - /* - /********************************************************************** - /* Life cycle at this point - /********************************************************************** - */ - - public ResolvedTypeWithMembers(TypeResolver typeResolver, AnnotationConfiguration annotationConfig, - HierarchicType mainType, HierarchicType[] types, - Filter constructorFilter, Filter fieldFilter, Filter methodFilter) - { - _typeResolver = typeResolver; - _mainType = mainType; - _types = types; - if (annotationConfig == null) { - annotationConfig = DEFAULT_ANNOTATION_CONFIG; - } - _annotationHandler = new AnnotationHandler(annotationConfig); - _constructorFilter = constructorFilter; - _fieldFilter = fieldFilter; - _methodFilter = methodFilter; - } - - /* - /********************************************************************** - /* Public API, access to component types - /********************************************************************** - */ - - public int size() { return _types.length; } - - /** - * Accessor for getting full type hierarchy as priority-ordered list, from - * the lowest precedence to highest precedence (main type, its mix-in overrides) - */ - public List allTypesAndOverrides() { - return Arrays.asList(_types); - } - - /** - * Accessor for getting subset of type hierarchy which only contains main type - * and possible overrides (mix-ins) it has, but not supertypes or their overrides. - */ - public List mainTypeAndOverrides() - { - List l = Arrays.asList(_types); - int end = _mainType.getPriority() + 1; - if (end < l.size()) { - l = l.subList(0, end); - } - return l; - } - - /** - * Accessor for finding just overrides for the main type (if any). - */ - public List overridesOnly() - { - int index = _mainType.getPriority(); - if (index == 0) { - return Collections.emptyList(); - } - List l = Arrays.asList(_types); - return l.subList(0, index); - } - - /* - /********************************************************************** - /* Public API, actual resolution of members - /********************************************************************** - */ - - /** - * Method for finding all static fields of the main type (except for ones - * possibly filtered out by filter) and applying annotation overrides, if any, - * to annotations. - * - * @since 1.2.0 - */ - public ResolvedField[] getStaticFields() - { - if (_staticFields == null) { - _staticFields = resolveStaticFields(); - } - return _staticFields; - } - - /** - * Method for finding all static methods of the main type (except for ones - * possibly filtered out by filter) and applying annotation overrides, if any, - * to annotations. - */ - public ResolvedMethod[] getStaticMethods() - { - if (_staticMethods == null) { - _staticMethods = resolveStaticMethods(); - } - return _staticMethods; - } - - public ResolvedField[] getMemberFields() - { - if (_memberFields == null) { - _memberFields = resolveMemberFields(); - } - return _memberFields; - } - - public ResolvedMethod[] getMemberMethods() - { - if (_memberMethods == null) { - _memberMethods = resolveMemberMethods(); - } - return _memberMethods; - } - - public ResolvedConstructor[] getConstructors() - { - if (_constructors == null) { - _constructors = resolveConstructors(); - } - return _constructors; - } - - /* - /********************************************************************** - /* Internal methods: actual resolution - /********************************************************************** - */ - - /** - * Method that will actually resolve full information (types, annotations) - * for constructors of the main type. - */ - protected ResolvedConstructor[] resolveConstructors() - { - // First get static methods for main type, filter - LinkedHashMap constructors = new LinkedHashMap(); - for (RawConstructor constructor : _mainType.getType().getConstructors()) { - // no filter for constructors (yet?) - if (_constructorFilter == null || _constructorFilter.include(constructor)) { - constructors.put(constructor.createKey(), resolveConstructor(constructor)); - } - } - // then apply overrides (mix-ins): - for (HierarchicType type : overridesOnly()) { - for (RawConstructor raw : type.getType().getConstructors()) { - ResolvedConstructor constructor = constructors.get(raw.createKey()); - // must override something, otherwise to ignore - if (constructor != null) { - for (Annotation ann : raw.getAnnotations()) { - if (_annotationHandler.includeMethodAnnotation(ann)) { - constructor.applyOverride(ann); - } - } - - // and parameter annotations - Annotation[][] params = raw.getRawMember().getParameterAnnotations(); - for (int i = 0; i < params.length; i++) { - for (Annotation annotation : params[i]) { - if (_annotationHandler.includeParameterAnnotation(annotation)) { - constructor.applyParamOverride(i, annotation); - } - } - } - } - } - } - if (constructors.size() == 0) { - return NO_RESOLVED_CONSTRUCTORS; - } - return constructors.values().toArray(new ResolvedConstructor[constructors.size()]); - } - - /** - * Method for fully resolving field definitions and associated annotations. - * Neither field definitions nor associated annotations inherit, but we may - * still need to add annotation overrides, as well as filter out filters - * and annotations that caller is not interested in. - */ - protected ResolvedField[] resolveMemberFields() - { - LinkedHashMap fields = new LinkedHashMap(); - - /* Fields need different handling: must start from bottom; and annotations only get added - * as overrides, never as defaults. And sub-classes fully mask fields. This makes - * handling bit simpler than that of member methods. - */ - for (int typeIndex = _types.length; --typeIndex >= 0; ) { - HierarchicType thisType = _types[typeIndex]; - // If it's just a mix-in, add annotations as overrides - if (thisType.isMixin()) { - for (RawField raw : thisType.getType().getMemberFields()) { - if ((_fieldFilter != null) && !_fieldFilter.include(raw)) { - continue; - } - ResolvedField field = fields.get(raw.getName()); - if (field != null) { - for (Annotation ann : raw.getAnnotations()) { - if (_annotationHandler.includeMethodAnnotation(ann)) { - field.applyOverride(ann); - } - } - } - } - } else { // If actual type, add fields, masking whatever might have existed before: - for (RawField field : thisType.getType().getMemberFields()) { - if ((_fieldFilter != null) && !_fieldFilter.include(field)) { - continue; - } - fields.put(field.getName(), resolveField(field)); - } - } - } - // and that's it? - if (fields.size() == 0) { - return NO_RESOLVED_FIELDS; - } - return fields.values().toArray(new ResolvedField[fields.size()]); - } - - protected ResolvedMethod[] resolveMemberMethods() - { - LinkedHashMap methods = new LinkedHashMap(); - LinkedHashMap overrides = new LinkedHashMap(); - LinkedHashMap paramOverrides = new LinkedHashMap(); - - /* Member methods are handled from top to bottom; and annotations are tracked - * alongside (for overrides), as well as "merged down" for inheritable - * annotations. - */ - for (HierarchicType type : allTypesAndOverrides()) { - for (RawMethod method : type.getType().getMemberMethods()) { - // First: ignore methods caller is not interested - if (_methodFilter != null && !_methodFilter.include(method)) { - continue; - } - - MethodKey key = method.createKey(); - ResolvedMethod old = methods.get(key); - - // Ok, now, mix-ins only contribute annotations; whereas 'real' types methods - if (type.isMixin()) { // mix-in: only get annotations - for (Annotation ann : method.getAnnotations()) { - // If already have a method, must be inheritable to include - if (old != null) { - if (!methodCanInherit(ann)) { - continue; - } - // and if so, apply as default (i.e. do not override) - old.applyDefault(ann); - } else { // If no method, need to add to annotation override map - Annotations oldAnn = overrides.get(key); - if (oldAnn == null) { - oldAnn = new Annotations(); - oldAnn.add(ann); - overrides.put(key, oldAnn); - } else { - oldAnn.addAsDefault(ann); - } - } - } - - // override argument annotations - final Annotation[][] argAnnotations = method.getRawMember().getParameterAnnotations(); - if (old == null) { // no method (yet), add argument annotations to override map - Annotations[] oldParamAnns = paramOverrides.get(key); - if (oldParamAnns == null) { // no existing argument annotations for method - oldParamAnns = new Annotations[argAnnotations.length]; - for (int i = 0; i < argAnnotations.length; i++) { - oldParamAnns[i] = new Annotations(); - for (final Annotation annotation : argAnnotations[i]) { - if (parameterCanInherit(annotation)) { - oldParamAnns[i].add(annotation); - } - } - } - paramOverrides.put(key, oldParamAnns); - } else { - for (int i = 0; i < argAnnotations.length; i++) { - for (final Annotation annotation : argAnnotations[i]) { - if (parameterCanInherit(annotation)) { - oldParamAnns[i].addAsDefault(annotation); - } - } - } - } - } else { // already have a method, apply argument annotations as defaults - for (int i = 0; i < argAnnotations.length; i++) { - for (final Annotation annotation : argAnnotations[i]) { - if (parameterCanInherit(annotation)) { - old.applyParamDefault(i, annotation); - } - } - } - } - } else { // "real" methods; add if not present, possibly add defaults as well - if (old == null) { // new one to add - ResolvedMethod newMethod = resolveMethod(method); - methods.put(key, newMethod); - // But we may also have annotation overrides, so: - Annotations overrideAnn = overrides.get(key); - if (overrideAnn != null) { - newMethod.applyOverrides(overrideAnn); - } - // and apply parameter annotation overrides - Annotations[] annotations = paramOverrides.get(key); - if (annotations != null) { - for (int i = 0; i < annotations.length; i++) { - newMethod.applyParamOverrides(i, annotations[i]); - } - } - } else { // method masked by something else? can only contribute annotations - for (Annotation ann : method.getAnnotations()) { - if (methodCanInherit(ann)) { - old.applyDefault(ann); - } - } - // and parameter annotations - final Annotation[][] parameterAnnotations = method.getRawMember().getParameterAnnotations(); - for (int i = 0; i < parameterAnnotations.length; i++) { - for (final Annotation annotation : parameterAnnotations[i]) { - if (parameterCanInherit(annotation)) { - old.applyParamDefault(i, annotation); - } - } - } - } - } - } - } - - if (methods.size() == 0) { - return NO_RESOLVED_METHODS; - } - return methods.values().toArray(new ResolvedMethod[methods.size()]); - } - - /** - * Method for fully resolving static field definitions and associated annotations. - * Neither field definitions nor associated annotations inherit, but we may - * still need to add annotation overrides, as well as filter out filters - * and annotations that caller is not interested in. - * - * @since 1.2.0 - */ - protected ResolvedField[] resolveStaticFields() - { - // First get static methods for main type, filter - LinkedHashMap fields = new LinkedHashMap(); - for (RawField field : _mainType.getType().getStaticFields()) { - if (_fieldFilter == null || _fieldFilter.include(field)) { - fields.put(field.getName(), resolveField(field)); - } - } - // then apply overrides (mix-ins): - for (HierarchicType type : overridesOnly()) { - for (RawField raw : type.getType().getStaticFields()) { - ResolvedField field = fields.get(raw.getName()); - // must override something, otherwise to ignore - if (field != null) { - for (Annotation ann : raw.getAnnotations()) { - if (_annotationHandler.includeFieldAnnotation(ann)) { - field.applyOverride(ann); - } - } - } - } - } - // and that's it? - if (fields.isEmpty()) { - return NO_RESOLVED_FIELDS; - } - return fields.values().toArray(new ResolvedField[ fields.size()]); - } - - /** - * Method that will actually resolve full information (types, annotations) - * for static methods, using configured filter. - */ - protected ResolvedMethod[] resolveStaticMethods() - { - // First get static methods for main type, filter - LinkedHashMap methods = new LinkedHashMap(); - for (RawMethod method : _mainType.getType().getStaticMethods()) { - if (_methodFilter == null || _methodFilter.include(method)) { - methods.put(method.createKey(), resolveMethod(method)); - } - } - // then apply overrides (mix-ins): - for (HierarchicType type : overridesOnly()) { - for (RawMethod raw : type.getType().getStaticMethods()) { - ResolvedMethod method = methods.get(raw.createKey()); - // must override something, otherwise to ignore - if (method != null) { - for (Annotation ann : raw.getAnnotations()) { - if (_annotationHandler.includeMethodAnnotation(ann)) { - method.applyOverride(ann); - } - } - } - } - } - if (methods.size() == 0) { - return NO_RESOLVED_METHODS; - } - return methods.values().toArray(new ResolvedMethod[methods.size()]); - } - - /* - /********************************************************************** - /* Helper methods - /********************************************************************** - */ - - /** - * Method for resolving individual constructor completely - */ - protected ResolvedConstructor resolveConstructor(RawConstructor raw) - { - final ResolvedType context = raw.getDeclaringType(); - final TypeBindings bindings = context.getTypeBindings(); - Constructor ctor = raw.getRawMember(); - Type[] rawTypes = ctor.getGenericParameterTypes(); - ResolvedType[] argTypes; - if (rawTypes == null || rawTypes.length == 0) { - argTypes = NO_RESOLVED_TYPES; - } else { - argTypes = new ResolvedType[rawTypes.length]; - for (int i = 0, len = rawTypes.length; i < len; ++i) { - argTypes[i] = _typeResolver.resolve(bindings, rawTypes[i]); - } - } - // And then annotations - Annotations anns = new Annotations(); - for (Annotation ann : ctor.getAnnotations()) { - if (_annotationHandler.includeConstructorAnnotation(ann)) { - anns.add(ann); - } - } - - ResolvedConstructor constructor = new ResolvedConstructor(context, anns, ctor, argTypes); - - // and parameter annotations - Annotation[][] annotations = ctor.getParameterAnnotations(); - for (int i = 0; i < argTypes.length; i++) { - for (Annotation ann : annotations[i]) { - constructor.applyParamOverride(i, ann); - } - } - - return constructor; - } - - /** - * Method for resolving individual field completely - */ - protected ResolvedField resolveField(RawField raw) - { - final ResolvedType context = raw.getDeclaringType(); - Field field = raw.getRawMember(); - ResolvedType type = _typeResolver.resolve(context.getTypeBindings(), field.getGenericType()); - // And then annotations - Annotations anns = new Annotations(); - for (Annotation ann : field.getAnnotations()) { - if (_annotationHandler.includeFieldAnnotation(ann)) { - anns.add(ann); - } - } - return new ResolvedField(context, anns, field, type); - } - - /** - * Method for resolving individual method completely - */ - protected ResolvedMethod resolveMethod(RawMethod raw) - { - final ResolvedType context = raw.getDeclaringType(); - final TypeBindings bindings = context.getTypeBindings(); - Method m = raw.getRawMember(); - Type rawType = m.getGenericReturnType(); - ResolvedType rt = (rawType == Void.TYPE) ? null : _typeResolver.resolve(bindings, rawType); - Type[] rawTypes = m.getGenericParameterTypes(); - ResolvedType[] argTypes; - if (rawTypes == null || rawTypes.length == 0) { - argTypes = NO_RESOLVED_TYPES; - } else { - argTypes = new ResolvedType[rawTypes.length]; - for (int i = 0, len = rawTypes.length; i < len; ++i) { - argTypes[i] = _typeResolver.resolve(bindings, rawTypes[i]); - } - } - // And then annotations - Annotations anns = new Annotations(); - for (Annotation ann : m.getAnnotations()) { - if (_annotationHandler.includeMethodAnnotation(ann)) { - anns.add(ann); - } - } - - ResolvedMethod method = new ResolvedMethod(context, anns, m, rt, argTypes); - - // and argument annotations - Annotation[][] annotations = m.getParameterAnnotations(); - for (int i = 0; i < argTypes.length; i++) { - for (Annotation ann : annotations[i]) { - method.applyParamOverride(i, ann); - } - } - return method; - } - - protected boolean methodCanInherit(Annotation annotation) { - AnnotationInclusion annotationInclusion = _annotationHandler.methodInclusion(annotation); - if (annotationInclusion == AnnotationInclusion.INCLUDE_AND_INHERIT_IF_INHERITED) { - return annotation.annotationType().isAnnotationPresent(Inherited.class); - } - return (annotationInclusion == AnnotationInclusion.INCLUDE_AND_INHERIT); - } - - protected boolean parameterCanInherit(Annotation annotation) { - AnnotationInclusion annotationInclusion = _annotationHandler.parameterInclusion(annotation); - if (annotationInclusion == AnnotationInclusion.INCLUDE_AND_INHERIT_IF_INHERITED) { - return annotation.annotationType().isAnnotationPresent(Inherited.class); - } - return (annotationInclusion == AnnotationInclusion.INCLUDE_AND_INHERIT); - } - - /* - /********************************************************************** - /* Helper types - /********************************************************************** - */ - - /** - * Helper class we use to reduce number of calls to {@link AnnotationConfiguration}; - * mostly because determination may be expensive. - */ - private final static class AnnotationHandler - { - private final AnnotationConfiguration _annotationConfig; - - private HashMap, AnnotationInclusion> _fieldInclusions; - private HashMap, AnnotationInclusion> _constructorInclusions; - private HashMap, AnnotationInclusion> _methodInclusions; - private HashMap, AnnotationInclusion> _parameterInclusions; - - public AnnotationHandler(AnnotationConfiguration annotationConfig) { - _annotationConfig = annotationConfig; - } - - public boolean includeConstructorAnnotation(Annotation ann) - { - Class annType = ann.annotationType(); - if (_constructorInclusions == null) { - _constructorInclusions = new HashMap, AnnotationInclusion>(); - } else { - AnnotationInclusion incl = _constructorInclusions.get(annType); - if (incl != null) { - return (incl != AnnotationInclusion.DONT_INCLUDE); - } - } - AnnotationInclusion incl = _annotationConfig.getInclusionForConstructor(annType); - _constructorInclusions.put(annType, incl); - return (incl != AnnotationInclusion.DONT_INCLUDE); - } - - public boolean includeFieldAnnotation(Annotation ann) - { - Class annType = ann.annotationType(); - if (_fieldInclusions == null) { - _fieldInclusions = new HashMap, AnnotationInclusion>(); - } else { - AnnotationInclusion incl = _fieldInclusions.get(annType); - if (incl != null) { - return (incl != AnnotationInclusion.DONT_INCLUDE); - } - } - AnnotationInclusion incl = _annotationConfig.getInclusionForField(annType); - _fieldInclusions.put(annType, incl); - return (incl != AnnotationInclusion.DONT_INCLUDE); - } - - public boolean includeMethodAnnotation(Annotation ann) - { - return methodInclusion(ann) != AnnotationInclusion.DONT_INCLUDE; - } - - public AnnotationInclusion methodInclusion(Annotation ann) - { - Class annType = ann.annotationType(); - if (_methodInclusions == null) { - _methodInclusions = new HashMap, AnnotationInclusion>(); - } else { - AnnotationInclusion incl = _methodInclusions.get(annType); - if (incl != null) { - return incl; - } - } - AnnotationInclusion incl = _annotationConfig.getInclusionForMethod(annType); - _methodInclusions.put(annType, incl); - return incl; - } - - public boolean includeParameterAnnotation(Annotation ann) - { - return parameterInclusion(ann) != AnnotationInclusion.DONT_INCLUDE; - } - - public AnnotationInclusion parameterInclusion(Annotation ann) - { - Class annType = ann.annotationType(); - if (_parameterInclusions == null) { - _parameterInclusions = new HashMap, AnnotationInclusion>(); - } else { - AnnotationInclusion incl = _parameterInclusions.get(annType); - if (incl != null) { - return incl; - } - } - AnnotationInclusion incl = _annotationConfig.getInclusionForParameter(annType); - _parameterInclusions.put(annType, incl); - return incl; - } - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeBindings.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeBindings.java deleted file mode 100644 index 700a70a42..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeBindings.java +++ /dev/null @@ -1,237 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.lang.reflect.TypeVariable; -import java.util.*; - -/** - * Helper class used for storing binding of local type variables to - * matching resolved types, in context of a single class. - */ -public final class TypeBindings -{ - private final static String[] NO_STRINGS = new String[0]; - - private final static ResolvedType[] NO_TYPES = new ResolvedType[0]; - - private final static TypeBindings EMPTY = new TypeBindings(NO_STRINGS, NO_TYPES, null); - - /** - * Array of type (type variable) names. - */ - private final String[] _names; - - /** - * Types matching names - */ - private final ResolvedType[] _types; - - /** - * Names of potentially unresolved type variables. - * - * @since 2.3 - */ - private final String[] _unboundVariables; - - private final int _hashCode; - - /* - /********************************************************************** - /* Construction - /********************************************************************** - */ - - private TypeBindings(String[] names, ResolvedType[] types, String[] uvars) - { - _names = (names == null) ? NO_STRINGS : names; - _types = (types == null) ? NO_TYPES : types; - if (_names.length != _types.length) { - throw new IllegalArgumentException("Mismatching names ("+_names.length+"), types ("+_types.length+")"); - } - int h = 1; - for (int i = 0, len = _types.length; i < len; ++i) { - h += _types[i].hashCode(); - } - _unboundVariables = uvars; - _hashCode = h; - } - - public static TypeBindings emptyBindings() { - return EMPTY; - } - - /** - * Factory method for constructing bindings for given class using specified type - * parameters. - */ - public static TypeBindings create(Class erasedType, List typeList) - { - ResolvedType[] types = (typeList == null || typeList.isEmpty()) ? - NO_TYPES : typeList.toArray(new ResolvedType[typeList.size()]); - return create(erasedType, types); - } - - public static TypeBindings create(Class erasedType, ResolvedType[] types) - { - if (types == null) { - types = NO_TYPES; - } - TypeVariable[] vars = erasedType.getTypeParameters(); - String[] names; - if (vars == null || vars.length == 0) { - names = NO_STRINGS; - } else { - int len = vars.length; - names = new String[len]; - for (int i = 0; i < len; ++i) { - names[i] = vars[i].getName(); - } - } - // Check here to give better error message - if (names.length != types.length) { - throw new IllegalArgumentException("Can not create TypeBinding for class "+erasedType.getName() - +" with "+types.length+" type parameter" - +((types.length == 1) ? "" : "s")+": class expects "+names.length); - } - return new TypeBindings(names, types, null); - } - - /** - * Method for creating an instance that has same bindings as this object, - * plus an indicator for additional type variable that may be unbound within - * this context; this is needed to resolve recursive self-references. - * - * @since 1.3 (renamed from "withAdditionalBinding" in 1.2) - */ - public TypeBindings withUnboundVariable(String name) - { - int len = (_unboundVariables == null) ? 0 : _unboundVariables.length; - String[] names = (len == 0) - ? new String[1] : Arrays.copyOf(_unboundVariables, len+1); - names[len] = name; - return new TypeBindings(_names, _types, names); - } - - /* - /********************************************************************** - /* Accessors - /********************************************************************** - */ - - /** - * Find type bound to specified name, if there is one; returns bound type if so, null if not. - */ - public ResolvedType findBoundType(String name) - { - for (int i = 0, len = _names.length; i < len; ++i) { - if (name.equals(_names[i])) { - return _types[i]; - } - } - return null; - } - - public boolean isEmpty() { - return (_types.length == 0); - } - - /** - * Returns number of bindings contained - */ - public int size() { - return _types.length; - } - - public String getBoundName(int index) - { - if (index < 0 || index >= _names.length) { - return null; - } - return _names[index]; - } - - public ResolvedType getBoundType(int index) - { - if (index < 0 || index >= _types.length) { - return null; - } - return _types[index]; - } - - /** - * Accessor for getting bound types in declaration order - */ - public List getTypeParameters() - { - if (_types.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_types); - } - - /** - * @since 2.3 - */ - public boolean hasUnbound(String name) { - if (_unboundVariables != null) { - for (int i = _unboundVariables.length; --i >= 0; ) { - if (name.equals(_unboundVariables[i])) { - return true; - } - } - } - return false; - } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public String toString() - { - if (_types.length == 0) { - return ""; - } - StringBuilder sb = new StringBuilder(); - sb.append('<'); - for (int i = 0, len = _types.length; i < len; ++i) { - if (i > 0) { - sb.append(','); - } - sb = _types[i].appendBriefDescription(sb); - } - sb.append('>'); - return sb.toString(); - } - - @Override public int hashCode() { return _hashCode; } - - @Override public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - TypeBindings other = (TypeBindings) o; - int len = _types.length; - if (len != other.size()) { - return false; - } - ResolvedType[] otherTypes = other._types; - for (int i = 0; i < len; ++i) { - if (!otherTypes[i].equals(_types[i])) { - return false; - } - } - return true; - } - - /* - /********************************************************************** - /* Package accessible methods - /********************************************************************** - */ - - protected ResolvedType[] typeParameterArray() { - return _types; - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeResolver.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeResolver.java deleted file mode 100644 index acaf9a9fd..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/TypeResolver.java +++ /dev/null @@ -1,552 +0,0 @@ -package com.fr.third.com.fasterxml.classmate; - -import java.io.Serializable; -import java.lang.reflect.*; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.util.ClassKey; -import com.fr.third.com.fasterxml.classmate.util.ClassStack; -import com.fr.third.com.fasterxml.classmate.util.ResolvedTypeCache; -import com.fr.third.com.fasterxml.classmate.types.ResolvedArrayType; -import com.fr.third.com.fasterxml.classmate.types.ResolvedInterfaceType; -import com.fr.third.com.fasterxml.classmate.types.ResolvedObjectType; -import com.fr.third.com.fasterxml.classmate.types.ResolvedPrimitiveType; -import com.fr.third.com.fasterxml.classmate.types.ResolvedRecursiveType; -import com.fr.third.com.fasterxml.classmate.types.TypePlaceHolder; - -/** - * Object that is used for resolving generic type information of a class - * so that it is accessible using simple API. Resolved types are also starting - * point for accessing resolved (generics aware) return and argument types - * of class members (methods, fields, constructors). - *

- * Note that resolver instances are stateful in that resolvers cache resolved - * types for efficiency. Since this is internal state and not directly visible - * to callers, access to state is fully synchronized so that access from - * multiple threads is safe. - */ -@SuppressWarnings("serial") -public class TypeResolver implements Serializable -{ - private final static ResolvedType[] NO_TYPES = new ResolvedType[0]; - - /* - /********************************************************************** - /* Pre-created instances - /********************************************************************** - */ - - /** - * We will also need to return "unknown" type for cases where type variable binding - * is not found ('raw' instances of generic types); easiest way is to - * pre-create type for java.lang.Object - */ - private final static ResolvedObjectType sJavaLangObject = - ResolvedObjectType.create(Object.class, null, null, null); - - /** - * Since number of primitive types is small, and they are frequently needed, - * let's actually pre-create them for efficient reuse. Same goes for limited number - * of other "standard" types... - */ - protected final static HashMap _primitiveTypes; - static { - _primitiveTypes = new HashMap(16); - for (ResolvedPrimitiveType type : ResolvedPrimitiveType.all()) { - _primitiveTypes.put(new ClassKey(type.getErasedType()), type); - } - // should we include "void"? might as well... - _primitiveTypes.put(new ClassKey(Void.TYPE), ResolvedPrimitiveType.voidType()); - // and at least java.lang.Object should be added too. - _primitiveTypes.put(new ClassKey(Object.class), sJavaLangObject); - // but most other types can be added dynamically - } - - /* - /********************************************************************** - /* Caching - /********************************************************************** - */ - - /** - * Simple cache of types resolved by this resolved; capped to last 200 resolved types. - * Caching works because type instances themselves are mostly immutable; - * and properly synchronized in cases where transient data (raw members) are - * accessed. - */ - protected final ResolvedTypeCache _resolvedTypes = new ResolvedTypeCache(200); - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - public TypeResolver() { } - - /* - /********************************************************************** - /* Factory methods, with explicit parameterization - /********************************************************************** - */ - - /** - * Factory method for resolving given base type - * using specified types as type parameters. - * Sample usage would be: - *

-     *  ResolvedType type = TypeResolver.resolve(List.class, Integer.class);
-     *
- * which would be equivalent to - *
-     *  ResolvedType type = TypeResolver.resolve(new GenericType<List<Integer>>() { });
-     *
- * Note that you can mix different types of type parameters, whether already - * resolved ({@link ResolvedType}), type-erased ({@link java.lang.Class}) or - * generic type reference ({@link GenericType}). - */ - public ResolvedType resolve(Type type, Type... typeParameters) - { - boolean noParams = (typeParameters == null || typeParameters.length == 0); - TypeBindings bindings; - Class rawBase; - - if (type instanceof Class) { - bindings = TypeBindings.emptyBindings(); - if (noParams) { - return _fromClass(null, (Class) type, bindings); - } - rawBase = (Class) type; - } else if (type instanceof GenericType) { - bindings = TypeBindings.emptyBindings(); - if (noParams) { - return _fromGenericType(null, (GenericType) type, bindings); - } - ResolvedType rt = _fromAny(null, type, bindings); - rawBase = rt.getErasedType(); - } else if (type instanceof ResolvedType) { - ResolvedType rt = (ResolvedType) type; - if (noParams) { - return rt; - } - bindings = rt.getTypeBindings(); - rawBase = rt.getErasedType(); - } else { - bindings = TypeBindings.emptyBindings(); - if (noParams) { - return resolve(bindings, type); - } - // Quite convoluted... but necessary to find Class underlying it all - ResolvedType rt = _fromAny(null, type, bindings); - rawBase = rt.getErasedType(); - } - - // Next: resolve type parameters - int len = typeParameters.length; - ResolvedType[] resolvedParams = new ResolvedType[len]; - for (int i = 0; i < len; ++i) { - resolvedParams[i] = _fromAny(null, typeParameters[i], bindings); - } - return _fromClass(null, rawBase, TypeBindings.create(rawBase, resolvedParams)); - } - - /** - * Factory method for constructing array type of given element type. - */ - public ResolvedArrayType arrayType(Type elementType) - { - ResolvedType resolvedElementType = resolve(TypeBindings.emptyBindings(), elementType); - // Arrays are cumbersome for some reason: - Object emptyArray = Array.newInstance(resolvedElementType.getErasedType(), 0); - // Should we try to use cache? It's bit tricky, so let's not bother yet - return new ResolvedArrayType(emptyArray.getClass(), TypeBindings.emptyBindings(), - resolvedElementType); - } - - /** - * Factory method for resolving specified Java {@link java.lang.reflect.Type}, given - * {@link TypeBindings} needed to resolve any type variables. - *

- * Use of this method is discouraged (use if and only if you really know what you - * are doing!); but if used, type bindings passed should come from {@link ResolvedType} - * instance of declaring class (or interface). - *

- * NOTE: order of arguments was reversed for 0.8, to avoid problems with - * overload varargs method. - */ - public ResolvedType resolve(TypeBindings typeBindings, Type jdkType) - { - return _fromAny(null, jdkType, typeBindings); - } - - /** - * Factory method for constructing sub-classing specified type; class specified - * as sub-class must be compatible according to basic Java inheritance rules - * (subtype must properly extend or implement specified supertype). - *

- * A typical use case here is to refine a generic type; for example, given - * that we have generic type like List<Integer>, but we want - * a more specific implementation type like - * class ArrayList but with same parameterization (here just Integer), - * we could achieve it by: - *

-     *  ResolvedType mapType = typeResolver.resolve(List.class, Integer.class);
-     *  ResolveType concreteMapType = typeResolver.resolveSubType(mapType, ArrayList.class);
-     *
- * (in this case, it would have been simpler to resolve directly; but in some - * cases we are handled supertype and want to refine it, in which case steps - * would be the same but separated by other code) - *

- * Note that this method will fail if extension can not succeed; either because - * this type is not extendable (sub-classable) -- which is true for primitive - * and array types -- or because given class is not a subtype of this type. - * To check whether subtyping could succeed, you can call - * {@link ResolvedType#canCreateSubtypes()} to see if supertype can ever - * be extended. - * - * @param supertype Type to subtype (extend) - * @param subtype Type-erased sub-class or sub-interface - * - * @return Resolved subtype - * - * @throws IllegalArgumentException If this type can be extended in general, but not into specified sub-class - * @throws UnsupportedOperationException If this type can not be sub-classed - */ - public ResolvedType resolveSubtype(ResolvedType supertype, Class subtype) - throws IllegalArgumentException, UnsupportedOperationException - { - // first: if it's a recursive reference, find out referred-to type - ResolvedType refType = supertype.getSelfReferencedType(); - if (refType != null) { - supertype = refType; - } - // Then, trivial check for case where subtype is supertype... - if (supertype.getErasedType() == subtype) { - return supertype; - } - - if (!supertype.canCreateSubtypes()) { - throw new UnsupportedOperationException("Can not subtype primitive or array types (type "+supertype.getFullDescription()+")"); - } - // In general, must be able to subtype as per JVM rules: - Class superclass = supertype.getErasedType(); - if (!superclass.isAssignableFrom(subtype)) { - throw new IllegalArgumentException("Can not sub-class "+supertype.getBriefDescription() - +" into "+subtype.getName()); - } - // Ok, then, let us instantiate type with placeholders - ResolvedType resolvedSubtype; - int paramCount = subtype.getTypeParameters().length; - TypePlaceHolder[] placeholders; - - if (paramCount == 0) { // no generics - placeholders = null; - resolvedSubtype = resolve(subtype); - } else { - placeholders = new TypePlaceHolder[paramCount]; - for (int i = 0; i < paramCount; ++i) { - placeholders[i] = new TypePlaceHolder(i); - } - resolvedSubtype = resolve(subtype, placeholders); - } - ResolvedType rawSupertype = resolvedSubtype.findSupertype(superclass); - if (rawSupertype == null) { // sanity check, should never occur - throw new IllegalArgumentException("Internal error: unable to locate supertype ("+subtype.getName()+") for type "+supertype.getBriefDescription()); - } - // Ok, then, let's find and verify type assignments - _resolveTypePlaceholders(supertype, rawSupertype); - - // And then re-construct, if necessary - if (paramCount == 0) { // if no type parameters, fine as is - return resolvedSubtype; - } - // but with type parameters, need to reconstruct - ResolvedType[] typeParams = new ResolvedType[paramCount]; - for (int i = 0; i < paramCount; ++i) { - ResolvedType t = placeholders[i].actualType(); - /* Is it ok for it to be left unassigned? For now let's not - * allow that - */ - if (t == null) { - throw new IllegalArgumentException("Failed to find type parameter #"+(i+1)+"/" - +paramCount+" for "+subtype.getName()); - } - typeParams[i] = t; - } - return resolve(subtype, typeParams); - } - - /* - /********************************************************************** - /* Misc other methods - /********************************************************************** - */ - - /** - * Helper method that can be used to checked whether given resolved type - * (with erased type of java.lang.Object) is a placeholder - * for "self-reference"; these are nasty recursive ("self") types - * needed with some interfaces - */ - public static boolean isSelfReference(ResolvedType type) - { - return (type instanceof ResolvedRecursiveType); - } - - /* - /********************************************************************** - /* Internal methods, second-level factory methods - /********************************************************************** - */ - - private ResolvedType _fromAny(ClassStack context, Type mainType, TypeBindings typeBindings) - { - if (mainType instanceof Class) { - return _fromClass(context, (Class) mainType, typeBindings); - } - if (mainType instanceof ResolvedType) { - return (ResolvedType) mainType; - } - if (mainType instanceof ParameterizedType) { - return _fromParamType(context, (ParameterizedType) mainType, typeBindings); - } - if (mainType instanceof GenericType) { - return _fromGenericType(context, (GenericType) mainType, typeBindings); - } - if (mainType instanceof GenericArrayType) { - return _fromArrayType(context, (GenericArrayType) mainType, typeBindings); - } - if (mainType instanceof TypeVariable) { - return _fromVariable(context, (TypeVariable) mainType, typeBindings); - } - if (mainType instanceof WildcardType) { - return _fromWildcard(context, (WildcardType) mainType, typeBindings); - } - // should never get here... - throw new IllegalArgumentException("Unrecognized type class: "+mainType.getClass().getName()); - } - - private ResolvedType _fromClass(ClassStack context, Class rawType, TypeBindings typeBindings) - { - // First: a primitive type perhaps? - ResolvedType type = _primitiveTypes.get(new ClassKey(rawType)); - if (type != null) { - return type; - } - // Second: recursive reference? - if (context == null) { - context = new ClassStack(rawType); - } else { - ClassStack prev = context.find(rawType); - if (prev != null) { - // Self-reference: needs special handling, then... - ResolvedRecursiveType selfRef = new ResolvedRecursiveType(rawType, typeBindings); - prev.addSelfReference(selfRef); - return selfRef; - } - // no, can just add - context = context.child(rawType); - } - - // If not, already recently resolved? - ResolvedType[] typeParameters = typeBindings.typeParameterArray(); - ResolvedTypeCache.Key key = _resolvedTypes.key(rawType, typeParameters); - - type = _resolvedTypes.find(key); - if (type == null) { - type = _constructType(context, rawType, typeBindings); - _resolvedTypes.put(key, type); - } - context.resolveSelfReferences(type); - return type; - } - - /** - * Factory method for resolving given generic type, defined by using sub-class - * instance of {@link GenericType} - */ - private ResolvedType _fromGenericType(ClassStack context, GenericType generic, TypeBindings typeBindings) - { - /* To allow multiple levels of inheritance (just in case someone - * wants to go to town with inheritance of GenericType), - * we better resolve the whole thing; then dig out - * type parameterization... - */ - ResolvedType type = _fromClass(context, generic.getClass(), typeBindings); - ResolvedType genType = type.findSupertype(GenericType.class); - if (genType == null) { // sanity check; shouldn't occur - throw new IllegalArgumentException("Unparameterized GenericType instance ("+generic.getClass().getName()+")"); - } - TypeBindings b = genType.getTypeBindings(); - ResolvedType[] params = b.typeParameterArray(); - if (params.length == 0) { - throw new IllegalArgumentException("Unparameterized GenericType instance ("+generic.getClass().getName()+")"); - } - return params[0]; - } - - private ResolvedType _constructType(ClassStack context, Class rawType, TypeBindings typeBindings) - { - // Ok: no easy shortcut, let's figure out type of type... - if (rawType.isArray()) { - ResolvedType elementType = _fromAny(context, rawType.getComponentType(), typeBindings); - return new ResolvedArrayType(rawType, typeBindings, elementType); - } - // For other types super interfaces are needed... - if (rawType.isInterface()) { - return new ResolvedInterfaceType(rawType, typeBindings, - _resolveSuperInterfaces(context, rawType, typeBindings)); - - } - return new ResolvedObjectType(rawType, typeBindings, - _resolveSuperClass(context, rawType, typeBindings), - _resolveSuperInterfaces(context, rawType, typeBindings)); - } - - private ResolvedType[] _resolveSuperInterfaces(ClassStack context, Class rawType, TypeBindings typeBindings) - { - Type[] types = rawType.getGenericInterfaces(); - if (types == null || types.length == 0) { - return NO_TYPES; - } - int len = types.length; - ResolvedType[] resolved = new ResolvedType[len]; - for (int i = 0; i < len; ++i) { - resolved[i] = _fromAny(context, types[i], typeBindings); - } - return resolved; - } - - /** - * NOTE: return type changed in 1.0.1 from {@link ResolvedObjectType} to - * {@link ResolvedType}, since it was found that other types may - * be returned... - * - * @return Usually a {@link ResolvedObjectType}, but possibly also - * {@link ResolvedRecursiveType} - */ - private ResolvedType _resolveSuperClass(ClassStack context, Class rawType, TypeBindings typeBindings) - { - Type parent = rawType.getGenericSuperclass(); - if (parent == null) { - return null; - } - return _fromAny(context, parent, typeBindings); - } - - private ResolvedType _fromParamType(ClassStack context, ParameterizedType ptype, TypeBindings parentBindings) - { - /* First: what is the actual base type? One odd thing is that 'getRawType' - * returns Type, not Class as one might expect. But let's assume it is - * always of type Class: if not, need to add more code to resolve it... - */ - Class rawType = (Class) ptype.getRawType(); - Type[] params = ptype.getActualTypeArguments(); - int len = params.length; - ResolvedType[] types = new ResolvedType[len]; - - for (int i = 0; i < len; ++i) { - types[i] = _fromAny(context, params[i], parentBindings); - } - // Ok: this gives us current bindings for this type: - TypeBindings newBindings = TypeBindings.create(rawType, types); - return _fromClass(context, rawType, newBindings); - } - - private ResolvedType _fromArrayType(ClassStack context, GenericArrayType arrayType, TypeBindings typeBindings) - { - ResolvedType elementType = _fromAny(context, arrayType.getGenericComponentType(), typeBindings); - // Figuring out raw class for generic array is actually bit tricky... - Object emptyArray = Array.newInstance(elementType.getErasedType(), 0); - return new ResolvedArrayType(emptyArray.getClass(), typeBindings, elementType); - } - - private ResolvedType _fromWildcard(ClassStack context, WildcardType wildType, TypeBindings typeBindings) - { - /* Similar to challenges with TypeVariable, we may have multiple upper bounds. - * But it is also possible that if upper bound defaults to Object, we might want to - * consider lower bounds instead? - * For now, we won't try anything more advanced; above is just for future reference. - */ - return _fromAny(context, wildType.getUpperBounds()[0], typeBindings); - } - - private ResolvedType _fromVariable(ClassStack context, TypeVariable variable, TypeBindings typeBindings) - { - // ideally should find it via bindings: - String name = variable.getName(); - ResolvedType type = typeBindings.findBoundType(name); - - if (type != null) { - return type; - } - - /* but if not, use bounds... note that approach here is simplistic; not taking - * into account possible multiple bounds, nor consider upper bounds. - */ - /* 02-Mar-2011, tatu: As per issue#4, need to avoid self-reference cycles here; - * can be handled by (temporarily) adding binding: - */ - if (typeBindings.hasUnbound(name)) { - return sJavaLangObject; - } - typeBindings = typeBindings.withUnboundVariable(name); - - Type[] bounds = variable.getBounds(); - return _fromAny(context, bounds[0], typeBindings); - } - - /* - /********************************************************************** - /* Internal methods, replacing and verifying type placeholders - /********************************************************************** - */ - - /** - * Method called to verify that types match; and if there are - */ - private void _resolveTypePlaceholders(ResolvedType expectedType, ResolvedType actualType) - throws IllegalArgumentException - { - List expectedTypes = expectedType.getTypeParameters(); - List actualTypes = actualType.getTypeParameters(); - for (int i = 0, len = expectedTypes.size(); i < len; ++i) { - ResolvedType exp = expectedTypes.get(i); - ResolvedType act = actualTypes.get(i); - if (!_typesMatch(exp, act)) { - throw new IllegalArgumentException("Type parameter #"+(i+1)+"/"+len+" differs; expected " - +exp.getBriefDescription()+", got "+act.getBriefDescription()); - } - } - } - - private boolean _typesMatch(ResolvedType exp, ResolvedType act) - { - // Simple equality check, except for one thing: place holders for 'act' - if (act instanceof TypePlaceHolder) { - ((TypePlaceHolder) act).actualType(exp); - return true; - } - // but due to recursive nature can't call equality... - if (exp.getErasedType() != act.getErasedType()) { - return false; - } - // But we can check type parameters "blindly" - List expectedTypes = exp.getTypeParameters(); - List actualTypes = act.getTypeParameters(); - for (int i = 0, len = expectedTypes.size(); i < len; ++i) { - ResolvedType exp2 = expectedTypes.get(i); - ResolvedType act2 = actualTypes.get(i); - if (!_typesMatch(exp2, act2)) { - return false; - } - } - return true; - } - - /* - /********************************************************************** - /* Helper classes - /********************************************************************** - */ -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/HierarchicType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/HierarchicType.java deleted file mode 100644 index defa550ed..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/HierarchicType.java +++ /dev/null @@ -1,68 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.ResolvedTypeWithMembers; - -/** - * Container class used to enclose information about a single {@link ResolvedType} - * that is part of {@link ResolvedTypeWithMembers}. - */ -public final class HierarchicType -{ - /** - * Whether this type instance represents a mix-in; if so, it can only result in - * addition of annotations but not in addition of actual members. - */ - protected final boolean _isMixin; - - protected final ResolvedType _type; - - /** - * Relative priority of this type in hierarchy; higher priority members can override - * lower priority members. Priority values are unique and are based on type index - * (starting from 0), although they are not to be used for indexing. - */ - protected final int _priority; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - public HierarchicType(ResolvedType type, boolean mixin, int priority) - { - _type = type; - _isMixin = mixin; - _priority = priority; - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - public ResolvedType getType() { return _type; } - public Class getErasedType() { return _type.getErasedType(); } - public boolean isMixin() { return _isMixin; } - public int getPriority() { return _priority; } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public String toString() { return _type.toString(); } - @Override public int hashCode() { return _type.hashCode(); } - - @Override - public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - HierarchicType other = (HierarchicType) o; - return _type.equals(other._type); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawConstructor.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawConstructor.java deleted file mode 100644 index 0cd8280c1..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawConstructor.java +++ /dev/null @@ -1,61 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.reflect.Constructor; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.util.MethodKey; - -public final class RawConstructor extends RawMember -{ - protected final Constructor _constructor; - - protected final int _hashCode; - - public RawConstructor(ResolvedType context, Constructor constructor) - { - super(context); - _constructor = constructor; - _hashCode = (_constructor == null ? 0 : _constructor.hashCode()); - } - - /** - * Although constructors are different from other methods, we can use - * {@link MethodKey} easily. - */ - public MethodKey createKey() - { - String name = ""; // do not use _constructor.getName() to allow for 'mix-ins' - Class[] argTypes = _constructor.getParameterTypes(); // return of Constructor#getParameterTypes will never be null - return new MethodKey(name, argTypes); - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - @Override - public Constructor getRawMember() { - return _constructor; - } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public int hashCode() - { - return _hashCode; - } - - @Override public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - RawConstructor other = (RawConstructor) o; - return (other._constructor == _constructor); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawField.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawField.java deleted file mode 100644 index bef99fb93..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawField.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -public final class RawField extends RawMember -{ - protected final Field _field; - - private final int _hashCode; - - public RawField(ResolvedType context, Field field) - { - super(context); - _field = field; - _hashCode = (_field == null ? 0 : _field.hashCode()); - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - @Override - public Field getRawMember() { - return _field; - } - - public boolean isTransient() { - return Modifier.isTransient(getModifiers()); - } - - public boolean isVolatile() { - return Modifier.isVolatile(getModifiers()); - } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - RawField other = (RawField) o; - return (other._field == _field); - } - - @Override public int hashCode() - { - return _hashCode; - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMember.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMember.java deleted file mode 100644 index 9862f5131..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMember.java +++ /dev/null @@ -1,98 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.annotation.Annotation; -import java.lang.reflect.AnnotatedElement; -import java.lang.reflect.Member; -import java.lang.reflect.Modifier; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -/** - * Base class for all "raw" member (field, method, constructor) types; raw means that - * actual types are not yet resolved, but relationship to declaring type is - * retained for eventual resolution. - * Instances are typically created by {@link ResolvedType} - * when requested, and form the input to eventual full flattening of type members. - */ -public abstract class RawMember -{ - /** - * {@link ResolvedType} (class with generic type parameters) that declared - * this member - */ - protected final ResolvedType _declaringType; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - protected RawMember(ResolvedType context) - { - _declaringType = context; - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - public final ResolvedType getDeclaringType() { - return _declaringType; - } - - public abstract Member getRawMember(); - - public String getName() { - return getRawMember().getName(); - } - - public boolean isStatic() { - return Modifier.isStatic(getModifiers()); - } - - public boolean isFinal() { - return Modifier.isFinal(getModifiers()); - } - - public boolean isPrivate() { - return Modifier.isPrivate(getModifiers()); - } - - public boolean isProtected() { - return Modifier.isProtected(getModifiers()); - } - - public boolean isPublic() { - return Modifier.isPublic(getModifiers()); - } - - public Annotation[] getAnnotations() { - return ((AnnotatedElement) getRawMember()).getAnnotations(); - } - - /* - /********************************************************************** - /* Standard method overrides - /********************************************************************** - */ - - // make abstract to force implementation by sub-class - @Override public abstract boolean equals(Object o); - - @Override public abstract int hashCode(); - - @Override public String toString() { - return getName(); - } - - /* - /********************************************************************** - /* Package methods - /********************************************************************** - */ - - protected final int getModifiers() { return getRawMember().getModifiers(); } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMethod.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMethod.java deleted file mode 100644 index 6fac0ab34..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/RawMethod.java +++ /dev/null @@ -1,74 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.util.MethodKey; - -public final class RawMethod extends RawMember -{ - protected final Method _method; - - protected final int _hashCode; - - public RawMethod(ResolvedType context, Method method) - { - super(context); - _method = method; - _hashCode = (_method == null ? 0 : _method.hashCode()); - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - @Override - public Method getRawMember() { - return _method; - } - - public boolean isAbstract() { - return Modifier.isAbstract(getModifiers()); - } - - public boolean isStrict() { - return Modifier.isStrict(getModifiers()); - } - - public boolean isNative() { - return Modifier.isNative(getModifiers()); - } - - public boolean isSynchronized() { - return Modifier.isSynchronized(getModifiers()); - } - - public MethodKey createKey() - { - String name = _method.getName(); - Class[] argTypes = _method.getParameterTypes(); // return of Method#getParameterTypes will never be null - return new MethodKey(name, argTypes); - } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public int hashCode() - { - return _hashCode; - } - - @Override public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - RawMethod other = (RawMethod) o; - return (other._method == _method); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedConstructor.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedConstructor.java deleted file mode 100644 index 63fb546b9..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedConstructor.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.reflect.Constructor; - -import com.fr.third.com.fasterxml.classmate.Annotations; -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -/** - * Class that represents a constructor that has fully resolved generic - * type information and annotation information. - */ -public final class ResolvedConstructor extends ResolvedParameterizedMember> -{ - public ResolvedConstructor(ResolvedType context, Annotations ann, Constructor constructor, - ResolvedType[] argumentTypes) - { - super(context, ann, constructor, null, argumentTypes); - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedField.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedField.java deleted file mode 100644 index e930c0b2f..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedField.java +++ /dev/null @@ -1,36 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; - -import com.fr.third.com.fasterxml.classmate.Annotations; -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -public final class ResolvedField extends ResolvedMember - implements Comparable -{ - public ResolvedField(ResolvedType context, Annotations ann, - Field field, ResolvedType type) - { - super(context, ann, field, type); - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - public boolean isTransient() { - return Modifier.isTransient(getModifiers()); - } - - public boolean isVolatile() { - return Modifier.isVolatile(getModifiers()); - } - - @Override - public int compareTo(ResolvedField other) { - return getName().compareTo(other.getName()); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMember.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMember.java deleted file mode 100644 index 01792c544..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMember.java +++ /dev/null @@ -1,156 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Member; -import java.lang.reflect.Modifier; - -import com.fr.third.com.fasterxml.classmate.Annotations; -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -/** - * Fully type-resolved equivalent of {@link RawMember}. Only members "that matter" (ones not - * overridden, or filtered out) are resolved, since resolution process can add non-trivial - * overhead. - */ -public abstract class ResolvedMember -{ - /** - * {@link ResolvedType} (class with generic type parameters) that declared - * this member - */ - protected final ResolvedType _declaringType; - - protected final Annotations _annotations; - - protected final T _member; - - protected final ResolvedType _type; - - protected final int _hashCode; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - protected ResolvedMember(ResolvedType context, Annotations ann, T member, ResolvedType type) - { - _declaringType = context; - _annotations = ann; - _member = member; - _type = type; - _hashCode = (_member == null ? 0 : _member.hashCode()); - } - - public void applyOverride(Annotation override) - { - _annotations.add(override); - } - - public void applyOverrides(Annotations overrides) - { - _annotations.addAll(overrides); - } - - public void applyDefault(Annotation override) - { - _annotations.addAsDefault(override); - } - - public A get(Class cls) - { - return _annotations.get(cls); - } - - public Annotations getAnnotations() - { - return _annotations; - } - - /* - /********************************************************************** - /* Simple accessors - /********************************************************************** - */ - - public final ResolvedType getDeclaringType() { - return _declaringType; - } - - /** - * Returns type of this member; if it has one, for methods this is the - * return type, for fields field type, and for constructors null. - */ - public ResolvedType getType() { - return _type; - } - - /** - * Returns JDK object that represents member. - */ - public T getRawMember() { - return _member; - } - - public String getName() { - return getRawMember().getName(); - } - - public boolean isStatic() { - return Modifier.isStatic(getModifiers()); - } - - public boolean isFinal() { - return Modifier.isFinal(getModifiers()); - } - - public boolean isPrivate() { - return Modifier.isPrivate(getModifiers()); - } - - public boolean isProtected() { - return Modifier.isProtected(getModifiers()); - } - - public boolean isPublic() { - return Modifier.isPublic(getModifiers()); - } - - /* - /********************************************************************** - /* Standard method overrides - /********************************************************************** - */ - - @Override public String toString() { - return getName(); - } - - /* - /********************************************************************** - /* Package methods - /********************************************************************** - */ - - protected final int getModifiers() { return getRawMember().getModifiers(); } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override public int hashCode() { - return _hashCode; - } - - @Override public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - ResolvedMember other = (ResolvedMember) o; - return (other._member == _member); - } - -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMethod.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMethod.java deleted file mode 100644 index 9f71cad1d..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedMethod.java +++ /dev/null @@ -1,65 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import java.lang.reflect.Method; -import java.lang.reflect.Modifier; - -import com.fr.third.com.fasterxml.classmate.Annotations; -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -public final class ResolvedMethod extends ResolvedParameterizedMember - implements Comparable -{ - public ResolvedMethod(ResolvedType context, Annotations ann, Method method, - ResolvedType returnType, ResolvedType[] argumentTypes) - { - super(context, ann, method, returnType, argumentTypes); - } - - /* - /********************************************************************** - /* Simple accessors from base class - /********************************************************************** - */ - - public boolean isAbstract() { - return Modifier.isAbstract(getModifiers()); - } - - public boolean isStrict() { - return Modifier.isStrict(getModifiers()); - } - - public boolean isNative() { - return Modifier.isNative(getModifiers()); - } - - public boolean isSynchronized() { - return Modifier.isSynchronized(getModifiers()); - } - - /* - /********************************************************************** - /* Extended API - /********************************************************************** - */ - - public ResolvedType getReturnType() { return getType(); } - - /* - /********************************************************************** - /* Standard method override - /********************************************************************** - */ - - @Override - public int compareTo(ResolvedMethod other) - { - // primary sort by name (alphabetic); secondary by arg count (ascending) - int diff = getName().compareTo(other.getName()); - if (diff == 0) { - // subtract fine, no fear of overflow here - diff = getArgumentCount() - other.getArgumentCount(); - } - return diff; - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedParameterizedMember.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedParameterizedMember.java deleted file mode 100644 index 80233cc00..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/ResolvedParameterizedMember.java +++ /dev/null @@ -1,81 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.members; - -import com.fr.third.com.fasterxml.classmate.Annotations; -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -import java.lang.annotation.Annotation; -import java.lang.reflect.Member; - -/** - * Base type for resolved members that take some parameters (e.g. methods and constructors). - */ -public abstract class ResolvedParameterizedMember extends ResolvedMember { - - protected final ResolvedType[] _paramTypes; - - protected final Annotations[] _paramAnnotations; - - protected ResolvedParameterizedMember(ResolvedType context, Annotations ann, - T member, ResolvedType type, ResolvedType[] argumentTypes) { - super(context, ann, member, type); - _paramTypes = argumentTypes == null ? ResolvedType.NO_TYPES : argumentTypes; - _paramAnnotations = new Annotations[_paramTypes.length]; - } - - public Annotations getParameterAnnotations(int index) { - if (index >= _paramTypes.length) - throw new IndexOutOfBoundsException("No parameter at index " + index + ", this is greater than the total number of parameters"); - - if (_paramAnnotations[index] == null) { - _paramAnnotations[index] = new Annotations(); - } - return _paramAnnotations[index]; - } - - public void applyParamOverride(int index, Annotation override) - { - if (index >= _paramAnnotations.length) - return; - - getParameterAnnotations(index).add(override); - } - - public void applyParamOverrides(int index, Annotations overrides) - { - if (index >= _paramAnnotations.length) - return; - - getParameterAnnotations(index).addAll(overrides); - } - - public void applyParamDefault(int index, Annotation defaultValue) - { - if (index >= _paramAnnotations.length) - return; - - getParameterAnnotations(index).addAsDefault(defaultValue); - } - - public A getParam(int index, Class cls) - { - if (index >= _paramAnnotations.length) - return null; - - return _paramAnnotations[index].get(cls); - } - - /** - * Returns number of arguments method takes. - */ - public int getArgumentCount() { - return _paramTypes.length; - } - - public ResolvedType getArgumentType(int index) - { - if (index < 0 || index >= _paramTypes.length) { - return null; - } - return _paramTypes[index]; - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/package-info.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/package-info.java deleted file mode 100644 index b854566b5..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/members/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Package that contains implementations of various member types - * (methods, fields, constructors) - */ -package com.fr.third.com.fasterxml.classmate.members; diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/package-info.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/package-info.java deleted file mode 100644 index 820128ab3..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/package-info.java +++ /dev/null @@ -1,13 +0,0 @@ -/** - * Package that contains main public interface of ClassMate - * package. - *

- * Most commonly resolution starts with {@link com.fr.third.com.fasterxml.classmate.TypeResolver}, - * using its resolve() method, which returns a - * {@link com.fr.third.com.fasterxml.classmate.ResolvedType} instance. - * These type objects contain all necessary information about type itself; - * but if type information on members (fields, methods, constructors, static - * members) is needed, {@link com.fr.third.com.fasterxml.classmate.MemberResolver} can - * resolve types for members: it takes {@link com.fr.third.com.fasterxml.classmate.ResolvedType}s. - */ -package com.fr.third.com.fasterxml.classmate; diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedArrayType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedArrayType.java deleted file mode 100644 index 099f9d2c3..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedArrayType.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.types; - -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.TypeBindings; - -public final class ResolvedArrayType extends ResolvedType -{ - protected final ResolvedType _elementType; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - public ResolvedArrayType(Class erased, TypeBindings bindings, - ResolvedType elementType) - { - super(erased, bindings); - _elementType = elementType; - } - - @Override - public boolean canCreateSubtypes() { - return false; - } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - @Override - public ResolvedType getParentClass() { return null; } - - @Override - public ResolvedType getSelfReferencedType() { return null; } - - @Override - public List getImplementedInterfaces() { - return Collections.emptyList(); - } - - /* - /********************************************************************** - /* Simple property accessors - /********************************************************************** - */ - - @Override - public boolean isInterface() { - return false; - } - - @Override - public boolean isAbstract() { return false; } - - @Override - public ResolvedType getArrayElementType() { return _elementType; } - - @Override - public boolean isArray() { return true; } - - @Override - public boolean isPrimitive() { return false; } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - // defaults are fine (nothing to access) - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - @Override - public StringBuilder appendSignature(StringBuilder sb) { - sb.append('['); - return _elementType.appendSignature(sb); - } - - @Override - public StringBuilder appendErasedSignature(StringBuilder sb) { - sb.append('['); - return _elementType.appendErasedSignature(sb); - } - - @Override - public StringBuilder appendBriefDescription(StringBuilder sb) - { - sb = _elementType.appendBriefDescription(sb); - sb.append("[]"); - return sb; - } - - @Override - public StringBuilder appendFullDescription(StringBuilder sb) { - return appendBriefDescription(sb); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedInterfaceType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedInterfaceType.java deleted file mode 100644 index e4c045bfc..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedInterfaceType.java +++ /dev/null @@ -1,162 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.types; - -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.TypeBindings; -import com.fr.third.com.fasterxml.classmate.members.RawField; -import com.fr.third.com.fasterxml.classmate.members.RawMethod; - -public class ResolvedInterfaceType extends ResolvedType -{ - - /** - * List of interfaces this type implements; may be empty but never null - */ - protected final ResolvedType[] _superInterfaces; - - /** - * Interfaces can have static final (constant) fields. - */ - protected RawField[] _constantFields; - - /** - * Interface methods are all public and abstract. - */ - protected RawMethod[] _memberMethods; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - public ResolvedInterfaceType(Class erased, TypeBindings bindings, - ResolvedType[] superInterfaces) - { - super(erased, bindings); - _superInterfaces = (superInterfaces == null ? NO_TYPES : superInterfaces); - } - - @Override - public boolean canCreateSubtypes() { - return true; - } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - @Override - public ResolvedType getParentClass() { - // interfaces do not have parent class, just interfaces - return null; - } - - @Override - public ResolvedType getSelfReferencedType() { return null; } - - @Override - public List getImplementedInterfaces() { - return (_superInterfaces.length == 0) ? - Collections.emptyList() : Arrays.asList(_superInterfaces); - } - - @Override - public ResolvedType getArrayElementType() { // interfaces are never arrays, so: - return null; - } - - /* - /********************************************************************** - /* Simple property accessors - /********************************************************************** - */ - - @Override - public boolean isInterface() { return true; } - - @Override - public boolean isAbstract() { return true; } - - @Override - public boolean isArray() { return false; } - - @Override - public boolean isPrimitive() { return false; } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - @Override - public synchronized List getStaticFields() - { - // Interfaces can have static fields, but only as static constants... - if (_constantFields == null) { - _constantFields = _getFields(true); - } - if (_constantFields.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_constantFields); - } - - @Override - public synchronized List getMemberMethods() - { - if (_memberMethods == null) { - _memberMethods = _getMethods(false); - } - if (_memberMethods.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_memberMethods); - } - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - @Override - public StringBuilder appendSignature(StringBuilder sb) { - return _appendClassSignature(sb); - } - - @Override - public StringBuilder appendErasedSignature(StringBuilder sb) { - return _appendErasedClassSignature(sb); - } - - @Override - public StringBuilder appendBriefDescription(StringBuilder sb) { - return _appendClassDescription(sb); - } - - @Override - public StringBuilder appendFullDescription(StringBuilder sb) - { - sb = _appendClassDescription(sb); - // interfaces 'extend' other interfaces... - int count = _superInterfaces.length; - if (count > 0) { - sb.append(" extends "); - for (int i = 0; i < count; ++i) { - if (i > 0) { - sb.append(","); - } - sb = _superInterfaces[i].appendBriefDescription(sb); - } - } - return sb; - } -} - - - diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedObjectType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedObjectType.java deleted file mode 100644 index d23acee8b..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedObjectType.java +++ /dev/null @@ -1,287 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.types; - -import java.lang.reflect.Modifier; -import java.util.Arrays; -import java.util.Collections; -import java.util.List; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.TypeBindings; -import com.fr.third.com.fasterxml.classmate.members.RawConstructor; -import com.fr.third.com.fasterxml.classmate.members.RawField; -import com.fr.third.com.fasterxml.classmate.members.RawMethod; - -/** - * Type implementation for classes that do not represent interfaces, - * primitive or array types. - */ -public class ResolvedObjectType extends ResolvedType -{ - /** - * While fundamentally super class has to be {@link ResolvedObjectType} - * (or null for {@link java.lang.Object}), we may need to hold on to - * a {@link ResolvedRecursiveType} occasionally. - */ - protected final ResolvedType _superClass; - - /** - * List of interfaces this type implements; may be empty but never null - */ - protected final ResolvedType[] _superInterfaces; - - /** - * Modifiers of the underlying class. - */ - protected final int _modifiers; - - /** - * Constructors declared by the resolved Object class. - */ - protected RawConstructor[] _constructors; - - protected RawField[] _memberFields; - protected RawField[] _staticFields; - - protected RawMethod[] _memberMethods; - protected RawMethod[] _staticMethods; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - public ResolvedObjectType(Class erased, TypeBindings bindings, - ResolvedType superClass, List interfaces) - { - this(erased, bindings, superClass, - (interfaces == null || interfaces.isEmpty()) ? NO_TYPES : - interfaces.toArray(new ResolvedType[interfaces.size()])); - } - - public ResolvedObjectType(Class erased, TypeBindings bindings, - ResolvedType superClass, ResolvedType[] interfaces) - { - super(erased, bindings); - /* 19-Aug-2014, tatu: bit unclean, but has to do for now. - * Problem is, there is no common super-type, nor can we yet - * force or coerce recursive types. Rather, they may only get - * resolved only slightly after construction. So... need to - * keep a reference. - */ - if (superClass != null) { - if (!(superClass instanceof ResolvedObjectType) - && !(superClass instanceof ResolvedRecursiveType) - ) { - throw new IllegalArgumentException("Unexpected parent type for " - +erased.getName()+": "+superClass.getClass().getName()); - } - } - - _superClass = superClass; - _superInterfaces = (interfaces == null) ? NO_TYPES : interfaces; - _modifiers = erased.getModifiers(); - } - - @Deprecated // since 1.1; removed from 1.2 -- kept for binary backwards compatibility - public ResolvedObjectType(Class erased, TypeBindings bindings, - ResolvedObjectType superClass, List interfaces) - { - this(erased, bindings, (ResolvedType) superClass, interfaces); - } - - @Deprecated // since 1.1; removed from 1.2 -- kept for binary backwards compatibility - public ResolvedObjectType(Class erased, TypeBindings bindings, - ResolvedObjectType superClass, ResolvedType[] interfaces) - { - this(erased, bindings, (ResolvedType) superClass, interfaces); - } - - public static ResolvedObjectType create(Class erased, TypeBindings bindings, - ResolvedType superClass, List interfaces) - { - return new ResolvedObjectType(erased, bindings, superClass, interfaces); - } - - @Override - public boolean canCreateSubtypes() { - return true; - } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - @Override - public ResolvedObjectType getParentClass() { - - /* 19-Aug-2014, tatu: Ugly does it... sigh. - * But can't be helped because ResolvedRecursiveType is typically only - * resolved after instances of this type have been constructed. - * This means that resolution will need to be done somewhat dynamically. - */ - if (_superClass == null) { - return null; - } - if (_superClass instanceof ResolvedObjectType) { - return (ResolvedObjectType) _superClass; - } - ResolvedType rt = ((ResolvedRecursiveType) _superClass).getSelfReferencedType(); - if (!(rt instanceof ResolvedObjectType)) { - throw new IllegalStateException("Internal error: self-referential parent type (" - +_superClass+") does not resolve into proper ResolvedObjectType, but instead to: " - +rt); - } - return (ResolvedObjectType) rt; - } - - @Override - public ResolvedType getSelfReferencedType() { return null; } - - @Override - public List getImplementedInterfaces() { - return (_superInterfaces.length == 0) ? - Collections.emptyList() : Arrays.asList(_superInterfaces); - } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - @Override - public final ResolvedType getArrayElementType() { return null; } - - /* - /********************************************************************** - /* Simple property accessors - /********************************************************************** - */ - - @Override - public final boolean isInterface() { return false; } - - @Override - public boolean isAbstract() { - return Modifier.isAbstract(_modifiers); - } - - @Override - public final boolean isArray() { return false; } - - @Override - public final boolean isPrimitive() { return false; } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - @Override - public synchronized List getMemberFields() - { - if (_memberFields == null) { - _memberFields = _getFields(false); - } - if (_memberFields.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_memberFields); - } - - @Override - public synchronized List getStaticFields() - { - if (_staticFields == null) { - _staticFields = _getFields(true); - } - if (_staticFields.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_staticFields); - } - - @Override - public synchronized List getMemberMethods() - { - if (_memberMethods == null) { - _memberMethods = _getMethods(false); - } - if (_memberMethods.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_memberMethods); - } - - @Override - public synchronized List getStaticMethods() - { - if (_staticMethods == null) { - _staticMethods = _getMethods(true); - } - if (_staticMethods.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_staticMethods); - } - - @Override - public List getConstructors() - { - if (_constructors == null) { - _constructors = _getConstructors(); - } - if (_constructors.length == 0) { - return Collections.emptyList(); - } - return Arrays.asList(_constructors); - } - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - @Override - public StringBuilder appendSignature(StringBuilder sb) { - return _appendClassSignature(sb); - } - - @Override - public StringBuilder appendErasedSignature(StringBuilder sb) { - return _appendErasedClassSignature(sb); - } - - @Override - public StringBuilder appendBriefDescription(StringBuilder sb) { - return _appendClassDescription(sb); - } - - @Override - public StringBuilder appendFullDescription(StringBuilder sb) - { - sb = _appendClassDescription(sb); - if (_superClass != null) { - sb.append(" extends "); - sb = _superClass.appendBriefDescription(sb); - } - // interfaces 'extend' other interfaces... - int count = _superInterfaces.length; - if (count > 0) { - sb.append(" implements "); - for (int i = 0; i < count; ++i) { - if (i > 0) { - sb.append(","); - } - sb = _superInterfaces[i].appendBriefDescription(sb); - } - } - return sb; - } -} - diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedPrimitiveType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedPrimitiveType.java deleted file mode 100644 index 34c9e9a91..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedPrimitiveType.java +++ /dev/null @@ -1,157 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.types; - -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.TypeBindings; - -/** - * Type used for Java primitive types (which does not include arrays here). - *

- * Since set of primitive types is bounded, constructor is defined as protected, - * and class final; that is, new primitive types are not to be constructed - * by calling applications. - */ -public final class ResolvedPrimitiveType extends ResolvedType -{ - private final static ResolvedPrimitiveType VOID = new ResolvedPrimitiveType(Void.TYPE, 'V', "void"); - - /** - * Primitive types have single-character Signature, easy and efficient - * to just store here - */ - protected final String _signature; - - /** - * Human-readable description should be simple as well - */ - protected final String _description; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - protected ResolvedPrimitiveType(Class erased, char sig, String desc) - { - super(erased, TypeBindings.emptyBindings()); - _signature = String.valueOf(sig); - _description = desc; - } - - public static List all() - { - ArrayList all = new ArrayList(); - all.add(new ResolvedPrimitiveType(Boolean.TYPE, 'Z', "boolean")); - all.add(new ResolvedPrimitiveType(Byte.TYPE, 'B', "byte")); - all.add(new ResolvedPrimitiveType(Short.TYPE, 'S', "short")); - all.add(new ResolvedPrimitiveType(Character.TYPE, 'C', "char")); - all.add(new ResolvedPrimitiveType(Integer.TYPE, 'I', "int")); - all.add(new ResolvedPrimitiveType(Long.TYPE, 'J', "long")); - all.add(new ResolvedPrimitiveType(Float.TYPE, 'F', "float")); - all.add(new ResolvedPrimitiveType(Double.TYPE, 'D', "double")); - return all; - } - - public static ResolvedPrimitiveType voidType() - { - return VOID; - } - - @Override - public boolean canCreateSubtypes() { - return false; - } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - @Override - public ResolvedType getSelfReferencedType() { return null; } - - @Override - public ResolvedType getParentClass() { return null; } - - /* - /********************************************************************** - /* Simple property accessors - /********************************************************************** - */ - - @Override - public boolean isInterface() { return false; } - - @Override - public boolean isAbstract() { return false; } - - @Override - public ResolvedType getArrayElementType() { return null; } - - @Override - public boolean isArray() { return false; } - - @Override - public boolean isPrimitive() { return true; } - - @Override - public List getImplementedInterfaces() { - return Collections.emptyList(); - } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - // Primitive types are simple; no fields, no methods, no constructors - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - @Override - public String getSignature() { - return _signature; - } - - @Override - public String getErasedSignature() { - return _signature; - } - - @Override - public String getFullDescription() { - return _description; - } - - @Override - public StringBuilder appendSignature(StringBuilder sb) { - sb.append(_signature); - return sb; - } - - @Override - public StringBuilder appendErasedSignature(StringBuilder sb) { - sb.append(_signature); - return sb; - } - - @Override - public StringBuilder appendFullDescription(StringBuilder sb) { - sb.append(_description); - return sb; - } - - @Override - public StringBuilder appendBriefDescription(StringBuilder sb) { - sb.append(_description); - return sb; - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedRecursiveType.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedRecursiveType.java deleted file mode 100644 index f1146ff05..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/ResolvedRecursiveType.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.types; - -import java.lang.reflect.Modifier; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.TypeBindings; -import com.fr.third.com.fasterxml.classmate.members.RawConstructor; -import com.fr.third.com.fasterxml.classmate.members.RawField; -import com.fr.third.com.fasterxml.classmate.members.RawMethod; - -/** - * Specialized type placeholder used in cases where type definition is - * recursive; to avoid infinite loop, reference that would be "back" in - * hierarchy is represented by an instance of this class. - * Underlying information is achievable (for full resolution), but - * not exposed using super type (parent) accessors; and has special - * handling when used for constructing descriptions. - */ -public class ResolvedRecursiveType extends ResolvedType -{ - /** - * Actual fully resolved type; assigned once resolution is complete - */ - protected ResolvedType _referencedType; - - /* - /********************************************************************** - /* Life cycle - /********************************************************************** - */ - - public ResolvedRecursiveType(Class erased, TypeBindings bindings) - { - super(erased, bindings); - } - - @Override - public boolean canCreateSubtypes() { - return _referencedType.canCreateSubtypes(); - } - - public void setReference(ResolvedType ref) - { - // sanity check; should not be called multiple times - if (_referencedType != null) { - throw new IllegalStateException("Trying to re-set self reference; old value = "+_referencedType+", new = "+ref); - } - _referencedType = ref; - } - - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - /** - * To avoid infinite loops, will return null; - */ - @Override - public ResolvedType getParentClass() { - return null; - } - - @Override - public ResolvedType getSelfReferencedType() { return _referencedType; } - - /** - * To avoid infinite loops, will return empty list - */ - @Override - public List getImplementedInterfaces() { - return Collections.emptyList(); - } - - /** - * To avoid infinite loops, will return null type - */ - @Override - public ResolvedType getArrayElementType() { // interfaces are never arrays, so: - return null; - } - - /* - /********************************************************************** - /* Simple property accessors - /********************************************************************** - */ - - @Override - public boolean isInterface() { return _erasedType.isInterface(); } - - @Override - public boolean isAbstract() { return Modifier.isAbstract(_erasedType.getModifiers()); } - - @Override - public boolean isArray() { return _erasedType.isArray(); } - - @Override - public boolean isPrimitive() { return false; } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - @Override - public List getMemberFields() { return _referencedType.getMemberFields(); } - @Override - public List getStaticFields() { return _referencedType.getStaticFields(); } - @Override - public List getStaticMethods() { return _referencedType.getStaticMethods(); } - @Override - public List getMemberMethods() { return _referencedType.getMemberMethods(); } - @Override - public List getConstructors() { return _referencedType.getConstructors(); } - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - @Override - public StringBuilder appendSignature(StringBuilder sb) { - // to avoid infinite recursion, only print type erased version - return appendErasedSignature(sb); - } - - @Override - public StringBuilder appendErasedSignature(StringBuilder sb) { - return _appendErasedClassSignature(sb); - } - - @Override - public StringBuilder appendBriefDescription(StringBuilder sb) { - return _appendClassDescription(sb); - } - - @Override - public StringBuilder appendFullDescription(StringBuilder sb) - { - // should never get called, but just in case, only print brief description - return appendBriefDescription(sb); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/TypePlaceHolder.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/TypePlaceHolder.java deleted file mode 100644 index 47157ecb6..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/TypePlaceHolder.java +++ /dev/null @@ -1,101 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.types; - -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.TypeBindings; - -/** - * Placeholder used for resolving type assignments to figure out - * type parameters for subtypes. - */ -public class TypePlaceHolder extends ResolvedType -{ - protected final int _ordinal; - - /** - * Type assigned during wildcard resolution - */ - protected ResolvedType _actualType; - - public TypePlaceHolder(int ordinal) - { - super(Object.class, TypeBindings.emptyBindings()); - _ordinal = ordinal; - } - - @Override - public boolean canCreateSubtypes() { return false; } - - public ResolvedType actualType() { return _actualType; } - public void actualType(ResolvedType t) { _actualType = t; } - - /* - /********************************************************************** - /* Accessors for related types - /********************************************************************** - */ - - @Override - public ResolvedType getParentClass() { return null; } - - @Override - public ResolvedType getSelfReferencedType() { return null; } - - @Override - public List getImplementedInterfaces() { return Collections.emptyList(); } - - @Override - public ResolvedType getArrayElementType() { return null; } - - /* - /********************************************************************** - /* Simple property accessors - /********************************************************************** - */ - - @Override - public boolean isInterface() { return false; } - - @Override - public boolean isAbstract() { return true; } - - @Override - public boolean isArray() { return false; } - - @Override - public boolean isPrimitive() { return false; } - - /* - /********************************************************************** - /* Accessors for raw (minimally procesed) members - /********************************************************************** - */ - - /* - /********************************************************************** - /* String representations - /********************************************************************** - */ - - @Override - public StringBuilder appendSignature(StringBuilder sb) { - return _appendClassSignature(sb); - } - - @Override - public StringBuilder appendErasedSignature(StringBuilder sb) { - return _appendErasedClassSignature(sb); - } - - @Override - public StringBuilder appendBriefDescription(StringBuilder sb) { - sb.append('<').append(_ordinal).append('>'); - return sb; - } - - @Override - public StringBuilder appendFullDescription(StringBuilder sb) { - return appendBriefDescription(sb); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/package-info.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/package-info.java deleted file mode 100644 index e8da046d9..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/types/package-info.java +++ /dev/null @@ -1,5 +0,0 @@ -/** - * Package that contains {@link com.fr.third.com.fasterxml.classmate.ResolvedType} - * implementation classes. - */ -package com.fr.third.com.fasterxml.classmate.types; diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassKey.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassKey.java deleted file mode 100644 index 402c005e0..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassKey.java +++ /dev/null @@ -1,69 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.util; - -import java.io.Serializable; - -/** - * Helper class used as key when we need efficient Class-to-value lookups. - */ -@SuppressWarnings("serial") -public class ClassKey - implements Comparable, Serializable -{ - private final String _className; - - private final Class _class; - - /** - * Let's cache hash code straight away, since we are almost certain to need it. - */ - private final int _hashCode; - - public ClassKey(Class clz) - { - _class = clz; - _className = clz.getName(); - _hashCode = _className.hashCode(); - } - - /* - /********************************************************************** - /* Comparable - /********************************************************************** - */ - - @Override - public int compareTo(ClassKey other) - { - // Just need to sort by name, ok to collide (unless used in TreeMap/Set!) - return _className.compareTo(other._className); - } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - @Override - public boolean equals(Object o) - { - if (o == this) return true; - if (o == null) return false; - if (o.getClass() != getClass()) return false; - ClassKey other = (ClassKey) o; - - /* Is it possible to have different Class object for same name + class loader combo? - * Let's assume answer is no: if this is wrong, will need to uncomment following functionality - */ - /* - return (other._className.equals(_className)) - && (other._class.getClassLoader() == _class.getClassLoader()); - */ - return other._class == _class; - } - - @Override public int hashCode() { return _hashCode; } - - @Override public String toString() { return _className; } - -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassStack.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassStack.java deleted file mode 100644 index 4de5a5b09..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ClassStack.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.util; - -import java.util.ArrayList; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; -import com.fr.third.com.fasterxml.classmate.types.ResolvedRecursiveType; - -/** - * Simple helper class used to keep track of 'call stack' for classes being referenced - * (as well as unbound variables) - */ -public final class ClassStack -{ - protected final ClassStack _parent; - protected final Class _current; - - private ArrayList _selfRefs; - - public ClassStack(Class rootType) { - this(null, rootType); - } - - private ClassStack(ClassStack parent, Class curr) { - _parent = parent; - _current = curr; - } - - /** - * @return New stack frame, if addition is ok; null if not - */ - public ClassStack child(Class cls) - { - return new ClassStack(this, cls); - } - - /** - * Method called to indicate that there is a self-reference from - * deeper down in stack pointing into type this stack frame represents. - */ - public void addSelfReference(ResolvedRecursiveType ref) - { - if (_selfRefs == null) { - _selfRefs = new ArrayList(); - } - _selfRefs.add(ref); - } - - /** - * Method called when type that this stack frame represents is - * fully resolved, allowing self-references to be completed - * (if there are any) - */ - public void resolveSelfReferences(ResolvedType resolved) - { - if (_selfRefs != null) { - for (ResolvedRecursiveType ref : _selfRefs) { - ref.setReference(resolved); - } - } - } - - public ClassStack find(Class cls) - { - if (_current == cls) return this; - for (ClassStack curr = _parent; curr != null; curr = curr._parent) { - if (curr._current == cls) { - return curr; - } - } - return null; - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/MethodKey.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/MethodKey.java deleted file mode 100644 index 94b309018..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/MethodKey.java +++ /dev/null @@ -1,71 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.util; - -import java.io.Serializable; - -/** - * Helper class needed when storing methods in maps. - * Immutable. - */ -@SuppressWarnings("serial") -public class MethodKey implements Serializable -{ - private static final Class[] NO_CLASSES = new Class[0]; - - private final String _name; - - private final Class[] _argumentTypes; - - private final int _hashCode; - - public MethodKey(String name) - { - _name = name; - _argumentTypes = NO_CLASSES; - _hashCode = name.hashCode(); - } - - public MethodKey(String name, Class[] argTypes) - { - _name = name; - _argumentTypes = argTypes; - _hashCode = name.hashCode() + argTypes.length; - } - - /* - /********************************************************************** - /* Standard methods - /********************************************************************** - */ - - /** - * Equality means name is the same and argument type erasures as well. - */ - @Override public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - MethodKey other = (MethodKey) o; - Class[] otherArgs = other._argumentTypes; - int len = _argumentTypes.length; - if (otherArgs.length != len) return false; - for (int i = 0; i < len; ++i) { - if (otherArgs[i] != _argumentTypes[i]) return false; - } - return _name.equals(other._name); - } - - @Override public int hashCode() { return _hashCode; } - - @Override public String toString() - { - StringBuilder sb = new StringBuilder(); - sb.append(_name); - sb.append('('); - for (int i = 0, len = _argumentTypes.length; i < len; ++i) { - if (i > 0) sb.append(','); - sb.append(_argumentTypes[i].getName()); - } - sb.append(')'); - return sb.toString(); - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ResolvedTypeCache.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ResolvedTypeCache.java deleted file mode 100644 index 46847944b..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/ResolvedTypeCache.java +++ /dev/null @@ -1,141 +0,0 @@ -package com.fr.third.com.fasterxml.classmate.util; - -import java.io.Serializable; -import java.util.*; - -import com.fr.third.com.fasterxml.classmate.ResolvedType; - -/** - * Simple LRU cache used for storing up to specified number of most recently accessed - * {@link ResolvedType} instances. - * Since usage pattern is such that caller needs synchronization, cache access methods - * are fully synchronized so that caller need not do explicit synchronization. - */ -@SuppressWarnings("serial") -public class ResolvedTypeCache implements Serializable -{ - protected final CacheMap _map; - - public ResolvedTypeCache(int maxEntries) { - _map = new CacheMap(maxEntries); - } - - /** - * Helper method for constructing reusable cache keys - */ - public Key key(Class simpleType) { - return new Key(simpleType); - } - - /** - * Helper method for constructing reusable cache keys - */ - public Key key(Class simpleType, ResolvedType[] tp) { - return new Key(simpleType, tp); - } - - public synchronized ResolvedType find(Key key) { - return _map.get(key); - } - - public synchronized int size() { - return _map.size(); - } - - public synchronized void put(Key key, ResolvedType type) { - _map.put(key, type); - } - - /* - /********************************************************************** - /* Methods for unit tests - /********************************************************************** - */ - - public void add(ResolvedType type) - { - List tp = type.getTypeParameters(); - ResolvedType[] tpa = tp.toArray(new ResolvedType[tp.size()]); - put(key(type.getErasedType(), tpa), type); - } - - /* - /********************************************************************** - /* Helper classes - /********************************************************************** - */ - - /** - * Key used for type entries. - */ - public static class Key - { - private final Class _erasedType; - - private final ResolvedType[] _typeParameters; - - private final int _hashCode; - - public Key(Class simpleType) { - this(simpleType, null); - } - - public Key(Class erasedType, ResolvedType[] tp) - { - // let's not hold on type empty arrays - if (tp != null && tp.length == 0) { - tp = null; - } - _erasedType = erasedType; - _typeParameters = tp; - int h = erasedType.getName().hashCode(); - if (tp != null) { - h += tp.length; - } - _hashCode = h; - } - - @Override - public int hashCode() { return _hashCode; } - - @Override - public boolean equals(Object o) - { - if (o == this) return true; - if (o == null || o.getClass() != getClass()) return false; - Key other = (Key) o; - if (other._erasedType != _erasedType) return false; - ResolvedType[] otherTP = other._typeParameters; - if (_typeParameters == null) { - return (otherTP == null); - } - if (otherTP == null || otherTP.length != _typeParameters.length) { - return false; - } - for (int i = 0, len = _typeParameters.length; i < len; ++i) { - if (!_typeParameters[i].equals(otherTP[i])) { - return false; - } - } - return true; - } - } - - /** - * Simple sub-class to get LRU cache - */ - private final static class CacheMap - extends LinkedHashMap - { - protected final int _maxEntries; - - public CacheMap(int maxEntries) { - _maxEntries = maxEntries; - } - - @Override - protected boolean removeEldestEntry(Map.Entry eldest) { - return size() > _maxEntries; - } - } -} diff --git a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/package-info.java b/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/package-info.java deleted file mode 100644 index e82d06994..000000000 --- a/fine-classmate/src/main/java/com/fr/third/com/fasterxml/classmate/util/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * Various utility classes used by ClassMate. - */ -package com.fr.third.com.fasterxml.classmate.util; diff --git a/fine-jboss-logging/.gitignore b/fine-jboss-logging/.gitignore deleted file mode 100644 index 5d453cd8b..000000000 --- a/fine-jboss-logging/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -*.iml -.idea/ -.DS_Store -.project -.classpath -*.gradle \ No newline at end of file diff --git a/fine-jboss-logging/README.md b/fine-jboss-logging/README.md deleted file mode 100644 index 167a97c0d..000000000 --- a/fine-jboss-logging/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# fine-jboss-logging - -改包名的jboss-logging(3.3.0.Final),以下模块需要依赖该模块: - -- fine-hibernate diff --git a/fine-jboss-logging/lib/jboss-logmanager-1.5.2.Final.jar b/fine-jboss-logging/lib/jboss-logmanager-1.5.2.Final.jar deleted file mode 100644 index 7661371ebdbd50b8f73779ad769701a7ce8aeda1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 314271 zcmagF19&Ct(l#91wr$(C?G@YR#I`-LGqEwTolHEjF|jlGvfsVW`QEetf1ht%-K*Et zSJisD>#4i$>VB$}WI@4Tfd2TLT2YDp&yT;ppg)iD;%dV5(h3rcN`Hw#0iAq`X&IYL z!+`<;VSdV>{ckaOVFhUkaaA=2d5P3iZHFQzq>-(}Cj^Z=_mW*8D~3v$bytt(*d)6p z8$w#pur_d9Y)bi_cLd2%V78hRsYw3cubg|_hart$O2<7*Ss zAU8m|lysaKVkxO`S*^f6!2#)P93BWvU{;2S%kNG?*EUgDy2MmiD0iu+$!P=2jSGEU z8ScfVR6a^E#zi_dP2=5JsEk$l>Vg++PDWz}k@{g(2ZYab1BR&egkF9lH3Y$vs!sQ2 zCYJ4`vpZZ!X9<*W>zfAHY9)1_eSRv5!qvSsf0g*ES~l05%@t`W*G>ZCPF$l7M$MD^ z1tcpHX$m%y! zE>a&DBS3mXqy9OlUQzqD(i&HN(Cva_)9$X$Y^NTOO@Y8?6SG{@H?jS;viZQ2RtIh> z%2i8F9`*8ErR^Cph1nV3vnjJHj;0R_?ML0a>l6Ea;;$k8>;2u2(blcCuPDf9_{q7( zM%9uJ-SxczrgQTfBqPV=Nff$r5QU800(|+!OUm7_`Bp>N(W1*m&r%~DCzKu!9>V$V zMsf_zO+v-cd?-vj>^X`6F$x}g(#1_6C%WFkUTUqnuDDbyE8w*Eg3+99ImqR-VuSDA z7&4;aS3G{^f?QZ1iQ(kw1J{P;ye?P7pnn>jHu$tuVKQ_@0$4kq-kzt`?rhU{@X31e5(FCAi9`2 zyIYx<{a+LP85xU^zJQ{D00C)!PAug=4JGGb@i{RH4yI;g%nT;B02h~7RU4Z{AvFF* zMNSFa*ZGbIvm*1xwWdP6?sS%>E6^P_G2GKCQz}Xgy7uY#3Zb%biZ$`UNUJNQJ$k71AP%sRbmXk}ev~ZTIi66^_I9J+9lPB9jtY=2p z<7c%+RY1sOm{akt{_L*~q&dW*$)p=tBg64YHl5&6hnoVi#OK6@yL=@nHRYhn9r-}s zG1UJ>u2cCX${98q0*;QEFLTl{(J190Dv&~>!eFNjJ36$+D8o$$^V`=*@C=BhUkpn& z>33MAoryC8qP66|!gtj<%pS#Q>hlR6LkWCv__3+-inD%5Fv>JD=8fUKs67MFREvE` zxT7FkZSrWz@9anSv<9_^n`y9))wMK!2zX1G;b7DzE*C73ilmI<*uV0dZ?I1Gmgqy% zXUX@^Lf7s=Xs1iiKl+w<5erUXJt&P~9|{ybulY%mu?ZMI!?ku^ENq$HlFnw>hPm6+ zMfOjTH#Gj*e+OJ3-RCklOLCxAcMv-My3^BJ3K&!u=9Nr!5^PPs`eGXjR%^tMY21$H z*9-KoknyKm`CMFSO@6wQ3@{Lo$UnK2sDr(Uo3pc-y{n3ux!LE@#7qj{Vkr-BB$GAs z`uDj%JuX#&*}h*0DF=KP)C5G_8wX~?5yfs^TjVR4I0++H^^j3^=kc`It_`&(P<)hg zsSp&kc*~0Rl%@H@+pQl6lX(7>u`R`Ivy(y^#X4;bOA8A#55Lw#ht72ve<`1)eWzM} zk*0tFH!umD^L>eFg)7C@GIv?3P%_gSudxa))J^^r2rzL+4P``7e6yTo+#WbF6$8tT z6<+V=$Gses;ACGZ-+Jm#Jo+Z{?38hCci>qe*n2je5CoC$CYZ`oUp-b4J@2rB-soo$ z)_VWbR!!b6R-B)9qWOd&<3HKzPY99;ySf5QEbTr`_GzKNps3iV@M#!7RhU#2FlFVv zB~VM_r6MF0Q8s1{?=N>fHQ6dEEv57nzG;-Gi2h#!3JC!@K?Jjdb=kR`w?8M(C)bZA zXuq(YqpUfhte7w=sPaYyM=FsdL|zO65A=zrK?krU(sU-Wf{IzXZMs;{5rpDHqpx`U z)Oyh_drT);3~+&P6)~H8;lhM|{dlwgPNbGDL6p)_0MkfNFl*h3A*UvX20*^EMJo+K zwK(wW5N%!9#X;i1b5lCxH&d90S-xO_@1AT#+v3D2=V33?`3psuF|* zqO7t3w(tfQ2GcbG3|h-FW5tA#Y^l@=1=rrs#64Z~>+o?5N6bomz7qG5xga>UHQo@4zyQRZjv&l zk=QS+Z?=4Et}*GXJO9y*InLXO^~4>zgnHqQgdu>r^~*G)0z@wrKUfz8+M!1dth4iR&Tw$yf{1Iw- z)+*PkVaS4K!w5B8*R)2jsJw1}ykVk6RkJU9@MfGx{6WYj{Di&xF>KDcgr6#WauY=q z1P59+ZXSWxnN4i%BCC4O(rP=!W4TyY=EyfZb*G!cVM z)CB|EfTB~Nn`T_Yb*Y?Mkv6;Q)OAHV)$ERREt(+5B10zceiDcw1o=Bsuwlwb-MpQ* zWcN%SO2#;YE5CZK)(S>&d@Ud%w>GGsmqd?((bT1^`jo*U~5@i_YFOOxX#xoV!taq6m*1{}__wfE(7~ z%#Tb3HP+EEu_ zKrcGtqB|7rhM-UnhoGroG!zq293Z8eJ1wIIkJb48nkzhcPI#;i0sm!*=tq2)Gz{Fp z#vAarxbDm$xG$B;a2 zKMe-=jyds3vl5l)NU$VtPPO|V@%r5CEiXF&nP0^aJFI3k=-1;(GSk_GXX~N1s5HrG zcDY1Dc;qAvRrNDy>k!ewik8=!QM#aD4V=w$Z0$w$$;*3buTrS@FgS(iG`c-@-;Dow zbQQHM)KSvkWI2+RcgZs!Wjw@2i3O00VTJw1*Ac-LeIYq6>k@)<`OxnPK?vjUko8Df z5Hq>WVnB(ow##0Y-_$qNlG7(q@MaBD800|`!4%~>@EdVbmq6QuLq?<-=>MRUI)t)b zsm+8lsc@a3$g|oRPNVl!?}rcLx}U}<)x~7KQ>vC2@Pz|yqb?#0hU?C9oY^xu7TkLZ zkLn6%I`@ia8r4$|6_w8_<+zr;)}7ICaT8UhXQdjrg^xS)O;?FGmJ5p^8?dzTf!-UW zMjvI$;}MiTxh=#}k@7GG!4BKO;QzGj9s7Y){~|RfcYHQy`d%q`3hD$_Y2qzZ79gYT zYjTKo2j}2?1x*;_@!6msAK4Vb)+YLr(17DBhzDyi4xC>=yI^ekO~}jHak5pHr3$Hd z6%AI0Y}$CNy!~01aRj^r;F#v5)KhuA0*W_baDqW|OQkpXS6oAF=0?q`Yubdyl*Ulj zWoK~ zY89zx@A74zxiIj z{1;m$LNfkd;QyqVsWzG{(@*%+fCB+B{}X&904}bg4vt>`%7rulwr*xFe`P^x6ZQ*A zNc_uQE9@NbdDC#1@%0&=li&Q8R*+wO`db|zzV$T#9M8JtcyP!`P z7`8@zAk3UjYZMg;+WXUc(>a;kF1Zc?0s-K4vEgvw%V*f(_{)#*>lgS=;g51NIHQ6#~{s3nBhETYaEXanZO$m1+(VHd}H93TsOfoEg0Sa;Nz=!gh(f~tkPQ&bUy zQVrJJ8g&B+6B4px&Fpj}%|OuU*v8rb!+vyhXgbzGaZtE;5`em{4|;vZZU)P#IjxGp zA(=tFf`sAp;WS?$G&$NW->%V|OgimephNkrQ!?>fv;3u%7A6{1n>^an4_uc)Ine@*Vr zTs${9#yh%mUH))L(D=J07wl|bn$sTMs}A!`6f2zpC%JFtE?b;_S?Yy$pmeDyih)gF zUY0^k8>oPiyZCbA- zB}gpWdmQIZP$-ZovFZD2Sia{UfZBVvAu`CJ9u?W?3y3(kN|4H^)svkjBU;S^i#8VK^qWZq@k_jp@rxV99mr21yf?XO0-fKDyRpaGsg|5)zr;S zq~0uX0U?1D)3h&%Ttj?^oDKw&kI#4D+t8~0{m&xm?Xbd2wVulwnCDBwoni7tw^^!4 z0G$)W8f!b)=4sm1;$xWZ27U=hV*WRhe%t4VkK<>6WX8uFefE#^DW`j@r`eS0(qmMJ zn(h#|)!{2l6E3iROT)0U_Rg5d)dK^i7PlJCH=Q3Fq^=1>8c9gr37SlC$;U!c?xL5W zLaq^sO8sKqkRF2nX%IO~QdGQ8`YZcV7GBLwt;l3sPJamGWj-DgHH00`BbEXZV!>o= zE^=}7yO^=5C*AY*%HZ7o@vIRKKNrj7Y?3po)va9Ld`{+yvi$-3`VYCHbijK34mo_t zVD!^mUzEHRkw6+BGNHw>EWKc0h>?C;z6z}O3A$)gOJAsllBeg>QGMk4Kol3jvOi5jv z0i#!h1s)B)Xj?~hn!Cb+SDXbu^t=omu}Yb<`dszt0^HPz#c>RqUdFLgm=Kw_o-o$B zS+x+ZsIFaB#sVwpFm(S2^#zLicpI)A495;-)m#YF0R90Txtu;1(Q!+Ndl)-}pkgMk zai&)~5FkKCyuL_XT5~p%0ULj%<|}wj{{TT4s2hlGN`JS3D?ba`Mv)QiCEAY%>NZf^ zp#|VD^l7VDnqCj?A19`aiMG&WO$R;uiBI*5T0=YXl&WKcE2HH>KHzBrcd*6lrXu$) zGCFa*X0&SQqe+l)c$?bNC7u)mcDh|HV)EsiKS#crPO%J8U5=`t#g-weNA84^$@hDC427=YnVJc<58iAw$@c<=;T1Dll zT`~DD#e`o$4d^t}h-aUgMih)qvoo&s(6H`JC+T zdzvP)IkCMJgCF>0_6KVG_6IOt){|qf*aGw!q&qP|ZU*XiUa{i19bhyPx2}EIeCYX2 zR`EMVv0Xn#UFqW#_H0?@BII6KPPDQTdG%)Rs=o%477@Mt?Ct>zVIOc;BOMsX!q;$% zu3F8!@`do?IL`pE%Vk1i3fk;QAstcwI=y4#jDXSiAI6uf(TOqD|Tq znuQs9=zyig7O}+whQE+p;DW7PE={Aj;~{czLNh!);JSYB%S>(uQ7tkiU$fzobfyKO zV=gS{I^YmLw~Wxsw?j_U++>oA8lhh{2uhP0V#zL&x8rdZv!vHR(ax4e<;uhsN$a;- z%R1>fMfzij4wE;V{)%dgZ+xBaO+ZW6=pg$qt8Z6q^>T`_h@pKwF$Ou>Iuq)+^jL9e zM+d)YcXEjoG}Svte|W$784h*aM^mo&lz^+uSKEuJ136rT*q>I;W`mbORt_)(0{&MK}=TYI1~Q6wy)kPS{d5O28~%VLSO z;ha2d=ZdPW@r4IGh;2p5qWGgn2drq*r`(fLV~(Fp0_{;j6ywBKW=4KR&ITt^=8V3n zw4k)9C;AYNVi>B!UxN2&%n)_c$gk zj+oECIs&_n1lQ)C>Cb`uh1T&(hmVwqoO59H+d@Zp?RO$)lkXg1XC`-7dkq-@wvW}R zOb>h9m_?r61dMHZg8PN=PscZW7d=8yjL2&fVwtpTzYW}!RcY^)Ja%YxqJmk(1JbXI znFBG$5*$}gVYj0gzX(G3V&Ba+r~S3r-4xt9KSStmk-0h`cX-gaviJ2VoP2U*|4EXr16-nfmMU4;qZ^-{-+lu2HOB^r&eWQYqS?#NB=cc`;e#-Bec218Q zEQ-0!CBws?KGV-Vw|*bLyr$z@1%6-30%1%L_ib2Km$^UITJjm-#y#9YlJ*ghYOLd2 z>=f~@nRyZgb#3^=jo~}WypeZ zyWb_qoJ#6vg5`vrvJMD5!54;Sq0B9vAW;h(?Q|W#8q1R*la^WOahdlA>jlcr!0_eH zN%gN}e?_S|TK~4HH&5h<2xhWDziBLM#xQ+O02jU<{2oTs%O1IZC`N~NqI{d%UGV9e z&@?*9C@Np4`!d!_TUPx`R*H`^`WuELb>(T!WXR zonMSLR?3~U9Fj-fgBI{%C}T3VgV6SE?(r%bgInfy$J2*1!fr22Bykp?1%FuK=!|q$ zY0!Cy)mK4w1nKlVS9o!d7rqxvmuk_q#hWfGc2Lz=;w-Z<(Tv?l3Ikw0tgLY%?|Xhc zWXISC7v&DGB_LlmNR8F~TA24IQBTQDd8)0eAAy36QYl}pEN!D0Ile3<7V(MEaH(&a zRmKrbR5B*t>~WsYs9K{LEw5fX9T1_r>5q)|qZ-Pg4Ht1Xm5SF^fvhriq)BX)pKkfOKZ75hAem!feYYs|$hol1P07A|D1`K*qc3>E8B&97+YI*?OZlP<(bq4xL6pIs z*LNzsCXe3Qh6$}FhaL-_pCGQ7@~|y2WXzb$gUn9pxAN_)>^22LoaMCd zh6x$RU{>=MR9eY~#f{Dpw0K8MH!f6VV}rQ%9>+#)O1EeNI^hQTat;_Pt*(xW&OOkj z%7h@NaaYsjX`isMOnYiTS;W^!QGtzMpT=vijWRgbn)KiAKpCYjdw{H4_9bgYFdz_-p>{KnvkmIXjP*f{&l&|2_&!X&OLLWk~ zh9CxvD$Gc;skm2*T>`9MeIa}Ih8nrXb=(Z}`8*AjINK49qF*q(t1(B^G#VzAcp{PU zoG99N*|xJF99psmS52I~8h%#vxGFO7SC?SyiM%Cv17?L* zwc|aw-a$kj8%Dg69RFy>Frf{y+a%l>vEC$ny@D}NC%!I=5`l~(RTFMdD?EPcm{Vbi zj{4S|wLCw5>+uaHvYkp*>W#g^J4ub)1TAm&PT^N(L^X?jLtvh&c53a}Lje}K^_E8_ zr|Tn=$f*RMqj|b#?Jqk2kq{ zYQbfV#?P0dKJHf#ogKEBEKkH*OwC=g#{r=qD(mlAD?^ednueJO9ZhXn8n#icb{b2? z0-;pPr3vIi8Hj|t0V%E)+F(3I@0F@ds}u*eQnVI2_${=J@rRXd^3p46Hx7^WYfvTV zko7TPok=X_tTai6;9y6mk!9UMp5p+E1NQ^zyud#F9i=W!&7%};i>aSrs52BrtT<=$ z)0$Z+PBv6&Sa4zMo=h;}G3@nNw?U@yc$fD{^xgHxv3>f00n!Bt6>pjqzW!i;ZJH6n z?oP!9(+scD!FB!9Xp*7TK+c~UQ(ah4^tCJeX zRBD|}CW^q^hfFyAGL+=h_lqM;p^oMx=5?aS=eR!D%)8wzhU1NO+B6a!^O3fE&WYpK ziGv#IHohuj{<;`a=w_Nn6!~h65{^XQT_q`T@-IslrYO+T>oBMqM}8D?nGxV~%PXkX zTjytjr%!n9!N$wTqL?kV2Wi46<0{?0zp|EoKpYRZk!s{Fe1COl(<}oa$*SB&UY~II zr?+E-mV0D@(lLPx`8aj_ow=-3vzdJu*2P(}z>@lb)C!y;?IG!*k(!&vhOtM~bfr@@ z^Q7*|#|3>}k3GvI?mGPkA@0hv7u`BUZsK0>PRQ!Fnq~)A_4T^B4mgEn{rDaP1o0pM zzN#6E;!=FJZ-b$s^_YdaMe&RvdNc<8d_BvFHqBCMg9&3KD=zQAOAtNk(7r5UBO_)} zQEm%2Ud#yYJbX;I;C-vmkazZ!ODUhE6E4>pD+N28{3(+sfxIa7w zyrxZ(4NGYPvbo(C{6I-@4OiQm1wy0!gC-p?GHG%}*FNIgu18Fdo1;ll6Fpp9nM!So z!5*8%NF?Oehayan5or~GP7zoMS)bCr*(=?>(EGA<8Z+>?bQ+{7 z==EcM#w)|&8|~3JjGkqH;h;mQ>uYD!nU~IzEAZkKcX|M<@&r2K)rD}a(^dOM0ABR_ zw29WKVBm|1<(**sL|nlb`pvG7H~xN;?@kh=ZX1m-9-Nqm(32BhVzerbLdHcP}@ z$+j#2*!r^xU)V_?Ylb@vKmK#U9#sAVBvlK!WJI+I2XcvWQIg# ztB!f3i3_0NklFXY+`juNQXkpxSfh?`JN8W_@-KZG(5<<4eva2TqQ@J~rIo>x+^!%H z(QuO(W4g3|?2U-aN^aW zb-&Vs#{81xXpY3fE%NpS;A@3t$ZcKJoTQ>B+Kq^ejd{HqI&z$Zz;i|6s}2Yuw;Tpc z)2KbJlwbBObJ@J8;Fn%MA~i_!#@fJgX$Fo+KZ7y!Ay*G9w~r);>`;SUvvn|sAoY~Y zWkGwimzx^7;Z9RB>u(&J#IVdLaXJ%T?o$R0S>`Q`)uO=oaM=cFTW@LR5MZm(A8M}!pR z^=nYecj-5!<4AGeXH;c^S%X_17MrN>YYWk%pZM8i81ok&IlAUdRWn0|+mtxX5bM+M zPqHt;k!yHVxbHE&f@N*JL>B=@%>H93FSKh<%Q*amEYpQ6!Gvf5<=ow|y$xc9R%WiP zGWx$_6ld*yBwK4K5918@AAteS2{XNYTczKxa>tn8q(&4iV0KF_C`d8bUp$^((FQ-5 zPNoYt&I#>y1z>|z#5b%{15eWlM%WT?blaJ7bi@6>{E5<@0|p zo2rXkr>&%$a>V-J&(lwvVz2?}#2!rn@$Xig$U4{1KKI4wjE@+abHelEkldoelgm)g zzhR!%-uR*0K2X&T9!5@Tb->~>e0YFfwp+5L=j#%)t1~IcxgH#uX2{dNUYCm;Z>r$v z4{<*4I{huHa?U7qVGw6q+Z)gS$Df6729oE#Ns451DDE`K|}nTx0X3v zpYAUP=log^LdWsh_I#QOL;w%rlpSzsFc9XHcU-l((*(=)$x&#M$@5QyH9LVV3t8k) zo$q#xL&}$`Q;a22>@JDA=yK&y&RLgC8pM@oYF#E#6Zs;omb(>G!Qi zK_&}DN>oI#E13-6_SIv-@xCR7YSA>esbK(`>3$FxfIg0lmU=|zkovUJ;Hs4O^4}@_ zeqwl(nhsBR+$oH%Ak7I~TSpU5tr$^XvxDuT!faV~UF0=Xmi{_D1jDL-P_i5m)jM6Y z#ss4Ni~1%L~&cy6raC;Hj5EB44sdaFIFXF&`x#IhbGAUs}N^7ofgJ z(0|G;N|KI@HIHN)g>k0;3cm;#B{pm_(VJplb2-o`9MfFV;~90}t=|j;X;&~w?kl!& zLyULqlM$%~Psx`4D%a+b^9A^|(Ms&+LsoKw&aqhIQ$yIuF)3A50Sr9?j*oe4gE1C#8y&>%GhNwy}&L4L^LEUv*!GrZ+Omwm4f)QaqQf zR8ycRDK%*d!t@(>gm-6Nm7Kpdp&Y1H}lGwKzKtSEBvSBvovdM49IlzD>dSI28=SObPcZQ0+!e zW5$uN!EZ^bZBg!gt3*k3$#s&mn&B>oaSZN3Z$S|6RJ%mm2@*-w48Xc2ZB9Zl^5U3T zq#f82AVz4*LiBU%{Tbwsx~HjX`CWalcMxKu*tUtM|GX5eUQ?^K{=n$Twl}(I|N%8Xt^_4AJsSSvFAP+;p}-2J2JZ9Qp|!wAAw#5;NyF z$E+_+h+M!IM{czun0}iRq+YK`E$AJ3l685i{Bn~G*^!xMb21~`JkqkgUtg^DOR+TK zfq`SiH3ZBuf#?@%Cy~qNeyogurrO2Xmj~3CXOV)|Xi3bxL<;C>Nb5nIthTN<0)u7J z*);vaYngIiQ6PqFuE*okJJLZbX;XiYYB%FR4{%Fct?oV^AoU?X?;dwc;;}8u4_-?l z^_{Tm;iWHXsnR97+%`QNOC8Bb>KT9W&1lYq)bR=mZIkN>)WGg%zmazx zZ$(bEaO~uZ2ED=GP~_w%o3S!s4CH+@!52rH@Jizo>}NT2M06Gq>f^TFou~Xxhi^f% zNF~DZz8R5Ao%GrK(KU!%%fxr$^>Lrso%A=3!=gTqmw*~zzp|q~C!*}@MDP0^2SljUaDT{E|E@PCdRGAkDqYuw;>z+qBjbo-HcyDMZH+}1rWN4UW}Mt?wVtN z*9GhPY1@t3_4FTsn;r%}=f6N^2wz2^(etqk1C+?V!MbN*t2P_Mjufq|ytI8u4jdD6W?a314UxPE-U1oB8%*~&FADwXm z#n%nhU9^R9;Be)YX~#MB+u1{D+VJj;_4plU^>CrRd8WtH`b^_01DPD3=9X_%AavR^CRGWImc1uro#eiM7C5&|pKK4axmILg#5*+s#SRdUo8 zhsKN^{VGTQdC(8+b`pKn>AxbE^H{y zX|~Eaw(0r6ja-$QP(tyO@6a0so&Xt?`w~0YRy(H|R04u|d$bqMM6Pz48(i0Mp%OyN zSlE3B?K)geX?XH7K&{Ipd=vA()SeSWYN~nyA(CU143n`YXUZL3cWna8&62>? zs1~m1{0eP3rHWNMA6(3(%W|Y#m(8{#fGwAAC9g1*+uF`Yk1- zk;kSIdD#PvcIXHY>ueG$SP&J4ALAu!$`+MZ-&NNL)|iL`$O=UXKs?AD zE1QpcB{G%=S!IJpB1~F=Wopw!_h?u8>`W6Jh)J$J7)2-87DaT!6&8nTPgk){=9iVz zoSJcoK!c@njlz?R&Iv%o084a0+==WVdSHb?Jy@ELbA5{aJ{f6Qol_|}E{6H`fq3C+ z?a#AGA5h)cDLgJ!8*_Fz-G}qll_xT2InF{aZ0y=hcrN_@qQITJGqAwL%@TK5#ri8U zpB)+}P25i8y7-=IgHqc#Z)uHqGf}{>;<>mH*Eh>Mzl%aCcniu!E;r9SQSff_l;glc z6)BRba7=XR^X)xrsAUkaYrlv9NXy4H6E@2v1;-TImqnp6;~>@mZF09PG2f2w61*CietAI^R=U$#X-t zLTERQ5%CpYPCTRNt(NMecz)<@TPork3*vKh^v1!z*|(GobY2#(JDq5?pA?DqyRY!P z@mZ~b%k#{NgoiC<3*gw&>DI8bby-^0sa~|J)Ob`8BA%M}zEJL%>AtUW9Ah|O2G{Np zHp0T`gkKy2^*{6s*tR?&IV>sT+CkDkyvN*jM#tld>M*$rKPSR<{NgdQ6M-+^1S-Lv17_PPZ}i-!iI ze**=iI8Cpjm-JzAu8y5gW_70#o5@BgNeb%9Cv`Zmak&l^ii6GatC@T2^hpj*DO8V^6> zGKwmC(k*Od4p=m+f66>#1uasSEsPZ}sku$wOqBL&n8rR_bhAKe%bBmX5J!T|`fwIo zN%1*tfwQ`HCre^x*C7-z+ANpdi$KADDS>SEgStlege!3Uh*3VeNElXTRuEa#z!qV* zpgU21uF41+&ST7mRKem)&I9^{&IKH;&I8;tW5XT6s!E0gaFq%fxx^f`z0 zFQZHf6Jvcf)F?_bH(}nP@fWn^CXcdF+F=kO00fm0J}$CRW(O!eC1|V>`|(}s*A4YZ zYRL>vvWxr?`35+x@H8kFNhymAGi+=f`#uTxNLWCJVZP=#wmQrhy{olija~XtE&0mE;12ZpWXz4?=f#K zCUZBRZY^4WXslB?P?vp`=K6j4)CzD9ny17{X!6TyoB9uR! z)GS68p`Qs(Yy=!f09VTiHmD6mrIn5=P`A1%)v7qenF|B&izu-Qhng{2yu{2y*Uxy$ zFQ6JB-H6jICGm5W9-5ac(sk?}n5js11%B1-YTT9aEMTA{)w(^6>X$kEsWobx!O(!) zlGqPF>`4jFMF7s+`7>4ckPuAOi4IHx zE``4BU1Y=$tn(B61_UqSSRlij7IxK<{q)-`k-AKl^`WBem3OT7=PRU zw2g-=@g$xp4=n=pnMcPx>EvD?U1^HJF^{Ih(`7>4<1X!5H!hvu zLk@f#vda^AeBI)-o^OG!K~HmRDrW!I@`u3=9piwcE9vDmKwWG})f zD=5-A4PvMtNFR{!0D+^8#!L4YalyNs&(ebTyrajPoCQI`_cz!t_*|5;fFlYM%;5`P zfwUG%R`VY@P0sbV<{X(V&d*wgG#5UBYuj4|t)DUc$pn%uGcF8?KUoj*FC_&((}@usa|=Nin4 zjF1zrQ$3oU<6BTF)j4b-C;;0xBumH3`m5?!fY;;VbIyAUcU}wJU=UR}F@7uTV!|@L zTHvfR{sv^_Ja4@$MTaiYacyc~H;8(&#!g6PV?&2(^96nhIQ%ZSE95LV_4(wGDNVYj z4gu`0_}yqQD9DsOCTDM;s7his$ng*$Fpa$P=Sd_qtp&NPUA&C$@LG7fsofOxnd92D z?gaeTvb98VzmRGp1*_bRH{nR2mPoxLfQx`boCT9+G9 zFg#?d%7%+RxH15w4WgC@WD(*BDq!!2bo;oWhz+shO!O}H>A2EEkCfabGrLP;+aj$O z9sP3!wIzr|X3Ig!mw@=AK&TKU50!dj>VB>+LETgVpB*>GG)F&mqHB;YqnwdhFdoT- zqQ^}e@39zVyQqOxFMhd^H9uCKT^c_HDnLYeLi)KqE?Gq(zE~KU)WOq?pnS&9*BnHD zo`bn+9c|m3CGS5L<&Eyp-4LJLn$HJ%hojerKfmGEVFavw?N}VLM6L666h}#~KXnxf zc_zWl75s%FR-jT=t7ul&)HqRnTuZgMd=BkKwsg;_gms#^ubZr<20g@1QO06I=Y%iV zLUw)(iCGrH2mHmwrnJ$l#uYDWX}*2%8vn9e_UusxDqpfQ?H0Wzru0f*O!Ad5gfoe? zgDE&F@L1&N4W9tl^;?lNJ~*+(H`?V=Vs}ZeUk*9eCqC>7!6#Bnw zIIcXz!&G`nGwd?ff;M&6f=0awFGcyRAY(MHpz5~`c%KsJ0;sEy2 zfOI$A7qPdnycYEqVy=gHtCcJ4m#1zo<(d5MmhnC(^{sAORH}m9lkQw%tyDjQiYV z7Z#Vs#sGz*3~IB zilz_S?%IP^GS6Q;bE}XA8)q}1p5@QwUlqztX>(Bw`U5_g_e&D>Y5G+yG3O^s7FbxU z-62G17bCOwv!&Xrb`|X|F|4a&`+>-Nd=Pf`Ik7;^3%7;tz2d|15y{!GgQKAc;VlsJbpfP@cciM9aS%v&m8D4Ly`T_3E*JjVEZR8=Bnu{ z{*m}B*mbVE!D=DV?`qb}V*rGoBdkPafIv%;lR_y5AzA5dv>P_%-E~nu5)cKjs3Wmr z!z=<)uBV%5)D6x#GCM5}H(X}AlP?|#^Lv3kW6Z+91uZiq*#+U`mmS#JM{wPZ2%LX? zZw{Vq`We#Hy&Afj``zK$ZA<;LVTD%mEhC%Z5$7;$**=XXSPES;3QqK0hNcj%Lg06` z5tH19Bs4lr@Iw_sa6@OyKpk6#tjv~fnd?#m&9~x&teRSl2M)ThgY;nQ;rRCT7SXV> z_O~x25MfL?LSWSB190^nXFePQS_}a@-Yqtg?%m=WHdxEdVP~d>X+Qm^uJ}9xt(rkb zY|w6l-J3j>ZKnSOk+s*p2;{;@7WT!G~9U$IsmNR!CQ?U>urWh z=v=syCItMfYK_XyZZh)pZ`QMJI2yxW;%JR+z2L)ui(mJb$;j3#4}a8Z1>lv}WODZ` zK4Ap_`D%G*tTLDg?Nk;N2qxi(4tE>Ef;Lp-!SsU6InDeKh*UI#6*1A+I;dz;IAZvf z$5>NQ946oK3=g?4ejB<*;t{OXN%A-Hn{q@1@;nXNVZkh-66`{%M|=f)Ni*Ukq3yGxXuEAv85UTJ^gnBR|5w zL)tq=XWA}XqaE9}Z9D1MwrzCmq|@o-iEVal+qP}nHc!^xYkgzAYkz0F`;7DR{(aX~ zHEUMQS*NJE6rHcKlEZGSm5*~jAe2?Kj?vVsD2;KYYsAGav61)hf3`#HMp)JVe<)xpCKOAe<3vYTyb zQ$1i~3A`)g3avG}l7xX@Q$A3NfNKHN2{1HR>B9|8p>)Ihx8FgRq@R+X~) zKN6l|gfbH3%<~sDxlYU8+F686I=iCXE3^x2Uua;bQO(!|xbTAnHg*@g zV7z=n5r(rTUftXsp8Od4c2MU(qC70HQs>-Rz_i1%vFBCq^NMH$-5!hYZ_`I zpj)$KM7^Pu`2z6EYfr6MVWYyD`Jg9Ssv(R6*0_IjwN1un0Z*7QFD!DR9Pc8v%`n8X ziV+q~Ry%$*2yQ!54BU!;QGYsVM}@*#ZgpOC3q0St!Hx^RSsB@vrpc|@V6{iLvFQ+s zflV%Q@F-|NDP;>77yt^+DDf2B2c6UB_do&r$6M03E8(%*{Eoz~kNOAF>e-Ms>8qy_ z5!U6fWvr6?22sk<@GGgZfT;kabMgl~atgbQTe1*1N-}YJ!Dj$ikElttV38pVTMxIM z5Cy9}XcS}UAggO8w+ZB7F|>-;0D7y;X^m$RmhOSuGBDqDB$__Yd>rOlg2kU1hD1lV zY^F>FM^GPkDa>34KQhl5)G$!$ge(#%iHgX#|Db<7w%t76zQWn~OO-D6|0|sTJJkO> zDVN9FekEnZ!Ozt~o)e&aV&EKJVHhbe!ER!utttyD!0*&B@&ih9F2^;p#l#TRczmC zV-((|q}mdE^dja!BVSa?#Tw~7*2M^b3r-n7B@&XM^-4yvi z9$>F5#AB-4pgU+{A)i0l795e`Q>#O=YPS}e3&W?9C}F&dCrsrspj7JNEXVGHmN1bH z*Jgt=Z}pH9HzB|zbp!vh6P)v>qK65-D0y$wZf?+HwAu;=77t^uGm)MOa{w}mMasd- z3*AL0lVSCjGG_w)aPVNULoW1A(||T7k+5Rc6C+iwreH0?EVCAB-P4tXSgF4n0sg22 zrNq;fh*+9GI{~^WDH^GdMgeK!x-NA=y#be5wQrTNr}jW3-H6jDK$n>}%&BTAPZMph zXr3>1kgf3|L3YCg+;rSQM!s&gj9yOZjPgB!mCp5=`kNBj)WLUcU|Tp=Bn#~<$%+uW zk7!CIP}!zm@KYdU*o6D~ZNDa>ntVbl5JX^0SqGl*Psv_+j^NG;sR%BR@b)37@jk3lgCf4;H>_-KJkOOQ6${P-qjK)X-H3XfU1V#(#o_cle=%0w(u`MO^ zA%$y4n0p)pUckz?(iL7Xh@Cv|T>Pu7U=)tl!qY#|k+iNM2QT;b$W30nD9ymf!tDLX z4CKxof@vHOZQM&)gVbi2yHpt4D>!Xf1{Ja0d_wWcpO+i@y z_I-UR*qwg-pT_@R6(U2~*7_e6!fut#c3fvs_WWS(B*)r?zDOo;7*Q&yzoScuq6Wb+ zO=o7VRj1jqP(b3U7Mhs&73hQVnlyvP-*<`dG5z+d)pyd1eS5oqhwSpPVYHz_ihdYTryXw!UZEi-XU=!u%Yx>l1`M zE!^gaHg&fziS*QY^~WA!GNEAaZP;&v5xdA5-_#N@BQsfuAA1otdyfkzs^2sj;&U)X z1kbevIM+7}R`KGs=B8KkEI|d_VQbM?c}JcQIC7yQ_3m2PcDewl8f3EB_pPfB=0?eiirFkwo02@aVutIhVAmi3WU%D}L>y2Fa0scFP(r>pV8X=@8nE{&9JTBzlI9o%vL|HAr=pEs?-;>w zjqUIrvk4JIlf$^*!G(znKUWD>W_63XBB6?h2VR%O%e3C6K%o^{h=R@UnU<(1DpAl#Y9SBhE*uS!Iq z=82sUl%T5So0~0G_K}r?^3=K=WO`jRyP3TYZgzfvZ-L$b586`jv~ikag!OXqwAvhu zmpKD4#=OZXGIp+1hUwzhEEi)AZrCO*zC-pky0-3WR5(+^3;xOkmk zrbzHusyX$Kg0>;3y-D;EB*f(Nl3%#998!S@yhJv&N3S9JD{lC+ zoU8UnN~M_3&(SPklIa2Lj^CxE=6Xl1?FWupS0i+rymij1=42=g}d@IHCtM)8(mpl-HtPjH~mW420RsG@rKr} z@Igr8LQH)41Fo2%?~?42#nDW<#~Hx*iFBiilXT&;n2IHtNEV3+BHTDoD?K`+Of4l$ zym15A{mI0SzrJg~m;6HT$Wrq@jO6e+1+5rycH@R=JFsAERlW&^hX01UA25yFKlBW@EX}uAfBB5Cn ztQxNIJZLsC!fLFvjzlX5O;EeD8)?jg)Jk}3^=C0OCMR+&Ts|d?{3 z)19)aFy>{yfl)ZQ7X*ws#|&!&%A;B7Cq;P2F7T>9VXbwGk$K*U1&{54U0P)R#6`F# zquR{K=WJ{{@WfDj5YGMOpgZI+8&lh(C!uvH5uVElKww z@Fx8fJtx5U)FR?NJY%xTE8-GJW8|bf8|TtNXYVJDzc)Ox6J$B&f`%^t0%$uht}r%@ zUeMfm`ICgz!f(A7RVMLZ4?x?5)fgZD0qy&oRqKEZqB78<`Y)0VN3bT{LaIBNK*%G+ z46T4LZ#|>nQCN>aFZYZW!^C$+-D&~{d-mtpY4|}7Ux|JWWQHb_t1s#(>H9^Sv`;D4*!nJWtyS1qVD zLC&s*#Jw56bY$yUT|gyj?`H>LFA~)qip{6;-7>4FkEW&10shdZ`_+YH?B*FOu4xeU zV)hj196|CTreHmCOaF*sx0LiP)sG9ik>v_85(%JQ#IWw>8+1Q^)rp8AupOVX#+$N) zc?U(4uR?Km!lW^a;e(dyLpx>q$E&VbH0sp9VDWbsIR|Kc3C3to2RTYM ze;0qFz;i`YM0IVY>QjssExs4vw4)4vQ1vb^lZ0)Rt3Fa*FV84r7HSvkqO2S#J0ba9 zs|kpYUGb)OPB3E7VSbWq;F09)thL2jzH0hH$sl1q}TD(H3l3`*WNDG`}Y0EnIBd9l)1=; zM_d<^HJpFs2X-nAf>qCC+k{q~#>U|*NZLcIGRYT+G`s7iLX0xq$O4HHdw2|mTMB_? z?ht239Dm*;ddr@2v{81<$IFv66~h~*+>rdH6JPixDU4S09D#OOHFlh-jHZg$SQhox z@Sip~%h40VwO^TC4EBG+kO(??*ctzeAo;Hk6+POH^6`)ZYbylDubL1L(T~|#DCN3Nm6^$fh!n^w*P&R@?ikYx&a=@nj zFzA8Mgc&hWjB`4YpN`@N6gpXI^R;QGY-gP&esX>8zkYtoRIc$lp?@cdgk()oW9FW+ zHe;TyOIa(#(o$;7c~6~AS}2!smOY4$SvpcsWuMM91xJJYRRd((i7sm`#@v$c_Fdit ztqDvBWvwFJ(4yT^_m{eXT6R8nF{uKJ&nC1t@P{@KWEmy#1vnVcuUMO()XJ)prPs%s zw%hIVR3r(uXu)Ek%^K}|!AfISy@8s*7r}YvMh(yi2axV2jKJff8tHz21e?p#i4>TC zT!Uif>1a6O=U-P4$nUakMp#h;z|7>2P$3WGk?-!b4}c0)V8B%9Vy0M9N&uez^Qt;C z4yzXQX;R`S1u;XKiFPKr*0W|tjHaZG`*-OZ$bBG1D%*oOQ2G%wiv>I0=k)es=cITd zgMosyf(dukDhAi>#!6K>2Hoqh)J2)WuKD2&L#{`VIp{Pd5(qVK!e-obj1;jDWd@;` zo~ZXgB2$D_7E%c35Va00%lQ;CrSjb)lDR`lC)mvhQ1J)KE*gzqPEB_YjQEPv;i~DC zbM7c$)5O~KSf%+XbrqV=yi2ucFrLE#@RN6I` zmucHbJA2~%%`{A;q_9c9sJE?Uif;F8+qgmXMb^SGk=mtrzxUzVp)D5*j3=e8oL&Kk zsz}srA;(eLJ5#|}+?+Y%_7W%+6SF!S>F5On-tVY2;*|4ZH)&1J%~iFBY| zymuwcSf{jjRYj_)s)O_?IL9>6mXzwSxQsj`ZHi|&bXqz&aH3C5p=y>f_T|`#<&tgw ze#vp0CUD1xHp0)OV&zAK|dueoEzMFhe$7h|~QZ@$3ptmhi^$GZKsJ zrj)6fRW=$joNRIW^g#EKDUQR3`xCWH7Pp#}>}-emnTxVS%(FSbP2Gy^L0LctKUs)D zkl~S})3dha{tO4|f-ryzBq&qhGvj2*T+(NQ+LPHluARCJr!RkI>LO?d^D zYLr=Zh}=NW3;$`^Cw5(=g595rM>3K9&Pm)z#o$1SGwe$|i9Zl78IOJIsTDLBSsv`s zyHPt%c43yUL&e|$VQcuKc?R<~&<7(M;A1#R*#KwkF?PA+&0GMO4}%PxpNg#d)5F($ zH2~~*O`zI$wRG5PTx!()DUJi5`P<*o-y8IH3efxD3rw&@ioS(QzpJgXbjNl=lEO;ee6+Oex@4k4eBw$++5ZQjU?P4Q{ zJm2<8&Yn#`m3TyF)AdcBx#1R5B(*~$(;Lg@3FXzG#@+M@Pq^*W$fk40L&N6F^2yY# z4mQ(dd2>LiqIa)jQ2SE(Q+S0xM9RA_>KKxxwOi~3iRrEHP3*blPmf&s0RF*r(4@sP z?KGFXcZW%X{x)UDfOS(BFMUl4JyP~*ooh;B#nk{u-vy7-CQ4`NTf5v_g+u%IQvt+Q zoTrG64?>q@#r9vC97sxtiV7qj{f=O=9o#PE{vKo;*;3@qhF}>cbeP75z|cA#E+;F{ z@k&Kkriax#KOj%k-awedbofwC{Pv=%dGiBh4ug;paU<2p1+-3s%e3KTWzVVh$OlSh zwhvB;g48dN z|Npv|YVj|B+Q0UY|0K!PY?V>ezdA_ZW>VVFEXd$sb}M9BDy=ef5kh~39&HrFx&?Ye zsIXD`bsNytsP~l*zYpMocNGKhWY>ZWU&n#XxnjP@i&%^-tZU(mSC34mOs9+Ww)e+J z0id-3H`qp69vpq$I>+WFL(@eS<#8)lZ&9`+*zt*el*E);SlhV_Cq}@<2)eR|Ip1X- zuD0?bw3#npz_F-8^*&+bi*$am=MeYXo+!4NDan|}jl>4{@t9p{dswB#_5?NAB|NW5 zucq3vT!q8**=O6^uPn$OhLrQ9${qsyv=sBan;?cvF!jmZSufWtsth7!MxX+4;b2|N zHW;C;VbzHhlPE8b0DeO!W(^i|rCYr80aL-`fJlk{+-WYbdkgsPAanq=x#(of!tgAl zxU;!Ey98tsmQZn^il_Td|C~)~_Mr-=9x&tuG`BzG4z*-ja;l6hSrD4{UPT}ly=rjK zE_koa-f#C!;lki4su4sTdh%UIQ67L7!9he(oFB;`kxIzkU63+POPpqk!eVa#W@7L* zvC$JElQ%K(@5|+6fB7jq&_Uaog_H71F*uQB?DO*dG9oL1u2pyty6Zu6|*!7V8Do2p(2wZg@#kV(&CB zAvs{G41+~|7GLh)A+l#W!RJ};aQ-|^4S`+o6>b+K4RjeuezF%t2nylc4q=3$Q?qyL z$=%=)*xPB4ZMmZQe!B%Wx}5?KoDh5y24%|J_%z%XH=r=Qg3j5w;pV@3JgK*d@z=Dq z9+d?MTI-{p;4hpnwreZ&^WPEQlf!`nplX0TDd%1x+^d4R>2wMuckE|qML4^L@H>`- z&Iu&w&x~&>bD;6)<-1!wCV7~UJ)iRaoRcy~3$i5!%L^lf@CJNs(fCtnBw({;zu?)v zaCzrNMni?>ObHNhyHL(D2nn6c?h_FyBF9~kP)lw9Hg-gl$1svgqTC4mR?prul%3{% zLJ{V$B59~B)~$$_XcyF%d)}NuZm_MVeFn$5Dx`e&W9$tUKkkkNrrIaZmu9LpVFkdY zdFandsNRtT%67FFfbTRW1rSHWJb;0{_1`{r031HGgl`8i11c>d_z44{@6l-Py7~1~ zN~X9Z70adwpzbJMe3YAtz`x85j3HL&FD?mNX^`u9=f6skR>_vX00wIfsqlr7dMajMBC(8`p3)r zJ8T!N9<}ww9Ab_bkNomL@qDCAE{~?aly$;!P zgm}~{Dk-cE%H%9E?Z2SLnyvkvW+{;jMh~^!Lb=rk*zmH;8SJk9^Mv|zDxACW`{m}T z!9~e=6%H}Q)LScCH-X7`&-#lG8o4I0E)#pophK3mmNrcPobGMFPI?=Yc@Sj z6^|#syp{ZZ+>?x(j9_;W=Av5+QbIaA?9U70LOC19;0I1mxCMKh%&5Mo*l@q)no`Vt zdRV`slJLZBqwp>%+$axX{wR{4GiI2Zy@O@er(vr}Hc?4`KrN75-jbL~+LH?{dtcr|_^5h;kd0BPX}CEeye9 zaF70hQ7i znP7N>^FFiQo=A&{LH_jLznt}WT)Vw!eWX+Oz229e1Uc&cfd$UI+@HDs9Bz7_#~fz4 zK8F!uGZ||~pBG*>kD^^2%zu=+I&de#oG?}n+Jy-(mUOS|DKEu=;nict-_Fnyqu}*; zX<9@df%={6w^q*PJ|(8>8-X+^qQO?63+7u;uk!9TWp8E#*$854NMPYX&bB6n)P78i zgfl&Qlx$Fx0@#JYMVG|WP@j7^dSsxuc>(dP1K`_p4vHJDfkIBq_0`&*iitNjujqlh z`^!<^+;;Qzm13$AKMM=D?aP43{XKz`v3px<8Gd=dON<&lUwqG=PEAN>e@ z%t*3|sE@h2;tk5}s2H*M3jQ6S3a0KiQ1e|M6hJtGBXPNYIutzYcSM2n=t`^J-OQqJ z$h|RR0Q6LLe41w}^wp(w>hPK`pu%M)Ok@FydvvNPv%y-e+ji+RV6$)wZRy}_!53`R zA&v!G&AxWDJr#YDj_jDzo&Kv`@+Dcc6SQx2v3c#GTP<(pyf8pqyma}71lDLoE8>8_ zGWRh_z~nTLbGs15`79Qi>qXy;he8x?TtiyZ>i+Ex{+)t(xh~U*ej;KSul0Iwu~@L1 z)l4Y(*F(gmbY9!}gNy69V*sX=9Jc1Hgr#L~&CwNIr11oQ$4v1NJs6P+w-@_hHsjnr z9Z4&TX*%`vB#na3Jg_(#Ut?XSjO9XT0?Q0;7<7rwkJ#MQmzdKjbZ3$bCQDB#!Fn1- zE-TCi4KdPFdc$|5j?+PyQehmEyDnoCim&pS!9+`wFQ|{ z3vXuTXu97|mXeIx^=g^P>4qYW|M@Ljx^o6zZeot));?8PWFdvi;rV_m|L zD~5Bc!-%sw{y)s=1SH}DrRH&w=P}(Hj?;5a&t*hu!!No_sH1zeP{y>! zV+zFNd|=BdaMtb|bXtO+8uf6EoDA56D!gSkRV%&N2!TQM_$BxY9vYX1zk?$1**%ud z48wxT@$GJ^#(P~6IJ}zrg~xl#@m)D3G!@O0Bz$yt#v|#pGB(9)Xb?p>T>ZAqOV_4?B*t?R(m099+0q}X zsMD)kI`1$63FO8ZP`i|Kdv@PH<%i$Wj1Yx0F?>>5W~6h^{r(u`M16G8|IUieaOsQQ zSh>Si?G6?pW>m`Q>7$FMhi>gsZD!ww?!e)=tZI}&g)*5nmho?dsGURs#nPJHeap#L<_A$_1X+@=aD z^4%xRR_Fi(*MMZ>^9nDgF%RRul%mcgrAaHH2;NYn3pHcG)Hc(cvAA9#v~KtK1Z*eI0b|B)^?f@d+t)|pv0tu0b4Zp zCC8*f@<2RClC@YMW=uNgnc0CKXYlyU7Ss8HJ<-^qGeU+IzbYoIzd0g7LkH1?0m$JI z1@W0saB4sp^v(*Oyr}M)@|V%BgFiKnJfg}fr?7(YE)}rhuBE>g&LN}{sbAAuCtKXiIVn*g6%ZqDjICoySqJ3SAKIjS99X-W-(lK-p^1CN=cuMhg4A)yH@n7q@kcYGB|Afi; zs^iMa>ZqUVZEl-h9#Du~S4iJQy8(!hTKx&jau_x`7Cgc!Rw)(lG-ooaqOBG@?{&t~lV66hs2K3WZC_=b@6pZo&~2jK<7HD_ z`r89x?^Il^Qq1wS4nM*0o)U}Lf<%g%$;gnLi3|-vi2mg4-Eoh#^ry=zZf33d;aQVy z%0M{uz!a;kw}r?|bFjvFE$!}$Cq_uN6`oAtQrFZ6c#J9~Y)4Y>?3~1#qdqTom~Ld| z1rLrui~%Gpr+1AAC6}p&$84ks%&sALK1GJ?YCEh_)pp9e65$dsP>?v57L0qm;RFkg;tVoKky^yUkNyeIA!}p_3-syk1jw>$d-& z01vLRP%Use(-q(-=5=iEb~#()cfC21tXz0F*!@zC-vGY+oRGUTNpmcBMs({ik7~G8 z7aLKQan5I!qV8&6Es_Yg98n6na@g=5we}JSRnvhcb^~O5lHsSXfU_?9vwa5sVyne3 zw+21N4OR>Jd(cp~%e-iv@Q89>($`haVvm*UUZ%>H_N0Gxi6&r$f>K=dtk8SRhM7Z< znzH+-h~z*J7dacg6jC{H_m1>91Q}qcNyln3MhjQr9JZ7pk6l}r7BM4j=NKy`lo!|B zOdA31QE*08_*?RMHaKLhdr-dE2Xh+GWFtDih?aOvvmLy=b))jsLS~ zygKRa4($&2hOkidDdOIQqLL+eqp$)c6{Z-+xI*>Vn+{-R-ZM632WU}j2XBIC&ORjj z!lk`phnelvWCEMnOyXt&?)AJLq8|oim%GBRgi1UkRvm6HR_q|%FhAltJOxnz77gUM zjEj|n#ZIdqtKHeYcz$%JA*PMnVyuF8z{yE%hBpPBVMBx6T5CEyW-`sgh62sBrIm`z zVP)8HR`?NfJlRCl!i4o^Dv9!^2mmJT?vzd@2bdpQ`Hs>^%vY>4p@^8F+9Q@1)Lr)V zut@X!u0oNp)tQD?UnJNWG#_ntAhez+t6_U!7D_g_ZQY4Kz_E@5b~r>;j%4pLYk1Q* z>#p4yY1%c{*M5&S5#oBkga-+Ayv%m8E-1T)mBJ7AO@71Hd!#O|g)nnF2 zCE&zm$4T4lR^jdD_bPUpzVC_W_vl#RABkJS7D5cB<;DVQmS9|-%IXJ{{hq)w4rMCbwVG zwiZvDv`9VjC6Gg&CV;^wJ0)W{*=Wp9yMic3fuE4D`+ePt43S7+I6s-IT0zeSz>t5H zH!$l@J`szBWlbAtdkDcH&%5Ln+{7F3$;~g^xb%+SvrV-$jlu*)$STtn*Iv79v59OOM>wP1UK z!OfL>gQ(Bkf^m+PG~a)pAzM64N4D}WK|p7^2D8HF;@CNjjBAX%ri=m~pW?|y-)9XB8^QZ3za8)P? zKy;Aq6a#GV)_Ijm9~&)qO!s}Q2-Wt&^Cd)+ui|+=_0OZOosN_NY%azCg>WNod;3g( zmA3$`@nV}(uE8zH>U9$&sWVEYu!-aq7QTDrbIdEOaP#-79v?n}yoRDCTUFXmy54}5 zGBe9%8g$(Y5AEeSs@|c9*|Y2EgyGVTeHBtlSmPY~dH*rYg3Bg-Qdq_z(+h%|SjAdN zZzb9Ni>0>wEh2yktWmNc({Rh=ZH)Q3oOUC8t^sNkD4Afn!jA;yLTHol(co<+;WdFq zUU0rg{Y5djxbP_;;hoKiU|koTnu!`%T`Ni+I+92%FutR6G7tvL7J=5pNy}PnXZNb! z3ebeuxh^#iz;#hrhO%(bVsv6mkH0_H7)&!+jRGOjy^Vfya&PER1#{oT!!d6BgjsJ- zDrH%mcA-kn`~jM0IVnJ<+w3SKa^5!7Qn`wRnQCgR4Gd{yc(WgS{#V?=iAtsLj^|yeQha}7?REaSBW8`q#1=*L5t3XQnYMGy%B{5`T z5wt{Nz35(%-)Y=X90N%M2gk)Y0(|p5>kr`q=00dd1!0XZCKK8@j@hY3dYSNL9yMHv zzv<1W)*E>-lro(!nAbkMYfEI(W37IDbzunKY`0$65&?e$ER|dE}AMis! z*Seh6B;5-0__`F%IitJye+n8Fgu<&zzE;8~zMKvO{uVc>+F5>`s&RC5v3IuoQmOt= z(A2KFsf?qF`e9cy9LqX|42g-XMU5sL4fyC0dLl!$A@xHG1(~Z(Gx^nD)jckDHI8MD z>$2kJbNn<=I_8|EY`&*S@XqoE<6J=J>xR-3Wi@y$nB07L(Y*OQ!L^y${(Rp*`v*v; zU-wsse|@aRC~9cGNJrJzy_A(uJ2EvkmZZgUqn!%Nps+ zTcLu*9)Ie%D|P8oE(6Q{{3G90Yl+n`p;N7L*!I1bh?b3|BVm46gHbgdg;Sr8b1eT* z&cGjNZo90kO>ryz_k{IK|j91x&zwv%2JwK)2)X4cJMCF@p(~&TU9tNi|uIfnu1GqiZkD;r`UNHm| z40bl^LgE3&S5UHiOXJdFNJN|PVI;`h(yJF1PT#+2Z zaE0=jVIs>?pwVk99GsS6_EuvCr_S^Wp>cI*nB7=+V!v-zKK9!WA#VI}nzOYHp^w0r zU0DQi64LIe#1UwY@vO=8CiQP^W>`v(T+NW_vN#3&x>}P*YW>PQ*4E4N1$7Z4wVfqg z0x+L8*(Rngz7gCNRiI!ulQ2Y`gcU5_*g2bI?bj82Pp(Z)+ddVtrVMYK${|Js;my76 zn_R812*`K#1C0f!hSI15pXjUBAgq6Pj? zyG+L}#-0+Cx|%S(2avTrvuc2!fd9?0T>ZC?t!YLlt+NDlO?)qDE%DtMf zl_Kko9|QQ5*nSMXLe@`5KYkck52fKiQz_NynZ9meKt&~PuUZ_bM+FAWzvCS!q|^rT zHCs}oR0iTn@q|zfCaSi{>UfEYGE_$2Muy^R>Z|s9sa#`wMYo>zHK(t`U97$7+sCWo zno=y$Fp6LDdI*>tz|sscKLR&nq*y{R1znPSTzH53u9>T1our$}Vo|4)87(WmAX{Z# zH^^m(eE#_K?V|#CnF~c}es}7`nUC zckAP+bo^W+E=(^@{KME*73Ah`-0IHpfmy68nVTit;}-eQEw8zxKRo z|2F^sb5rYI7nfpW0xA;|frTjd{Gf0J+eQ3|^9d86iw9+wxZy{! zJ#3%o-heCYg@B>D69@vitzjj~QI)haQ`S8Wm$5E)XUFmU*k~DP!LkoswSO^HK(`rZ z2Y%rnlDq8KY=_Q#AP8g3^HAk&>TEu@%K3!zV3JV<&*`!yR^fVqogHlPj-M_W#?eHb z$JPQbBhlsb1gP5vLxS+40G+vOxarjQZT6xaT2u;HuX!_ORov&1M0bAKq!ISS&2HP` zC1(-oVE}Y^9ndfJ&qhG*7~^Vfl*xhv1egrtReV3=Y%ajL^ITC){gQ8Qwf-ZxUT(m? z>s+x}%$^c!WIT&*?iZv_+M6X@uf*)4BL~0TFylJaxpyzaDS!NoK=?w*2wy0G=Wiq6 z-@K0gXZ6pBS+$$}3W!gaHBwg@DFjd<6!>g~L9t{O2}07)A`_|{j6nNo8j5Ao3f$Hk zAa^=aNMsD&ZwP_O^|CV}zhLNHU0ux%(|(%&{CN2Q>GDa2jqx>)xRa@$?K)}=Luii!P`s+EKqa|Gn# zItIlFpkhb4U7eA@bT+@+=CMXGgFVQN(u&a{ZyM1>VqQHgLH_cw0TdhoX7VP~fJ z`yxM}0+I5x;i&Fj{I}23i}Ig819n?URr!V>X*the;0w8?%K5%+3?{Z&^vp?EdAmLU z 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%0A~b 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 z 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

    wf*VRpK_{xQ@f?W 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 z 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

    VG5q{k*T&(DS<142qZ~ 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

    wq`aWiqG`(LP?(+{bMwY7z_$v?{H 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 diff --git a/fine-jboss-logging/lib/log4j-api-2.5.jar b/fine-jboss-logging/lib/log4j-api-2.5.jar deleted file mode 100644 index f18c9d0631ff4bdd8c32e0c88b8c37e6e239ce99..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 146761 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 diff --git a/fine-jboss-logging/lib/slf4j-api-1.7.2.jar b/fine-jboss-logging/lib/slf4j-api-1.7.2.jar deleted file mode 100644 index 1a8870833b37159321426a67596022b07865973e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26083 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 O><2o}%GW;o>;C{ySDdT> diff --git a/fine-jboss-logging/pom.xml b/fine-jboss-logging/pom.xml deleted file mode 100644 index 99db8427d..000000000 --- a/fine-jboss-logging/pom.xml +++ /dev/null @@ -1,58 +0,0 @@ - - - 4.0.0 - - - com.fr.third - step3 - ${revision} - ../base-third-project/base-third-step3 - - - fine-jboss-logging - ${revision} - - - - com.fr.essential - fine-slf4j-api - ${essentialVersion} - - - com.fr.essential - fine-log4j2 - ${essentialVersion} - - 以下是lib的本地jar包依赖<--> - - com.fr.third - jboss-logmanager - local - system - ${basedir}/lib/jboss-logmanager-1.5.2.Final.jar - - - com.fr.third - log4j - local - system - ${basedir}/lib/log4j-1.2.17.jar - - - com.fr.third - log4j-api - local - system - ${basedir}/lib/log4j-api-2.5.jar - - - com.fr.third - slf4j-api - local - system - ${basedir}/lib/slf4j-api-1.7.2.jar - - - \ No newline at end of file diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractLoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractLoggerProvider.java deleted file mode 100644 index c1012a259..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractLoggerProvider.java +++ /dev/null @@ -1,82 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.ArrayDeque; - -abstract class AbstractLoggerProvider { - - private final ThreadLocal> ndcStack = new ThreadLocal>(); - - public void clearNdc() { - ArrayDeque stack = ndcStack.get(); - if (stack != null) - stack.clear(); - } - - public String getNdc() { - ArrayDeque stack = ndcStack.get(); - return stack == null || stack.isEmpty() ? null : stack.peek().merged; - } - - public int getNdcDepth() { - ArrayDeque stack = ndcStack.get(); - return stack == null ? 0 : stack.size(); - } - - public String peekNdc() { - ArrayDeque stack = ndcStack.get(); - return stack == null || stack.isEmpty() ? "" : stack.peek().current; - } - - public String popNdc() { - ArrayDeque stack = ndcStack.get(); - return stack == null || stack.isEmpty() ? "" : stack.pop().current; - } - - public void pushNdc(String message) { - ArrayDeque stack = ndcStack.get(); - if (stack == null) { - stack = new ArrayDeque(); - ndcStack.set(stack); - } - stack.push(stack.isEmpty() ? new Entry(message) : new Entry(stack.peek(), message)); - } - - public void setNdcMaxDepth(int maxDepth) { - final ArrayDeque stack = ndcStack.get(); - if (stack != null) while (stack.size() > maxDepth) stack.pop(); - } - - private static class Entry { - - private String merged; - private String current; - - Entry(String current) { - merged = current; - this.current = current; - } - - Entry(Entry parent, String current) { - merged = parent.merged + ' ' + current; - this.current = current; - } - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractMdcLoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractMdcLoggerProvider.java deleted file mode 100644 index 2935bca9d..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/AbstractMdcLoggerProvider.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -abstract class AbstractMdcLoggerProvider extends AbstractLoggerProvider { - - private final ThreadLocal> mdcMap = new ThreadLocal>(); - - public void clearMdc() { - final Map map = mdcMap.get(); - if (map != null) { - map.clear(); - } - } - - public Object getMdc(String key) { - return mdcMap.get() == null ? null : mdcMap.get().get(key); - } - - public Map getMdcMap() { - final Map map = mdcMap.get(); - return map == null ? Collections.emptyMap() : map; - } - - public Object putMdc(String key, Object value) { - Map map = mdcMap.get(); - if (map == null) { - map = new HashMap(); - mdcMap.set(map); - } - return map.put(key, value); - } - - public void removeMdc(String key) { - Map map = mdcMap.get(); - if (map == null) - return; - map.remove(key); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/BasicLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/BasicLogger.java deleted file mode 100644 index b6f7ffb83..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/BasicLogger.java +++ /dev/null @@ -1,1918 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -/** - * An interface which specifies the basic logger methods. When used as the base interface of a typed logger, these methods will delegate - * to the corresponding underlying logger instance. - * - * @author David M. Lloyd - */ -public interface BasicLogger { - - /** - * Check to see if the given level is enabled for this logger. - * - * @param level the level to check for - * @return {@code true} if messages may be logged at the given level, {@code false} otherwise - */ - boolean isEnabled(Logger.Level level); - - /** - * Check to see if the {@code TRACE} level is enabled for this logger. - * - * @return {@code true} if messages logged at {@link Logger.Level#TRACE} may be accepted, {@code false} otherwise - */ - boolean isTraceEnabled(); - - /** - * Issue a log message with a level of TRACE. - * - * @param message the message - */ - void trace(Object message); - - /** - * Issue a log message and throwable with a level of TRACE. - * - * @param message the message - * @param t the throwable - */ - void trace(Object message, Throwable t); - - /** - * Issue a log message and throwable with a level of TRACE and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void trace(String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable with a level of TRACE. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void trace(String loggerFqcn, Object message, Object[] params, Throwable t); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - void tracev(String format, Object... params); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - void tracev(String format, Object param1); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void tracev(String format, Object param1, Object param2); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void tracev(String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void tracev(Throwable t, String format, Object... params); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void tracev(Throwable t, String format, Object param1); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void tracev(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void tracev(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void tracef(String format, Object... params); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void tracef(String format, Object param1); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void tracef(String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void tracef(String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void tracef(Throwable t, String format, Object... params); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void tracef(Throwable t, String format, Object param1); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void tracef(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void tracef(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void tracef(String format, int arg); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(String format, int arg1, int arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(String format, int arg1, Object arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(String format, int arg1, int arg2, int arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(String format, int arg1, int arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(String format, int arg1, Object arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void tracef(Throwable t, String format, int arg); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(Throwable t, String format, int arg1, int arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(Throwable t, String format, int arg1, Object arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(Throwable t, String format, int arg1, int arg2, int arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(Throwable t, String format, int arg1, int arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(Throwable t, String format, int arg1, Object arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void tracef(String format, long arg); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(String format, long arg1, long arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(String format, long arg1, Object arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(String format, long arg1, long arg2, long arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(String format, long arg1, long arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(String format, long arg1, Object arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void tracef(Throwable t, String format, long arg); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(Throwable t, String format, long arg1, long arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void tracef(Throwable t, String format, long arg1, Object arg2); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(Throwable t, String format, long arg1, long arg2, long arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(Throwable t, String format, long arg1, long arg2, Object arg3); - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void tracef(Throwable t, String format, long arg1, Object arg2, Object arg3); - - /** - * Check to see if the {@code DEBUG} level is enabled for this logger. - * - * @return {@code true} if messages logged at {@link Logger.Level#DEBUG} may be accepted, {@code false} otherwise - */ - boolean isDebugEnabled(); - - /** - * Issue a log message with a level of DEBUG. - * - * @param message the message - */ - void debug(Object message); - - /** - * Issue a log message and throwable with a level of DEBUG. - * - * @param message the message - * @param t the throwable - */ - void debug(Object message, Throwable t); - - /** - * Issue a log message and throwable with a level of DEBUG and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void debug(String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable with a level of DEBUG. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void debug(String loggerFqcn, Object message, Object[] params, Throwable t); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - void debugv(String format, Object... params); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - void debugv(String format, Object param1); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void debugv(String format, Object param1, Object param2); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void debugv(String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void debugv(Throwable t, String format, Object... params); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void debugv(Throwable t, String format, Object param1); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void debugv(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void debugv(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void debugf(String format, Object... params); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void debugf(String format, Object param1); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void debugf(String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void debugf(String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void debugf(Throwable t, String format, Object... params); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void debugf(Throwable t, String format, Object param1); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void debugf(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void debugf(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void debugf(String format, int arg); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(String format, int arg1, int arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(String format, int arg1, Object arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(String format, int arg1, int arg2, int arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(String format, int arg1, int arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(String format, int arg1, Object arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void debugf(Throwable t, String format, int arg); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(Throwable t, String format, int arg1, int arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(Throwable t, String format, int arg1, Object arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(Throwable t, String format, int arg1, int arg2, int arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(Throwable t, String format, int arg1, int arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(Throwable t, String format, int arg1, Object arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void debugf(String format, long arg); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(String format, long arg1, long arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(String format, long arg1, Object arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(String format, long arg1, long arg2, long arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(String format, long arg1, long arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(String format, long arg1, Object arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg the parameter - */ - void debugf(Throwable t, String format, long arg); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(Throwable t, String format, long arg1, long arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - */ - void debugf(Throwable t, String format, long arg1, Object arg2); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(Throwable t, String format, long arg1, long arg2, long arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(Throwable t, String format, long arg1, long arg2, Object arg3); - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param arg1 the first parameter - * @param arg2 the second parameter - * @param arg3 the third parameter - */ - void debugf(Throwable t, String format, long arg1, Object arg2, Object arg3); - - /** - * Check to see if the {@code INFO} level is enabled for this logger. - * - * @return {@code true} if messages logged at {@link Logger.Level#INFO} may be accepted, {@code false} otherwise - */ - boolean isInfoEnabled(); - - /** - * Issue a log message with a level of INFO. - * - * @param message the message - */ - void info(Object message); - - /** - * Issue a log message and throwable with a level of INFO. - * - * @param message the message - * @param t the throwable - */ - void info(Object message, Throwable t); - - /** - * Issue a log message and throwable with a level of INFO and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void info(String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable with a level of INFO. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void info(String loggerFqcn, Object message, Object[] params, Throwable t); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - void infov(String format, Object... params); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - void infov(String format, Object param1); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void infov(String format, Object param1, Object param2); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void infov(String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void infov(Throwable t, String format, Object... params); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void infov(Throwable t, String format, Object param1); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void infov(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void infov(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void infof(String format, Object... params); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void infof(String format, Object param1); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void infof(String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void infof(String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void infof(Throwable t, String format, Object... params); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void infof(Throwable t, String format, Object param1); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void infof(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void infof(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of WARN. - * - * @param message the message - */ - void warn(Object message); - - /** - * Issue a log message and throwable with a level of WARN. - * - * @param message the message - * @param t the throwable - */ - void warn(Object message, Throwable t); - - /** - * Issue a log message and throwable with a level of WARN and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void warn(String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable with a level of WARN. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void warn(String loggerFqcn, Object message, Object[] params, Throwable t); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - void warnv(String format, Object... params); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - void warnv(String format, Object param1); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void warnv(String format, Object param1, Object param2); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void warnv(String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void warnv(Throwable t, String format, Object... params); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void warnv(Throwable t, String format, Object param1); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void warnv(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void warnv(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void warnf(String format, Object... params); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void warnf(String format, Object param1); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void warnf(String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void warnf(String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void warnf(Throwable t, String format, Object... params); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void warnf(Throwable t, String format, Object param1); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void warnf(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void warnf(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of ERROR. - * - * @param message the message - */ - void error(Object message); - - /** - * Issue a log message and throwable with a level of ERROR. - * - * @param message the message - * @param t the throwable - */ - void error(Object message, Throwable t); - - /** - * Issue a log message and throwable with a level of ERROR and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void error(String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable with a level of ERROR. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void error(String loggerFqcn, Object message, Object[] params, Throwable t); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - void errorv(String format, Object... params); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - void errorv(String format, Object param1); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void errorv(String format, Object param1, Object param2); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void errorv(String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void errorv(Throwable t, String format, Object... params); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void errorv(Throwable t, String format, Object param1); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void errorv(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void errorv(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void errorf(String format, Object... params); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void errorf(String format, Object param1); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void errorf(String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void errorf(String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void errorf(Throwable t, String format, Object... params); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void errorf(Throwable t, String format, Object param1); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void errorf(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void errorf(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of FATAL. - * - * @param message the message - */ - void fatal(Object message); - - /** - * Issue a log message and throwable with a level of FATAL. - * - * @param message the message - * @param t the throwable - */ - void fatal(Object message, Throwable t); - - /** - * Issue a log message and throwable with a level of FATAL and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void fatal(String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable with a level of FATAL. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void fatal(String loggerFqcn, Object message, Object[] params, Throwable t); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - void fatalv(String format, Object... params); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - void fatalv(String format, Object param1); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void fatalv(String format, Object param1, Object param2); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void fatalv(String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void fatalv(Throwable t, String format, Object... params); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void fatalv(Throwable t, String format, Object param1); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void fatalv(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void fatalv(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void fatalf(String format, Object... params); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void fatalf(String format, Object param1); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void fatalf(String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void fatalf(String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void fatalf(Throwable t, String format, Object... params); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void fatalf(Throwable t, String format, Object param1); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void fatalf(Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void fatalf(Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Log a message at the given level. - * - * @param level the level - * @param message the message - */ - void log(Logger.Level level, Object message); - - /** - * Issue a log message and throwable at the given log level. - * - * @param level the level - * @param message the message - * @param t the throwable - */ - void log(Logger.Level level, Object message, Throwable t); - - /** - * Issue a log message and throwable at the given log level and a specific logger class name. - * - * @param level the level - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - void log(Logger.Level level, String loggerFqcn, Object message, Throwable t); - - /** - * Issue a log message with parameters and a throwable at the given log level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - void log(String loggerFqcn, Logger.Level level, Object message, Object[] params, Throwable t); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param params the parameters - */ - void logv(Logger.Level level, String format, Object... params); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param param1 the sole parameter - */ - void logv(Logger.Level level, String format, Object param1); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void logv(Logger.Level level, String format, Object param1, Object param2); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void logv(Logger.Level level, String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void logv(Logger.Level level, Throwable t, String format, Object... params); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void logv(Logger.Level level, Throwable t, String format, Object param1); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void logv(Logger.Level level, Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void logv(Logger.Level level, Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - void logv(String loggerFqcn, Logger.Level level, Throwable t, String format, Object... params); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - void logv(String loggerFqcn, Logger.Level level, Throwable t, String format, Object param1); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - void logv(String loggerFqcn, Logger.Level level, Throwable t, String format, Object param1, Object param2); - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void logv(String loggerFqcn, Logger.Level level, Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - void logf(Logger.Level level, String format, Object... params); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void logf(Logger.Level level, String format, Object param1); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void logf(Logger.Level level, String format, Object param1, Object param2); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void logf(Logger.Level level, String format, Object param1, Object param2, Object param3); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - void logf(Logger.Level level, Throwable t, String format, Object... params); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - void logf(Logger.Level level, Throwable t, String format, Object param1); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - void logf(Logger.Level level, Throwable t, String format, Object param1, Object param2); - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void logf(Logger.Level level, Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - void logf(String loggerFqcn, Logger.Level level, Throwable t, String format, Object param1); - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - void logf(String loggerFqcn, Logger.Level level, Throwable t, String format, Object param1, Object param2); - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - void logf(String loggerFqcn, Logger.Level level, Throwable t, String format, Object param1, Object param2, Object param3); - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the message parameters - */ - void logf(String loggerFqcn, Logger.Level level, Throwable t, String format, Object... params); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Cause.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Cause.java deleted file mode 100644 index a00904651..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Cause.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Mark a parameter as being the "exception cause" parameter rather than a positional format parameter. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.Cause provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -@Deprecated -public @interface Cause { -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/DelegatingBasicLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/DelegatingBasicLogger.java deleted file mode 100644 index 801bf467e..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/DelegatingBasicLogger.java +++ /dev/null @@ -1,1052 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.io.Serializable; - -/** - * A serializable, delegating basic logger instance. - * - * @author David M. Lloyd - */ -public class DelegatingBasicLogger implements BasicLogger, Serializable { - - private static final long serialVersionUID = -5774903162389601853L; - - /** - * The cached logger class name. - */ - private static final String FQCN = DelegatingBasicLogger.class.getName(); - - /** - * The delegate logger. - */ - protected final Logger log; - - /** - * Construct a new instance. - * - * @param log the logger to which calls should be delegated - */ - public DelegatingBasicLogger(final Logger log) { - this.log = log; - } - - @Override - public boolean isTraceEnabled() { - return log.isTraceEnabled(); - } - - @Override - public void trace(final Object message) { - log.trace(FQCN, message, null); - } - - @Override - public void trace(final Object message, final Throwable t) { - log.trace(FQCN, message, t); - } - - @Override - public void trace(final String loggerFqcn, final Object message, final Throwable t) { - log.trace(loggerFqcn, message, t); - } - - @Override - public void trace(final String loggerFqcn, final Object message, final Object[] params, final Throwable t) { - log.trace(loggerFqcn, message, params, t); - } - - @Override - public void tracev(final String format, final Object... params) { - log.logv(FQCN, Logger.Level.TRACE, null, format, params); - } - - @Override - public void tracev(final String format, final Object param1) { - log.logv(FQCN, Logger.Level.TRACE, null, format, param1); - } - - @Override - public void tracev(final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.TRACE, null, format, param1, param2); - } - - @Override - public void tracev(final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.TRACE, null, format, param1, param2, param3); - } - - @Override - public void tracev(final Throwable t, final String format, final Object... params) { - log.logv(FQCN, Logger.Level.TRACE, t, format, params); - } - - @Override - public void tracev(final Throwable t, final String format, final Object param1) { - log.logv(FQCN, Logger.Level.TRACE, t, format, param1); - } - - @Override - public void tracev(final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.TRACE, t, format, param1, param2); - } - - @Override - public void tracev(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.TRACE, t, format, param1, param2, param3); - } - - @Override - public void tracef(final String format, final Object... params) { - log.logf(FQCN, Logger.Level.TRACE, null, format, params); - } - - @Override - public void tracef(final String format, final Object param1) { - log.logf(FQCN, Logger.Level.TRACE, null, format, param1); - } - - @Override - public void tracef(final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.TRACE, null, format, param1, param2); - } - - @Override - public void tracef(final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.TRACE, null, format, param1, param2, param3); - } - - @Override - public void tracef(final Throwable t, final String format, final Object... params) { - log.logf(FQCN, Logger.Level.TRACE, t, format, params); - } - - @Override - public void tracef(final Throwable t, final String format, final Object param1) { - log.logf(FQCN, Logger.Level.TRACE, t, format, param1); - } - - @Override - public void tracef(final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.TRACE, t, format, param1, param2); - } - - @Override - public void tracef(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.TRACE, t, format, param1, param2, param3); - } - - @Override - public void tracef(final String format, final int arg) { - log.tracef(format, arg); - } - - @Override - public void tracef(final String format, final int arg1, final int arg2) { - log.tracef(format, arg1, arg2); - } - - @Override - public void tracef(final String format, final int arg1, final Object arg2) { - log.tracef(format, arg1, arg2); - } - - @Override - public void tracef(final String format, final int arg1, final int arg2, final int arg3) { - log.tracef(format, arg1, arg2, arg3); - } - - @Override - public void tracef(final String format, final int arg1, final int arg2, final Object arg3) { - log.tracef(format, arg1, arg2, arg3); - } - - @Override - public void tracef(final String format, final int arg1, final Object arg2, final Object arg3) { - log.tracef(format, arg1, arg2, arg3); - } - - @Override - public void tracef(final Throwable t, final String format, final int arg) { - log.tracef(t, format, arg); - } - - @Override - public void tracef(final Throwable t, final String format, final int arg1, final int arg2) { - log.tracef(t, format, arg1, arg2); - } - - @Override - public void tracef(final Throwable t, final String format, final int arg1, final Object arg2) { - log.tracef(t, format, arg1, arg2); - } - - @Override - public void tracef(final Throwable t, final String format, final int arg1, final int arg2, final int arg3) { - log.tracef(t, format, arg1, arg2, arg3); - } - - @Override - public void tracef(final Throwable t, final String format, final int arg1, final int arg2, final Object arg3) { - log.tracef(t, format, arg1, arg2, arg3); - } - - @Override - public void tracef(final Throwable t, final String format, final int arg1, final Object arg2, final Object arg3) { - log.tracef(t, format, arg1, arg2, arg3); - } - - @Override - public void tracef(final String format, final long arg) { - log.tracef(format, arg); - } - - @Override - public void tracef(final String format, final long arg1, final long arg2) { - log.tracef(format, arg1, arg2); - } - - @Override - public void tracef(final String format, final long arg1, final Object arg2) { - log.tracef(format, arg1, arg2); - } - - @Override - public void tracef(final String format, final long arg1, final long arg2, final long arg3) { - log.tracef(format, arg1, arg2, arg3); - } - - @Override - public void tracef(final String format, final long arg1, final long arg2, final Object arg3) { - log.tracef(format, arg1, arg2, arg3); - } - - @Override - public void tracef(final String format, final long arg1, final Object arg2, final Object arg3) { - log.tracef(format, arg1, arg2, arg3); - } - - @Override - public void tracef(final Throwable t, final String format, final long arg) { - log.tracef(t, format, arg); - } - - @Override - public void tracef(final Throwable t, final String format, final long arg1, final long arg2) { - log.tracef(t, format, arg1, arg2); - } - - @Override - public void tracef(final Throwable t, final String format, final long arg1, final Object arg2) { - log.tracef(t, format, arg1, arg2); - } - - @Override - public void tracef(final Throwable t, final String format, final long arg1, final long arg2, final long arg3) { - log.tracef(t, format, arg1, arg2, arg3); - } - - @Override - public void tracef(final Throwable t, final String format, final long arg1, final long arg2, final Object arg3) { - log.tracef(t, format, arg1, arg2, arg3); - } - - @Override - public void tracef(final Throwable t, final String format, final long arg1, final Object arg2, final Object arg3) { - log.tracef(t, format, arg1, arg2, arg3); - } - - @Override - public boolean isDebugEnabled() { - return log.isDebugEnabled(); - } - - @Override - public void debug(final Object message) { - log.debug(FQCN, message, null); - } - - @Override - public void debug(final Object message, final Throwable t) { - log.debug(FQCN, message, t); - } - - @Override - public void debug(final String loggerFqcn, final Object message, final Throwable t) { - log.debug(loggerFqcn, message, t); - } - - @Override - public void debug(final String loggerFqcn, final Object message, final Object[] params, final Throwable t) { - log.debug(loggerFqcn, message, params, t); - } - - @Override - public void debugv(final String format, final Object... params) { - log.logv(FQCN, Logger.Level.DEBUG, null, format, params); - } - - @Override - public void debugv(final String format, final Object param1) { - log.logv(FQCN, Logger.Level.DEBUG, null, format, param1); - } - - @Override - public void debugv(final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.DEBUG, null, format, param1, param2); - } - - @Override - public void debugv(final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.DEBUG, null, format, param1, param2, param3); - } - - @Override - public void debugv(final Throwable t, final String format, final Object... params) { - log.logv(FQCN, Logger.Level.DEBUG, t, format, params); - } - - @Override - public void debugv(final Throwable t, final String format, final Object param1) { - log.logv(FQCN, Logger.Level.DEBUG, t, format, param1); - } - - @Override - public void debugv(final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.DEBUG, t, format, param1, param2); - } - - @Override - public void debugv(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.DEBUG, t, format, param1, param2, param3); - } - - @Override - public void debugf(final String format, final Object... params) { - log.logf(FQCN, Logger.Level.DEBUG, null, format, params); - } - - @Override - public void debugf(final String format, final Object param1) { - log.logf(FQCN, Logger.Level.DEBUG, null, format, param1); - } - - @Override - public void debugf(final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.DEBUG, null, format, param1, param2); - } - - @Override - public void debugf(final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.DEBUG, null, format, param1, param2, param3); - } - - @Override - public void debugf(final Throwable t, final String format, final Object... params) { - log.logf(FQCN, Logger.Level.DEBUG, t, format, params); - } - - @Override - public void debugf(final Throwable t, final String format, final Object param1) { - log.logf(FQCN, Logger.Level.DEBUG, t, format, param1); - } - - @Override - public void debugf(final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.DEBUG, t, format, param1, param2); - } - - @Override - public void debugf(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.DEBUG, t, format, param1, param2, param3); - } - - @Override - public void debugf(final String format, final int arg) { - log.debugf(format, arg); - } - - @Override - public void debugf(final String format, final int arg1, final int arg2) { - log.debugf(format, arg1, arg2); - } - - @Override - public void debugf(final String format, final int arg1, final Object arg2) { - log.debugf(format, arg1, arg2); - } - - @Override - public void debugf(final String format, final int arg1, final int arg2, final int arg3) { - log.debugf(format, arg1, arg2, arg3); - } - - @Override - public void debugf(final String format, final int arg1, final int arg2, final Object arg3) { - log.debugf(format, arg1, arg2, arg3); - } - - @Override - public void debugf(final String format, final int arg1, final Object arg2, final Object arg3) { - log.debugf(format, arg1, arg2, arg3); - } - - @Override - public void debugf(final Throwable t, final String format, final int arg) { - log.debugf(t, format, arg); - } - - @Override - public void debugf(final Throwable t, final String format, final int arg1, final int arg2) { - log.debugf(t, format, arg1, arg2); - } - - @Override - public void debugf(final Throwable t, final String format, final int arg1, final Object arg2) { - log.debugf(t, format, arg1, arg2); - } - - @Override - public void debugf(final Throwable t, final String format, final int arg1, final int arg2, final int arg3) { - log.debugf(t, format, arg1, arg2, arg3); - } - - @Override - public void debugf(final Throwable t, final String format, final int arg1, final int arg2, final Object arg3) { - log.debugf(t, format, arg1, arg2, arg3); - } - - @Override - public void debugf(final Throwable t, final String format, final int arg1, final Object arg2, final Object arg3) { - log.debugf(t, format, arg1, arg2, arg3); - } - - @Override - public void debugf(final String format, final long arg) { - log.debugf(format, arg); - } - - @Override - public void debugf(final String format, final long arg1, final long arg2) { - log.debugf(format, arg1, arg2); - } - - @Override - public void debugf(final String format, final long arg1, final Object arg2) { - log.debugf(format, arg1, arg2); - } - - @Override - public void debugf(final String format, final long arg1, final long arg2, final long arg3) { - log.debugf(format, arg1, arg2, arg3); - } - - @Override - public void debugf(final String format, final long arg1, final long arg2, final Object arg3) { - log.debugf(format, arg1, arg2, arg3); - } - - @Override - public void debugf(final String format, final long arg1, final Object arg2, final Object arg3) { - log.debugf(format, arg1, arg2, arg3); - } - - @Override - public void debugf(final Throwable t, final String format, final long arg) { - log.debugf(t, format, arg); - } - - @Override - public void debugf(final Throwable t, final String format, final long arg1, final long arg2) { - log.debugf(t, format, arg1, arg2); - } - - @Override - public void debugf(final Throwable t, final String format, final long arg1, final Object arg2) { - log.debugf(t, format, arg1, arg2); - } - - @Override - public void debugf(final Throwable t, final String format, final long arg1, final long arg2, final long arg3) { - log.debugf(t, format, arg1, arg2, arg3); - } - - @Override - public void debugf(final Throwable t, final String format, final long arg1, final long arg2, final Object arg3) { - log.debugf(t, format, arg1, arg2, arg3); - } - - @Override - public void debugf(final Throwable t, final String format, final long arg1, final Object arg2, final Object arg3) { - log.debugf(t, format, arg1, arg2, arg3); - } - - @Override - public boolean isInfoEnabled() { - return log.isInfoEnabled(); - } - - @Override - public void info(final Object message) { - log.info(FQCN, message, null); - } - - @Override - public void info(final Object message, final Throwable t) { - log.info(FQCN, message, t); - } - - @Override - public void info(final String loggerFqcn, final Object message, final Throwable t) { - log.info(loggerFqcn, message, t); - } - - @Override - public void info(final String loggerFqcn, final Object message, final Object[] params, final Throwable t) { - log.info(loggerFqcn, message, params, t); - } - - @Override - public void infov(final String format, final Object... params) { - log.logv(FQCN, Logger.Level.INFO, null, format, params); - } - - @Override - public void infov(final String format, final Object param1) { - log.logv(FQCN, Logger.Level.INFO, null, format, param1); - } - - @Override - public void infov(final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.INFO, null, format, param1, param2); - } - - @Override - public void infov(final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.INFO, null, format, param1, param2, param3); - } - - @Override - public void infov(final Throwable t, final String format, final Object... params) { - log.logv(FQCN, Logger.Level.INFO, t, format, params); - } - - @Override - public void infov(final Throwable t, final String format, final Object param1) { - log.logv(FQCN, Logger.Level.INFO, t, format, param1); - } - - @Override - public void infov(final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.INFO, t, format, param1, param2); - } - - @Override - public void infov(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.INFO, t, format, param1, param2, param3); - } - - @Override - public void infof(final String format, final Object... params) { - log.logf(FQCN, Logger.Level.INFO, null, format, params); - } - - @Override - public void infof(final String format, final Object param1) { - log.logf(FQCN, Logger.Level.INFO, null, format, param1); - } - - @Override - public void infof(final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.INFO, null, format, param1, param2); - } - - @Override - public void infof(final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.INFO, null, format, param1, param2, param3); - } - - @Override - public void infof(final Throwable t, final String format, final Object... params) { - log.logf(FQCN, Logger.Level.INFO, t, format, params); - } - - @Override - public void infof(final Throwable t, final String format, final Object param1) { - log.logf(FQCN, Logger.Level.INFO, t, format, param1); - } - - @Override - public void infof(final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.INFO, t, format, param1, param2); - } - - @Override - public void infof(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.INFO, t, format, param1, param2, param3); - } - - @Override - public void warn(final Object message) { - log.warn(FQCN, message, null); - } - - @Override - public void warn(final Object message, final Throwable t) { - log.warn(FQCN, message, t); - } - - @Override - public void warn(final String loggerFqcn, final Object message, final Throwable t) { - log.warn(loggerFqcn, message, t); - } - - @Override - public void warn(final String loggerFqcn, final Object message, final Object[] params, final Throwable t) { - log.warn(loggerFqcn, message, params, t); - } - - @Override - public void warnv(final String format, final Object... params) { - log.logv(FQCN, Logger.Level.WARN, null, format, params); - } - - @Override - public void warnv(final String format, final Object param1) { - log.logv(FQCN, Logger.Level.WARN, null, format, param1); - } - - @Override - public void warnv(final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.WARN, null, format, param1, param2); - } - - @Override - public void warnv(final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.WARN, null, format, param1, param2, param3); - } - - @Override - public void warnv(final Throwable t, final String format, final Object... params) { - log.logv(FQCN, Logger.Level.WARN, t, format, params); - } - - @Override - public void warnv(final Throwable t, final String format, final Object param1) { - log.logv(FQCN, Logger.Level.WARN, t, format, param1); - } - - @Override - public void warnv(final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.WARN, t, format, param1, param2); - } - - @Override - public void warnv(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.WARN, t, format, param1, param2, param3); - } - - @Override - public void warnf(final String format, final Object... params) { - log.logf(FQCN, Logger.Level.WARN, null, format, params); - } - - @Override - public void warnf(final String format, final Object param1) { - log.logf(FQCN, Logger.Level.WARN, null, format, param1); - } - - @Override - public void warnf(final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.WARN, null, format, param1, param2); - } - - @Override - public void warnf(final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.WARN, null, format, param1, param2, param3); - } - - @Override - public void warnf(final Throwable t, final String format, final Object... params) { - log.logf(FQCN, Logger.Level.WARN, t, format, params); - } - - @Override - public void warnf(final Throwable t, final String format, final Object param1) { - log.logf(FQCN, Logger.Level.WARN, t, format, param1); - } - - @Override - public void warnf(final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.WARN, t, format, param1, param2); - } - - @Override - public void warnf(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.WARN, t, format, param1, param2, param3); - } - - @Override - public void error(final Object message) { - log.error(FQCN, message, null); - } - - @Override - public void error(final Object message, final Throwable t) { - log.error(FQCN, message, t); - } - - @Override - public void error(final String loggerFqcn, final Object message, final Throwable t) { - log.error(loggerFqcn, message, t); - } - - @Override - public void error(final String loggerFqcn, final Object message, final Object[] params, final Throwable t) { - log.error(loggerFqcn, message, params, t); - } - - @Override - public void errorv(final String format, final Object... params) { - log.logv(FQCN, Logger.Level.ERROR, null, format, params); - } - - @Override - public void errorv(final String format, final Object param1) { - log.logv(FQCN, Logger.Level.ERROR, null, format, param1); - } - - @Override - public void errorv(final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.ERROR, null, format, param1, param2); - } - - @Override - public void errorv(final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.ERROR, null, format, param1, param2, param3); - } - - @Override - public void errorv(final Throwable t, final String format, final Object... params) { - log.logv(FQCN, Logger.Level.ERROR, t, format, params); - } - - @Override - public void errorv(final Throwable t, final String format, final Object param1) { - log.logv(FQCN, Logger.Level.ERROR, t, format, param1); - } - - @Override - public void errorv(final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.ERROR, t, format, param1, param2); - } - - @Override - public void errorv(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.ERROR, t, format, param1, param2, param3); - } - - @Override - public void errorf(final String format, final Object... params) { - log.logf(FQCN, Logger.Level.ERROR, null, format, params); - } - - @Override - public void errorf(final String format, final Object param1) { - log.logf(FQCN, Logger.Level.ERROR, null, format, param1); - } - - @Override - public void errorf(final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.ERROR, null, format, param1, param2); - } - - @Override - public void errorf(final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.ERROR, null, format, param1, param2, param3); - } - - @Override - public void errorf(final Throwable t, final String format, final Object... params) { - log.logf(FQCN, Logger.Level.ERROR, t, format, params); - } - - @Override - public void errorf(final Throwable t, final String format, final Object param1) { - log.logf(FQCN, Logger.Level.ERROR, t, format, param1); - } - - @Override - public void errorf(final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.ERROR, t, format, param1, param2); - } - - @Override - public void errorf(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.ERROR, t, format, param1, param2, param3); - } - - @Override - public void fatal(final Object message) { - log.fatal(FQCN, message, null); - } - - @Override - public void fatal(final Object message, final Throwable t) { - log.fatal(FQCN, message, t); - } - - @Override - public void fatal(final String loggerFqcn, final Object message, final Throwable t) { - log.fatal(loggerFqcn, message, t); - } - - @Override - public void fatal(final String loggerFqcn, final Object message, final Object[] params, final Throwable t) { - log.fatal(loggerFqcn, message, params, t); - } - - @Override - public void fatalv(final String format, final Object... params) { - log.logv(FQCN, Logger.Level.FATAL, null, format, params); - } - - @Override - public void fatalv(final String format, final Object param1) { - log.logv(FQCN, Logger.Level.FATAL, null, format, param1); - } - - @Override - public void fatalv(final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.FATAL, null, format, param1, param2); - } - - @Override - public void fatalv(final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.FATAL, null, format, param1, param2, param3); - } - - @Override - public void fatalv(final Throwable t, final String format, final Object... params) { - log.logv(FQCN, Logger.Level.FATAL, t, format, params); - } - - @Override - public void fatalv(final Throwable t, final String format, final Object param1) { - log.logv(FQCN, Logger.Level.FATAL, t, format, param1); - } - - @Override - public void fatalv(final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, Logger.Level.FATAL, t, format, param1, param2); - } - - @Override - public void fatalv(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, Logger.Level.FATAL, t, format, param1, param2, param3); - } - - @Override - public void fatalf(final String format, final Object... params) { - log.logf(FQCN, Logger.Level.FATAL, null, format, params); - } - - @Override - public void fatalf(final String format, final Object param1) { - log.logf(FQCN, Logger.Level.FATAL, null, format, param1); - } - - @Override - public void fatalf(final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.FATAL, null, format, param1, param2); - } - - @Override - public void fatalf(final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.FATAL, null, format, param1, param2, param3); - } - - @Override - public void fatalf(final Throwable t, final String format, final Object... params) { - log.logf(FQCN, Logger.Level.FATAL, t, format, params); - } - - @Override - public void fatalf(final Throwable t, final String format, final Object param1) { - log.logf(FQCN, Logger.Level.FATAL, t, format, param1); - } - - @Override - public void fatalf(final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, Logger.Level.FATAL, t, format, param1, param2); - } - - @Override - public void fatalf(final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, Logger.Level.FATAL, t, format, param1, param2, param3); - } - - - @Override - public void log(final Logger.Level level, final Object message) { - log.log(FQCN, level, message, null, null); - } - - @Override - public void log(final Logger.Level level, final Object message, final Throwable t) { - log.log(FQCN, level, message, null, t); - } - - @Override - public void log(final Logger.Level level, final String loggerFqcn, final Object message, final Throwable t) { - log.log(level, loggerFqcn, message, t); - } - - @Override - public void log(final String loggerFqcn, final Logger.Level level, final Object message, final Object[] params, final Throwable t) { - log.log(loggerFqcn, level, message, params, t); - } - - @Override - public void logv(final Logger.Level level, final String format, final Object... params) { - log.logv(FQCN, level, null, format, params); - } - - @Override - public void logv(final Logger.Level level, final String format, final Object param1) { - log.logv(FQCN, level, null, format, param1); - } - - @Override - public void logv(final Logger.Level level, final String format, final Object param1, final Object param2) { - log.logv(FQCN, level, null, format, param1, param2); - } - - @Override - public void logv(final Logger.Level level, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, level, null, format, param1, param2, param3); - } - - @Override - public void logv(final Logger.Level level, final Throwable t, final String format, final Object... params) { - log.logv(FQCN, level, t, format, params); - } - - @Override - public void logv(final Logger.Level level, final Throwable t, final String format, final Object param1) { - log.logv(FQCN, level, t, format, param1); - } - - @Override - public void logv(final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(FQCN, level, t, format, param1, param2); - } - - @Override - public void logv(final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(FQCN, level, t, format, param1, param2, param3); - } - - @Override - public void logv(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object... params) { - log.logv(loggerFqcn, level, t, format, params); - } - - @Override - public void logv(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object param1) { - log.logv(loggerFqcn, level, t, format, param1); - } - - @Override - public void logv(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2) { - log.logv(loggerFqcn, level, t, format, param1, param2); - } - - @Override - public void logv(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logv(loggerFqcn, level, t, format, param1, param2, param3); - } - - @Override - public void logf(final Logger.Level level, final String format, final Object... params) { - log.logf(FQCN, level, null, format, params); - } - - @Override - public void logf(final Logger.Level level, final String format, final Object param1) { - log.logf(FQCN, level, null, format, param1); - } - - @Override - public void logf(final Logger.Level level, final String format, final Object param1, final Object param2) { - log.logf(FQCN, level, null, format, param1, param2); - } - - @Override - public void logf(final Logger.Level level, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, level, null, format, param1, param2, param3); - } - - @Override - public void logf(final Logger.Level level, final Throwable t, final String format, final Object... params) { - log.logf(FQCN, level, t, format, params); - } - - @Override - public void logf(final Logger.Level level, final Throwable t, final String format, final Object param1) { - log.logf(FQCN, level, t, format, param1); - } - - @Override - public void logf(final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(FQCN, level, t, format, param1, param2); - } - - @Override - public void logf(final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(FQCN, level, t, format, param1, param2, param3); - } - - @Override - public void logf(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object param1) { - log.logf(loggerFqcn, level, t, format, param1); - } - - @Override - public void logf(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2) { - log.logf(loggerFqcn, level, t, format, param1, param2); - } - - @Override - public void logf(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object param1, final Object param2, final Object param3) { - log.logf(loggerFqcn, level, t, format, param1, param2, param3); - } - - @Override - public void logf(final String loggerFqcn, final Logger.Level level, final Throwable t, final String format, final Object... params) { - log.logf(loggerFqcn, level, t, format, params); - } - - @Override - public boolean isEnabled(final Logger.Level level) { - return log.isEnabled(level); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Field.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Field.java deleted file mode 100644 index 749eab720..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Field.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Indicate that a method parameter value should be applied to a field on the resultant exception object. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.Field provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -@Deprecated -public @interface Field { - - /** - * The field name. If not specified, the parameter name is assumed to be the field name. - * - * @return the field name - */ - String name() default ""; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/FormatWith.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/FormatWith.java deleted file mode 100644 index 696b4f74f..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/FormatWith.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Indicate that the given parameter should be wrapped with a formatting object of the given class. The class - * must have a one-argument constructor which unambiguously accepts a value of this parameter's type. The resultant - * object will be passed in as a parameter to the underlying format type; thus its {@link Object#toString() toString()} - * method will be invoked (or, if the format style is {@link Message.Format#PRINTF PRINTF}, the - * object may implement {@link java.util.Formattable Formattable} to get extra functionality). - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.FormatWith provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Target(PARAMETER) -@Retention(CLASS) -@Documented -@Deprecated -public @interface FormatWith { - - /** - * The class of the formatting object to use. - * - * @return the class - */ - Class value(); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerLogger.java deleted file mode 100644 index dcd3d2b67..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerLogger.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import org.jboss.logmanager.ExtLogRecord; - -final class JBossLogManagerLogger extends Logger { - - private static final long serialVersionUID = 7429618317727584742L; - - private final org.jboss.logmanager.Logger logger; - - JBossLogManagerLogger(final String name, final org.jboss.logmanager.Logger logger) { - super(name); - this.logger = logger; - } - - public boolean isEnabled(final Level level) { - return logger.isLoggable(translate(level)); - } - - protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) { - java.util.logging.Level translatedLevel = translate(level); - if (logger.isLoggable(translatedLevel)) { - if (parameters == null) { - logger.log(loggerClassName, translatedLevel, String.valueOf(message), thrown); - } else { - logger.log(loggerClassName, translatedLevel, String.valueOf(message), ExtLogRecord.FormatStyle.MESSAGE_FORMAT, parameters, thrown); - } - } - } - - protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) { - if (parameters == null) { - logger.log(loggerClassName, translate(level), format, thrown); - } else { - logger.log(loggerClassName, translate(level), format, ExtLogRecord.FormatStyle.PRINTF, parameters, thrown); - } - } - - private static java.util.logging.Level translate(final Level level) { - if (level != null) switch (level) { - case FATAL: return org.jboss.logmanager.Level.FATAL; - case ERROR: return org.jboss.logmanager.Level.ERROR; - case WARN: return org.jboss.logmanager.Level.WARN; - case INFO: return org.jboss.logmanager.Level.INFO; - case DEBUG: return org.jboss.logmanager.Level.DEBUG; - case TRACE: return org.jboss.logmanager.Level.TRACE; - } - return org.jboss.logmanager.Level.ALL; - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerProvider.java deleted file mode 100644 index 1d6eea2ce..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogManagerProvider.java +++ /dev/null @@ -1,150 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.ConcurrentMap; - -import org.jboss.logmanager.LogContext; -import org.jboss.logmanager.MDC; -import org.jboss.logmanager.NDC; - -import static org.jboss.logmanager.Logger.AttachmentKey; - -final class JBossLogManagerProvider implements LoggerProvider { - - private static final AttachmentKey KEY = new AttachmentKey(); - private static final AttachmentKey> LEGACY_KEY = new AttachmentKey>(); - - public Logger getLogger(final String name) { - final SecurityManager sm = System.getSecurityManager(); - if (sm != null) { - return AccessController.doPrivileged(new PrivilegedAction() { - public Logger run() { - try { - return doGetLogger(name) ; - } catch (NoSuchMethodError ignore) { - } - // fallback - return doLegacyGetLogger(name); - } - }); - } else { - try { - return doGetLogger(name) ; - } catch (NoSuchMethodError ignore) { - } - // fallback - return doLegacyGetLogger(name); - } - } - - private static Logger doLegacyGetLogger(final String name) { - final org.jboss.logmanager.Logger lmLogger = LogContext.getLogContext().getLogger(""); - ConcurrentMap loggers = lmLogger.getAttachment(LEGACY_KEY); - if (loggers == null) { - loggers = new ConcurrentHashMap(); - final ConcurrentMap appearing = lmLogger.attachIfAbsent(LEGACY_KEY, loggers); - if (appearing != null) { - loggers = appearing; - } - } - - Logger l = loggers.get(name); - if (l != null) { - return l; - } - - final org.jboss.logmanager.Logger logger = org.jboss.logmanager.Logger.getLogger(name); - l = new JBossLogManagerLogger(name, logger); - final Logger appearing = loggers.putIfAbsent(name, l); - if (appearing == null) { - return l; - } - return appearing; - } - - private static Logger doGetLogger(final String name) { - Logger l = LogContext.getLogContext().getAttachment(name, KEY); - if (l != null) { - return l; - } - final org.jboss.logmanager.Logger logger = org.jboss.logmanager.Logger.getLogger(name); - l = new JBossLogManagerLogger(name, logger); - Logger a = logger.attachIfAbsent(KEY, l); - if (a == null) { - return l; - } else { - return a; - } - } - - public void clearMdc() { - MDC.clear(); - } - - public Object putMdc(final String key, final Object value) { - return MDC.put(key, String.valueOf(value)); - } - - public Object getMdc(final String key) { - return MDC.get(key); - } - - public void removeMdc(final String key) { - MDC.remove(key); - } - - @SuppressWarnings({ "unchecked" }) - public Map getMdcMap() { - // we can re-define the erasure of this map because MDC does not make further use of the copy - return (Map)MDC.copy(); - } - - public void clearNdc() { - NDC.clear(); - } - - public String getNdc() { - return NDC.get(); - } - - public int getNdcDepth() { - return NDC.getDepth(); - } - - public String popNdc() { - return NDC.pop(); - } - - public String peekNdc() { - return NDC.get(); - } - - public void pushNdc(final String message) { - NDC.push(message); - } - - public void setNdcMaxDepth(final int maxDepth) { - NDC.trimTo(maxDepth); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogRecord.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogRecord.java deleted file mode 100644 index 6c1a790fb..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JBossLogRecord.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.logging.Level; -import java.util.logging.LogRecord; - -class JBossLogRecord extends LogRecord { - - private static final long serialVersionUID = 2492784413065296060L; - private static final String LOGGER_CLASS_NAME = Logger.class.getName(); - - private boolean resolved; - private final String loggerClassName; - - JBossLogRecord(final Level level, final String msg) { - super(level, msg); - loggerClassName = LOGGER_CLASS_NAME; - } - - JBossLogRecord(final Level level, final String msg, final String loggerClassName) { - super(level, msg); - this.loggerClassName = loggerClassName; - } - - public String getSourceClassName() { - if (! resolved) { - resolve(); - } - return super.getSourceClassName(); - } - - public void setSourceClassName(final String sourceClassName) { - resolved = true; - super.setSourceClassName(sourceClassName); - } - - public String getSourceMethodName() { - if (! resolved) { - resolve(); - } - return super.getSourceMethodName(); - } - - public void setSourceMethodName(final String sourceMethodName) { - resolved = true; - super.setSourceMethodName(sourceMethodName); - } - - private void resolve() { - resolved = true; - final StackTraceElement[] stack = new Throwable().getStackTrace(); - boolean found = false; - for (StackTraceElement element : stack) { - final String className = element.getClassName(); - if (found) { - if (! loggerClassName.equals(className)) { - setSourceClassName(className); - setSourceMethodName(element.getMethodName()); - return; - } - } else { - found = loggerClassName.equals(className); - } - } - setSourceClassName(""); - setSourceMethodName(""); - } - - protected Object writeReplace() { - final LogRecord replacement = new LogRecord(getLevel(), getMessage()); - replacement.setResourceBundle(getResourceBundle()); - replacement.setLoggerName(getLoggerName()); - replacement.setMillis(getMillis()); - replacement.setParameters(getParameters()); - replacement.setResourceBundleName(getResourceBundleName()); - replacement.setSequenceNumber(getSequenceNumber()); - replacement.setSourceClassName(getSourceClassName()); - replacement.setSourceMethodName(getSourceMethodName()); - replacement.setThreadID(getThreadID()); - replacement.setThrown(getThrown()); - return replacement; - } - -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLevel.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLevel.java deleted file mode 100644 index aae9e6383..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLevel.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.logging.Level; - -/** - * Levels used by the JDK logging back end. - */ -final class JDKLevel extends Level { - - private static final long serialVersionUID = 1L; - - protected JDKLevel(final String name, final int value) { - super(name, value); - } - - protected JDKLevel(final String name, final int value, final String resourceBundleName) { - super(name, value, resourceBundleName); - } - - public static final JDKLevel FATAL = new JDKLevel("FATAL", 1100); - public static final JDKLevel ERROR = new JDKLevel("ERROR", 1000); - public static final JDKLevel WARN = new JDKLevel("WARN", 900); - @SuppressWarnings("hiding") - public static final JDKLevel INFO = new JDKLevel("INFO", 800); - public static final JDKLevel DEBUG = new JDKLevel("DEBUG", 500); - public static final JDKLevel TRACE = new JDKLevel("TRACE", 400); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLogger.java deleted file mode 100644 index 316fe5e79..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLogger.java +++ /dev/null @@ -1,83 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.MissingResourceException; -import java.util.ResourceBundle; - -final class JDKLogger extends Logger { - - private static final long serialVersionUID = 2563174097983721393L; - - @SuppressWarnings({ "NonConstantLogger" }) - private transient final java.util.logging.Logger logger; - - public JDKLogger(final String name) { - super(name); - logger = java.util.logging.Logger.getLogger(name); - } - - protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) { - if (isEnabled(level)) try { - final JBossLogRecord rec = new JBossLogRecord(translate(level), String.valueOf(message), loggerClassName); - if (thrown != null) rec.setThrown(thrown); - rec.setLoggerName(getName()); - rec.setParameters(parameters); - rec.setResourceBundleName(logger.getResourceBundleName()); - rec.setResourceBundle(logger.getResourceBundle()); - logger.log(rec); - } catch (Throwable ignored) {} - } - - protected void doLogf(final Level level, final String loggerClassName, String format, final Object[] parameters, final Throwable thrown) { - if (isEnabled(level)) try { - final ResourceBundle resourceBundle = logger.getResourceBundle(); - if (resourceBundle != null) try { - format = resourceBundle.getString(format); - } catch (MissingResourceException e) { - // ignore - } - final String msg = parameters == null ? String.format(format) : String.format(format, parameters); - final JBossLogRecord rec = new JBossLogRecord(translate(level), msg, loggerClassName); - if (thrown != null) rec.setThrown(thrown); - rec.setLoggerName(getName()); - rec.setResourceBundleName(logger.getResourceBundleName()); - // we've done all the business - rec.setResourceBundle(null); - rec.setParameters(null); - logger.log(rec); - } catch (Throwable ignored) {} - } - - private static java.util.logging.Level translate(final Level level) { - if (level != null) switch (level) { - case FATAL: return JDKLevel.FATAL; - case ERROR: return JDKLevel.ERROR; - case WARN: return JDKLevel.WARN; - case INFO: return JDKLevel.INFO; - case DEBUG: return JDKLevel.DEBUG; - case TRACE: return JDKLevel.TRACE; - } - return JDKLevel.ALL; - } - - public boolean isEnabled(final Level level) { - return logger.isLoggable(translate(level)); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLoggerProvider.java deleted file mode 100644 index b40fea84f..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/JDKLoggerProvider.java +++ /dev/null @@ -1,26 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -final class JDKLoggerProvider extends AbstractMdcLoggerProvider implements LoggerProvider { - - public Logger getLogger(final String name) { - return new JDKLogger(name); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2Logger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2Logger.java deleted file mode 100644 index ed8532b1e..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2Logger.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2013 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import com.fr.third.apache.logging.log4j.LogManager; -import com.fr.third.apache.logging.log4j.LoggingException; -import com.fr.third.apache.logging.log4j.message.MessageFormatMessageFactory; -import com.fr.third.apache.logging.log4j.message.StringFormattedMessage; -import com.fr.third.apache.logging.log4j.spi.AbstractLogger; - -final class Log4j2Logger extends Logger { - - private static final long serialVersionUID = -2507841068232627725L; - - private final AbstractLogger logger; - private final MessageFormatMessageFactory messageFactory; - - Log4j2Logger(final String name) { - super(name); - com.fr.third.apache.logging.log4j.Logger logger = LogManager.getLogger(name); - if (!(logger instanceof AbstractLogger)) { - throw new LoggingException("The logger for [" + name + "] does not extend AbstractLogger. Actual logger: " + logger.getClass().getName()); - } - this.logger = (AbstractLogger)logger; - this.messageFactory = new MessageFormatMessageFactory(); - } - - @Override - public boolean isEnabled(final Level level) { - return this.logger.isEnabled(Log4j2Logger.translate(level)); - } - - @Override - protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) { - final com.fr.third.apache.logging.log4j.Level translatedLevel = Log4j2Logger.translate(level); - if (this.logger.isEnabled(translatedLevel)) { - try { - this.logger.logMessage(loggerClassName, translatedLevel, null, - (parameters == null || parameters.length == 0) ? this.messageFactory.newMessage(message) : this.messageFactory.newMessage(String.valueOf(message), parameters), - thrown); - } catch (Throwable ignored) { } - } - } - - @Override - protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) { - final com.fr.third.apache.logging.log4j.Level translatedLevel = Log4j2Logger.translate(level); - if (this.logger.isEnabled(translatedLevel)) { - try { - this.logger.logMessage(loggerClassName, translatedLevel, null, new StringFormattedMessage(format, parameters), thrown); - } catch (Throwable ignored) { } - } - } - - private static com.fr.third.apache.logging.log4j.Level translate(final Level level) { - if (level != null) { - switch (level) { - case FATAL: return com.fr.third.apache.logging.log4j.Level.FATAL; - case ERROR: return com.fr.third.apache.logging.log4j.Level.ERROR; - case WARN: return com.fr.third.apache.logging.log4j.Level.WARN; - case INFO: return com.fr.third.apache.logging.log4j.Level.INFO; - case DEBUG: return com.fr.third.apache.logging.log4j.Level.DEBUG; - case TRACE: return com.fr.third.apache.logging.log4j.Level.TRACE; - } - } - return com.fr.third.apache.logging.log4j.Level.ALL; - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2LoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2LoggerProvider.java deleted file mode 100644 index cec13b2ed..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4j2LoggerProvider.java +++ /dev/null @@ -1,96 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2013 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.HashMap; -import java.util.Map; - -import com.fr.third.apache.logging.log4j.ThreadContext; - -final class Log4j2LoggerProvider implements LoggerProvider { - - @Override - public Log4j2Logger getLogger(String name) { - return new Log4j2Logger(name); - } - - @Override - public void clearMdc() { - ThreadContext.clearMap(); - } - - @Override - public Object putMdc(String key, Object value) { - try { - return ThreadContext.get(key); - } finally { - ThreadContext.put(key, String.valueOf(value)); - } - } - - @Override - public Object getMdc(String key) { - return ThreadContext.get(key); - } - - @Override - public void removeMdc(String key) { - ThreadContext.remove(key); - } - - @Override - public Map getMdcMap() { - return new HashMap(ThreadContext.getImmutableContext()); - } - - @Override - public void clearNdc() { - ThreadContext.clearStack(); - } - - @Override - public String getNdc() { - return ThreadContext.peek(); - } - - @Override - public int getNdcDepth() { - return ThreadContext.getDepth(); - } - - @Override - public String popNdc() { - return ThreadContext.pop(); - } - - @Override - public String peekNdc() { - return ThreadContext.peek(); - } - - @Override - public void pushNdc(String message) { - ThreadContext.push(message); - } - - @Override - public void setNdcMaxDepth(int maxDepth) { - ThreadContext.trim(maxDepth); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLogger.java deleted file mode 100644 index 505eccbdb..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLogger.java +++ /dev/null @@ -1,64 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.text.MessageFormat; - -final class Log4jLogger extends Logger { - - private static final long serialVersionUID = -5446154366955151335L; - - private final org.apache.log4j.Logger logger; - - Log4jLogger(final String name) { - super(name); - logger = org.apache.log4j.Logger.getLogger(name); - } - - public boolean isEnabled(final Level level) { - final org.apache.log4j.Level l = translate(level); - return logger.isEnabledFor(l) && l.isGreaterOrEqual(logger.getEffectiveLevel()); - } - - protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) { - final org.apache.log4j.Level translatedLevel = translate(level); - if (logger.isEnabledFor(translatedLevel)) try { - logger.log(loggerClassName, translatedLevel, parameters == null || parameters.length == 0 ? message : MessageFormat.format(String.valueOf(message), parameters), thrown); - } catch (Throwable ignored) {} - } - - protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) { - final org.apache.log4j.Level translatedLevel = translate(level); - if (logger.isEnabledFor(translatedLevel)) try { - logger.log(loggerClassName, translatedLevel, parameters == null ? String.format(format) : String.format(format, parameters), thrown); - } catch (Throwable ignored) {} - } - - private static org.apache.log4j.Level translate(final Level level) { - if (level != null) switch (level) { - case FATAL: return org.apache.log4j.Level.FATAL; - case ERROR: return org.apache.log4j.Level.ERROR; - case WARN: return org.apache.log4j.Level.WARN; - case INFO: return org.apache.log4j.Level.INFO; - case DEBUG: return org.apache.log4j.Level.DEBUG; - case TRACE: return org.apache.log4j.Level.TRACE; - } - return org.apache.log4j.Level.ALL; - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLoggerProvider.java deleted file mode 100644 index d002951f3..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Log4jLoggerProvider.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.Collections; -import java.util.Map; - -import org.apache.log4j.MDC; -import org.apache.log4j.NDC; - -final class Log4jLoggerProvider implements LoggerProvider { - - public Logger getLogger(final String name) { - return new Log4jLogger("".equals(name) ? "ROOT" : name); - } - - public void clearMdc() { - MDC.clear(); - } - - public Object getMdc(String key) { - return MDC.get(key); - } - - public Map getMdcMap() { - @SuppressWarnings("unchecked") - final Map map = MDC.getContext(); - return map == null ? Collections.emptyMap() : map; - } - - public Object putMdc(String key, Object val) { - try { - return MDC.get(key); - } finally { - MDC.put(key, val); - } - } - - public void removeMdc(String key) { - MDC.remove(key); - } - - public void clearNdc() { - NDC.remove(); - } - - public String getNdc() { - return NDC.get(); - } - - public int getNdcDepth() { - return NDC.getDepth(); - } - - public String peekNdc() { - return NDC.peek(); - } - - public String popNdc() { - return NDC.pop(); - } - - public void pushNdc(String message) { - NDC.push(message); - } - - public void setNdcMaxDepth(int maxDepth) { - NDC.setMaxDepth(maxDepth); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LogMessage.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LogMessage.java deleted file mode 100644 index d3517341a..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LogMessage.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * A typed logger method. Indicates that this method will log the associated {@link Message} to the logger system, as - * opposed to being a simple message lookup. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.LogMessage provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(METHOD) -@Documented -@Deprecated -public @interface LogMessage { - - /** - * The log level at which this message should be logged. Defaults to {@code INFO}. - * - * @return the log level - */ - Logger.Level level() default Logger.Level.INFO; - - /** - * The logging class name to use for this message, if any. - * - * @return the logging class name - */ - Class loggingClass() default Void.class; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Logger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Logger.java deleted file mode 100644 index 4c990c85f..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Logger.java +++ /dev/null @@ -1,2594 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.io.Serializable; -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; -import java.security.PrivilegedAction; -import java.util.Locale; - -import static java.security.AccessController.doPrivileged; - -/** - * An abstracted logging entry point. - */ -public abstract class Logger implements Serializable, BasicLogger { - - private static final long serialVersionUID = 4232175575988879434L; - - private static final String FQCN = Logger.class.getName(); - - /** - * Levels used by this logging API. - */ - public enum Level { - FATAL, - ERROR, - WARN, - INFO, - DEBUG, - TRACE, - } - - private final String name; - - /** - * Construct a new instance. - * - * @param name the logger category name - */ - protected Logger(final String name) { - this.name = name; - } - - /** - * Return the name of this logger. - * - * @return The name of this logger. - */ - public String getName() { - return name; - } - - /** - * Implementation log method (standard parameter formatting). - * - * @param level the level - * @param loggerClassName the logger class name - * @param message the message to log - * @param parameters the parameters of the message - * @param thrown the exception which was thrown, if any - */ - protected abstract void doLog(Level level, String loggerClassName, Object message, Object[] parameters, Throwable thrown); - - /** - * Implementation log method (printf formatting). - * - * @param level the level - * @param loggerClassName the logger class name - * @param format the format string to log - * @param parameters the parameters of the message - * @param thrown the exception which was thrown, if any - */ - protected abstract void doLogf(Level level, String loggerClassName, String format, Object[] parameters, Throwable thrown); - - /** - * Check to see if the {@code TRACE} level is enabled for this logger. - * - * @return {@code true} if messages logged at {@link Level#TRACE} may be accepted, {@code false} otherwise - */ - public boolean isTraceEnabled() { - return isEnabled(Level.TRACE); - } - - /** - * Issue a log message with a level of TRACE. - * - * @param message the message - */ - public void trace(Object message) { - doLog(Level.TRACE, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable with a level of TRACE. - * - * @param message the message - * @param t the throwable - */ - public void trace(Object message, Throwable t) { - doLog(Level.TRACE, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable with a level of TRACE and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void trace(String loggerFqcn, Object message, Throwable t) { - doLog(Level.TRACE, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters with a level of TRACE. - * - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #tracev(String, Object...)} is recommended. - */ - @Deprecated - public void trace(Object message, Object[] params) { - doLog(Level.TRACE, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable with a level of TRACE. - * - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #tracev(Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void trace(Object message, Object[] params, Throwable t) { - doLog(Level.TRACE, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable with a level of TRACE. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void trace(String loggerFqcn, Object message, Object[] params, Throwable t) { - doLog(Level.TRACE, loggerFqcn, message, params, t); - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - public void tracev(String format, Object... params) { - doLog(Level.TRACE, FQCN, format, params, null); - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - public void tracev(String format, Object param1) { - if (isEnabled(Level.TRACE)) { - doLog(Level.TRACE, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void tracev(String format, Object param1, Object param2) { - if (isEnabled(Level.TRACE)) { - doLog(Level.TRACE, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void tracev(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.TRACE)) { - doLog(Level.TRACE, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void tracev(Throwable t, String format, Object... params) { - doLog(Level.TRACE, FQCN, format, params, t); - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void tracev(Throwable t, String format, Object param1) { - if (isEnabled(Level.TRACE)) { - doLog(Level.TRACE, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void tracev(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.TRACE)) { - doLog(Level.TRACE, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message with a level of TRACE using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void tracev(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.TRACE)) { - doLog(Level.TRACE, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void tracef(String format, Object... params) { - doLogf(Level.TRACE, FQCN, format, params, null); - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void tracef(String format, Object param1) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void tracef(String format, Object param1, Object param2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void tracef(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void tracef(Throwable t, String format, Object... params) { - doLogf(Level.TRACE, FQCN, format, params, t); - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void tracef(Throwable t, String format, Object param1) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void tracef(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message with a level of TRACE. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void tracef(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - public void tracef(final String format, final int arg) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg }, null); - } - } - - public void tracef(final String format, final int arg1, final int arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void tracef(final String format, final int arg1, final Object arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void tracef(final String format, final int arg1, final int arg2, final int arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void tracef(final String format, final int arg1, final int arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void tracef(final String format, final int arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void tracef(final Throwable t, final String format, final int arg) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg }, t); - } - } - - public void tracef(final Throwable t, final String format, final int arg1, final int arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void tracef(final Throwable t, final String format, final int arg1, final Object arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void tracef(final Throwable t, final String format, final int arg1, final int arg2, final int arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void tracef(final Throwable t, final String format, final int arg1, final int arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void tracef(final Throwable t, final String format, final int arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void tracef(final String format, final long arg) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg }, null); - } - } - - public void tracef(final String format, final long arg1, final long arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void tracef(final String format, final long arg1, final Object arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void tracef(final String format, final long arg1, final long arg2, final long arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void tracef(final String format, final long arg1, final long arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void tracef(final String format, final long arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void tracef(final Throwable t, final String format, final long arg) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg }, t); - } - } - - public void tracef(final Throwable t, final String format, final long arg1, final long arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void tracef(final Throwable t, final String format, final long arg1, final Object arg2) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void tracef(final Throwable t, final String format, final long arg1, final long arg2, final long arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void tracef(final Throwable t, final String format, final long arg1, final long arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void tracef(final Throwable t, final String format, final long arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.TRACE)) { - doLogf(Level.TRACE, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - /** - * Check to see if the {@code DEBUG} level is enabled for this logger. - * - * @return {@code true} if messages logged at {@link Level#DEBUG} may be accepted, {@code false} otherwise - */ - public boolean isDebugEnabled() { - return isEnabled(Level.DEBUG); - } - - /** - * Issue a log message with a level of DEBUG. - * - * @param message the message - */ - public void debug(Object message) { - doLog(Level.DEBUG, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable with a level of DEBUG. - * - * @param message the message - * @param t the throwable - */ - public void debug(Object message, Throwable t) { - doLog(Level.DEBUG, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable with a level of DEBUG and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void debug(String loggerFqcn, Object message, Throwable t) { - doLog(Level.DEBUG, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters with a level of DEBUG. - * - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #debugv(String, Object...)} is recommended. - */ - @Deprecated - public void debug(Object message, Object[] params) { - doLog(Level.DEBUG, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable with a level of DEBUG. - * - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #debugv(Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void debug(Object message, Object[] params, Throwable t) { - doLog(Level.DEBUG, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable with a level of DEBUG. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void debug(String loggerFqcn, Object message, Object[] params, Throwable t) { - doLog(Level.DEBUG, loggerFqcn, message, params, t); - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - public void debugv(String format, Object... params) { - doLog(Level.DEBUG, FQCN, format, params, null); - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - public void debugv(String format, Object param1) { - if (isEnabled(Level.DEBUG)) { - doLog(Level.DEBUG, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void debugv(String format, Object param1, Object param2) { - if (isEnabled(Level.DEBUG)) { - doLog(Level.DEBUG, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void debugv(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.DEBUG)) { - doLog(Level.DEBUG, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void debugv(Throwable t, String format, Object... params) { - doLog(Level.DEBUG, FQCN, format, params, t); - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void debugv(Throwable t, String format, Object param1) { - if (isEnabled(Level.DEBUG)) { - doLog(Level.DEBUG, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void debugv(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.DEBUG)) { - doLog(Level.DEBUG, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message with a level of DEBUG using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void debugv(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.DEBUG)) { - doLog(Level.DEBUG, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void debugf(String format, Object... params) { - doLogf(Level.DEBUG, FQCN, format, params, null); - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void debugf(String format, Object param1) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void debugf(String format, Object param1, Object param2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void debugf(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void debugf(Throwable t, String format, Object... params) { - doLogf(Level.DEBUG, FQCN, format, params, t); - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void debugf(Throwable t, String format, Object param1) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void debugf(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message with a level of DEBUG. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void debugf(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - public void debugf(final String format, final int arg) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg }, null); - } - } - - public void debugf(final String format, final int arg1, final int arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void debugf(final String format, final int arg1, final Object arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void debugf(final String format, final int arg1, final int arg2, final int arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void debugf(final String format, final int arg1, final int arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void debugf(final String format, final int arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void debugf(final Throwable t, final String format, final int arg) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg }, t); - } - } - - public void debugf(final Throwable t, final String format, final int arg1, final int arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void debugf(final Throwable t, final String format, final int arg1, final Object arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void debugf(final Throwable t, final String format, final int arg1, final int arg2, final int arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void debugf(final Throwable t, final String format, final int arg1, final int arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void debugf(final Throwable t, final String format, final int arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void debugf(final String format, final long arg) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg }, null); - } - } - - public void debugf(final String format, final long arg1, final long arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void debugf(final String format, final long arg1, final Object arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, null); - } - } - - public void debugf(final String format, final long arg1, final long arg2, final long arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void debugf(final String format, final long arg1, final long arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void debugf(final String format, final long arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, null); - } - } - - public void debugf(final Throwable t, final String format, final long arg) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg }, t); - } - } - - public void debugf(final Throwable t, final String format, final long arg1, final long arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void debugf(final Throwable t, final String format, final long arg1, final Object arg2) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2 }, t); - } - } - - public void debugf(final Throwable t, final String format, final long arg1, final long arg2, final long arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void debugf(final Throwable t, final String format, final long arg1, final long arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - public void debugf(final Throwable t, final String format, final long arg1, final Object arg2, final Object arg3) { - if (isEnabled(Level.DEBUG)) { - doLogf(Level.DEBUG, FQCN, format, new Object[] { arg1, arg2, arg3 }, t); - } - } - - /** - * Check to see if the {@code INFO} level is enabled for this logger. - * - * @return {@code true} if messages logged at {@link Level#INFO} may be accepted, {@code false} otherwise - */ - public boolean isInfoEnabled() { - return isEnabled(Level.INFO); - } - - /** - * Issue a log message with a level of INFO. - * - * @param message the message - */ - public void info(Object message) { - doLog(Level.INFO, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable with a level of INFO. - * - * @param message the message - * @param t the throwable - */ - public void info(Object message, Throwable t) { - doLog(Level.INFO, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable with a level of INFO and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void info(String loggerFqcn, Object message, Throwable t) { - doLog(Level.INFO, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters with a level of INFO. - * - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #infov(String, Object...)} is recommended. - */ - @Deprecated - public void info(Object message, Object[] params) { - doLog(Level.INFO, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable with a level of INFO. - * - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #infov(Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void info(Object message, Object[] params, Throwable t) { - doLog(Level.INFO, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable with a level of INFO. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void info(String loggerFqcn, Object message, Object[] params, Throwable t) { - doLog(Level.INFO, loggerFqcn, message, params, t); - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - public void infov(String format, Object... params) { - doLog(Level.INFO, FQCN, format, params, null); - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - public void infov(String format, Object param1) { - if (isEnabled(Level.INFO)) { - doLog(Level.INFO, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void infov(String format, Object param1, Object param2) { - if (isEnabled(Level.INFO)) { - doLog(Level.INFO, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void infov(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.INFO)) { - doLog(Level.INFO, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void infov(Throwable t, String format, Object... params) { - doLog(Level.INFO, FQCN, format, params, t); - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void infov(Throwable t, String format, Object param1) { - if (isEnabled(Level.INFO)) { - doLog(Level.INFO, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void infov(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.INFO)) { - doLog(Level.INFO, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message with a level of INFO using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void infov(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.INFO)) { - doLog(Level.INFO, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void infof(String format, Object... params) { - doLogf(Level.INFO, FQCN, format, params, null); - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void infof(String format, Object param1) { - if (isEnabled(Level.INFO)) { - doLogf(Level.INFO, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void infof(String format, Object param1, Object param2) { - if (isEnabled(Level.INFO)) { - doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void infof(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.INFO)) { - doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void infof(Throwable t, String format, Object... params) { - doLogf(Level.INFO, FQCN, format, params, t); - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void infof(Throwable t, String format, Object param1) { - if (isEnabled(Level.INFO)) { - doLogf(Level.INFO, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void infof(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.INFO)) { - doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message with a level of INFO. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void infof(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.INFO)) { - doLogf(Level.INFO, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a log message with a level of WARN. - * - * @param message the message - */ - public void warn(Object message) { - doLog(Level.WARN, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable with a level of WARN. - * - * @param message the message - * @param t the throwable - */ - public void warn(Object message, Throwable t) { - doLog(Level.WARN, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable with a level of WARN and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void warn(String loggerFqcn, Object message, Throwable t) { - doLog(Level.WARN, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters with a level of WARN. - * - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #warnv(String, Object...)} is recommended. - */ - @Deprecated - public void warn(Object message, Object[] params) { - doLog(Level.WARN, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable with a level of WARN. - * - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #warnv(Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void warn(Object message, Object[] params, Throwable t) { - doLog(Level.WARN, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable with a level of WARN. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void warn(String loggerFqcn, Object message, Object[] params, Throwable t) { - doLog(Level.WARN, loggerFqcn, message, params, t); - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - public void warnv(String format, Object... params) { - doLog(Level.WARN, FQCN, format, params, null); - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - public void warnv(String format, Object param1) { - if (isEnabled(Level.WARN)) { - doLog(Level.WARN, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void warnv(String format, Object param1, Object param2) { - if (isEnabled(Level.WARN)) { - doLog(Level.WARN, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void warnv(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.WARN)) { - doLog(Level.WARN, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void warnv(Throwable t, String format, Object... params) { - doLog(Level.WARN, FQCN, format, params, t); - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void warnv(Throwable t, String format, Object param1) { - if (isEnabled(Level.WARN)) { - doLog(Level.WARN, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void warnv(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.WARN)) { - doLog(Level.WARN, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message with a level of WARN using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void warnv(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.WARN)) { - doLog(Level.WARN, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void warnf(String format, Object... params) { - doLogf(Level.WARN, FQCN, format, params, null); - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void warnf(String format, Object param1) { - if (isEnabled(Level.WARN)) { - doLogf(Level.WARN, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void warnf(String format, Object param1, Object param2) { - if (isEnabled(Level.WARN)) { - doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void warnf(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.WARN)) { - doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void warnf(Throwable t, String format, Object... params) { - doLogf(Level.WARN, FQCN, format, params, t); - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void warnf(Throwable t, String format, Object param1) { - if (isEnabled(Level.WARN)) { - doLogf(Level.WARN, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void warnf(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.WARN)) { - doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message with a level of WARN. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void warnf(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.WARN)) { - doLogf(Level.WARN, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a log message with a level of ERROR. - * - * @param message the message - */ - public void error(Object message) { - doLog(Level.ERROR, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable with a level of ERROR. - * - * @param message the message - * @param t the throwable - */ - public void error(Object message, Throwable t) { - doLog(Level.ERROR, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable with a level of ERROR and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void error(String loggerFqcn, Object message, Throwable t) { - doLog(Level.ERROR, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters with a level of ERROR. - * - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #errorv(String, Object...)} is recommended. - */ - @Deprecated - public void error(Object message, Object[] params) { - doLog(Level.ERROR, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable with a level of ERROR. - * - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #errorv(Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void error(Object message, Object[] params, Throwable t) { - doLog(Level.ERROR, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable with a level of ERROR. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void error(String loggerFqcn, Object message, Object[] params, Throwable t) { - doLog(Level.ERROR, loggerFqcn, message, params, t); - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - public void errorv(String format, Object... params) { - doLog(Level.ERROR, FQCN, format, params, null); - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - public void errorv(String format, Object param1) { - if (isEnabled(Level.ERROR)) { - doLog(Level.ERROR, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void errorv(String format, Object param1, Object param2) { - if (isEnabled(Level.ERROR)) { - doLog(Level.ERROR, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void errorv(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.ERROR)) { - doLog(Level.ERROR, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void errorv(Throwable t, String format, Object... params) { - doLog(Level.ERROR, FQCN, format, params, t); - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void errorv(Throwable t, String format, Object param1) { - if (isEnabled(Level.ERROR)) { - doLog(Level.ERROR, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void errorv(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.ERROR)) { - doLog(Level.ERROR, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message with a level of ERROR using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void errorv(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.ERROR)) { - doLog(Level.ERROR, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void errorf(String format, Object... params) { - doLogf(Level.ERROR, FQCN, format, params, null); - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void errorf(String format, Object param1) { - if (isEnabled(Level.ERROR)) { - doLogf(Level.ERROR, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void errorf(String format, Object param1, Object param2) { - if (isEnabled(Level.ERROR)) { - doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void errorf(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.ERROR)) { - doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void errorf(Throwable t, String format, Object... params) { - doLogf(Level.ERROR, FQCN, format, params, t); - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void errorf(Throwable t, String format, Object param1) { - if (isEnabled(Level.ERROR)) { - doLogf(Level.ERROR, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void errorf(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.ERROR)) { - doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message with a level of ERROR. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void errorf(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.ERROR)) { - doLogf(Level.ERROR, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a log message with a level of FATAL. - * - * @param message the message - */ - public void fatal(Object message) { - doLog(Level.FATAL, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable with a level of FATAL. - * - * @param message the message - * @param t the throwable - */ - public void fatal(Object message, Throwable t) { - doLog(Level.FATAL, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable with a level of FATAL and a specific logger class name. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void fatal(String loggerFqcn, Object message, Throwable t) { - doLog(Level.FATAL, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters with a level of FATAL. - * - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #fatalv(String, Object...)} is recommended. - */ - @Deprecated - public void fatal(Object message, Object[] params) { - doLog(Level.FATAL, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable with a level of FATAL. - * - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #fatalv(Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void fatal(Object message, Object[] params, Throwable t) { - doLog(Level.FATAL, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable with a level of FATAL. - * - * @param loggerFqcn the logger class name - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void fatal(String loggerFqcn, Object message, Object[] params, Throwable t) { - doLog(Level.FATAL, loggerFqcn, message, params, t); - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param params the parameters - */ - public void fatalv(String format, Object... params) { - doLog(Level.FATAL, FQCN, format, params, null); - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the sole parameter - */ - public void fatalv(String format, Object param1) { - if (isEnabled(Level.FATAL)) { - doLog(Level.FATAL, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void fatalv(String format, Object param1, Object param2) { - if (isEnabled(Level.FATAL)) { - doLog(Level.FATAL, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void fatalv(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.FATAL)) { - doLog(Level.FATAL, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void fatalv(Throwable t, String format, Object... params) { - doLog(Level.FATAL, FQCN, format, params, t); - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void fatalv(Throwable t, String format, Object param1) { - if (isEnabled(Level.FATAL)) { - doLog(Level.FATAL, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void fatalv(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.FATAL)) { - doLog(Level.FATAL, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message with a level of FATAL using {@link java.text.MessageFormat}-style formatting. - * - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void fatalv(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.FATAL)) { - doLog(Level.FATAL, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void fatalf(String format, Object... params) { - doLogf(Level.FATAL, FQCN, format, params, null); - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void fatalf(String format, Object param1) { - if (isEnabled(Level.FATAL)) { - doLogf(Level.FATAL, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void fatalf(String format, Object param1, Object param2) { - if (isEnabled(Level.FATAL)) { - doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void fatalf(String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.FATAL)) { - doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void fatalf(Throwable t, String format, Object... params) { - doLogf(Level.FATAL, FQCN, format, params, t); - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void fatalf(Throwable t, String format, Object param1) { - if (isEnabled(Level.FATAL)) { - doLogf(Level.FATAL, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void fatalf(Throwable t, String format, Object param1, Object param2) { - if (isEnabled(Level.FATAL)) { - doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message with a level of FATAL. - * - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void fatalf(Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(Level.FATAL)) { - doLogf(Level.FATAL, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Log a message at the given level. - * - * @param level the level - * @param message the message - */ - public void log(Level level, Object message) { - doLog(level, FQCN, message, null, null); - } - - /** - * Issue a log message and throwable at the given log level. - * - * @param level the level - * @param message the message - * @param t the throwable - */ - public void log(Level level, Object message, Throwable t) { - doLog(level, FQCN, message, null, t); - } - - /** - * Issue a log message and throwable at the given log level and a specific logger class name. - * - * @param level the level - * @param loggerFqcn the logger class name - * @param message the message - * @param t the throwable - */ - public void log(Level level, String loggerFqcn, Object message, Throwable t) { - doLog(level, loggerFqcn, message, null, t); - } - - /** - * Issue a log message with parameters at the given log level. - * - * @param level the level - * @param message the message - * @param params the message parameters - * @deprecated To log a message with parameters, using {@link #logv(Level, String, Object...)} is recommended. - */ - @Deprecated - public void log(Level level, Object message, Object[] params) { - doLog(level, FQCN, message, params, null); - } - - /** - * Issue a log message with parameters and a throwable at the given log level. - * - * @param level the level - * @param message the message - * @param params the message parameters - * @param t the throwable - * @deprecated To log a message with parameters, using {@link #logv(Level, Throwable, String, Object...)} is recommended. - */ - @Deprecated - public void log(Level level, Object message, Object[] params, Throwable t) { - doLog(level, FQCN, message, params, t); - } - - /** - * Issue a log message with parameters and a throwable at the given log level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param message the message - * @param params the message parameters - * @param t the throwable - */ - public void log(String loggerFqcn, Level level, Object message, Object[] params, Throwable t) { - doLog(level, loggerFqcn, message, params, t); - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param params the parameters - */ - public void logv(Level level, String format, Object... params) { - doLog(level, FQCN, format, params, null); - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param param1 the sole parameter - */ - public void logv(Level level, String format, Object param1) { - if (isEnabled(level)) { - doLog(level, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void logv(Level level, String format, Object param1, Object param2) { - if (isEnabled(level)) { - doLog(level, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void logv(Level level, String format, Object param1, Object param2, Object param3) { - if (isEnabled(level)) { - doLog(level, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void logv(Level level, Throwable t, String format, Object... params) { - doLog(level, FQCN, format, params, t); - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void logv(Level level, Throwable t, String format, Object param1) { - if (isEnabled(level)) { - doLog(level, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void logv(Level level, Throwable t, String format, Object param1, Object param2) { - if (isEnabled(level)) { - doLog(level, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void logv(Level level, Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(level)) { - doLog(level, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param params the parameters - */ - public void logv(String loggerFqcn, Level level, Throwable t, String format, Object... params) { - doLog(level, loggerFqcn, format, params, t); - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the sole parameter - */ - public void logv(String loggerFqcn, Level level, Throwable t, String format, Object param1) { - if (isEnabled(level)) { - doLog(level, loggerFqcn, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void logv(String loggerFqcn, Level level, Throwable t, String format, Object param1, Object param2) { - if (isEnabled(level)) { - doLog(level, loggerFqcn, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a log message at the given log level using {@link java.text.MessageFormat}-style formatting. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable - * @param format the message format string - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void logv(String loggerFqcn, Level level, Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(level)) { - doLog(level, loggerFqcn, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the parameters - */ - public void logf(Level level, String format, Object... params) { - doLogf(level, FQCN, format, params, null); - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void logf(Level level, String format, Object param1) { - if (isEnabled(level)) { - doLogf(level, FQCN, format, new Object[] { param1 }, null); - } - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void logf(Level level, String format, Object param1, Object param2) { - if (isEnabled(level)) { - doLogf(level, FQCN, format, new Object[] { param1, param2 }, null); - } - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void logf(Level level, String format, Object param1, Object param2, Object param3) { - if (isEnabled(level)) { - doLogf(level, FQCN, format, new Object[] { param1, param2, param3 }, null); - } - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param params the parameters - */ - public void logf(Level level, Throwable t, String format, Object... params) { - doLogf(level, FQCN, format, params, t); - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the sole parameter - */ - public void logf(Level level, Throwable t, String format, Object param1) { - if (isEnabled(level)) { - doLogf(level, FQCN, format, new Object[] { param1 }, t); - } - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void logf(Level level, Throwable t, String format, Object param1, Object param2) { - if (isEnabled(level)) { - doLogf(level, FQCN, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Issue a formatted log message at the given log level. - * - * @param level the level - * @param t the throwable - * @param format the format string, as per {@link String#format(String, Object...)} - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void logf(Level level, Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(level)) { - doLogf(level, FQCN, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the sole parameter - */ - public void logf(String loggerFqcn, Level level, Throwable t, String format, Object param1) { - if (isEnabled(level)) { - doLogf(level, loggerFqcn, format, new Object[] { param1 }, t); - } - } - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - */ - public void logf(String loggerFqcn, Level level, Throwable t, String format, Object param1, Object param2) { - if (isEnabled(level)) { - doLogf(level, loggerFqcn, format, new Object[] { param1, param2 }, t); - } - } - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param param1 the first parameter - * @param param2 the second parameter - * @param param3 the third parameter - */ - public void logf(String loggerFqcn, Level level, Throwable t, String format, Object param1, Object param2, Object param3) { - if (isEnabled(level)) { - doLogf(level, loggerFqcn, format, new Object[] { param1, param2, param3 }, t); - } - } - - /** - * Log a message at the given level. - * - * @param loggerFqcn the logger class name - * @param level the level - * @param t the throwable cause - * @param format the format string as per {@link String#format(String, Object...)} or resource bundle key therefor - * @param params the message parameters - */ - public void logf(String loggerFqcn, Level level, Throwable t, String format, Object... params) { - doLogf(level, loggerFqcn, format, params, t); - } - - /** - * Read resolver; replaces deserialized instance with a canonical instance. - * - * @return the canonical logger instance - */ - protected final Object writeReplace() { - return new SerializedLogger(name); - } - - /** - * Get a Logger instance given the logger name. - * - * @param name the logger name - * - * @return the logger - */ - public static Logger getLogger(String name) { - return LoggerProviders.PROVIDER.getLogger(name); - } - - /** - * Get a Logger instance given the logger name with the given suffix. - *

    - *

    This will include a logger separator between logger name and suffix. - * - * @param name the logger name - * @param suffix a suffix to append to the logger name - * - * @return the logger - */ - public static Logger getLogger(String name, String suffix) { - return getLogger(name == null || name.length() == 0 ? suffix : name + "." + suffix); - } - - /** - * Get a Logger instance given the name of a class. This simply calls create(clazz.getName()). - * - * @param clazz the Class whose name will be used as the logger name - * - * @return the logger - */ - public static Logger getLogger(Class clazz) { - return getLogger(clazz.getName()); - } - - /** - * Get a Logger instance given the name of a class with the given suffix. - *

    - *

    This will include a logger separator between logger name and suffix - * - * @param clazz the Class whose name will be used as the logger name - * @param suffix a suffix to append to the logger name - * - * @return the logger - */ - public static Logger getLogger(Class clazz, String suffix) { - return getLogger(clazz.getName(), suffix); - } - - /** - * Get a typed logger which implements the given interface. The current default locale will be used for the new logger. - * - * @param type the interface to implement - * @param category the logger category - * @param the logger type - * @return the typed logger - */ - public static T getMessageLogger(Class type, String category) { - return getMessageLogger(type, category, Locale.getDefault()); - } - - /** - * Get a typed logger which implements the given interface. The given locale will be used for the new logger. - * - * @param type the interface to implement - * @param category the logger category - * @param locale the locale for the new logger - * @param the logger type - * @return the typed logger - */ - public static T getMessageLogger(final Class type, final String category, final Locale locale) { - return doPrivileged(new PrivilegedAction() { - public T run() { - String language = locale.getLanguage(); - String country = locale.getCountry(); - String variant = locale.getVariant(); - - Class loggerClass = null; - final ClassLoader classLoader = type.getClassLoader(); - final String typeName = type.getName(); - if (variant != null && variant.length() > 0) try { - loggerClass = Class.forName(join(typeName, "$logger", language, country, variant), true, classLoader).asSubclass(type); - } catch (ClassNotFoundException e) { - // ignore - } - if (loggerClass == null && country != null && country.length() > 0) try { - loggerClass = Class.forName(join(typeName, "$logger", language, country, null), true, classLoader).asSubclass(type); - } catch (ClassNotFoundException e) { - // ignore - } - if (loggerClass == null && language != null && language.length() > 0) try { - loggerClass = Class.forName(join(typeName, "$logger", language, null, null), true, classLoader).asSubclass(type); - } catch (ClassNotFoundException e) { - // ignore - } - if (loggerClass == null) try { - loggerClass = Class.forName(join(typeName, "$logger", null, null, null), true, classLoader).asSubclass(type); - } catch (ClassNotFoundException e) { - throw new IllegalArgumentException("Invalid logger " + type + " (implementation not found in " + classLoader + ")"); - } - final Constructor constructor; - try { - constructor = loggerClass.getConstructor(Logger.class); - } catch (NoSuchMethodException e) { - throw new IllegalArgumentException("Logger implementation " + loggerClass + " has no matching constructor"); - } - try { - return constructor.newInstance(Logger.getLogger(category)); - } catch (InstantiationException e) { - throw new IllegalArgumentException("Logger implementation " + loggerClass + " could not be instantiated", e); - } catch (IllegalAccessException e) { - throw new IllegalArgumentException("Logger implementation " + loggerClass + " could not be instantiated", e); - } catch (InvocationTargetException e) { - throw new IllegalArgumentException("Logger implementation " + loggerClass + " could not be instantiated", e.getCause()); - } - } - }); - } - - private static String join(String interfaceName, String a, String b, String c, String d) { - final StringBuilder build = new StringBuilder(); - build.append(interfaceName).append('_').append(a); - if (b != null && b.length() > 0) { - build.append('_'); - build.append(b); - } - if (c != null && c.length() > 0) { - build.append('_'); - build.append(c); - } - if (d != null && d.length() > 0) { - build.append('_'); - build.append(d); - } - return build.toString(); - } -} \ No newline at end of file diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProvider.java deleted file mode 100644 index fa916c93d..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProvider.java +++ /dev/null @@ -1,130 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.Collections; -import java.util.Map; - -/** - * A contract for the log provider implementation. - */ -public interface LoggerProvider { - /** - * Returns a logger which is backed by a logger from the log provider. - * - *

    - * Note: this should never be {@code null} - *

    - * - * @param name the name of the logger - * - * @return a logger for the log provider logger. - */ - Logger getLogger(String name); - - /** - * Removes all entries from the message diagnostics context. - */ - void clearMdc(); - - /** - * Puts the value onto the message diagnostics context. - * - * @param key the key for the value - * @param value the value - * - * @return the previous value set or {@code null} if no value was set - */ - Object putMdc(String key, Object value); - - /** - * Returns the value for the key on the message diagnostics context or {@code null} if no value was found. - * - * @param key the key to lookup the value for - * - * @return the value or {@code null} if not found - */ - Object getMdc(String key); - - /** - * Removes the value from the message diagnostics context. - * - * @param key the key of the value to remove - */ - void removeMdc(String key); - - /** - * Returns the map from the context. - * - *

    - * Note that in most implementations this is an expensive operation and should be used sparingly. - *

    - * - * @return the map from the context or an {@linkplain Collections#emptyMap() empty map} if the context is {@code - * null} - */ - Map getMdcMap(); - - /** - * Clears the nested diagnostics context. - */ - void clearNdc(); - - /** - * Retrieves the current values set for the nested diagnostics context. - * - * @return the current value set or {@code null} if no value was set - */ - String getNdc(); - - /** - * The current depth of the nested diagnostics context. - * - * @return the current depth of the stack - */ - int getNdcDepth(); - - /** - * Pops top value from the stack and returns it. - * - * @return the top value from the stack or an empty string if no value was set - */ - String popNdc(); - - /** - * Peeks at the top value from the stack and returns it. - * - * @return the value or an empty string - */ - String peekNdc(); - - /** - * Pushes a value to the nested diagnostics context stack. - * - * @param message the message to push - */ - void pushNdc(String message); - - /** - * Sets maximum depth of the stack removing any entries below the maximum depth. - * - * @param maxDepth the maximum depth to set - */ - void setNdcMaxDepth(int maxDepth); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProviders.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProviders.java deleted file mode 100644 index f19b8285b..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggerProviders.java +++ /dev/null @@ -1,166 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.security.AccessController; -import java.security.PrivilegedAction; -import java.util.Iterator; -import java.util.ServiceConfigurationError; -import java.util.ServiceLoader; -import java.util.logging.LogManager; - -final class LoggerProviders { - static final String LOGGING_PROVIDER_KEY = "org.jboss.logging.provider"; - - static final LoggerProvider PROVIDER = find(); - - private static LoggerProvider find() { - return findProvider(); - } - - private static LoggerProvider findProvider() { - // Since the impl classes refer to the back-end frameworks directly, if this classloader can't find the target - // log classes, then it doesn't really matter if they're possibly available from the TCCL because we won't be - // able to find it anyway - final ClassLoader cl = LoggerProviders.class.getClassLoader(); - try { - // Check the system property - final String loggerProvider = AccessController.doPrivileged(new PrivilegedAction() { - public String run() { - return System.getProperty(LOGGING_PROVIDER_KEY); - } - }); - if (loggerProvider != null) { - if ("jboss".equalsIgnoreCase(loggerProvider)) { - return tryJBossLogManager(cl, "system property"); - } else if ("jdk".equalsIgnoreCase(loggerProvider)) { - return tryJDK("system property"); - } else if ("log4j2".equalsIgnoreCase(loggerProvider)) { - return tryLog4j2(cl, "system property"); - } else if ("log4j".equalsIgnoreCase(loggerProvider)) { - return tryLog4j(cl, "system property"); - } else if ("slf4j".equalsIgnoreCase(loggerProvider)) { - return trySlf4j("system property"); - } - } - } catch (Throwable t) { - // nope... - } - - // Next try for a service provider - try { - final ServiceLoader loader = ServiceLoader.load(LoggerProvider.class, cl); - final Iterator iter = loader.iterator(); - for (; ; ) - try { - if (!iter.hasNext()) break; - LoggerProvider provider = iter.next(); - // Attempt to get a logger, if it fails keep trying - logProvider(provider, "service loader"); - return provider; - } catch (ServiceConfigurationError ignore) { - } - } catch (Throwable ignore) { - // TODO consider printing the stack trace as it should only happen once - } - - // Finally search the class path - try { - return tryJBossLogManager(cl, null); - } catch (Throwable t) { - // nope... - } - try { - // MUST try Log4j 2.x BEFORE Log4j 1.x because Log4j 2.x also passes Log4j 1.x test in some circumstances - return tryLog4j2(cl, null); - } catch (Throwable t) { - // nope... - } - try { - return tryLog4j(cl, null); - } catch (Throwable t) { - // nope... - } - try { - // only use slf4j if Logback is in use - Class.forName("ch.qos.logback.classic.Logger", false, cl); - return trySlf4j(null); - } catch (Throwable t) { - // nope... - } - return tryJDK(null); - } - - private static JDKLoggerProvider tryJDK(final String via) { - final JDKLoggerProvider provider = new JDKLoggerProvider(); - logProvider(provider, via); - return provider; - } - - private static LoggerProvider trySlf4j(final String via) { - final LoggerProvider provider = new Slf4jLoggerProvider(); - logProvider(provider, via); - return provider; - } - - // JBLOGGING-95 - Add support for Log4j 2.x - private static LoggerProvider tryLog4j2(final ClassLoader cl, final String via) throws ClassNotFoundException { - Class.forName("com.fr.third.apache.logging.log4j.Logger", true, cl); - Class.forName("com.fr.third.apache.logging.log4j.LogManager", true, cl); - Class.forName("com.fr.third.apache.logging.log4j.spi.AbstractLogger", true, cl); - LoggerProvider provider = new Log4j2LoggerProvider(); - // if Log4j 2 has a bad implementation that doesn't extend AbstractLogger, we won't know until getting the first logger throws an exception - logProvider(provider, via); - return provider; - } - - private static LoggerProvider tryLog4j(final ClassLoader cl, final String via) throws ClassNotFoundException { - Class.forName("org.apache.log4j.LogManager", true, cl); - // JBLOGGING-65 - slf4j can disguise itself as log4j. Test for a class that slf4j doesn't provide. - // JBLOGGING-94 - JBoss Logging does not detect org.apache.logging.log4j:log4j-1.2-api:2.0 - Class.forName("org.apache.log4j.config.PropertySetter", true, cl); - final LoggerProvider provider = new Log4jLoggerProvider(); - logProvider(provider, via); - return provider; - } - - private static LoggerProvider tryJBossLogManager(final ClassLoader cl, final String via) throws ClassNotFoundException { - final Class logManagerClass = LogManager.getLogManager().getClass(); - if (logManagerClass == Class.forName("org.jboss.logmanager.LogManager", false, cl) - && Class.forName("org.jboss.logmanager.Logger$AttachmentKey", true, cl).getClassLoader() == logManagerClass.getClassLoader()) { - final LoggerProvider provider = new JBossLogManagerProvider(); - logProvider(provider, via); - return provider; - } - throw new IllegalStateException(); - } - - private static void logProvider(final LoggerProvider provider, final String via) { - // Log a debug message indicating which logger we are using - final Logger logger = provider.getLogger(LoggerProviders.class.getPackage().getName()); - if (via == null) { - logger.debugf("Logging Provider: %s", provider.getClass().getName()); - } else { - logger.debugf("Logging Provider: %s found via %s", provider.getClass().getName(), via); - } - } - - private LoggerProviders() { - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggingClass.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggingClass.java deleted file mode 100644 index ad052b50a..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/LoggingClass.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Mark a parameter as specifying the name of the logging class to use. The parameter - * may have a type of {@link String} or {@link Class}. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.LoggingClass provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -@Deprecated -public @interface LoggingClass { -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MDC.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MDC.java deleted file mode 100644 index 808c9ee00..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MDC.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.Collections; -import java.util.Map; - -/** - * Mapped diagnostic context. Each log provider implementation may behave different. - */ -public final class MDC { - - private MDC() { - } - - /** - * Puts the value onto the context. - * - * @param key the key for the value - * @param val the value - * - * @return the previous value set or {@code null} if no value was set - */ - public static Object put(String key, Object val) { - return LoggerProviders.PROVIDER.putMdc(key, val); - } - - /** - * Returns the value for the key or {@code null} if no value was found. - * - * @param key the key to lookup the value for - * - * @return the value or {@code null} if not found - */ - public static Object get(String key) { - return LoggerProviders.PROVIDER.getMdc(key); - } - - /** - * Removes the value from the context. - * - * @param key the key of the value to remove - */ - public static void remove(String key) { - LoggerProviders.PROVIDER.removeMdc(key); - } - - /** - * Returns the map from the context. - * - *

    - * Note that in most implementations this is an expensive operation and should be used sparingly. - *

    - * - * @return the map from the context or an {@linkplain Collections#emptyMap() empty map} if the context is {@code - * null} - */ - public static Map getMap() { - return LoggerProviders.PROVIDER.getMdcMap(); - } - - /** - * Clears the message diagnostics context. - */ - public static void clear() { - LoggerProviders.PROVIDER.clearMdc(); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Message.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Message.java deleted file mode 100644 index 8296caed8..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Message.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Assigns a message string to a resource method. The method arguments are used to supply the positional parameter - * values for the method. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.Message provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Target(METHOD) -@Retention(CLASS) -@Documented -@Deprecated -public @interface Message { - - /** - * Indicates that this message has no ID. - */ - int NONE = 0; - /** - * Indicates that this message should inherit the ID from another message with the same name. - */ - int INHERIT = -1; - - /** - * The message ID number. Only one message with a given name may specify an ID other than {@link #INHERIT}. - * - * @return the message ID number - */ - int id() default INHERIT; - - /** - * The default format string of this message. - * - * @return the format string - */ - String value(); - - /** - * The format type of this method (defaults to {@link Format#PRINTF}). - * - * @return the format type - */ - Format format() default Format.PRINTF; - - /** - * The possible format types. - */ - enum Format { - - /** - * A {@link java.util.Formatter}-type format string. - */ - PRINTF, - /** - * A {@link java.text.MessageFormat}-type format string. - */ - MESSAGE_FORMAT, - - /** - * Indicates the message should not be formatted. - */ - NO_FORMAT, - } - -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageBundle.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageBundle.java deleted file mode 100644 index f1e88b51a..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageBundle.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Signify that an interface is a message bundle interface. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.MessageBundle provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Target(TYPE) -@Retention(CLASS) -@Documented -@Deprecated -public @interface MessageBundle { - - /** - * Get the project code for messages that have an associated code. If no project code is associated - * with this bundle, specify {@code ""} (the empty string). - * - * @return the project code - */ - String projectCode(); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageLogger.java deleted file mode 100644 index 47f176099..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/MessageLogger.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Signify that an interface is a typed logger interface. A message logger interface may optionally extend other message logger - * interfaces and message bundle interfaces (see {@link MessageBundle}, as well as the {@link BasicLogger} interface. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.MessageLogger provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(TYPE) -@Documented -@Deprecated -public @interface MessageLogger { - - /** - * Get the project code for messages that have an associated code. If no project code is associated - * with this logger, specify {@code ""} (the empty string). - * - * @return the project code - */ - String projectCode(); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Messages.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Messages.java deleted file mode 100644 index 531255e7b..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Messages.java +++ /dev/null @@ -1,117 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.reflect.Field; -import java.security.PrivilegedAction; -import java.util.Locale; - -import static java.security.AccessController.doPrivileged; - -/** - * A factory class to produce message bundle implementations. - * - * @author David M. Lloyd - */ -public final class Messages { - - private Messages() { - } - - /** - * Get a message bundle of the given type. Equivalent to {@link #getBundle(Class, java.util.Locale) getBundle}(type, Locale.getDefault()). - * - * @param type the bundle type class - * @param the bundle type - * @return the bundle - */ - public static T getBundle(Class type) { - return getBundle(type, Locale.getDefault()); - } - - /** - * Get a message bundle of the given type. - * - * @param type the bundle type class - * @param locale the message locale to use - * @param the bundle type - * @return the bundle - */ - public static T getBundle(final Class type, final Locale locale) { - return doPrivileged(new PrivilegedAction() { - public T run() { - String language = locale.getLanguage(); - String country = locale.getCountry(); - String variant = locale.getVariant(); - - Class bundleClass = null; - if (variant != null && variant.length() > 0) try { - bundleClass = Class.forName(join(type.getName(), "$bundle", language, country, variant), true, type.getClassLoader()).asSubclass(type); - } catch (ClassNotFoundException e) { - // ignore - } - if (bundleClass == null && country != null && country.length() > 0) try { - bundleClass = Class.forName(join(type.getName(), "$bundle", language, country, null), true, type.getClassLoader()).asSubclass(type); - } catch (ClassNotFoundException e) { - // ignore - } - if (bundleClass == null && language != null && language.length() > 0) try { - bundleClass = Class.forName(join(type.getName(), "$bundle", language, null, null), true, type.getClassLoader()).asSubclass(type); - } catch (ClassNotFoundException e) { - // ignore - } - if (bundleClass == null) try { - bundleClass = Class.forName(join(type.getName(), "$bundle", null, null, null), true, type.getClassLoader()).asSubclass(type); - } catch (ClassNotFoundException e) { - throw new IllegalArgumentException("Invalid bundle " + type + " (implementation not found)"); - } - final Field field; - try { - field = bundleClass.getField("INSTANCE"); - } catch (NoSuchFieldException e) { - throw new IllegalArgumentException("Bundle implementation " + bundleClass + " has no instance field"); - } - try { - return type.cast(field.get(null)); - } catch (IllegalAccessException e) { - throw new IllegalArgumentException("Bundle implementation " + bundleClass + " could not be instantiated", e); - } - } - }); - } - - private static String join(String interfaceName, String a, String b, String c, String d) { - final StringBuilder build = new StringBuilder(); - build.append(interfaceName).append('_').append(a); - if (b != null && b.length() > 0) { - build.append('_'); - build.append(b); - } - if (c != null && c.length() > 0) { - build.append('_'); - build.append(c); - } - if (d != null && d.length() > 0) { - build.append('_'); - build.append(d); - } - return build.toString(); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/NDC.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/NDC.java deleted file mode 100644 index 4aed9e4dc..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/NDC.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -public final class NDC { - - private NDC() { - } - - /** - * Clears the nested diagnostics context. - */ - public static void clear() { - LoggerProviders.PROVIDER.clearNdc(); - } - - /** - * Retrieves the current values set for the nested diagnostics context. - * - * @return the current value set or {@code null} if no value was set - */ - public static String get() { - return LoggerProviders.PROVIDER.getNdc(); - } - - /** - * The current depth of the nested diagnostics context. - * - * @return the current depth of the stack - */ - public static int getDepth() { - return LoggerProviders.PROVIDER.getNdcDepth(); - } - - /** - * Pops top value from the stack and returns it. - * - * @return the top value from the stack or an empty string if no value was set - */ - public static String pop() { - return LoggerProviders.PROVIDER.popNdc(); - } - - /** - * Peeks at the top value from the stack and returns it. - * - * @return the value or an empty string - */ - public static String peek() { - return LoggerProviders.PROVIDER.peekNdc(); - } - - /** - * Pushes a value to the nested diagnostics context stack. - * - * @param message the message to push - */ - public static void push(String message) { - LoggerProviders.PROVIDER.pushNdc(message); - } - - /** - * Sets maximum depth of the stack removing any entries below the maximum depth. - * - * @param maxDepth the maximum depth to set - */ - public static void setMaxDepth(int maxDepth) { - LoggerProviders.PROVIDER.setNdcMaxDepth(maxDepth); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Param.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Param.java deleted file mode 100644 index 672ef5119..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Param.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Identifies a parameter is to be used for constructing an exception and excluded from the formatting of the message. - *

    - * Parameters will be order-matched first, then type-matched to resolve ambiguity. If a match fails an error should - * occur. - *

    - * The {@link #value()} option will allow an optional class to be specified which will have to match the exact type of - * the parameter in question, to enable unambiguous resolution. The value must be the fully qualified class name. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.Param provided in module org.jboss.logging:jboss-logging-annotations - * - * @author James R. Perkins - */ -@Target(PARAMETER) -@Retention(CLASS) -@Documented -@Deprecated -public @interface Param { - - /** - * Defines an exact class the parameter must match for unambiguous resolution. - * - * @return the class the parameter must match. - */ - Class value() default Object.class; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/ParameterConverter.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/ParameterConverter.java deleted file mode 100644 index 312f501c9..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/ParameterConverter.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.Locale; - -/** - * A converter for a specific parameter type. - * - * @author David M. Lloyd - * @param the input type - */ -public interface ParameterConverter { - - /** - * Convert the parameter to its string or string-equivalent representation. The returned value will be passed in - * as a parameter to either a {@link java.text.MessageFormat} or {@link java.util.Formatter} instance, depending - * on the setting of {@link Message#format()}. - * - * @param locale the locale - * @param parameter the parameter - * @return the converted value - */ - Object convert(Locale locale, I parameter); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Property.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Property.java deleted file mode 100644 index 97bc8bf25..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Property.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2011 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -/** - * Indicate that a method parameter value should be applied to a property (with a setter method) on the resultant exception object. - * - * @deprecated Use com.fr.third.org.jboss.logging.annotations.Property provided in module org.jboss.logging:jboss-logging-annotations - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -@Deprecated -public @interface Property { - - /** - * The property name. If not specified, the parameter name is assumed to be the property name. - * - * @return the property name - */ - String name() default ""; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/SerializedLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/SerializedLogger.java deleted file mode 100644 index b861a377e..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/SerializedLogger.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.io.Serializable; - -final class SerializedLogger implements Serializable { - - private static final long serialVersionUID = 508779982439435831L; - - private final String name; - - SerializedLogger(final String name) { - this.name = name; - } - - protected Object readResolve() { - return Logger.getLogger(name); - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLocationAwareLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLocationAwareLogger.java deleted file mode 100644 index 023475745..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLocationAwareLogger.java +++ /dev/null @@ -1,119 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; -import java.lang.reflect.UndeclaredThrowableException; -import java.text.MessageFormat; -import com.fr.third.slf4j.spi.LocationAwareLogger; - -final class Slf4jLocationAwareLogger extends Logger { - - private static final long serialVersionUID = 8685757928087758380L; - - private static final Object[] EMPTY = new Object[0]; - private static final boolean POST_1_6; - private static final Method LOG_METHOD; - - static { - Method[] methods = LocationAwareLogger.class.getDeclaredMethods(); - Method logMethod = null; - boolean post16 = false; - for (Method method : methods) { - if (method.getName().equals("log")) { - logMethod = method; - Class[] parameterTypes = method.getParameterTypes(); - post16 = parameterTypes.length == 6; - } - } - if (logMethod == null) { - throw new NoSuchMethodError("Cannot find LocationAwareLogger.log() method"); - } - POST_1_6 = post16; - LOG_METHOD = logMethod; - } - - private final LocationAwareLogger logger; - - Slf4jLocationAwareLogger(final String name, final LocationAwareLogger logger) { - super(name); - this.logger = logger; - } - - public boolean isEnabled(final Level level) { - if (level != null) switch (level) { - case FATAL: return logger.isErrorEnabled(); - case ERROR: return logger.isErrorEnabled(); - case WARN: return logger.isWarnEnabled(); - case INFO: return logger.isInfoEnabled(); - case DEBUG: return logger.isDebugEnabled(); - case TRACE: return logger.isTraceEnabled(); - } - return true; - } - - protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) { - if (isEnabled(level)) { - final String text = parameters == null || parameters.length == 0 ? String.valueOf(message) : MessageFormat.format(String.valueOf(message), parameters); - doLog(logger, loggerClassName, translate(level), text, thrown); - } - } - - protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) { - if (isEnabled(level)) { - final String text = parameters == null ? String.format(format) : String.format(format, parameters); - doLog(logger, loggerClassName, translate(level), text, thrown); - } - } - - private static void doLog(LocationAwareLogger logger, String className, int level, String text, Throwable thrown) { - try { - if (POST_1_6) { - LOG_METHOD.invoke(logger, null, className, Integer.valueOf(level), text, EMPTY, thrown); - } else { - LOG_METHOD.invoke(logger, null, className, Integer.valueOf(level), text, thrown); - } - } catch (InvocationTargetException e) { - try { - throw e.getCause(); - } catch (RuntimeException ex) { - throw ex; - } catch (Error er) { - throw er; - } catch (Throwable throwable) { - throw new UndeclaredThrowableException(throwable); - } - } catch (IllegalAccessException e) { - throw new IllegalAccessError(e.getMessage()); - } - } - - private static int translate(Level level) { - if (level != null) switch (level) { - case FATAL: - case ERROR: return LocationAwareLogger.ERROR_INT; - case WARN: return LocationAwareLogger.WARN_INT; - case INFO: return LocationAwareLogger.INFO_INT; - case DEBUG: return LocationAwareLogger.DEBUG_INT; - case TRACE: return LocationAwareLogger.TRACE_INT; - } - return LocationAwareLogger.TRACE_INT; - } -} \ No newline at end of file diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLogger.java deleted file mode 100644 index c1d4a0bc0..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLogger.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.text.MessageFormat; - -final class Slf4jLogger extends Logger { - - private static final long serialVersionUID = 8685757928087758380L; - - private final com.fr.third.slf4j.Logger logger; - - Slf4jLogger(final String name, final com.fr.third.slf4j.Logger logger) { - super(name); - this.logger = logger; - } - - public boolean isEnabled(final Level level) { - if (level != null) switch (level) { - case FATAL: return logger.isErrorEnabled(); - case ERROR: return logger.isErrorEnabled(); - case WARN: return logger.isWarnEnabled(); - case INFO: return logger.isInfoEnabled(); - case DEBUG: return logger.isDebugEnabled(); - case TRACE: return logger.isTraceEnabled(); - } - return true; - } - - protected void doLog(final Level level, final String loggerClassName, final Object message, final Object[] parameters, final Throwable thrown) { - if (isEnabled(level)) try { - final String text = parameters == null || parameters.length == 0 ? String.valueOf(message) : MessageFormat.format(String.valueOf(message), parameters); - switch (level) { - case FATAL: - case ERROR: - logger.error(text, thrown); - return; - case WARN: - logger.warn(text, thrown); - return; - case INFO: - logger.info(text, thrown); - return; - case DEBUG: - logger.debug(text, thrown); - return; - case TRACE: - logger.trace(text, thrown); - return; - } - } catch (Throwable ignored) {} - } - - protected void doLogf(final Level level, final String loggerClassName, final String format, final Object[] parameters, final Throwable thrown) { - if (isEnabled(level)) try { - final String text = parameters == null ? String.format(format) : String.format(format, parameters); - switch (level) { - case FATAL: - case ERROR: - logger.error(text, thrown); - return; - case WARN: - logger.warn(text, thrown); - return; - case INFO: - logger.info(text, thrown); - return; - case DEBUG: - logger.debug(text, thrown); - return; - case TRACE: - logger.trace(text, thrown); - return; - } - } catch (Throwable ignored) {} - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLoggerProvider.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLoggerProvider.java deleted file mode 100644 index 41cffa7f0..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/Slf4jLoggerProvider.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2010 Red Hat, Inc. - * - * 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 com.fr.third.org.jboss.logging; - -import java.util.Collections; -import java.util.HashMap; -import java.util.Map; - -import com.fr.third.slf4j.LoggerFactory; -import com.fr.third.slf4j.MDC; -import com.fr.third.slf4j.spi.LocationAwareLogger; - -final class Slf4jLoggerProvider extends AbstractLoggerProvider implements LoggerProvider { - - public Logger getLogger(final String name) { - com.fr.third.slf4j.Logger l = LoggerFactory.getLogger(name); - try { - return new Slf4jLocationAwareLogger(name, (LocationAwareLogger) l); - } catch (Throwable ignored) { - } - return new Slf4jLogger(name, l); - } - - public void clearMdc() { - MDC.clear(); - } - - public Object putMdc(final String key, final Object value) { - try { - return MDC.get(key); - } finally { - if (value == null) { - MDC.remove(key); - } else { - MDC.put(key, String.valueOf(value)); - } - } - } - - public Object getMdc(final String key) { - return MDC.get(key); - } - - public void removeMdc(final String key) { - MDC.remove(key); - } - - public Map getMdcMap() { - @SuppressWarnings({"unchecked"}) - final Map map = /*MDC.getCopyOfContextMap();*/new HashMap<>(); - return map == null ? Collections.emptyMap() : map; - } -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Cause.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Cause.java deleted file mode 100644 index 94801eaa4..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Cause.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Mark a parameter as being the "exception cause" parameter rather than a positional format parameter. - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -public @interface Cause { -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ConstructType.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ConstructType.java deleted file mode 100644 index 7ff50c1ee..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ConstructType.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Indicates the value of this annotation should be constructed and returned. This does not change the return type of - * the method. - *

    - * This annotation is only allowed on bundle messages that have a throwable return type. The value must be assignable - * to the return type. - *

    - * - * @author James R. Perkins - * @since 2.0.0 - */ -@Retention(CLASS) -@Target(METHOD) -@Documented -public @interface ConstructType { - - /** - * The actual type that should be constructed for the return type. - * - * @return the class to construct - */ - Class value(); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Field.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Field.java deleted file mode 100644 index b836e6cf7..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Field.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Indicate that a method parameter value should be applied to a field on the resultant exception object. - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -public @interface Field { - - /** - * The field name. If not specified, the parameter name is assumed to be the field name. - * - * @return the field name - */ - String name() default ""; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/FormatWith.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/FormatWith.java deleted file mode 100644 index 5381761f6..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/FormatWith.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Indicate that the given parameter should be wrapped with a formatting object of the given class. The class - * must have a one-argument constructor which unambiguously accepts a value of this parameter's type. The resultant - * object will be passed in as a parameter to the underlying format type; thus its {@link Object#toString() toString()} - * method will be invoked (or, if the format style is {@link Message.Format#PRINTF PRINTF}, the object may implement - * {@link java.util.Formattable Formattable} to get extra functionality). - * - * @author David M. Lloyd - */ -@Target(PARAMETER) -@Retention(CLASS) -@Documented -public @interface FormatWith { - - /** - * The class of the formatting object to use. - * - * @return the class - */ - Class value(); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LogMessage.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LogMessage.java deleted file mode 100644 index e49f5057a..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LogMessage.java +++ /dev/null @@ -1,55 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -import com.fr.third.org.jboss.logging.Logger; - -/** - * A typed logger method. Indicates that this method will log the associated {@link Message} to the logger system, as - * opposed to being a simple message lookup. - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(METHOD) -@Documented -public @interface LogMessage { - - /** - * The log level at which this message should be logged. Defaults to {@code INFO}. - * - * @return the log level - */ - Logger.Level level() default Logger.Level.INFO; - - /** - * The logging class name to use for this message, if any. - * - * @return the logging class name - */ - Class loggingClass() default Void.class; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LoggingClass.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LoggingClass.java deleted file mode 100644 index 504792e9f..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/LoggingClass.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Mark a parameter as specifying the name of the logging class to use. The parameter - * may have a type of {@link Class}. - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -public @interface LoggingClass { -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Message.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Message.java deleted file mode 100644 index a2155c9af..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Message.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Assigns a message string to a resource method. The method arguments are used to supply the positional parameter - * values for the method. - * - * @author David M. Lloyd - */ -@Target(METHOD) -@Retention(CLASS) -@Documented -public @interface Message { - - /** - * Indicates that this message has no ID. - */ - int NONE = 0; - /** - * Indicates that this message should inherit the ID from another message with the same name. - */ - int INHERIT = -1; - - /** - * The message ID number. Only one message with a given name may specify an ID other than {@link #INHERIT}. - * - * @return the message ID number - */ - int id() default INHERIT; - - /** - * The default format string of this message. - * - * @return the format string - */ - String value(); - - /** - * The format type of this method (defaults to {@link Format#PRINTF}). - * - * @return the format type - */ - Format format() default Format.PRINTF; - - /** - * The possible format types. - */ - enum Format { - - /** - * A {@link java.util.Formatter}-type format string. - */ - PRINTF, - /** - * A {@link java.text.MessageFormat}-type format string. - */ - MESSAGE_FORMAT, - - /** - * Indicates the message should not be formatted. - */ - NO_FORMAT, - } - -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageBundle.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageBundle.java deleted file mode 100644 index 0575b4a59..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageBundle.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Signify that an interface is a message bundle interface. - * - * @author David M. Lloyd - */ -@Target(TYPE) -@Retention(CLASS) -@Documented -public @interface MessageBundle { - - /** - * Get the project code for messages that have an associated code. If no project code is associated - * with this bundle, specify {@code ""} (the empty string). - * - * @return the project code - */ - String projectCode(); - - /** - * The length of the padding used for each id in the message bundle. For example given the default padding length - * of 6 and a message with an id of 100 would result would be {@code "000100"}. - *

    - * Valid values a range of 3 to 8. Any value less than 0 turns off padding. Any other value will result in an error - * being produced. - * - * @return the length the id should be padded - */ - int length() default 6; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageLogger.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageLogger.java deleted file mode 100644 index edc31d296..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/MessageLogger.java +++ /dev/null @@ -1,59 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Signify that an interface is a typed logger interface. A message logger interface may optionally extend other - * message logger interfaces and message bundle interfaces (see {@link com.fr.third.org.jboss.logging.annotations.MessageBundle}, as - * well as the {@link org.jboss.logging.BasicLogger} interface. - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(TYPE) -@Documented -public @interface MessageLogger { - - /** - * Get the project code for messages that have an associated code. If no project code is associated - * with this logger, specify {@code ""} (the empty string). - * - * @return the project code - */ - String projectCode(); - - /** - * The length of the padding used for each id in the message bundle. For example given the default padding length - * of 6 and a message with an id of 100 would result would be {@code "000100"}. - *

    - * Valid values a range of 3 to 8. Any value less than 0 turns off padding. Any other value will result in an error - * being produced. - * - * @return the length the id should be padded - */ - int length() default 6; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Once.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Once.java deleted file mode 100644 index 8afbf4266..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Once.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.METHOD; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Indicates a message should only be logged once. - *

    - * Methods that use this annotation must be {@linkplain com.fr.third.org.jboss.logging.annotations.LogMessage logger methods}. Overloaded - * methods also annotated with {@code @Once} will inherit the same check only logging the message from the first - * overloaded method invoked. - *

    - * - * @author James R. Perkins - */ -@Target(METHOD) -@Retention(CLASS) -@Documented -public @interface Once { -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Param.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Param.java deleted file mode 100644 index 1e4ff861f..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Param.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Identifies a parameter is to be used for constructing an exception and excluded from the formatting of the message. - *

    - * Parameters will be order-matched first, then type-matched to resolve ambiguity. If a match fails an error should - * occur. - *

    - * The {@link #value()} option will allow an optional class to be specified which will have to match the exact type of - * the parameter in question, to enable unambiguous resolution. The value must be the fully qualified class name. - * - * @author James R. Perkins - */ -@Target(PARAMETER) -@Retention(CLASS) -@Documented -public @interface Param { - - /** - * Defines an exact class the parameter must match for unambiguous resolution. - * - * @return the class the parameter must match. - */ - Class value() default Object.class; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Pos.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Pos.java deleted file mode 100644 index 59edfec96..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Pos.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * @author James R. Perkins - * @since 1.1.0 - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -public @interface Pos { - - /** - * The positions the value should be used at. - * - * @return an array of the positions for the parameter - */ - int[] value(); - - /** - * The transform types used on the parameter. - * - * @return an array of the transformer types - * - * @see Transform - */ - Transform[] transform() default {}; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Property.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Property.java deleted file mode 100644 index 881d78792..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Property.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Indicate that a method parameter value should be applied to a property (with a setter method) on the resultant exception object. - * - * @author David M. Lloyd - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -public @interface Property { - - /** - * The property name. If not specified, the parameter name is assumed to be the property name. - * - * @return the property name - */ - String name() default ""; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Transform.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Transform.java deleted file mode 100644 index a37c8b62e..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/Transform.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.PARAMETER; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Indicate the given parameter should be transformed in each of the {@link com.fr.third.org.jboss.logging.annotations.Transform.TransformType transform types} - * provided. The parameter cannot be a primitive type. - *

    - * For the {@link TransformType#SIZE} type, the object must be a {@link String}, a {@link java.util.Collection}, a - * {@link java.util.Map} or an array. - *

    - * The type {@link TransformType#GET_CLASS} can be used with {@link TransformType#HASH_CODE} or {@link - * TransformType#IDENTITY_HASH_CODE}. The type {@link TransformType#SIZE} must be used on it's own. - * - * @author James R. Perkins - * @since 1.1.0 - */ -@Retention(CLASS) -@Target(PARAMETER) -@Documented -public @interface Transform { - - /** - * The transform type - */ - public enum TransformType { - /** - * Gets the class of the object object passed, {@link Object#getClass()}. - */ - GET_CLASS, - /** - * Gets the hash code of the object, {@link Object#hashCode()}. - */ - HASH_CODE, - /** - * Gets the identity hash code of the object, {@link System#identityHashCode(Object)}. - */ - IDENTITY_HASH_CODE, - /** - * Gets the size or length of a {@link String}, {@link java.util.Collection}, {@link java.util.Map} or array. - */ - SIZE, - } - - /** - * The transform types used on the parameter. - *

    - * Valid combinations: - *

      - *
    • {@link TransformType#GET_CLASS}
    • - *
    • {@link TransformType#GET_CLASS}, {@link TransformType#HASH_CODE}
    • - *
    • {@link TransformType#GET_CLASS}, {@link TransformType#IDENTITY_HASH_CODE}
    • - *
    • {@link TransformType#HASH_CODE}
    • - *
    • {@link TransformType#IDENTITY_HASH_CODE}
    • - *
    • {@link TransformType#SIZE}
    • - *
    - * - * @return an array of the transform types - */ - TransformType[] value(); -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRange.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRange.java deleted file mode 100644 index 42ff2b5b0..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRange.java +++ /dev/null @@ -1,71 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * Sets a range of valid id's allowed on the {@link com.fr.third.org.jboss.logging.annotations.Message#id() message id}. Both {@link - * Message#INHERIT} and {@link Message#NONE} are ignored when validating. - *

    - * Note: Message id's from inherited interfaces are not validated within the range provided. Super interfaces - * would need their own annotation for range validation. - *

    - * - *

    - *          @MessageLogger(projectCode = "EXAMPLE")
    - *          @ValidIdRange(min = 100, max = 200)
    - *          public interface ExampleLogger {
    - *
    - *              @LogMessage
    - *              @Message(id = 100, value = "Example message")
    - *              void example();
    - *          }
    - * 
    - * - * - * @author James R. Perkins - */ -@Target(TYPE) -@Retention(CLASS) -@Documented -public @interface ValidIdRange { - - /** - * The minimum id allowed in the {@link com.fr.third.org.jboss.logging.annotations.Message#id() message id}. Both {@link - * Message#INHERIT} and {@link Message#NONE} are ignored when validating. - * - * @return the minimum id allowed - */ - int min() default 1; - - /** - * The maximum id allowed in the {@link com.fr.third.org.jboss.logging.annotations.Message#id() message id}. Both {@link - * Message#INHERIT} and {@link Message#NONE} are ignored when validating. - * - * @return the maximum id allowed - */ - int max() default 999999; -} diff --git a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRanges.java b/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRanges.java deleted file mode 100644 index 81d4cf9f5..000000000 --- a/fine-jboss-logging/src/main/java/com/fr/third/org/jboss/logging/annotations/ValidIdRanges.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * JBoss, Home of Professional Open Source. - * - * Copyright 2015 Red Hat, Inc., and individual contributors - * as indicated by the @author tags. - * - * 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 com.fr.third.org.jboss.logging.annotations; - -import static java.lang.annotation.ElementType.TYPE; -import static java.lang.annotation.RetentionPolicy.CLASS; - -import java.lang.annotation.Documented; -import java.lang.annotation.Retention; -import java.lang.annotation.Target; - -/** - * @author James R. Perkins - */ -@Target(TYPE) -@Retention(CLASS) -@Documented -public @interface ValidIdRanges { - - /** - * An array of valid id ranges. - * - * @return an array of valid id ranges - */ - ValidIdRange[] value(); -} From 65edeb4daa2a8f7f611b5dd1ff16ad8e0a1c20f9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yuan=2EWang-=E7=8E=8B=E5=9E=A3?= Date: Wed, 12 Apr 2023 20:01:30 +0800 Subject: [PATCH 4/4] =?UTF-8?q?REPORT-91724=20=E5=AF=B9=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=BE=93=E5=85=A5=E7=9A=84=E5=8F=82=E6=95=B0=E8=BF=9B=E8=A1=8C?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- build.third_step3-jdk11.gradle | 1 - build.third_step3.gradle | 3 --- 2 files changed, 4 deletions(-) diff --git a/build.third_step3-jdk11.gradle b/build.third_step3-jdk11.gradle index c7e3c42c4..b2e032bb7 100644 --- a/build.third_step3-jdk11.gradle +++ b/build.third_step3-jdk11.gradle @@ -75,7 +75,6 @@ String essentialVersion = findProperty("essentialVersion") //指定依赖 dependencies{ compileOnly "com.fr.essential:fine-essential:${essentialVersion}" - //compile fileTree(dir:"${srcDir}/fine-jboss-logging/lib",include:'**/*.jar') compile fileTree(dir:"${srcDir}/build/libs/",include:'**/*.jar') compile fileTree(dir:System.getenv("JAVA_HOME"),include:"lib/tools.jar") compile group: "com.fr.third.server", name: "servlet-api", version: "3.0" diff --git a/build.third_step3.gradle b/build.third_step3.gradle index de9cccc68..29309dd53 100644 --- a/build.third_step3.gradle +++ b/build.third_step3.gradle @@ -58,7 +58,6 @@ String essentialVersion = findProperty("essentialVersion") //指定依赖 dependencies{ compileOnly "com.fr.essential:fine-essential:${essentialVersion}" - //compile fileTree(dir:"${srcDir}/fine-jboss-logging/lib",include:'**/*.jar') compile fileTree(dir:"${srcDir}/build/libs/",include:'**/*.jar') compile fileTree(dir:System.getenv("JAVA_HOME"),include:"lib/tools.jar") compile group: "javax.servlet", name: "javax.servlet-api", version: "3.0.1" @@ -84,8 +83,6 @@ task copyFiles(type:Copy,dependsOn:'compileJava'){ with dataContent.call("${srcDir}/fine-itext/src/main/resources") with dataContent.call("${srcDir}/fine-jedis/src/main/java") with dataContent.call("${srcDir}/fine-jedis/src/main/resources") - //with dataContent.call("${srcDir}/fine-jboss-logging/src/main/java") - //with dataContent.call("${srcDir}/fine-jboss-logging/src/main/resources") into "${classesDir}" } }

    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