@@ -0,0 +1,1619 @@
+package com.github.tomschi.commons.annotation.logging;%0A%0Aimport org.slf4j.event.Level;%0A%0Aimport java.lang.annotation.ElementType;%0Aimport java.lang.annotation.Retention;%0Aimport java.lang.annotation.RetentionPolicy;%0Aimport java.lang.annotation.Target;%0Aimport java.util.concurrent.TimeUnit;%0A%0A/**%0A * Enables logging execution time of a method. It is possible%0A * to annotate classes and methods. When a class is annotated%0A * every public method of the class will be logged over slf4j.%0A *%0A * %3Cbr/%3E%0A *%0A * To enable this feature the MethodLogger aspect of the commons-aspect%0A * library is needed.%0A *%0A * @author Tomschi%0A * @since 0.1.1%0A */%0A@Retention(RetentionPolicy.RUNTIME)%0A@Target(%7BElementType.TYPE, ElementType.METHOD%7D)%0Apublic @interface LogExecution %7B%0A%0A    /**%0A     * The Log %7B@link Level%7D, which should be used for logging.%0A     * Default is %7B@link Level#DEBUG%7D.%0A     *%0A     * @return The Log %7B@link Level%7D. Default is %7B@link Level#DEBUG%7D%0A     */%0A    Level value() default Level.DEBUG;%0A%0A    /**%0A     * The time limit, when the execution should be logged.%0A     * When the execution time is greater than the limit,%0A     * the execution time is logged.%0A     *%0A     * %3Cbr/%3E%0A     *%0A     * The default value is 0, so the execution time is%0A     * always greater than the limit.%0A     *%0A     * @return The limit, default is 0.%0A     */%0A    long limit() default 0;%0A%0A    /**%0A     * The %7B@link TimeUnit%7D of the %7B@link LogExecution#limit()%7D.%0A     * Default is %7B@link TimeUnit#MILLISECONDS%7D.%0A     *%0A     * @return The %7B@link TimeUnit%7D for the %7B@link LogExecution#limit()%7D.%0A     */%0A    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;%0A%0A%7D%0A

Implement LogExecution.java annotation.