JSF Web-Fragment and
JSF Application target three different types of software components (jar and war files):
|Component Type||Description||File Type|
|Web Fragment||This is a component that contains web pages and calls to web services and databases.
It’s packaged as a JEE web fragment.
|Web Fragment Interfaces||This is a component that contains interfaces, enumerations and helper classes.
It’s packaged as jar file and doesn’t have any dependencies to other web fragment or web fragment interface components.
One of its purposes is to avoid circular dependencies when a web application contains several web fragment components. You for instance couldn’t build such components with Maven.
|Web Application||This is a component that represents a web application and can be deployed in a JEE application server.
A web application contains one or more ui web fragment and ui web fragment interface components. The web application contains the application menu and programatical customization for the web pages.
A web application uses one or more of the web fragment components. A web fragment component contains one or more web pages (mainly represented by XHTML files and Java classes) but doesn’t necessarily use all of them.
Often a web application will use additional generated code to access web services, databases and EJBs. Its not the JSF generators that create that code, though. See here to find more information on useful combinations of generators.
The generated code depends on a few runtime libraries. Dependencies to these libraries have to be set up in your build configuration (e.g. Maven). Some runtime libraries are open source. Two components are not open source and can be accessed via the URL https://maven.virtual-developer.com/repository/gs-3rd-party/:
- com.gs.gapp.rt.jsf … a component that includes PrimeFaces premium layouts
- com.gs.gapp.rt.jsf-test … a component that includes general test support for testing web applications with Selenium
These open source components can be accessed via the URL https://maven.virtual-developer.com/repository/maven-public/:
- com.gs.gapp.rt.ejb … a component that includes common parent classes and utility classes to be used in conjunction with generated EJB and DTO classes
- org.gs.gapp.rt.jsf … a component that includes common parent classes and utility classes to be used in conjunction with generated JSF classes
The following picture shows the dependenciesn between the components. These dependencies have to be set up when you configure your build environment.