amar1104
08/12/2024, 9:05 AM<title>Error 500 java.lang.AbstractMethodError: Receiver class com.example.template.SliceHandlebarHelper does not define or inherit an implementation of the resolved method 'abstract java.lang.Object apply(java.lang.Object, wiremock.com.github.jknack.handlebars.Options)' of interface wiremock.com.github.jknack.handlebars.Helper.</title>
Is there anything that I need to do? The SliceHandlebarHelper already implements Helper. TIAamar1104
08/12/2024, 9:06 AMpublic class SliceHandlebarHelper extends HandlebarsHelper<Object> {
@Override
public Object apply(Object o, Options options) throws IOException {...
amar1104
08/12/2024, 9:12 AMLee Turner
08/12/2024, 9:18 AMOptions
class for example.Lee Turner
08/12/2024, 9:19 AMamar1104
08/12/2024, 9:23 AMamar1104
08/12/2024, 9:28 AMpublic class TemplateExtensionFactory implements ExtensionFactory {
@Override
public List<Extension> create(WireMockServices services) {
return List.of(new ListTemplateHelperProviderExtension());
}
}
TemplateHelperProviderExtension
public class ListTemplateHelperProviderExtension implements TemplateHelperProviderExtension {
private final Map<String, Helper<?>> listTemplateHelpers = new HashMap<>();
public ListTemplateHelperProviderExtension() {
listTemplateHelpers.put("slice", new SliceHandlebarHelper());
}
@Override
public Map<String, Helper<?>> provideTemplateHelpers() {
return listTemplateHelpers;
}
@Override
public String getName() {
return "list";
}
}
SliceHandlebarHelper
import com.github.jknack.handlebars.Options;
import com.github.tomakehurst.wiremock.extension.responsetemplating.helpers.HandlebarsHelper;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
import static java.util.Collections.emptyList;
public class SliceHandlebarHelper extends HandlebarsHelper<Object> {
@Override
public Object apply(Object o, Options options) throws IOException {
...
}
}
Lee Turner
08/12/2024, 9:52 AMamar1104
08/12/2024, 10:08 AMimplementation of the resolved method 'abstract java.lang.Object apply(java.lang.Object, <http://wiremock.com|wiremock.com>.github.jknack.handlebars.Options)
it is expecting wiremock.com.github.jknack.handlebars.Options instead of com.github.jknack.handlebars.Options . Gradle has relocate option
shadowJar {
relocate "com.github.jknack", 'wiremock.com.github.jknack'
}
looking for maven alternative.