From ab97827fe3724cede7410e781251a7f418799ffd Mon Sep 17 00:00:00 2001 From: Andrus Adamchik Date: Sat, 25 Nov 2023 17:27:09 -0500 Subject: [PATCH] refactoring: combining Module and Provider for non-deprecated modules --- .../sentry/LogbackSentryModuleProvider.java | 4 +-- .../io/bootique/logback/LogbackModule.java | 25 ++++++++----- .../logback/LogbackModuleProvider.java | 35 ------------------- .../services/io.bootique.BQModuleProvider | 21 +---------- ...ProviderIT.java => LogbackModuleTest.java} | 6 ++-- 5 files changed, 23 insertions(+), 68 deletions(-) delete mode 100644 bootique-logback/src/main/java/io/bootique/logback/LogbackModuleProvider.java rename bootique-logback/src/test/java/io/bootique/logback/{LogbackModuleProviderIT.java => LogbackModuleTest.java} (84%) diff --git a/bootique-logback-sentry/src/main/java/io/bootique/logback/sentry/LogbackSentryModuleProvider.java b/bootique-logback-sentry/src/main/java/io/bootique/logback/sentry/LogbackSentryModuleProvider.java index 8b60826..cb1f704 100644 --- a/bootique-logback-sentry/src/main/java/io/bootique/logback/sentry/LogbackSentryModuleProvider.java +++ b/bootique-logback-sentry/src/main/java/io/bootique/logback/sentry/LogbackSentryModuleProvider.java @@ -21,7 +21,7 @@ import io.bootique.BQModuleProvider; import io.bootique.bootstrap.BuiltModule; -import io.bootique.logback.LogbackModuleProvider; +import io.bootique.logback.LogbackModule; import java.util.Collection; import java.util.Collections; @@ -42,6 +42,6 @@ public BuiltModule buildModule() { @Override @Deprecated(since = "3.0", forRemoval = true) public Collection dependencies() { - return Collections.singletonList(new LogbackModuleProvider()); + return Collections.singletonList(new LogbackModule()); } } diff --git a/bootique-logback/src/main/java/io/bootique/logback/LogbackModule.java b/bootique-logback/src/main/java/io/bootique/logback/LogbackModule.java index 3593f75..c3ba628 100644 --- a/bootique-logback/src/main/java/io/bootique/logback/LogbackModule.java +++ b/bootique-logback/src/main/java/io/bootique/logback/LogbackModule.java @@ -20,9 +20,11 @@ package io.bootique.logback; import ch.qos.logback.classic.Logger; -import io.bootique.ConfigModule; +import io.bootique.BQModuleProvider; import io.bootique.annotation.LogLevels; +import io.bootique.bootstrap.BuiltModule; import io.bootique.config.ConfigurationFactory; +import io.bootique.di.BQModule; import io.bootique.di.Binder; import io.bootique.di.Provides; import io.bootique.shutdown.ShutdownManager; @@ -31,11 +33,16 @@ import javax.inject.Singleton; import java.util.Map; -public class LogbackModule extends ConfigModule { +public class LogbackModule implements BQModule, BQModuleProvider { + + private static final String CONFIG_PREFIX = "log"; @Override - protected String defaultConfigPrefix() { - return "log"; + public BuiltModule buildModule() { + return BuiltModule.of(this) + .description("Integrates Logback logging library") + .config(CONFIG_PREFIX, LogbackContextFactory.class) + .build(); } @Override @@ -47,11 +54,13 @@ public void configure(Binder binder) { @Singleton @Provides - Logger provideRootLogger(ConfigurationFactory configFactory, - ShutdownManager shutdownManager, - @LogLevels Map defaultLevels) { + Logger provideRootLogger( + ConfigurationFactory configFactory, + ShutdownManager shutdownManager, + @LogLevels Map defaultLevels) { - return config(LogbackContextFactory.class, configFactory) + return configFactory + .config(LogbackContextFactory.class, CONFIG_PREFIX) .createRootLogger(shutdownManager, defaultLevels); } diff --git a/bootique-logback/src/main/java/io/bootique/logback/LogbackModuleProvider.java b/bootique-logback/src/main/java/io/bootique/logback/LogbackModuleProvider.java deleted file mode 100644 index 7abb902..0000000 --- a/bootique-logback/src/main/java/io/bootique/logback/LogbackModuleProvider.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * Licensed to ObjectStyle LLC under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ObjectStyle LLC 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 io.bootique.logback; - -import io.bootique.BQModuleProvider; -import io.bootique.bootstrap.BuiltModule; - -public class LogbackModuleProvider implements BQModuleProvider { - - @Override - public BuiltModule buildModule() { - return BuiltModule.of(new LogbackModule()) - .provider(this) - .description("Integrates Logback logging library") - .config("log", LogbackContextFactory.class) - .build(); - } -} diff --git a/bootique-logback/src/main/resources/META-INF/services/io.bootique.BQModuleProvider b/bootique-logback/src/main/resources/META-INF/services/io.bootique.BQModuleProvider index 3d54428..b62293a 100644 --- a/bootique-logback/src/main/resources/META-INF/services/io.bootique.BQModuleProvider +++ b/bootique-logback/src/main/resources/META-INF/services/io.bootique.BQModuleProvider @@ -1,20 +1 @@ -##################################################################### -# Licensed to ObjectStyle LLC under one -# or more contributor license agreements. See the NOTICE file -# distributed with this work for additional information -# regarding copyright ownership. The ObjectStyle LLC 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. -##################################################################### - -io.bootique.logback.LogbackModuleProvider \ No newline at end of file +io.bootique.logback.LogbackModule \ No newline at end of file diff --git a/bootique-logback/src/test/java/io/bootique/logback/LogbackModuleProviderIT.java b/bootique-logback/src/test/java/io/bootique/logback/LogbackModuleTest.java similarity index 84% rename from bootique-logback/src/test/java/io/bootique/logback/LogbackModuleProviderIT.java rename to bootique-logback/src/test/java/io/bootique/logback/LogbackModuleTest.java index 6641237..5232775 100644 --- a/bootique-logback/src/test/java/io/bootique/logback/LogbackModuleProviderIT.java +++ b/bootique-logback/src/test/java/io/bootique/logback/LogbackModuleTest.java @@ -22,15 +22,15 @@ import io.bootique.junit5.BQModuleProviderChecker; import org.junit.jupiter.api.Test; -public class LogbackModuleProviderIT { +public class LogbackModuleTest { @Test public void autoLoadable() { - BQModuleProviderChecker.testAutoLoadable(LogbackModuleProvider.class); + BQModuleProviderChecker.testAutoLoadable(LogbackModule.class); } @Test public void metadata() { - BQModuleProviderChecker.testMetadata(LogbackModuleProvider.class); + BQModuleProviderChecker.testMetadata(LogbackModule.class); } }