Universal intro
What is the universal intro?
The universal intro is complete, ready out-of-the-box implementation of intro with a
pre-defined page structure that all products can rely on (as API). It is a complete
implementation, including presentation, but without content, and can be used by
any product.
Motivation
Prior to 3.2, the intro framework provided for defining welcome pages with
unique contribution points or 'anchors'. Other components could provide extensions
that add content into these anchors. Although this mechanism worked well for closed
solutions, it is increasingly hard to maintain for large products. Due to the
'bottom-up' nature of contributions from clients into the welcome pages, it is hard
to control the final result and resolve conflicting contributions.
Take, for example, the provider of a reusable eclipse feature. He/she has
created a useful feature consisting of a number of plug-ins. The feature can
take part in several products, each one having its own Welcome implementation.
There are several problems that the feature provider will face when creating
Welcome contribution:
-
Since it must contribute into a number of different products, the feature
must know about the page identifiers for each of the products upfront.
-
It is entirely possible that one of the products will have a Welcome
implementation that is completely different from what the feature provider
expects; the contribution will not show up in these products.
-
Even if the products share a common Welcome implementation, the importance
of the feature (and hence its relative position on the page) is not going to
be the same. The feature can be one of the most important components in the
product, or may be ranked as 'See Also'. Nevertheless, the feature provider is
asked to fully spell out the location on the target page in advance.
It is clear that the Welcome contribution of a reusable feature is be much easier
to develop with the following conditions in place:
-
There is a common Welcome implementation that can be counted on (as a form of API)
-
Delayed target page resolution (so that the decision of the final position
of the contribution is left to the product assembler)
Enter universal intro
The universal intro is based on experience with intro implementations and the
need to have an implementation in place that contributors can count on. The
implementation is built using the existing intro framework, and for this reason,
all existing intro implementation will continue to work and clients will be able
to switch to the new model according to their schedules. Of course, as long as
they don't switch, they will not reap the benefits of the new implementation
such as intelligent content merging, new visual solution etc.
Benefits
Some of the benefits of using the universal intro include:
-
Products can simply to point to the universal intro without the need to
implement an intro from scratch
-
Each product should be able to configure the intro to a certain degree (title,
branding image, presentation theme)
-
A number of root pages that cover most of the products' needs are be provided.
The list of pages to show is also configurable
-
The presentation is sufficiently product-agnostic to better suit the
increasingly componentized world. It works well with both monolithic products
and 'best of breed' eclipse products assembled with components created by
different companies
-
End-users can configure the universal intro in a user-friendly way, via the
preference page