Hi,
I'm upgrading my app from Tapestry 5.2.6 to 5.3.1.
I've got the following exception:
Exception constructing service 'MarkupRenderer': Failure processing
override from AppModule.contributeMarkupRenderer(OrderedConfiguration,
Environment) (at AppModule.java:123): Override for object
'DefaultValidationDecorator' is invalid as it does not match an existing
object.
I'm overriding DefaultValidationDecorator on AppModule using this code:
public static void
contributeMarkupRenderer(OrderedConfiguration<MarkupRendererFilter>
configuration,
final Environment
environment) {
MarkupRendererFilter validationDecorator = new
MarkupRendererFilter() {
public void renderMarkup(MarkupWriter writer, MarkupRenderer
renderer) {
ValidationDecorator decorator = new
CustomValidationDecorator(environment, writer);
environment.push(ValidationDecorator.class, decorator);
renderer.renderMarkup(writer);
environment.pop(ValidationDecorator.class);
}
};
configuration.override("DefaultValidationDecorator",
validationDecorator);
}
And... , my CustomValidationDecorator class just contains this:
public CustomValidationDecorator(Environment environment, MarkupWriter
markupWriter) {
this.environment = environment;
this.markupWriter = markupWriter;
}
@Override
public void insideField(Field field) {
ValidationTracker tracker =
environment.peekRequired(ValidationTracker.class);
if (tracker.inError(field)) {
markupWriter.getElement().addClassName("error_field");
}
}
What should I fix in order to make overriding DefaultValidationDecorator
can work on Tapestry 5.3.1?
Please give me a clue..
Thanks in advance..