Creating JSF components is not as easy as it should be.
We have a complete team here at Oracle who works around the clock to create our JSF components (the ADF Faces components).
But in JDeveloper 11 there is a new capability that greatly simplifies creating JSF components that are based on other components.
The intention is to let you create "Complex" components with ease and then reuse them in your application.
For example let's suppose that you need an address component - this is a components that will let you input street, city, state, country, zip etc. ADF Faces provides you with the basic components such as input text, select lists and the layout components.
Then using the new JSF Declarative Component feature in JDeveloper you can easily construct a compound component that include several basic components.
You can have this component accept parameters so you'll be able to customize it to your needs when you use it in various places.
You can even include areas in your components where people can add their own stuff.
Want to see how this is done?
Check out the new online demo from OTN:
P.S. - sorry if the zoom-in/zoom-out in the demo will make you dizzy - it's a new feature in Camtasia, and I'm still trying to figure out the proper use for this.