mirror of
https://github.com/OpenAPITools/openapi-generator.git
synced 2025-06-29 12:10:54 +00:00
fix(openapi-generator): fixes GlobalSettings (#20744)
* fix(openapi-generator): fixes GlobalSettings class to avoid ClassCastException when GlobalSettings#log is invoked * fix(openapi-generator): sets GlobalSettings log level to debug
This commit is contained in:
parent
191eba4afa
commit
995c6c5a88
@ -38,12 +38,13 @@ public class GlobalSettings {
|
|||||||
|
|
||||||
private static final Logger LOGGER = LoggerFactory.getLogger(GlobalSettings.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(GlobalSettings.class);
|
||||||
|
|
||||||
private static ThreadLocal<Properties> properties = new InheritableThreadLocal<Properties>() {
|
private static ThreadLocal<Properties> properties = new InheritableThreadLocal<>() {
|
||||||
@Override
|
@Override
|
||||||
protected Properties initialValue() {
|
protected Properties initialValue() {
|
||||||
// avoid using System.getProperties().clone() which is broken in Gradle - see https://github.com/gradle/gradle/issues/17344
|
// avoid using System.getProperties().clone() which is broken in Gradle - see https://github.com/gradle/gradle/issues/17344
|
||||||
Properties copy = new Properties();
|
Properties copy = new Properties();
|
||||||
copy.putAll(System.getProperties());
|
System.getProperties()
|
||||||
|
.forEach((k,v) -> copy.put(String.valueOf(k), String.valueOf(v)));
|
||||||
return copy;
|
return copy;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -69,8 +70,10 @@ public class GlobalSettings {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void log() {
|
public static void log() {
|
||||||
StringWriter stringWriter = new StringWriter();
|
if(LOGGER.isDebugEnabled()) {
|
||||||
properties.get().list(new PrintWriter(stringWriter));
|
StringWriter stringWriter = new StringWriter();
|
||||||
LOGGER.debug("GlobalSettings: {}", stringWriter);
|
properties.get().list(new PrintWriter(stringWriter));
|
||||||
|
LOGGER.debug("GlobalSettings: {}", stringWriter);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,36 @@
|
|||||||
|
package org.openapitools.codegen.config;
|
||||||
|
|
||||||
|
import ch.qos.logback.classic.Level;
|
||||||
|
import ch.qos.logback.classic.Logger;
|
||||||
|
import java.util.Properties;
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.assertj.core.api.Assertions.assertThatNoException;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.testng.annotations.BeforeClass;
|
||||||
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test class for {@link GlobalSettings}
|
||||||
|
* @author Edoardo Patti
|
||||||
|
*/
|
||||||
|
public class GlobalSettingsTest {
|
||||||
|
|
||||||
|
private static final Object OBJECT = new Object();
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public void setUp() {
|
||||||
|
((Logger) LoggerFactory.getLogger(GlobalSettings.class)).setLevel(Level.DEBUG);
|
||||||
|
Properties props = new Properties(2);
|
||||||
|
props.put("test1", OBJECT);
|
||||||
|
props.put(OBJECT, "test2");
|
||||||
|
System.getProperties().putAll(props);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testNonStringSystemProperties() {
|
||||||
|
assertThat(GlobalSettings.getProperty(OBJECT.toString())).isNotNull();
|
||||||
|
assertThat(GlobalSettings.getProperty("test1")).isNotNull();
|
||||||
|
assertThatNoException().isThrownBy(GlobalSettings::log);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user