1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.webapp;
20
21 import java.util.logging.Level;
22 import java.util.logging.Logger;
23 import javax.el.ExpressionFactory;
24 import javax.faces.FacesException;
25 import javax.faces.context.ExternalContext;
26 import javax.servlet.ServletContext;
27
28
29
30
31
32
33 public class FaceletsInitilializer extends org.apache.myfaces.webapp.AbstractFacesInitializer
34 {
35 private static final Logger log = Logger.getLogger(FaceletsInitilializer.class.getName());
36
37 @Override
38 protected void initContainerIntegration(ServletContext servletContext, ExternalContext externalContext)
39 {
40 ExpressionFactory expressionFactory = getUserDefinedExpressionFactory(externalContext);
41 if (expressionFactory == null)
42 {
43 String[] candidates = new String[] { "org.apache.el.ExpressionFactoryImpl",
44 "com.sun.el.ExpressionFactoryImpl", "de.odysseus.el.ExpressionFactoryImpl",
45 "org.jboss.el.ExpressionFactoryImpl", "com.caucho.el.ExpressionFactoryImpl" };
46
47 for (String candidate : candidates)
48 {
49 expressionFactory = loadExpressionFactory(candidate, false);
50 if (expressionFactory != null)
51 {
52 if (log.isLoggable(Level.FINE))
53 {
54 log.fine("javax.el.ExpressionFactory implementation found: " + candidate);
55 }
56 break;
57 }
58 }
59 }
60
61 if (expressionFactory == null)
62 {
63 throw new FacesException("No javax.el.ExpressionFactory found. Please provide" +
64 " <context-param> in web.xml: org.apache.myfaces.EXPRESSION_FACTORY");
65 }
66
67 buildConfiguration(servletContext, externalContext, expressionFactory);
68 }
69
70 }