@@ -49,8 +49,9 @@ public class ConsoleAppender<E> extends OutputStreamAppender<E> {
49
49
private final static String AnsiConsole_CLASS_NAME = "org.fusesource.jansi.AnsiConsole" ;
50
50
private final static String JANSI2_OUT_METHOD_NAME = "out" ;
51
51
private final static String JANSI2_ERR_METHOD_NAME = "err" ;
52
- private final static String wrapSystemOut_METHOD_NAME = "wrapSystemOut" ;
53
- private final static String wrapSystemErr_METHOD_NAME = "wrapSystemErr" ;
52
+ private final static String WRAP_SYSTEM_OUT_METHOD_NAME = "wrapSystemOut" ;
53
+ private final static String WRAP_SYSTEM_ERR_METHOD_NAME = "wrapSystemErr" ;
54
+ private final static String SYSTEM_INSTALL_METHOD_NAME = "systemInstall" ;
54
55
private final static Class <?>[] ARGUMENT_TYPES = { PrintStream .class };
55
56
56
57
private final static String CONSOLE_APPENDER_WARNING_URL = CoreConstants .CODES_URL +"#slowConsole" ;
@@ -105,6 +106,22 @@ private OutputStream wrapWithJansi(OutputStream targetStream) {
105
106
ClassLoader classLoader = Loader .getClassLoaderOfObject (context );
106
107
Class <?> classObj = classLoader .loadClass (AnsiConsole_CLASS_NAME );
107
108
109
+ Method systemInstallMethod = classObj .getMethod (SYSTEM_INSTALL_METHOD_NAME );
110
+ if (systemInstallMethod != null ) {
111
+ systemInstallMethod .invoke (null );
112
+ }
113
+
114
+ // final Optional<Method> optSystemInstallMethod = Arrays.stream(classObj.getMethods())
115
+ // .filter(m -> m.getName().equals(SYSTEM_INSTALL_METHOD_NAME))
116
+ // .filter(m -> m.getParameters().length == 0)
117
+ // .filter(m -> Modifier.isStatic(m.getModifiers()))
118
+ // .findAny();
119
+ //
120
+ // if (optSystemInstallMethod.isPresent()) {
121
+ // final Method systemInstallMethod = optSystemInstallMethod.orElseThrow(() -> new NoSuchElementException("No systemInstall method present"));
122
+ // systemInstallMethod.invoke(null);
123
+ // }
124
+
108
125
// check for JAnsi 2
109
126
String methodNameJansi2 = target == ConsoleTarget .SystemOut ? JANSI2_OUT_METHOD_NAME
110
127
: JANSI2_ERR_METHOD_NAME ;
@@ -115,13 +132,13 @@ private OutputStream wrapWithJansi(OutputStream targetStream) {
115
132
.filter (m -> PrintStream .class .isAssignableFrom (m .getReturnType ()))
116
133
.findAny ();
117
134
if (optOutMethod .isPresent ()) {
118
- final Method outMethod = optOutMethod .orElseThrow (() -> new NoSuchElementException ("No value present" ));
135
+ final Method outMethod = optOutMethod .orElseThrow (() -> new NoSuchElementException ("No out/err method present" ));
119
136
return (PrintStream ) outMethod .invoke (null );
120
137
}
121
138
122
139
// JAnsi 1
123
- String methodName = target == ConsoleTarget .SystemOut ? wrapSystemOut_METHOD_NAME
124
- : wrapSystemErr_METHOD_NAME ;
140
+ String methodName = target == ConsoleTarget .SystemOut ? WRAP_SYSTEM_OUT_METHOD_NAME
141
+ : WRAP_SYSTEM_ERR_METHOD_NAME ;
125
142
Method method = classObj .getMethod (methodName , ARGUMENT_TYPES );
126
143
return (OutputStream ) method .invoke (null , new PrintStream (targetStream ));
127
144
} catch (Exception e ) {
0 commit comments