### Question:
Template { private String resolve(String placeholder, DeclaringComponent currentComponent, Resolver resolver) { if (isValidPlaceholder(placeholder)) { return doResolve(placeholder, resolver, currentComponent); } String newFormat = "${this@" + placeholder.substring("${".length()); if (!isValidPlaceholder(newFormat)) return null; try { return doResolve(newFormat, resolver, currentComponent); } catch (RuntimeException e) { return null; } } Template(String templateName, File source, Pattern pattern); Template resolveBy(Resolver resolver, DeclaringComponent currentComponent); Template postProcessContent(TemplateContentPostProcessor postProcessor,
                                       String templateType, TypedProperties properties); void copyTo(File destinationFile); static boolean isValidPlaceholder(String value);  }### Answer:
@Test void testSystemProperties() { resolve("${system@user.name}", System.getProperty("user.name")); }
@Test void testEscaped() { resolve("\\${param:default}", "${param:default}"); }
@Test void testExtendedPattern() { resolve("aaa${env}bbb\\${xxx}ccc${missing_param:---}ddd", "aaauatbbb${xxx}ccc---ddd"); }