Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package logback for openSUSE:Factory checked in at 2026-07-24 22:05:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/logback (Old) and /work/SRC/openSUSE:Factory/.logback.new.2004 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "logback" Fri Jul 24 22:05:36 2026 rev:18 rq:1367569 version:1.6.0 Changes: -------- --- /work/SRC/openSUSE:Factory/logback/logback.changes 2026-07-15 22:20:26.769112134 +0200 +++ /work/SRC/openSUSE:Factory/.logback.new.2004/logback.changes 2026-07-24 22:05:51.806800356 +0200 @@ -1,0 +2,57 @@ +Fri Jul 24 02:40:14 UTC 2026 - Fridrich Strba <[email protected]> + +- Upgrade to upstream version 1.6.0 + * Notable changes + In version 1.5.37 and subsequently in 1.6.x, support for + Janino-based conditional expressions was removed. Evaluating + arbitrary Java expressions with the Janino library had led to + numerous security vulnerabilities. + If you are upgrading from a version earlier than 1.5.37 and + your configuration files still use those older Janino-style + conditionals, you must migrate them to the new format using + the <condition> element (available since version version + 1.5.20). + The <condition> element accepts implementations of the + PropertyCondition interface to decide whether a branch of the + configuration should apply. Logback-core ships with several + implementations of said interface. For details, see the + https://logback.qos.ch/manual/configuration.html#conditional + * Changes + + Removed deprecated variables + ° ch.qos.logback.classic.PatternLayout#DEFAULT_CONVERTER_MAP + ° ch.qos.logback.classic.PatternLayout#defaultConverterMap + ° ch.qos.logback.classic.util.ContextInitializer + #AUTOCONFIG_FILE + ° ch.qos.logback.classic.util.ContextInitializer + #TEST_AUTOCONFIG_FILE + ° ch.qos.logback.classic.util.ContextInitializer + #CONFIG_FILE_PROPERTY + + Remove deprecated methods + ° ch.qos.logback.classic.PatternLayout + #getDefaultConverterMap() + ° ch.qos.logback.core.util.ExecutorServiceUtil + #newExecutorService() + ° ch.qos.logback.core.util.VersionUtil + #getVersionOfArtifact(Class<?>) + ° ch.qos.logback.core.pattern.PatternLayoutBase + #setContextForConverters + ° ch.qos.logback.core.pattern.PatternLayoutEncoderBase + #setOutputPatternAsPresentationHeader + ° ch.qos.logback.core.joran.spi.ConfigurationWatchList + #changeDetected + ° ch.qos.logback.core.joran.GenericXMLConfigurator + #informContextOfURLUsedForConfiguration + ° ch.qos.logback.core.model.ModelUtil#setProperty + ° ch.qos.logback.core.model.ModelUtil#setProperties + ° ch.qos.logback.core.joran.action.PreconditionValidator + #generic + ° ch.qos.logback.core.util.EnvUtil#logbackVersion + ° ch.qos.logback.classic.util.ClassicEnvUtil + #getVersionOfLogbackClassic + + Remove deprecated class + ° ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter + + In AsyncAppenderBase, the put(ILoggingEvent) method now has + the protected modifier to allow access from derived classes + + Bump SLF4J dependency to version 2.0.18. + +------------------------------------------------------------------- Old: ---- logback-1.5.38.tar.xz New: ---- logback-1.6.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ logback.spec ++++++ --- /var/tmp/diff_new_pack.1xEC8b/_old 2026-07-24 22:05:52.762833743 +0200 +++ /var/tmp/diff_new_pack.1xEC8b/_new 2026-07-24 22:05:52.762833743 +0200 @@ -17,7 +17,7 @@ Name: logback -Version: 1.5.38 +Version: 1.6.0 Release: 0 Summary: A Java logging library License: EPL-1.0 OR LGPL-2.1-or-later ++++++ _scmsync.obsinfo ++++++ --- /var/tmp/diff_new_pack.1xEC8b/_old 2026-07-24 22:05:52.794834860 +0200 +++ /var/tmp/diff_new_pack.1xEC8b/_new 2026-07-24 22:05:52.798835000 +0200 @@ -1,6 +1,6 @@ -mtime: 1784142638 -commit: d757198a9da754d6dfd300c48818663e74f90cfe3d6ba27c8a74190f2c895497 +mtime: 1784861960 +commit: fa298c35a1bd53df2ff8a11fbf5454b82ba575fac1a3eca8ef57c834422352a5 url: https://src.opensuse.org/java-packages/logback -revision: d757198a9da754d6dfd300c48818663e74f90cfe3d6ba27c8a74190f2c895497 +revision: fa298c35a1bd53df2ff8a11fbf5454b82ba575fac1a3eca8ef57c834422352a5 projectscmsync: https://src.opensuse.org/java-packages/_ObsPrj ++++++ _service ++++++ --- /var/tmp/diff_new_pack.1xEC8b/_old 2026-07-24 22:05:52.834836257 +0200 +++ /var/tmp/diff_new_pack.1xEC8b/_new 2026-07-24 22:05:52.846836676 +0200 @@ -2,7 +2,7 @@ <service name="tar_scm" mode="disabled"> <param name="scm">git</param> <param name="url">https://github.com/qos-ch/logback.git</param> - <param name="revision">v_1.5.38</param> + <param name="revision">v_1.6.0</param> <param name="match-tag">v_*</param> <param name="versionformat">@PARENT_TAG@</param> <param name="versionrewrite-pattern">v_(.*)</param> ++++++ build.specials.obscpio ++++++ ++++++ build.specials.obscpio ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/.gitignore new/.gitignore --- old/.gitignore 1970-01-01 01:00:00.000000000 +0100 +++ new/.gitignore 2026-07-24 04:59:20.000000000 +0200 @@ -0,0 +1 @@ +.osc ++++++ logback-1.5.38.tar.xz -> logback-1.6.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-access/pom.xml new/logback-1.6.0/logback-access/pom.xml --- old/logback-1.5.38/logback-access/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-access/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-access</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/pom.xml new/logback-1.6.0/logback-classic/pom.xml --- old/logback-1.5.38/logback-classic/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-classic</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/PatternLayout.java new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/PatternLayout.java --- old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/PatternLayout.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/PatternLayout.java 2026-07-23 14:14:06.000000000 +0200 @@ -34,28 +34,16 @@ * pattern</em>. * <p> * For more information about this layout, please refer to the online manual at - * http://logback.qos.ch/manual/layouts.html#PatternLayout - * + * <a href="http://logback.qos.ch/manual/layouts.html#PatternLayout">layouts.html#PatternLayout</a> + * */ public class PatternLayout extends PatternLayoutBase<ILoggingEvent> { public static final Map<String, Supplier<DynamicConverter>> DEFAULT_CONVERTER_SUPPLIER_MAP = new HashMap<>(); - /** - * @deprecated replaced by {@link #DEFAULT_CONVERTER_SUPPLIER_MAP} - */ - @Deprecated - public static final Map<String, String> DEFAULT_CONVERTER_MAP = new HashMap<>(); public static final Map<String, String> CONVERTER_CLASS_TO_KEY_MAP = new HashMap<String, String>(); - /** - * @deprecated replaced by {@link #DEFAULT_CONVERTER_MAP} in turn itself replaced by - * {@link #DEFAULT_CONVERTER_SUPPLIER_MAP} - */ - @Deprecated - public static final Map<String, String> defaultConverterMap = DEFAULT_CONVERTER_MAP; - public static final String HEADER_PREFIX = "#logback.classic pattern: "; static { @@ -186,22 +174,6 @@ return DEFAULT_CONVERTER_SUPPLIER_MAP; } - /** - * <p>BEWARE: The map of type String,String for mapping conversion words is deprecated. - * Use {@link #getDefaultConverterSupplierMap()} instead.</p> - * - * <p>Existing code such as getDefaultMap().put("k", X.class.getName()) should be replaced by - * getDefaultConverterSupplierMap().put("k", X::new) </p> - * - * <p>Note that values in the map will still be taken into account and processed correctly.</p> - * - * @return a map of keys and class names - */ - @Deprecated - public Map<String, String> getDefaultConverterMap() { - return DEFAULT_CONVERTER_MAP; - } - public String doLayout(ILoggingEvent event) { if (!isStarted()) { return CoreConstants.EMPTY_STRING; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/pattern/ExtendedThrowableProxyConverter.java new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/pattern/ExtendedThrowableProxyConverter.java --- old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/pattern/ExtendedThrowableProxyConverter.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/pattern/ExtendedThrowableProxyConverter.java 2026-07-23 14:14:06.000000000 +0200 @@ -17,6 +17,14 @@ import ch.qos.logback.classic.spi.StackTraceElementProxy; import ch.qos.logback.classic.spi.ThrowableProxyUtil; + +/** + * + * As of version 1.6.0, support for packaging data has been removed. This class is now empty. + * Use ThrowableProxyConverter directly. + * + * @author Ceki Gülcü + */ public class ExtendedThrowableProxyConverter extends ThrowableProxyConverter { @Override @@ -25,7 +33,5 @@ } protected void prepareLoggingEvent(ILoggingEvent event) { - } - -} +} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java --- old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/turbo/ReconfigureOnChangeFilter.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,238 +0,0 @@ -/* - * Logback: the reliable, generic, fast and flexible logging framework. - * Copyright (C) 1999-2026, QOS.ch. All rights reserved. - * - * This program and the accompanying materials are dual-licensed under - * either the terms of the Eclipse Public License v2.0 as published by - * the Eclipse Foundation - * - * or (per the licensee's choosing) - * - * under the terms of the GNU Lesser General Public License version 2.1 - * as published by the Free Software Foundation. - */ -package ch.qos.logback.classic.turbo; - -import static ch.qos.logback.core.CoreConstants.MILLIS_IN_ONE_SECOND; - -import java.io.File; -import java.net.URL; -import java.util.List; - -import org.slf4j.Marker; - -import ch.qos.logback.classic.Level; -import ch.qos.logback.classic.Logger; -import ch.qos.logback.classic.LoggerContext; -import ch.qos.logback.classic.joran.JoranConfigurator; -import ch.qos.logback.core.CoreConstants; -import ch.qos.logback.core.joran.spi.ConfigurationWatchList; -import ch.qos.logback.core.joran.spi.JoranException; -import ch.qos.logback.core.joran.util.ConfigurationWatchListUtil; -import ch.qos.logback.core.model.Model; -import ch.qos.logback.core.model.ModelUtil; -import ch.qos.logback.core.spi.FilterReply; -import ch.qos.logback.core.status.StatusUtil; - -/** - * Reconfigure a LoggerContext when the configuration file changes. - * - * @author Ceki Gulcu - * @deprecated replaced by {@link ch.qos.logback.classic.joran.ReconfigureOnChangeTask} - */ -@Deprecated -public class ReconfigureOnChangeFilter extends TurboFilter { - - /** - * Scan for changes in configuration file once every minute. - */ - // 1 minute - value mentioned in documentation - public final static long DEFAULT_REFRESH_PERIOD = 60 * MILLIS_IN_ONE_SECOND; - - long refreshPeriod = DEFAULT_REFRESH_PERIOD; - URL mainConfigurationURL; - protected volatile long nextCheck; - - ConfigurationWatchList configurationWatchList; - - @Override - public void start() { - configurationWatchList = ConfigurationWatchListUtil.getConfigurationWatchList(context); - if (configurationWatchList != null) { - mainConfigurationURL = configurationWatchList.getTopURL(); - if (mainConfigurationURL == null) { - addWarn("Due to missing top level configuration file, automatic reconfiguration is impossible."); - return; - } - List<File> watchList = configurationWatchList.getCopyOfFileWatchList(); - long inSeconds = refreshPeriod / 1000; - addInfo("Will scan for changes in [" + watchList + "] every " + inSeconds + " seconds. "); - synchronized (configurationWatchList) { - updateNextCheck(System.currentTimeMillis()); - } - super.start(); - } else { - addWarn("Empty ConfigurationWatchList in context"); - } - } - - @Override - public String toString() { - return "ReconfigureOnChangeFilter{" + "invocationCounter=" + invocationCounter + '}'; - } - - // The next fields counts the number of time the decide method is called - // - // IMPORTANT: This field can be updated by multiple threads. It follows that - // its values may *not* be incremented sequentially. However, we don't care - // about the actual value of the field except that from time to time the - // expression (invocationCounter++ & mask) == mask) should be true. - private long invocationCounter = 0; - - private volatile long mask = 0xF; - private volatile long lastMaskCheck = System.currentTimeMillis(); - - @Override - public FilterReply decide(Marker marker, Logger logger, Level level, String format, Object[] params, Throwable t) { - if (!isStarted()) { - return FilterReply.NEUTRAL; - } - - // for performance reasons, skip change detection (MASK-1) times out of MASK. - // Only once every MASK calls is change detection code executed - // Note that MASK is a variable itself. - if (((invocationCounter++) & mask) != mask) { - return FilterReply.NEUTRAL; - } - - long now = System.currentTimeMillis(); - - synchronized (configurationWatchList) { - updateMaskIfNecessary(now); - if (changeDetected(now)) { - // Even though reconfiguration involves resetting the loggerContext, - // which clears the list of turbo filters including this instance, it is - // still possible for this instance to be subsequently invoked by another - // thread if it was already executing when the context was reset. - disableSubsequentReconfiguration(); - detachReconfigurationToNewThread(); - } - } - - return FilterReply.NEUTRAL; - } - - // experiments indicate that even for CPU intensive applications with 200 or - // more threads MASK - // values in the order of 0xFFFF is appropriate - private static final int MAX_MASK = 0xFFFF; - - // if less than MASK_INCREASE_THRESHOLD milliseconds elapse between invocations - // of updateMaskIfNecessary() method, - // then the mask should be increased - private static final long MASK_INCREASE_THRESHOLD = 100; - - // if more than MASK_DECREASE_THRESHOLD milliseconds elapse between invocations - // of updateMaskIfNecessary() method, - // then the mask should be decreased - private static final long MASK_DECREASE_THRESHOLD = MASK_INCREASE_THRESHOLD * 8; - - // update the mask so as to execute change detection code about once every 100 - // to 8000 milliseconds. - private void updateMaskIfNecessary(long now) { - final long timeElapsedSinceLastMaskUpdateCheck = now - lastMaskCheck; - lastMaskCheck = now; - if (timeElapsedSinceLastMaskUpdateCheck < MASK_INCREASE_THRESHOLD && (mask < MAX_MASK)) { - mask = (mask << 1) | 1; - } else if (timeElapsedSinceLastMaskUpdateCheck > MASK_DECREASE_THRESHOLD) { - mask = mask >>> 2; - } - } - - // by detaching reconfiguration to a new thread, we release the various - // locks held by the current thread, in particular, the AppenderAttachable - // reader lock. - void detachReconfigurationToNewThread() { - addInfo("Detected change in [" + configurationWatchList.getCopyOfFileWatchList() + "]"); - context.getExecutorService().submit(new ReconfiguringThread()); - } - - void updateNextCheck(long now) { - nextCheck = now + refreshPeriod; - } - - protected boolean changeDetected(long now) { - if (now >= nextCheck) { - updateNextCheck(now); - File file = configurationWatchList.changeDetected(); - return file != null; - } - return false; - } - - void disableSubsequentReconfiguration() { - nextCheck = Long.MAX_VALUE; - } - - public long getRefreshPeriod() { - return refreshPeriod; - } - - public void setRefreshPeriod(long refreshPeriod) { - this.refreshPeriod = refreshPeriod; - } - - class ReconfiguringThread implements Runnable { - public void run() { - if (mainConfigurationURL == null) { - addInfo("Due to missing top level configuration file, skipping reconfiguration"); - return; - } - LoggerContext lc = (LoggerContext) context; - addInfo(CoreConstants.RESET_MSG_PREFIX + "named [" + context.getName() + "]"); - if (mainConfigurationURL.toString().endsWith("xml")) { - performXMLConfiguration(lc); - } else if (mainConfigurationURL.toString().endsWith("groovy")) { - addError("Groovy configuration disabled due to Java 9 compilation issues."); - } - } - - private void performXMLConfiguration(LoggerContext lc) { - JoranConfigurator jc = new JoranConfigurator(); - jc.setContext(context); - StatusUtil statusUtil = new StatusUtil(context); - Model failSafeTop = jc.recallSafeConfiguration(); - URL mainURL = ConfigurationWatchListUtil.getMainWatchURL(context); - lc.reset(); - long threshold = System.currentTimeMillis(); - try { - jc.doConfigure(mainConfigurationURL); - if (statusUtil.hasXMLParsingErrors(threshold)) { - fallbackConfiguration(lc, failSafeTop, mainURL); - } - } catch (JoranException e) { - fallbackConfiguration(lc, failSafeTop, mainURL); - } - } - - private void fallbackConfiguration(LoggerContext lc, Model failSafeTop, URL mainURL) { - JoranConfigurator joranConfigurator = new JoranConfigurator(); - joranConfigurator.setContext(context); - if (failSafeTop != null) { - addWarn("Falling back to previously registered safe configuration."); - try { - lc.reset(); - JoranConfigurator.informContextOfURLUsedForConfiguration(context, mainURL); - ModelUtil.resetForReuse(failSafeTop); - joranConfigurator.processModel(failSafeTop); - addInfo("Re-registering previous fallback configuration once more as a fallback configuration point"); - joranConfigurator.registerSafeConfiguration(failSafeTop); - } catch (Exception e) { - addError("Unexpected exception thrown by a configuration considered safe.", e); - } - } else { - addWarn("No previous configuration to fall back on."); - } - } - } -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/util/ClassicEnvUtil.java new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/util/ClassicEnvUtil.java --- old/logback-1.5.38/logback-classic/src/main/java/ch/qos/logback/classic/util/ClassicEnvUtil.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/main/java/ch/qos/logback/classic/util/ClassicEnvUtil.java 2026-07-23 14:14:06.000000000 +0200 @@ -47,26 +47,4 @@ } return listOfT; } - - /** - * <p>Returns the current version of logback-classic, or null if data is not - * available. - * </p> - * - * TODO: remove in 1.6 - * - * @since 1.5.15 - * @return current version or null if missing version data - * @deprecated See {@link ch.qos.logback.classic.util.ClassicVersionUtil#getVersionBySelfDeclaredProperties()} - * - */ - @Deprecated - static public String getVersionOfLogbackClassic() { - try { - return VersionUtil.getVersionOfArtifact(ClassicConstants.class); - } catch (NoClassDefFoundError e) { - return null; - } - } - } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java --- old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/LoggerPerfTest.java 2026-07-23 14:14:06.000000000 +0200 @@ -162,7 +162,7 @@ } double computeDurationOfEnabledLog(long len) { - lbLogger.setLevel(Level.ALL); + lbLogger.setLevel(Level.TRACE); NOPAppender<ILoggingEvent> nopAppender = new NOPAppender<ILoggingEvent>(); nopAppender.start(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/LoggerTest.java new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/LoggerTest.java --- old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/LoggerTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/LoggerTest.java 2026-07-23 14:14:06.000000000 +0200 @@ -161,8 +161,8 @@ @Test public void testEnabled_All() throws Exception { - root.setLevel(Level.ALL); - checkLevelThreshold(loggerTest, Level.ALL); + root.setLevel(Level.TRACE); + checkLevelThreshold(loggerTest, Level.TRACE); } @Test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java --- old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/TurboFilteringInLoggerTest.java 2026-07-23 14:14:06.000000000 +0200 @@ -185,7 +185,7 @@ @Test public void testIsErrorEnabledWithDenyBlueFilter() { addDenyBLUEFilter(); - logger.setLevel(Level.ALL); + logger.setLevel(Level.TRACE); assertFalse(logger.isDebugEnabled(blueMarker)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/blackbox/util/EnvUtilTest.java new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/blackbox/util/EnvUtilTest.java --- old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/blackbox/util/EnvUtilTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/blackbox/util/EnvUtilTest.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,68 +0,0 @@ -/* - * Logback: the reliable, generic, fast and flexible logging framework. - * Copyright (C) 1999-2026, QOS.ch. All rights reserved. - * - * This program and the accompanying materials are dual-licensed under - * either the terms of the Eclipse Public License v2.0 as published by - * the Eclipse Foundation - * - * or (per the licensee's choosing) - * - * under the terms of the GNU Lesser General Public License version 2.1 - * as published by the Free Software Foundation. - */ - -package ch.qos.logback.classic.blackbox.util; - -import ch.qos.logback.classic.ClassicConstants; -import ch.qos.logback.classic.util.ClassicEnvUtil; -import ch.qos.logback.core.CoreConstants; -import ch.qos.logback.core.util.EnvUtil; -import ch.qos.logback.core.util.VersionUtil; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; - -import static org.junit.jupiter.api.Assertions.*; - -/** - * Tests in this class are run during the regular build process. - * - * <p>It follows that {@link VersionUtil} class is present. Moreover, logback-core and - * logback-classic versions are the same. - * </p> - */ -public class EnvUtilTest { - - // Beware: ---------------------------------------- - // Beware: needs to be updated upon version change - // Beware: ---------------------------------------- - static final String EXPECTED_VERSION = "1.5"; - - - @BeforeEach - public void setUp() throws Exception { - - } - - // this test runs fine if run from logback-classic but fails when - // run from logback-core. This is due to the fact that package information - // is added when creating the jar. - @Test - public void versionTest() { - String versionStr = VersionUtil.getVersionOfArtifact(ClassicConstants.class); - assertNotNull(versionStr); - assertTrue(versionStr.startsWith(EXPECTED_VERSION)); - } - - @Test - public void versionCompare() { - String coreVersionStr = VersionUtil.getVersionOfArtifact(CoreConstants.class); - String versionOfLogbackClassic = VersionUtil.getVersionOfArtifact(ClassicConstants.class); - assertNotNull(coreVersionStr); - assertNotNull(versionOfLogbackClassic); - - assertEquals(coreVersionStr, versionOfLogbackClassic); - } - - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/pattern/LegacyPatternLayoutTest.java new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/pattern/LegacyPatternLayoutTest.java --- old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/pattern/LegacyPatternLayoutTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/pattern/LegacyPatternLayoutTest.java 2026-07-23 14:14:06.000000000 +0200 @@ -19,6 +19,7 @@ import ch.qos.logback.classic.PatternLayout; import ch.qos.logback.classic.spi.LoggingEvent; import ch.qos.logback.core.CoreConstants; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.util.HashMap; @@ -27,27 +28,11 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNull; +@Disabled public class LegacyPatternLayoutTest { LoggerContext context = new LoggerContext(); - /** - * Test backward compatibility for classes derived from - * PatternLayout that add custom conversion words. - */ - @Test public void subPattern() { - SubPatternLayout layout = new SubPatternLayout(); - layout.setPattern("%"+SubPatternLayout.DOOO); - layout.setContext(context); - layout.start(); - LoggingEvent event = new LoggingEvent(); - event.setTimeStamp(0); - event.setLevel(Level.INFO); - - String result = layout.doLayout(event); - assertEquals("INFO", result); - } - @Test public void fromContext() { Map<String, String> registry = (Map<String, String>) this.context diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/pattern/SubPatternLayout.java new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/pattern/SubPatternLayout.java --- old/logback-1.5.38/logback-classic/src/test/java/ch/qos/logback/classic/pattern/SubPatternLayout.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic/src/test/java/ch/qos/logback/classic/pattern/SubPatternLayout.java 1970-01-01 01:00:00.000000000 +0100 @@ -1,35 +0,0 @@ -/* - * Logback: the reliable, generic, fast and flexible logging framework. - * Copyright (C) 1999-2026, QOS.ch. All rights reserved. - * - * This program and the accompanying materials are dual-licensed under - * either the terms of the Eclipse Public License v2.0 as published by - * the Eclipse Foundation - * - * or (per the licensee's choosing) - * - * under the terms of the GNU Lesser General Public License version 2.1 - * as published by the Free Software Foundation. - */ - -package ch.qos.logback.classic.pattern; - -import ch.qos.logback.classic.PatternLayout; - -import java.util.Map; - -/** - * Test backward compatibility support by virtue of correct compilation. - * - * See also SubPatternLayoutTest - */ -public class SubPatternLayout extends PatternLayout { - - static String DOOO = "dooo"; - - SubPatternLayout() { - Map<String, String> defaultConverterMap = getDefaultConverterMap(); - defaultConverterMap.put(DOOO, LevelConverter.class.getName()); - } - -} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic-blackbox/pom.xml new/logback-1.6.0/logback-classic-blackbox/pom.xml --- old/logback-1.5.38/logback-classic-blackbox/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic-blackbox/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-classic-blackbox</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/util/ClassicVersionUtilTest.java new/logback-1.6.0/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/util/ClassicVersionUtilTest.java --- old/logback-1.5.38/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/util/ClassicVersionUtilTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic-blackbox/src/test/java/ch/qos/logback/classic/blackbox/util/ClassicVersionUtilTest.java 2026-07-23 14:14:06.000000000 +0200 @@ -21,12 +21,16 @@ import static org.junit.jupiter.api.Assertions.assertTrue; public class ClassicVersionUtilTest { + // Beware: ---------------------------------------- + // Beware: needs to be updated upon version change + // Beware: ---------------------------------------- + static final String EXPECTED_VERSION = "1.6"; @Test public void bySelfDeclaredProperties() { String version = ClassicVersionUtil.getVersionBySelfDeclaredProperties(); assertNotNull(version); - assertTrue(version.startsWith("1.5")); + assertTrue(version.startsWith(EXPECTED_VERSION)); } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-classic-misc/pom.xml new/logback-1.6.0/logback-classic-misc/pom.xml --- old/logback-1.5.38/logback-classic-misc/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-classic-misc/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-classic-misc</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/pom.xml new/logback-1.6.0/logback-core/pom.xml --- old/logback-1.5.38/logback-core/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-core</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/AsyncAppenderBase.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/AsyncAppenderBase.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/AsyncAppenderBase.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/AsyncAppenderBase.java 2026-07-23 14:14:06.000000000 +0200 @@ -170,7 +170,7 @@ return (blockingQueue.remainingCapacity() < discardingThreshold); } - private void put(E eventObject) { + protected void put(E eventObject) { if (neverBlock) { blockingQueue.offer(eventObject); } else { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/joran/GenericXMLConfigurator.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/joran/GenericXMLConfigurator.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/joran/GenericXMLConfigurator.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/joran/GenericXMLConfigurator.java 2026-07-23 14:14:06.000000000 +0200 @@ -119,16 +119,6 @@ } } - /** - * Removed in 1.5.27 with no replacement. - * - * @deprecated - */ - @Deprecated - public static void informContextOfURLUsedForConfiguration(Context context, URL url) { - // - } - public final void doConfigure(InputStream inputStream) throws JoranException { doConfigure(new InputSource(inputStream)); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/joran/spi/ConfigurationWatchList.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/joran/spi/ConfigurationWatchList.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/joran/spi/ConfigurationWatchList.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/joran/spi/ConfigurationWatchList.java 2026-07-23 14:14:06.000000000 +0200 @@ -164,15 +164,6 @@ return true; } - - /** - * - * @deprecated replaced by {@link #changeDetectedInFile()} - */ - public File changeDetected() { - return changeDetectedInFile(); - } - /** * Has a changed been detected in one of the files being watched? * @return diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/model/ModelUtil.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/model/ModelUtil.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/model/ModelUtil.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/model/ModelUtil.java 2026-07-23 14:14:06.000000000 +0200 @@ -28,28 +28,4 @@ model.resetForReuse(); } - - - /** - * Add all the properties found in the argument named 'props' to an - * ModelInterpretationContext. - * - * @deprecated moved to {@link PropertyModelHandlerHelper#setProperty} - */ - @Deprecated - static public void setProperty(ModelInterpretationContext mic, String key, String value, Scope scope) { - PropertyModelHandlerHelper.setProperty(mic, key, value, scope); - } - - /** - * Add all the properties found in the argument named 'props' to an - * ModelInterpretationContext. - * - * @deprecated moved to {@link PropertyModelHandlerHelper#setProperties} - */ - @Deprecated - static public void setProperties(ModelInterpretationContext mic, Properties props, Scope scope) { - PropertyModelHandlerHelper.setProperties(mic, props, scope); - } - } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutBase.java 2026-07-23 14:14:06.000000000 +0200 @@ -65,8 +65,8 @@ * * @return a map of keys and class names */ - @Deprecated - abstract public Map<String, String> getDefaultConverterMap(); + //@Deprecated + //abstract public Map<String, String> getDefaultConverterMap(); /** * Returns a map where the default converter map is merged with the map @@ -110,8 +110,8 @@ migrateFromStringMapToSupplierMap(mapFromContext, effectiveMap); - Map<String, String> defaultConverterMap = getDefaultConverterMap(); - migrateFromStringMapToSupplierMap(defaultConverterMap, effectiveMap); + //Map<String, String> defaultConverterMap = getDefaultConverterMap(); + //migrateFromStringMapToSupplierMap(defaultConverterMap, effectiveMap); } private void migrateFromStringMapToSupplierMap(Map<String, String> legacyMap, Map<String, Supplier<DynamicConverter>> targetSupplierMap) { @@ -157,16 +157,6 @@ this.postCompileProcessor = postCompileProcessor; } - /** - * - * @param head - * @deprecated Use {@link ConverterUtil#setContextForConverters} instead. This - * method will be removed in future releases. - */ - protected void setContextForConverters(Converter<E> head) { - ConverterUtil.setContextForConverters(getContext(), head); - } - protected String writeLoopOnConverters(E event) { StringBuilder strBuilder = new StringBuilder(INTIAL_STRING_BUILDER_SIZE); Converter<E> c = head; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutEncoderBase.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutEncoderBase.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutEncoderBase.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/pattern/PatternLayoutEncoderBase.java 2026-07-23 14:14:06.000000000 +0200 @@ -49,14 +49,6 @@ return outputPatternAsHeader; } - /** - * @deprecated replaced by {@link #setOutputPatternAsHeader(boolean)} - */ - public void setOutputPatternAsPresentationHeader(boolean outputPatternAsHeader) { - addWarn("[outputPatternAsPresentationHeader] property is deprecated. Please use [outputPatternAsHeader] option instead."); - this.outputPatternAsHeader = outputPatternAsHeader; - } - @Override public void setLayout(Layout<E> layout) { throw new UnsupportedOperationException("one cannot set the layout of " + this.getClass().getName()); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/util/EnvUtil.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/util/EnvUtil.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/util/EnvUtil.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/util/EnvUtil.java 2026-07-23 14:14:06.000000000 +0200 @@ -26,20 +26,6 @@ private EnvUtil() { } - - /** - * <p>Returns the current version of logback-core, or null if data is not - * available. - * </p> - * - * @since 1.3.0 - * @return current version or null if missing version data - * @deprecated See {@link VersionUtil#getVersionOfArtifact(Class)} - */ - static public String logbackVersion() { - return VersionUtil.getVersionOfArtifact(CoreConstants.class); - } - static public int getJDKVersion(String javaVersionStr) { int version = 0; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/util/ExecutorServiceUtil.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/util/ExecutorServiceUtil.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/util/ExecutorServiceUtil.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/util/ExecutorServiceUtil.java 2026-07-23 14:14:06.000000000 +0200 @@ -57,13 +57,6 @@ } /** - * @deprecated replaced by {@link #newThreadPoolExecutor()} - */ - static public ExecutorService newExecutorService() { - return newThreadPoolExecutor(); - } - - /** * Creates an ThreadPoolExecutor suitable for use by logback components. * * @since 1.4.7 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/util/VersionUtil.java new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/util/VersionUtil.java --- old/logback-1.5.38/logback-core/src/main/java/ch/qos/logback/core/util/VersionUtil.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/main/java/ch/qos/logback/core/util/VersionUtil.java 2026-07-23 14:14:06.000000000 +0200 @@ -18,12 +18,10 @@ import ch.qos.logback.core.status.InfoStatus; import ch.qos.logback.core.status.WarnStatus; -import java.io.IOException; -import java.io.InputStream; import java.lang.module.ModuleDescriptor; import java.util.Optional; -import java.util.Properties; +import static ch.qos.logback.core.CoreConstants.CODES_URL; import static ch.qos.logback.core.CoreConstants.NA; // depender depends on dependency @@ -42,6 +40,7 @@ */ public class VersionUtil { + static final String DEPENDER_S_WAS_EXPECTING_PATTERN = "Depender [%s] was expecting version %s for dependency [%s] but found version %s"; /** * @since 1.5.30 */ @@ -58,32 +57,6 @@ this.context = context; } - /** - * Retrieves the version of an artifact, such as logback-core.jar, logback-access-common.jar etc. - * - * <p>The aClass parameter is assumed to be part of the artifact. - * </p> - * - * <p>The method first attempts to get the version from the module information. If the module version - * is not available, it falls back to retrieving the implementation version from the package. - * </p> - * - * @param aClass the class from which to retrieve the version information - * @return the version of the artifact where aClass is found, or null if the version cannot be determined - * @deprecated - */ - static public String getVersionOfArtifact(Class<?> aClass) { - String moduleVersion = getVersionOfClassByModule(aClass); - if (moduleVersion != null) - return moduleVersion; - - Package pkg = aClass.getPackage(); - if (pkg == null) { - return null; - } - return pkg.getImplementationVersion(); - } - static public String nonNull(String input) { if (input == null) { return NA; @@ -168,8 +141,13 @@ addFoundVersionStatus(context, dependerName, dependerVersion); if (!safeExpectedDependencyVersion.equals(actualDependencyVersion)) { - String discrepancyMsg = String.format("For %s, expected version %s but found %s", dependencyName, safeExpectedDependencyVersion, actualDependencyVersion); + String discrepancyMsg = String.format(DEPENDER_S_WAS_EXPECTING_PATTERN, dependerName, + safeExpectedDependencyVersion, dependencyName, actualDependencyVersion); context.getStatusManager().add(new WarnStatus(discrepancyMsg, context)); + + String seeMsg = "See also "+CODES_URL+"#versionMismatch"; + context.getStatusManager().add(new WarnStatus(seeMsg, context)); + } } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core/src/test/java/ch/qos/logback/core/pattern/parser/SamplePatternLayout.java new/logback-1.6.0/logback-core/src/test/java/ch/qos/logback/core/pattern/parser/SamplePatternLayout.java --- old/logback-1.5.38/logback-core/src/test/java/ch/qos/logback/core/pattern/parser/SamplePatternLayout.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core/src/test/java/ch/qos/logback/core/pattern/parser/SamplePatternLayout.java 2026-07-23 14:14:06.000000000 +0200 @@ -33,7 +33,7 @@ return converterSupplierMap; } - @Override + //@Override public Map<String, String> getDefaultConverterMap() { return converterMap; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core-blackbox/pom.xml new/logback-1.6.0/logback-core-blackbox/pom.xml --- old/logback-1.5.38/logback-core-blackbox/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core-blackbox/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-core-blackbox</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-core-blackbox/src/test/java/ch/qos/logback/core/blackbox/joran/conditional/IfThenElseTest.java new/logback-1.6.0/logback-core-blackbox/src/test/java/ch/qos/logback/core/blackbox/joran/conditional/IfThenElseTest.java --- old/logback-1.5.38/logback-core-blackbox/src/test/java/ch/qos/logback/core/blackbox/joran/conditional/IfThenElseTest.java 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-core-blackbox/src/test/java/ch/qos/logback/core/blackbox/joran/conditional/IfThenElseTest.java 2026-07-23 14:14:06.000000000 +0200 @@ -53,6 +53,7 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import java.util.Arrays; @@ -141,6 +142,27 @@ verifyConfig(new String[] { "BEGIN", "a", "END" }); } // ---------------------------------------------------------------------------------------------------- + @Test + @Disabled + public void ifWithNew() throws JoranException { + context.putProperty(ki1, val1); + simpleConfigurator.doConfigure(CONDITIONAL_DIR_PREFIX + "ifNew.xml"); + assertTrue(checker.containsMatch(Status.ERROR, IfModelHandler.BLACKLISTED_REF_DISALLOWED_MSG)); + assertTrue(checker.containsMatch(Status.ERROR, IfModelHandler.BLACKLISTED_REF_DISALLOWED_SEE)); + verifyConfig(new String[] { "BEGIN", "END" }); + } + + @Test + @Disabled + public void ifWithNewSlashU() throws JoranException { + context.putProperty(ki1, val1); + simpleConfigurator.doConfigure(CONDITIONAL_DIR_PREFIX + "ifNewSlashU.xml"); + assertTrue(checker.containsMatch(Status.ERROR, IfModelHandler.UNICODE_DISALLOWED_MSG)); + assertTrue(checker.containsMatch(Status.ERROR, IfModelHandler.UNICODE_DISALLOWED_SEE)); + // assertTrue(checker.containsMatch(Status.ERROR, IfModelHandler.NEW_OPERATOR_DISALLOWED_MSG)); + //assertTrue(checker.containsMatch(Status.ERROR, IfModelHandler.NEW_OPERATOR_DISALLOWED_SEE)); + verifyConfig(new String[] { "BEGIN", "END" }); + } // ---------------------------------------------------------------------------------------------------- @@ -248,15 +270,7 @@ System.out.println(dynaKey + "=" + context.getProperty(dynaKey)); Assertions.assertNull(context.getProperty(dynaKey)); } - @Test - public void badExpression0() throws JoranException { - simpleConfigurator.doConfigure(CONDITIONAL_DIR_PREFIX + "ifBogusExpression0.xml"); - StatusPrinter.print(context); - // the whole if block is skipped - verifyConfig(new String[] { "BEGIN", "END" }); - } - - // ---------------------------------------------------------------------------------------------------- + // ---------------------------------------------------------------------------------------------------- private void verifyConfig(String[] expected) { Stack<String> witness = new Stack<>(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/logback-examples/pom.xml new/logback-1.6.0/logback-examples/pom.xml --- old/logback-1.5.38/logback-examples/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/logback-examples/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <parent> <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> </parent> <artifactId>logback-examples</artifactId> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/pom.xml new/logback-1.6.0/pom.xml --- old/logback-1.5.38/pom.xml 2026-07-09 10:49:48.000000000 +0200 +++ new/logback-1.6.0/pom.xml 2026-07-23 14:14:06.000000000 +0200 @@ -8,7 +8,7 @@ <groupId>ch.qos.logback</groupId> <artifactId>logback-parent</artifactId> - <version>1.5.38</version> + <version>1.6.0</version> <packaging>pom</packaging> <name>Logback-Parent</name> @@ -55,7 +55,7 @@ <properties> <!-- yyyy-MM-dd'T'HH:mm:ss'Z' --> - <project.build.outputTimestamp>2026-07-09T08:49:00Z</project.build.outputTimestamp> + <project.build.outputTimestamp>2026-07-23T12:03:00Z</project.build.outputTimestamp> <!-- minimal JDK version at runtime --> <jdk.version>11</jdk.version> @@ -79,10 +79,10 @@ <!-- slf4j.version property is used below, in logback-classic/pom.xml, /logback-examples/src/main/resources/setClasspath.cmd, download.html --> - <slf4j.version>2.0.17</slf4j.version> + <slf4j.version>2.0.18</slf4j.version> <!-- logback-access-project.version property is used in logback-access/pom.xml --> <!-- It can momentarily point to a not yet released future version of logback-access. --> - <logback-access-project.version>2.0.12</logback-access-project.version> + <logback-access-project.version>2.0.14</logback-access-project.version> <cal10n.version>0.8.1</cal10n.version> <consolePlugin.version>1.1.0</consolePlugin.version> <jackson.version>2.15.0</jackson.version> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/logback-1.5.38/src/main/releases/release_1.6.0.txt new/logback-1.6.0/src/main/releases/release_1.6.0.txt --- old/logback-1.5.38/src/main/releases/release_1.6.0.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/logback-1.6.0/src/main/releases/release_1.6.0.txt 2026-07-23 14:14:06.000000000 +0200 @@ -0,0 +1,22 @@ + +Removed deprecated class ch.qos.logback.classic.turbo.ReconfigureOnChangeFilter + +Removed deprecated variable ch.qos.logback.classic.PatternLayout#DEFAULT_CONVERTER_MAP +Removed deprecated variable ch.qos.logback.classic.PatternLayout#defaultConverterMap +Removed deprecated method ch.qos.logback.classic.PatternLayout#getDefaultConverterMap() +Removed deprecated method ch.qos.logback.core.util.ExecutorServiceUtil#newExecutorService() +Removed deprecated method ch.qos.logback.core.util.VersionUtil#getVersionOfArtifact(Class<?>) +Removed deprecated method ch.qos.logback.core.pattern.PatternLayoutBase#setContextForConverters +Removed deprecated method ch.qos.logback.core.pattern.PatternLayoutEncoderBase#setOutputPatternAsPresentationHeader +Removed deprecated method ch.qos.logback.core.joran.spi.ConfigurationWatchList#changeDetected +Removed deprecated method ch.qos.logback.core.joran.GenericXMLConfigurator#informContextOfURLUsedForConfiguration +Removed deprecated method ch.qos.logback.core.model.ModelUtil#setProperty +Removed deprecated method ch.qos.logback.core.model.ModelUtil#setProperties +Removed deprecated method ch.qos.logback.core.joran.action.PreconditionValidator#generic + +Removed deprecated method ch.qos.logback.core.util.EnvUtil#logbackVersion + +Removed deprecated variable ch.qos.logback.classic.util.ContextInitializer#AUTOCONFIG_FILE +Removed deprecated variable ch.qos.logback.classic.util.ContextInitializer#TEST_AUTOCONFIG_FILE +Removed deprecated variable ch.qos.logback.classic.util.ContextInitializer#CONFIG_FILE_PROPERTY +Removed deprecated method ch.qos.logback.classic.util.ClassicEnvUtil#getVersionOfLogbackClassic
