I discovered Juel, another Expression Language implementation. One of the key features of Juel is the fast performance.
I'm posting this because I think it is a general interest, everybody wants to boost your JSF application.
I'm trying switch from glassfish EL implementation to Juel EL, because there are benchmarks showing that a JSF table with 1350 lines took 6.5 seconds to render with Glassfish EL, and the same JSF table took 450 ms to render using Juel EL. It's a BIG improvement.
So, if you are interested in boost your Primefaces application, especially the render time, I would like to invite you to test the Juel implementation.
Pesonally, I'm having troubles to integrate Juel with Mojarra 2.0.3. It works fine with MyFaces. If you want to try it and have good results, please share your knowledge.
http://juel.sourceforge.net/guide/start.html
High performance expression language
Wow! This is fast... It works!
One note is that this isn't supported in JUEL:
You'll have to use "method invocation":
This is my stack:
Glassfish 3.0.1
Mojarra 2.0.4
Sun JDK (latest)
Primefaces 2.2.RC2
Windows XP 32bit
Here is my web.xml:
el.properties in /src/main/resources:
One note is that this isn't supported in JUEL:
Code: Select all
actionListener="#{configMB.swapAction}
Code: Select all
action="#{configMB.swapAction}
Code: Select all
actionListener="#{configMB.swapAction()}
Code: Select all
action="#{configMB.swapAction()}
Glassfish 3.0.1
Mojarra 2.0.4
Sun JDK (latest)
Primefaces 2.2.RC2
Windows XP 32bit
Here is my web.xml:
Code: Select all
<context-param>
<param-name>com.sun.faces.expressionFactory</param-name>
<param-value>de.odysseus.el.ExpressionFactoryImpl</param-value>
</context-param>
Code: Select all
javax.el.ExpressionFactory=de.odysseus.el.ExpressionFactoryImpl
javax.el.methodInvocations=true
javax.el.nullProperties=true
javax.el.varArgs=true
R: I'm using Spring 3 without problems. At the moment, it's not configurable using Spring, because does not know about Juel.Is this compatible and/or configurable using Spring? Or are there any known issues when using it with Spring (3)?
My environment is:
Sun JDK 6.0.23
Jetty 6.0.21
Mojarra 2.0.3
Juel 2.2.2
Primefaces 2.2-SNAPSHOT
Windows-7 64
I'm gonna test Mojarra 2.0.4 and post results.
I'm having problems with the following:
Suppose the following code in a XHTML page,
and the corresponding Managed Bean:
The preRender methos is not found.
Suppose the following code in a XHTML page,
Code: Select all
<f:metadata>
<f:event type="preRenderView" listener="#{messages.preRender}" />
</f:metadata>
Code: Select all
@SessionScoped
public class Messages {
public void preRender(ComponentSystemEvent cse) {
// Some usefull stuff
}
}
Code: Select all
Caused by: javax.el.MethodNotFoundException: /user/messages.xhtml @13,81 listener="#{messages.preRender}": Cannot find method 'preRender' in 'class org.aquarefx.dating.web.jsf.Messages'
at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:106)
at com.sun.faces.facelets.tag.jsf.core.DeclarativeSystemEventListener.processEvent(EventHandler.java:127)
at javax.faces.component.UIComponent$ComponentSystemEventListenerAdapter.processEvent(UIComponent.java:2378)
at javax.faces.event.SystemEvent.processListener(SystemEvent.java:102)
at com.sun.faces.application.ApplicationImpl.processListeners(ApplicationImpl.java:2040)
at com.sun.faces.application.ApplicationImpl.invokeComponentListenersFor(ApplicationImpl.java:1988)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:284)
at com.sun.faces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:242)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:104)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)
Just wanted everyone to know I've successfully using JUEL 2.2.3 on websphere 7.
Create a shared library with the following jars:
juel-api-2.2.3.jar
juel-impl-2.2.3.jar
juel-spi-2.2.3.jar
Set the shared library to load using an "isolated classloader". Create a "Parent first" classloader and it it to your JVM. Add the shared library to the classloader.
Now, follow all the instructions I posted earlier and you're good to go! JUEL makes a very noticeable performance improvement.
Create a shared library with the following jars:
juel-api-2.2.3.jar
juel-impl-2.2.3.jar
juel-spi-2.2.3.jar
Set the shared library to load using an "isolated classloader". Create a "Parent first" classloader and it it to your JVM. Add the shared library to the classloader.
Now, follow all the instructions I posted earlier and you're good to go! JUEL makes a very noticeable performance improvement.
-
- Information
-
Who is online
Users browsing this forum: No registered users and 25 guests