faces-config. xml is a key configuration file type within a Java Server Faces (JSF) software implementation. JavaServer Faces ( JSF) is a Java -based Web application framework intended to simplify development of User interfaces for Java
The Java Platform, Enterprise Edition specification refers to this type of file as an Application Configuration Resource File. Java Platform Enterprise Edition or Java EE is a widely used platform for server programming in the Java programming language
There may be more than such file within a Java Enterprise application.
The faces-config. xml file effectively provides the glue that links together multiple elements in JSF's interpretation of the Model-view-controller (MVC), Factory Pattern and Inversion of Control (IoC) software design patterns. Model-view-controller ( MVC) is an architectural pattern used in Software engineering. See also Factory method pattern The Factory pattern is a creational design pattern used in software development to encapsulate the Inversion of control, or IoC, is an abstract principle describing an aspect of some Software architecture designs in which the flow of control of a system
By centralising all of these configuration aspects of JSF in a single location, faces-config. xml itself implements the Encapsulation design pattern.
The format of the file is XML version 1. Don't change "Extensible" 0 compliant. The structure of the file is defined by a Document Type Definition (DTD), which is subject to license terms of Sun Microsystems Inc. Document Type Definition ( DTD) is one of several SGML and XML schema languages and is also the term used to describe a document or portion thereof that This is published at:
http://java.sun.com/dtd/web-facesconfig_1_0.dtd
The top level definition elements within a Version 1. 0 Java Server Faces configuration are as follows:
Validator definitions also include related properties (JavaBeans properties of the Validator implementation class that may be configured to affect the operation of the Validator) and attributes (configuration elements that may be configured on the corresponding User Interface Component in order to affect the operation of the Validator).
Although the structure and usage of the faces-config. xml achieves some generally desirable goals (central configuration control, flexibility to delegate local configuration), JSF configurations are often regarded as being somewhat brittle, non-portable, non-performant and difficult to manage.
Making a wrong configuration change to a faces-config. xml file can break an application after it has been tested.
In part this stems from the use of raw text XML to perform functions typically performed by source code (which would achieve a higher level of control) or by system configuration parameters stored in an application's database (which would achieve a higher level of flexibility to make on the fly changes).
Alternative frameworks such as Wicket (see ptrthomas link below) use only HTML and Java source code.
The forthcoming JSF 2. 0 standard is set to include new features that allow software configuration aspects that are currently managed through the use of faces-config. xml file(s) to be packaged into robust software deliverables that have no dependencies on external text configuration data in order to be deployed into compliant application server containers.