Well, the problem is that the FacesConfigurator only searches WEB-INF/lib and META-INF/services for jars with the faces-config.xml file.
Does this mean that during startup, we should try to check every jar in the current thread's classloader hierarchy for jars with faces-config.xml? That seems like it would take a lot of time. On Thu, 30 Dec 2004 10:27:58 -0800, Craig McClanahan <[EMAIL PROTECTED]> wrote: > On Thu, 30 Dec 2004 18:54:41 +0100, Alessandro Polverini > <[EMAIL PROTECTED]> wrote: > > > I've read and understood the documents Martin Cooper in another mail > > pointed me at (thanks), anyway, this is what I read on the JSF specs, > > paragraph 10.2.5 and 10.2.6: > > > > "These classes and resources comprise the implementation of the JSF APIs > > that is provided by a JSF implementor. Typically, such classes will be > > provided in the form of one or more JAR files, which can be either > > installed with the container s shared class facility, or included in > > the /WEB-INF/lib directory of a web application archive." > > > > So, if I'm not mistaken, the specs explicitly says that those jar can be > > shared among all applications. > > > > The spec does indeed *allow* for a JSF implementation to be shared in > such a manner, placing it in a shared parent class loader. This will > be important, for example, in the J2EE 5.0 platform, of which JSF 1.1 > will be a required part (so applications will be able to assume that > it's built in, just like the servlet and JSP APIs are). > > What the spec does not cover (because it's an implementation issue) is > that the *implementation* is responsible for making itself actually > work when it is deployed in such a way. The most common issue is > where the framework needs to instantiate an object of some class (such > as a UIComponent) that is provided by the application. You need to > load the class from the *application* class loader, rather than the > class loader that loaded your framework, in order for these classes to > be accessible. > > Fortunately, the server provides you convenient access to the webapp's > class loader, so you can do things like this: > > String className = ...; // Name of some application provided class > ClassLoader cl = Thread.currentThread().getContextClassLoader(); > Class clazz = cl.loadClass(className); > UIComponent component = (UIComponent) clazz.newInstance(); > > But the framework (in this cases, the MyFaces implementation of JSF) > must be specifically programmed to do this kind of thing. > > Craig > -- -Heath Borders-Wing [EMAIL PROTECTED]

