Development made easy :-)

A library to make life of JSF developers a bit easier. Ever wondered whats in the component tree or why a component doesn't show up? JSFInspector helps to investigate the issue. JSFInspector is used during development time. It comes as handy JAR file, no special IDE or plugin required.

Get started!

How many components are there?

Since JSF is a stateful serverside component framework, size of the component tree matters. The more components on a view, the more time is spent on instantiation, validation and rendering. Do you know how many components are on every view of your application and whats the impact on performance? JSFInspector helps to find out.

Where are my components?

JSFInspector gives you a list of all components in the current view. Those you declared in XHTML / JSP, those you added programmatically, those that were created by the framework or a library. And those that you forgot where and why you added them. Hovering a components clientId in JSFInspectors component view highlights its visual output, making it easy to find them in complex layouts (as long as the component was rendered).

What is taking so long?

JSFInspector creates an overview of the lifecycle phases. The overview features the duration and status of each lifecycle phase. It offers an easy way to find out which phase was completed or if validation did fail. It is especially useful to find bugs related to the immediate attribute in views with complex component structures.
JSFInspector comes as a JAR that simply needs to be placed in your applications classpath. No further configuration is needed. Once the JAR is available in your application, the inspector component can be used by declaring the JSFInspector namespace. The inspector component may be placed anaywhere in a facelet or template:
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:h="http://java.sun.com/jsf/html"
      xmlns:inspect="http://thomas-asel.de/jsfinspector">

            ...

            <inspect:tree />
            <inspect:lifecycle />
            
            ...

</html>

Get it with Maven ...

Add these coordinates to your POM:

    <dependency>
        <groupId>de.thomasasel</groupId>
        <artifactId>jsfinspector</artifactId>
        <version>0.8.2</version>
    </dependency>
                

... or download the binaries

As a non-Maven user you may simply want to download the JAR using this link.

Usage

Add the namespace to your facelet and and add any of the components anywhere ony our page as shown above.
JSFInspector is only displayed if JSF is running in develoment mode. This is what JSFInspector looks like in a typical scenario:

Optional Configuration

JSFInspector comes with a bundled version of jQuery. Chances are good that your project also uses jQuery so you may want JSFInspector to suppress its bundled version. You can suppress the bundled version of jQuery and also the CSS file defining the styles for JSFInspector by simply adding these context params to web.xml:

    <context-param>
        <param-name>de.thomasasel.jsfinspector.SUPPRESS_JQUERY</param-name>
        <param-value>true</param-value>
    </context-param> 

    <context-param>
        <param-name>de.thomasasel.jsfinspector.SUPPRESS_CSS</param-name>
        <param-value>true</param-value>
    </context-param>