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..

Reply via email to