Project Documentation

1. Setup

1.1. Does Apache Trinidad depend on any particular implementation of JSF?

No. Apache MyFaces Trinidad runs on any implementation of the JSF 1.1 specification (or later). Apache Trinidad can be used with either the Sun Reference Implementation or MyFaces. Apache Trinidad offers a JSF 1.2-based branch that requires a JavaEE 5 engine.

1.2. What runtime or design time tools can I use to run the demo WAR?

Please see the platform section on the installation page for information on how to deploy to JDeveloper, standalone OC4J, and Tomcat. We'd appreciate any contributions of information on deployment to other servlet engines (as best as we know, all are supported).

2. Architecture

2.1. Can I use standard Faces or MyFaces Tomahawk tags with Apache Trinidad?

Yes; standard Faces tags and Tomahawk tags can be used with MyFaces Trinidad. You can even use <h:form> instead of <tr:form> without losing any MyFaces Trinidad functionality.

2.2. Why would I use MyFaces Trinidad instead of standard Faces?

Good question. Here's a list of some of the advantages

  1. Rich DHTML client-side renderers
  2. Provide more efficient implementations of client-side state saving (reduced per-component size)
  3. Rich set of components, validators, and converters
  4. MyFaces Trinidad tags often offer more features than the standard tags; for example, all input components offer built-in label and message display support ( For more information on the differences between the MyFaces Trinidad tags and the standard Faces tags, please see the following document ).
  5. Client-side converters/validators - JavaScript enabled converters and validators that attempt to catch and display errors on the client
  6. MyFaces Trinidad tags can be used inside of the <tr:forEach> tag (it is, unfortunately, not possible to support standard tags inside <tr:forEach>). (This limitation does not apply in JSF 1.2.)
  7. Accessibility - support for Section 508
  8. Bidirectional language support - Apache Trinidad components automatically render themselves appropriately for bidirectional languages. Users can also use the "start" and "end" constants instead of "left" and "right"
  9. Partial Page Rendering (PPR) - Javascript-free support for rerendering any of the Trinidad components
  10. Skinning - support for adjusting the look-and-feel of components with an extended CSS format

2.3. What is the relationship between Apache Trinidad and ADF UIX?

Apache Trinidad is a significant evolution of the ADF UIX code. The proprietary API (UINode, RenderingContext, etc.) of ADF UIX has been replaced with the standard JSF API, and we've added many features to our components that take advantage of the JSF architecture. In making this change, we've also overhauled nearly all our component names and attribute names to fit in closely with JSF naming conventions. ADF UIX and Apache Trinidad can be installed in a single web application without conflicts.

3. Development

3.1. When I run a JSP, I see 'javax.servlet.jsp.JspException: Cannot find FacesContext'

You cannot directly point to a JSF JSP file; you either need to add "/faces" after the servlet context path, or change the suffix (in the URL only) to ".faces".

3.2. I'm getting a java.lang.ClassCastException in UIXComponentTag.setProperties()

JSF requires the <f:view> JSP tag around all JSF JSP tags; this obscure error is the result of failing to include <f:view>. (As of May 2007, a better error message is given.)

3.3. I'm having a problem seeing dialog windows

You may have trouble seeing dialogs if you have popup blockers installed.

3.4. My page looks really bad, as if it was totally unstyled

You may have not have configured your Resources Servlet in your web.xml. Please refer to installation instructions to configure the ResourceServlet.

3.5. My input field is just showing as plain text when not in read-only mode.

You may be missing the "setXyz()" function matching the "getXyz()" function that is controlling your field's value, or you might have mispelled its name. This makes that property read-only. When Apache Trinidad detects that an input field is using a read-only model property, it automatically switches the field to read-only mode, which is why it looks like plain text. For what it's worth, if you tried the same model property with <h:inputText>, it'd look fine when you first render the page, but JSF would throw an exception when you posted back to the server and it couldn't write the new value into the model.

4. Status

4.1. What is the status of the Apache Trinidad Podling?'

Apache Trinidad graduated from the Incubator in April, 2007.