[java-identity-provider] 01/01: IDP-1813 Investigate changing output mechanisms for installers

Rod Widdowson rdw at steadingsoftware.com
Mon May 3 11:08:38 UTC 2021


This is an automated email from the git hooks/post-receive script.

rdw pushed a commit to branch dev/IDP-1813
in repository java-identity-provider.

View the commit online:
http://git.shibboleth.net/view/?p=java-identity-provider.git;a=commit;h=7579ddb69caf41ae5987e4faf7196015357a8326

commit 7579ddb69caf41ae5987e4faf7196015357a8326
Author: Rod Widdowson <rdw at steadingsoftware.com>
AuthorDate: Mon May 3 12:07:38 2021 +0100

    IDP-1813 Investigate changing output mechanisms for installers
    
    https://issues.shibboleth.net/jira/browse/IDP-1813
---
 .../net/shibboleth/idp/installer/BuildWar.java     |   4 +-
 .../shibboleth/idp/installer/CopyDistribution.java |   4 +-
 .../idp/installer/InstallerPropertiesImpl.java     |   4 +-
 .../shibboleth/idp/installer/InstallerSupport.java |   5 +-
 .../net/shibboleth/idp/installer/V4Install.java    |   4 +-
 .../installer/impl/CurrentInstallStateImpl.java    |   2 +-
 .../idp/installer/impl/InstallationLogger.java     | 515 +++++++++++++++++++++
 .../shibboleth/idp/installer/impl/Installer.java   |   3 +-
 .../idp/installer/plugin/impl/PluginInstaller.java |   4 +-
 .../plugin/impl/PluginInstallerArguments.java      |   4 +-
 .../installer/plugin/impl/PluginInstallerCLI.java  |   4 +-
 .../plugin/impl/PluginInstallerSupport.java        |   4 +-
 .../idp/installer/plugin/impl/PluginState.java     |   4 +-
 .../plugin/impl/RollbackPluginInstall.java         |   4 +-
 .../idp/installer/plugin/impl/TrustStore.java      |   4 +-
 15 files changed, 542 insertions(+), 27 deletions(-)

diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java
index 398881dfc..2ea712dec 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/BuildWar.java
@@ -27,9 +27,9 @@ import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.taskdefs.Copy;
 import org.apache.tools.ant.taskdefs.Jar;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import net.shibboleth.idp.Version;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
@@ -51,7 +51,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
 public final class BuildWar extends AbstractInitializableComponent {
 
     /** Log. */
-    private final Logger log = LoggerFactory.getLogger(BuildWar.class);
+    private final Logger log = InstallationLogger.getLogger(BuildWar.class);
 
     /** Location of the install for the job. */
     private final Path targetDir;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java
index 6074ac35f..1293b81d5 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/CopyDistribution.java
@@ -25,8 +25,8 @@ import javax.annotation.Nonnull;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.taskdefs.Copy;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentSupport;
 import net.shibboleth.utilities.java.support.logic.Constraint;
@@ -39,7 +39,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
 public final class CopyDistribution extends AbstractInitializableComponent {
 
     /** Log. */
-    private final Logger log = LoggerFactory.getLogger(CopyDistribution.class);
+    private final Logger log = InstallationLogger.getLogger(CopyDistribution.class);
 
     /** Properties for the job. */
     @Nonnull private final InstallerProperties installerProps;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java
index a05e82976..9844c92ab 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerPropertiesImpl.java
@@ -42,9 +42,9 @@ import org.apache.tools.ant.input.InputHandler;
 import org.apache.tools.ant.input.InputRequest;
 import org.apache.tools.ant.launch.Launcher;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import net.shibboleth.idp.installer.ant.impl.PasswordHandler;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -129,7 +129,7 @@ public class InstallerPropertiesImpl extends AbstractInitializableComponent impl
     public static final int DEFAULT_KEY_SIZE = 3072;
 
     /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(InstallerProperties.class);
+    @Nonnull private final Logger log = InstallationLogger.getLogger(InstallerProperties.class);
 
     /** The base directory. */
     @NonnullAfterInit private Path baseDir;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerSupport.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerSupport.java
index 7eb8dee97..136442b1d 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerSupport.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/InstallerSupport.java
@@ -34,7 +34,8 @@ import org.apache.tools.ant.types.FileSet;
 import org.apache.tools.ant.types.selectors.PresentSelector;
 import org.apache.tools.ant.types.selectors.PresentSelector.FilePresence;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
+
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 
 /** General common names and helper functions for the Installer. 
  * This is not intended for general use.
@@ -51,7 +52,7 @@ public final class InstallerSupport {
     private static final Project ANT_PROJECT = new Project();
 
     /** Log. */
-    private static Logger log = LoggerFactory.getLogger(InstallerSupport.class);
+    private static Logger log = InstallationLogger.getLogger(InstallerSupport.class);
 
     /** Private Constructor. */
     private InstallerSupport() {}
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java
index 941f28fd4..072b4109a 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/V4Install.java
@@ -39,7 +39,6 @@ import javax.annotation.Nonnull;
 import org.apache.tools.ant.BuildException;
 import org.apache.tools.ant.taskdefs.Copy;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationContextInitializer;
 import org.springframework.context.ConfigurableApplicationContext;
 import org.springframework.context.support.GenericApplicationContext;
@@ -48,6 +47,7 @@ import org.springframework.core.io.Resource;
 
 import net.shibboleth.ext.spring.util.ApplicationContextBuilder;
 import net.shibboleth.idp.Version;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleContext;
 import net.shibboleth.idp.module.ModuleException;
@@ -64,7 +64,7 @@ import net.shibboleth.utilities.java.support.security.SelfSignedCertificateGener
 public class V4Install extends AbstractInitializableComponent {
 
     /** Log. */
-    private final Logger log = LoggerFactory.getLogger(V4Install.class);
+    private final Logger log = InstallationLogger.getLogger(V4Install.class);
 
     /** Installer Properties. */
     @Nonnull private final InstallerProperties installerProps;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CurrentInstallStateImpl.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CurrentInstallStateImpl.java
index d7111c4ca..114481e4f 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CurrentInstallStateImpl.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/CurrentInstallStateImpl.java
@@ -54,7 +54,7 @@ import net.shibboleth.utilities.java.support.component.ComponentInitializationEx
 public final class CurrentInstallStateImpl extends AbstractInitializableComponent implements CurrentInstallState {
 
     /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(CurrentInstallStateImpl.class);
+    @Nonnull private final Logger log = InstallationLogger.getLogger(CurrentInstallStateImpl.class);
 
     /** Where we are installing to. */
     private final Path targetDir;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallationLogger.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallationLogger.java
new file mode 100644
index 000000000..254c09044
--- /dev/null
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/InstallationLogger.java
@@ -0,0 +1,515 @@
+/*
+ * Licensed to the University Corporation for Advanced Internet Development,
+ * Inc. (UCAID) under one or more contributor license agreements.  See the
+ * NOTICE file distributed with this work for additional information regarding
+ * copyright ownership. The UCAID 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.
+ */
+
+package net.shibboleth.idp.installer.impl;
+
+import java.util.regex.Pattern;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.slf4j.Marker;
+
+/** Shimmed logger.
+ * If debug is enabled there is no difference, otherwise warn and above
+ * goes to stdout. 
+ */
+public final class InstallationLogger implements Logger {
+
+    /** The 'real' logger. */
+    private final Logger encapsulated;
+    
+    /** Pattern to change {{} to %s.*/
+    private final Pattern pat = Pattern.compile("\\{\\}");
+    
+    /**
+     * Constructor.
+     * @param parent - logger to encapsulate.
+     */
+    private InstallationLogger(final Logger parent) {
+        encapsulated = parent;
+    }
+    
+    /** Convert format and output.
+     * @param format the format 
+     * @param arg the argument
+     */
+    private void format(final String format, final Object arg) {
+        System.out.format(pat.matcher(format).replaceAll("%s"), arg);
+        System.out.println();
+    }
+    
+    /** Convert format and output.
+     * @param format the format
+     * @param arg1 the first argument
+     * @param arg2 the second argument
+     */
+    private void format(final String format, final Object arg1, final Object arg2) {
+        System.out.format(pat.matcher(format).replaceAll("%s"), arg1, arg2);
+        System.out.println();
+    }
+    
+    /** Convert format and output.
+     * @param format the format 
+     * @param arguments the arguments
+     */
+    private void format(final String format, final Object... arguments) {
+        System.out.format(pat.matcher(format).replaceAll("%s"), arguments);
+        System.out.println();
+    }
+    
+    /** {@inheritDoc} */
+    public String getName() {
+        return encapsulated.getName();
+    }
+
+    /** {@inheritDoc} */
+    public boolean isTraceEnabled() {
+        return encapsulated.isTraceEnabled();
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final String msg) {
+        encapsulated.trace(msg);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final String format, final Object arg) {
+        encapsulated.trace(format, arg);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final String format, final Object arg1, final Object arg2) {
+        encapsulated.trace(format, arg1, arg2);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final String format, final Object... arguments) {
+        encapsulated.trace(format, arguments);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final String msg, final Throwable t) {
+        encapsulated.trace(msg,t);
+    }
+
+    /** {@inheritDoc} */
+    public boolean isTraceEnabled(final Marker marker) {
+        return encapsulated.isTraceEnabled(marker);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final Marker marker, final String msg) {
+        encapsulated.trace(marker,msg);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final Marker marker, final String format, final Object arg) {
+        encapsulated.trace(marker,format,arg);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final Marker marker, final String format, final Object arg1, final Object arg2) {
+        encapsulated.trace(marker,format,arg1,arg2);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final Marker marker, final String format, final Object... argArray) {
+        encapsulated.trace(marker,format, argArray);
+    }
+
+    /** {@inheritDoc} */
+    public void trace(final Marker marker, final String msg, final Throwable t) {
+        encapsulated.trace(marker,msg,t);
+    }
+
+    /** {@inheritDoc} */
+    public boolean isDebugEnabled() {
+        return encapsulated.isDebugEnabled();
+        
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final String msg) {
+        encapsulated.debug(msg);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final String format, final Object arg) {
+        encapsulated.debug(format,arg);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final String format, final Object arg1, final Object arg2) {
+        encapsulated.debug(format,arg1,arg2);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final String format, final Object... arguments) {
+        encapsulated.debug(format, arguments);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final String msg, final Throwable t) {
+        encapsulated.debug(msg,t);
+    }
+
+    /** {@inheritDoc} */
+    public boolean isDebugEnabled(final  Marker marker) {
+        return encapsulated.isDebugEnabled(marker);
+        
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final Marker marker, final String msg) {
+        encapsulated.debug(marker,msg);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final Marker marker, final String format, final Object arg) {
+        encapsulated.debug(marker,format,arg);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final Marker marker, final String format, final Object arg1, final Object arg2) {
+        encapsulated.debug(marker,format,arg1,arg2);
+    }
+
+    /** {@inheritDoc} */
+    public void debug(final Marker marker, final String format, final Object... arguments) {
+        encapsulated.debug(marker, format, arguments);
+    }
+    /** {@inheritDoc} */
+    
+    public void debug(final Marker marker, final String msg, final Throwable t) {
+        encapsulated.debug(marker,msg,t);
+    }
+
+    /** {@inheritDoc} */
+    public boolean isInfoEnabled() {
+        return encapsulated.isInfoEnabled();
+    }
+
+    /** {@inheritDoc} */
+    public void info(final String msg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(msg);
+        } else {
+            System.out.println(msg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final String format, final Object arg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(format,arg);
+        } else {
+            format(format, arg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final String format, final Object arg1, final Object arg2) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(format, arg1, arg2);
+        } else {
+            format(format, arg1, arg2);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final String format, final Object... arguments) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(format, arguments);
+        } else {
+            format(format, arguments);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final String msg, final Throwable t) {
+        if (encapsulated.isDebugEnabled()) {
+        encapsulated.info(msg,t);
+        } else {
+            format("%s %s", msg, t);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public boolean isInfoEnabled(final Marker marker) {
+        return encapsulated.isInfoEnabled(marker);    
+    }
+
+    /** {@inheritDoc} */
+    public void info(final Marker marker, final String msg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(marker, msg);
+        } else {
+            System.out.println(msg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final Marker marker, final String format, final Object arg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(marker, format, arg);
+        } else {
+            format(format, arg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final Marker marker, final String format, final Object arg1, final Object arg2) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(marker, format, arg1, arg2);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final Marker marker, final String format, final Object... arguments) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(marker, format, arguments);
+        } else {
+            format(format, arguments);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void info(final Marker marker, final String msg, final Throwable t) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.info(marker, msg, t);
+        } else {
+            System.out.format("%s %s", msg, t);
+            System.out.println();
+        }
+    }
+
+    /** {@inheritDoc} */
+    public boolean isWarnEnabled() {
+        return encapsulated.isWarnEnabled();
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final String msg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(msg);
+        } else {
+            System.out.println(msg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final String format, final Object arg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(format, arg);
+        } else {
+            format(format, arg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final String format, final Object... arguments) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(format, arguments);
+        } else {
+            System.out.format(format, arguments);
+            System.out.println();
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final String format, final Object arg1, final Object arg2) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(format, arg1, arg2);
+        } else {
+            format(format, arg1, arg2);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final String msg, final Throwable t) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(msg, t);
+        } else {
+            System.out.format("%s %s", msg, t);
+            System.out.println();
+        }
+    }
+
+    /** {@inheritDoc} */
+    public boolean isWarnEnabled(final Marker marker) {
+        return encapsulated.isWarnEnabled(marker);
+    
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final Marker marker, final String msg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(marker, msg);
+        } else {
+            System.out.println(msg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final Marker marker, final String format, final Object arg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(marker, format, arg);
+        } else {
+            format(format, arg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final Marker marker, final String format, final Object arg1, final Object arg2) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(marker, format, arg1, arg2);
+        } else {
+            format(format, arg1, arg2);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final Marker marker, final String format, final Object... arguments) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(marker, format, arguments);
+        } else {
+            format(format, arguments);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void warn(final Marker marker, final String msg, final Throwable t) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.warn(marker, msg, t);
+        } else {
+            System.out.format("%s %s", msg, t);
+            System.out.println();
+        }
+    }
+
+    /** {@inheritDoc} */
+    public boolean isErrorEnabled() {
+        return encapsulated.isErrorEnabled();
+    
+    }
+
+    /** {@inheritDoc} */
+    public void error(final String msg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(msg);
+        } else {
+            System.out.println(msg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final String format, final Object arg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(format, arg);
+        } else {
+            format(format, arg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final String format, final Object arg1, final Object arg2) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(format, arg1, arg2);
+        } else {
+            format(format, arg1, arg2);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final String format, final Object... arguments) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(format, arguments);
+        } else {
+            format(format, arguments);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final String msg, final Throwable t) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(msg, t);
+        } else {
+            System.out.format("%s %s", msg, t);
+            System.out.println();
+        }
+    }
+
+    /** {@inheritDoc} */
+    public boolean isErrorEnabled(final Marker marker) {
+        return encapsulated.isErrorEnabled(marker);
+    
+    }
+
+    /** {@inheritDoc} */
+    public void error(final Marker marker, final String msg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(marker, msg);
+        } else {
+            System.out.println(msg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final Marker marker, final String format, final Object arg) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(marker, format, arg);
+        } else {
+            format(format, arg);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final Marker marker, final String format, final Object arg1, final Object arg2) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(marker, format, arg1, arg2);
+        } else {
+            format(format, arg1, arg2);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final Marker marker, final String format, final Object... arguments) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(marker, format, arguments);
+        } else {
+            format(format, arguments);
+        }
+    }
+
+    /** {@inheritDoc} */
+    public void error(final Marker marker, final String msg, final Throwable t) {
+        if (encapsulated.isDebugEnabled()) {
+            encapsulated.error(marker, msg, t);
+        } else {
+            format("%s %s", msg, t);
+        }
+    }
+    
+    /** Plugin replacements for {@link LoggerFactory#getLogger(Class)}.
+     * @param clazz what to log
+     * @return a logger
+     */
+    public static Logger getLogger(final Class<?> clazz) {
+        return new InstallationLogger(LoggerFactory.getLogger(clazz));
+    }
+
+}
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/Installer.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/Installer.java
index dc81c3c76..71997dcf3 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/Installer.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/impl/Installer.java
@@ -18,7 +18,6 @@
 package net.shibboleth.idp.installer.impl;
 
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import net.shibboleth.idp.installer.BuildWar;
 import net.shibboleth.idp.installer.CopyDistribution;
@@ -41,7 +40,7 @@ public final class Installer {
      * @throws ComponentInitializationException if badness occurrs
      */
     public static void main(final String[] args) throws ComponentInitializationException {
-        final Logger log = LoggerFactory.getLogger(Installer.class);
+        final Logger log = InstallationLogger.getLogger(Installer.class);
         if (args.length !=1) {
             log.error("One Parameter only {}", (Object[]) args);
             return;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
index 59b84ace0..bb7fbc9ff 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstaller.java
@@ -60,7 +60,6 @@ import org.apache.http.client.HttpClient;
 import org.apache.tools.ant.BuildException;
 import org.opensaml.security.httpclient.HttpClientSecurityParameters;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.google.common.base.Predicates;
 
@@ -69,6 +68,7 @@ import net.shibboleth.idp.Version;
 import net.shibboleth.idp.installer.BuildWar;
 import net.shibboleth.idp.installer.InstallerSupport;
 import net.shibboleth.idp.installer.ProgressReportingOutputStream;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.idp.installer.plugin.impl.TrustStore.Signature;
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleContext;
@@ -92,7 +92,7 @@ public final class PluginInstaller extends AbstractInitializableComponent implem
 
     /** Class logger. */
     @Nonnull
-    private static final Logger LOG = LoggerFactory.getLogger(PluginInstaller.class);
+    private static final Logger LOG = InstallationLogger.getLogger(PluginInstaller.class);
 
     /** Where we are installing to. */
     @NonnullAfterInit private Path idpHome;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerArguments.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerArguments.java
index 421604334..c584322b4 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerArguments.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerArguments.java
@@ -28,11 +28,11 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import com.beust.jcommander.Parameter;
 
 import net.shibboleth.idp.cli.AbstractIdPHomeAwareCommandLineArguments;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.idp.plugin.PluginVersion;
 import net.shibboleth.utilities.java.support.primitive.StringSupport;
 
@@ -134,7 +134,7 @@ public class PluginInstallerArguments extends AbstractIdPHomeAwareCommandLineArg
     /** {@inheritDoc} */
     public Logger getLog() {
         if (log == null) {
-            log = LoggerFactory.getLogger(PluginInstallerArguments.class);
+            log = InstallationLogger.getLogger(PluginInstallerArguments.class);
         }
         return log;
     }
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerCLI.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerCLI.java
index 46bdbda0b..d456b70af 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerCLI.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerCLI.java
@@ -38,7 +38,6 @@ import javax.annotation.Nullable;
 import org.apache.tools.ant.BuildException;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.beans.BeansException;
 import org.springframework.core.io.ClassPathResource;
 import org.springframework.core.io.Resource;
@@ -46,6 +45,7 @@ import org.springframework.core.io.Resource;
 import net.shibboleth.ext.spring.cli.AbstractCommandLine;
 import net.shibboleth.idp.Version;
 import net.shibboleth.idp.cli.AbstractIdPHomeAwareCommandLine;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.idp.installer.plugin.impl.PluginState.VersionInfo;
 import net.shibboleth.idp.plugin.IdPPlugin;
 import net.shibboleth.idp.plugin.PluginSupport.SupportLevel;
@@ -80,7 +80,7 @@ public final class PluginInstallerCLI extends AbstractIdPHomeAwareCommandLine<Pl
     @Override
     @Nonnull protected Logger getLogger() {
         if (log == null) {
-            log = LoggerFactory.getLogger(PluginInstallerCLI.class);
+            log = InstallationLogger.getLogger(PluginInstallerCLI.class);
         }
         return log;
     }
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerSupport.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerSupport.java
index 8ef91dab3..3a56d4c0f 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerSupport.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginInstallerSupport.java
@@ -32,9 +32,9 @@ import javax.annotation.Nullable;
 
 import org.apache.tools.ant.BuildException;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
 import net.shibboleth.idp.installer.InstallerSupport;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.utilities.java.support.annotation.constraint.Live;
 import net.shibboleth.utilities.java.support.collection.Pair;
 
@@ -45,7 +45,7 @@ public final class PluginInstallerSupport {
     
     /** Class logger. */
     @Nonnull
-    private static final Logger LOG = LoggerFactory.getLogger(PluginInstallerSupport.class);
+    private static final Logger LOG = InstallationLogger.getLogger(PluginInstallerSupport.class);
 
     /** Constructor. */
     private PluginInstallerSupport() {
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java
index dd5e8aa06..869829970 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/PluginState.java
@@ -31,11 +31,11 @@ import javax.annotation.Nullable;
 
 import org.apache.http.client.HttpClient;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 import org.springframework.core.io.FileSystemResource;
 import org.springframework.core.io.Resource;
 
 import net.shibboleth.ext.spring.resource.HTTPResource;
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.idp.plugin.IdPPlugin;
 import net.shibboleth.idp.plugin.PluginSupport;
 import net.shibboleth.idp.plugin.PluginSupport.SupportLevel;
@@ -75,7 +75,7 @@ public class PluginState extends AbstractInitializableComponent {
     @NonnullAfterInit private VersionInfo myVersionInfo;
     
     /** Class logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(PluginState.class);
+    @Nonnull private final Logger log = InstallationLogger.getLogger(PluginState.class);
 
     /** The HttpClient to use.*/
     @NonnullAfterInit private HttpClient httpClient;
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/RollbackPluginInstall.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/RollbackPluginInstall.java
index a8b2b3fdb..0bad4551b 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/RollbackPluginInstall.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/RollbackPluginInstall.java
@@ -32,8 +32,8 @@ import java.util.List;
 import javax.annotation.Nonnull;
 
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.idp.module.IdPModule;
 import net.shibboleth.idp.module.ModuleContext;
 import net.shibboleth.idp.plugin.IdPPlugin;
@@ -47,7 +47,7 @@ import net.shibboleth.utilities.java.support.logic.Constraint;
 public class RollbackPluginInstall implements AutoCloseable {
 
     /** logger.  */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(RollbackPluginInstall.class);
+    @Nonnull private final Logger log = InstallationLogger.getLogger(RollbackPluginInstall.class);
 
     /** The modules enabled when the {@link IdPPlugin} was installed. */
     @Live @Nonnull private List<IdPModule> modulesEnabled = new ArrayList<>();
diff --git a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java
index 6d4c48a3b..6aba2cba3 100644
--- a/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java
+++ b/idp-installer/src/main/java/net/shibboleth/idp/installer/plugin/impl/TrustStore.java
@@ -46,8 +46,8 @@ import org.bouncycastle.openpgp.operator.jcajce.JcaKeyFingerprintCalculator;
 import org.bouncycastle.openpgp.operator.jcajce.JcaPGPContentVerifierBuilderProvider;
 import org.bouncycastle.util.encoders.Hex;
 import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
 
+import net.shibboleth.idp.installer.impl.InstallationLogger;
 import net.shibboleth.utilities.java.support.annotation.constraint.NonnullAfterInit;
 import net.shibboleth.utilities.java.support.component.AbstractInitializableComponent;
 import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
@@ -60,7 +60,7 @@ import net.shibboleth.utilities.java.support.component.ComponentSupport;
 @NotThreadSafe public final class TrustStore extends AbstractInitializableComponent {
 
     /** logger. */
-    @Nonnull private final Logger log = LoggerFactory.getLogger(TrustStore.class);
+    @Nonnull private final Logger log = InstallationLogger.getLogger(TrustStore.class);
     
     /** Where the IdP is installed.  */
     @NonnullAfterInit private Path idpHome;

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the commits mailing list