Github user Tibor17 commented on a diff in the pull request: https://github.com/apache/maven-surefire/pull/117#discussion_r77448108 --- Diff: maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/log/PluginConsoleLogger.java --- @@ -0,0 +1,126 @@ +package org.apache.maven.plugin.surefire.log; + +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you 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. + */ + +import org.apache.maven.plugin.logging.Log; +import org.apache.maven.surefire.report.ConsoleLogger; + +/** + * Wrapper logger of miscellaneous (Maven 2.2.1 or 3.1) implementations of {@link Log}. + * Calling {@link Log#isInfoEnabled()} before {@link Log#info(CharSequence)} due to Maven 2.2.1. + * + * @author <a href="mailto:tibordig...@apache.org">Tibor Digana (tibor17)</a> + * @since 2.19.2 + * @see ConsoleLogger + */ +public final class PluginConsoleLogger + implements ConsoleLogger +{ + private final Log mojoLogger; + + public PluginConsoleLogger( Log mojoLogger ) + { + this.mojoLogger = mojoLogger; + } + + public boolean isDebugEnabled() + { + return mojoLogger.isDebugEnabled(); + } + + public void debug( String message ) + { + if ( mojoLogger.isDebugEnabled() ) + { + mojoLogger.debug( message ); --- End diff -- The purpose is to separate Mojo Logger. I cannot use Mojo in forked JVM. Many times the code uses the same classes and interfaces in in-plugin tests or forked-jvm tests but the same classes are extended and behave different in in these two places however the super type is used eveywhere like polymorphism. The same happened with ConsoleLogger and it has advantage because all can be developed independently and the logger would be same (unlike sometimes we used System.out and Mojo logger or console logger), so now it's only one. The important things is that `ConsoleLogger` does not need e.g. `isDebugEnabled` method but `AbstractSurefireMojo` used this for long time, so I decided to use concrete implementation class of `ConsoleLogger` in MOJO but that's the second reason to have this class here :) Unfortunately we use Java 5; otherwise you would see those annotations in methods implemented from interface via `@Override`.
--- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. --- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org For additional commands, e-mail: dev-h...@maven.apache.org