Hello Mario, On 9/5/07, Mario Ivankovits <[EMAIL PROTECTED]> wrote: > > Hi! > > It's the opposite, as for any backward compatible system. It means > > that you can, theoretically, run a JSF 1.1 application on a 1.2 system. > I haven't looked at it in very detail, but it seems if you provide your > own javax.faces.application.Application compiled with JSF1.1 the method > getELResolve will be used from the JSF1.2 implementation which seems to > throw an UOE as you can see here (reported from Dan Tran as Orchestra bug) > > > > java.lang.UnsupportedOperationException > > javax.faces.application.Application.getELResolver(Application.java > :443) > > > > com.sun.faces.context.FacesContextImpl.getELContext( > FacesContextImpl.java :174) > > javax.faces.component.UIViewRoot.setLocale(UIViewRoot.java:900)
This is, indeed, a compatibility issue. However, I assume it's caused because you did not use the decorator pattern when you applied your custom Application implementation, so now you're inheriting from the default implementation method behavior, which is to throw an UnsupportedOperationException. I don't think we can flag that as a spec bug though as they could hardly have done any better. The best solution for you would be to use decorator pattern, then getELResolver would be dispatched to ApplicationImpl (either MyFaces's or RI's) rather than default Application implementation. So, I'd say upward API compatibility is broken here. I call that a backward compatibility issue, since you're trying to execute an application developed with an older API with a newer version. So the new API is not backward compatible with older applications, but that's just terminology and changes nothing to your problem though. Regards, ~ Simon Ciao, > Mario > >
