<html><head><meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div><blockquote type="cite" class=""><div class=""><span style="caret-color: rgb(0, 0, 0); font-family: Helvetica; font-size: 14px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; float: none; display: inline !important;" class="">because then you can use that S.fluent().call().chain() code in other contexts </span></div></blockquote></div><br class=""><div class="">I see. You can actually decouple, though it might need a bit more work depending on what you need. For example, the lambda can be defined independently. E.g.</div><div class=""><br class=""></div><div class="">Statement<Schema> s = s -> s.name(foo).age(bar);</div><div class=""><br class=""></div><div class="">This statement can then be re-used and even extended. There's an example here - <a href="https://github.com/Randgalt/maple/blob/master/maple-examples/src/main/java/com/myco/app/request/UpdateService.java" class="">https://github.com/Randgalt/maple/blob/master/maple-examples/src/main/java/com/myco/app/request/UpdateService.java</a>. </div><div class=""><br class=""></div><div class="">Maple has a bunch on internal utils that could be useful outside of logging. For example, you can convert a statement lambda into a list of Names/Values via the MapleSpi factory. E.g.</div><div class=""><br class=""></div><div class="">// save this meta instance somewhere</div><div class="">var metaIInstance = MapleSpi.instance().generate(Schema.class);</div><div class=""><br class=""></div><div class="">// convert a statement into names/values</div><div class="">var instance = metaInstance.newSchemaInstance();</div><div class="">s.handle(instance);</div><div class="">var namesValues = metaIInstance.toNamesValues(instance);</div><div class=""><br class=""></div><div class="">If this became a desired idiom I could make a little utility for this bit.</div><div class=""><br class=""></div><div class=""><blockquote type="cite" class="">OT3H I may be moving towards log4j2 in the next months anyway</blockquote><br class=""></div><div class="">FWIW - I wrote Maple in an implementation neutral way. It would be very easy to add a direct Log4J2 backend for it. Just a few classes to implement.</div><div class=""><br class=""></div><div class="">-JZ</div></body></html>