There are many JSF component libraries in which more than one JSP tag and
renderer combination is used with the same component, or in which the tags have
attributes without corresponding component properties. Since Visual Web Pack
models components only, there is currently no way to model these "orphaned" tags
This is a common design pattern in JSF, since components are often designed to
be independent of rendering context.
One solution is to use "wrapper components" at design-time, to model the
"orphaned" tags and attributes. The design-time component class must extend the
run-time component class, but would probably act as a delegate to an instance of
the run-time class. There is one wrapper component per tag, and a property
definition for all unmatched attributes in the tag. Insync models the
design-time component, but persists all changes using references to the run-time
component. Properties defined only by the design-time component can be
manipulated at design-time as are all other properties: they appear in the
properties sheet, and are available as customizers. But they will be persisted
only as tag attributes.
Design-time component wrapper classes could also help to solve another problem.
Component tag classes sometimes have special configuration logic that is used to
process attribute values before they are set as property values on the
component. Setter methods in the wrapper class could be used to duplicate this