More interesting output. I added this to the MixinWorker
public void transform(ClassTransformation transformation, MutableComponentModel model) { List<TransformMethod> methods = transformation.matchMethods( new Predicate<TransformMethod>() { @Override public boolean accept(TransformMethod method) { if ( "getClientId".equals(method.getName()) ) { return true; } return false; } }); if ( methods == null || methods.size() == 0 ) { return; } model.addMixinClassName(Selector.class.getName(),"before:*"); for ( String name : model.getMixinClassNames() ) { if ( model.getOrderForMixin(name) != null) { for ( String order : model.getOrderForMixin(name)) { System.out.println("order: " + model.getComponentClassName() + ":" + name + ":" + order); } } } } to make sure the order was what I would expect and I get this order: org.apache.tapestry5.corelib.components.Any:org.got5.tapestry5.jquery.mixins.Selector:before:* order: org.apache.tapestry5.corelib.base.AbstractLink:org.got5.tapestry5.jquery.mixins.Selector:before:* order: org.apache.tapestry5.corelib.components.Form:org.got5.tapestry5.jquery.mixins.Selector:before:* order: org.apache.tapestry5.corelib.base.AbstractField:org.got5.tapestry5.jquery.mixins.Selector:before:* order: org.apache.tapestry5.corelib.components.Submit:org.got5.tapestry5.jquery.mixins.Selector:before:* It appears the class of the model passed to me is not always the component. If the class directly extends Object I get the component class otherwise not. --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org For additional commands, e-mail: users-h...@tapestry.apache.org