This page compares JSLEE deployment descriptor references and Rhino bindings. For information on how to use Rhino bindings, refer to Binding components in Rhino. |
Deployment descriptors
Deployment descriptors are generated when components are published. Outward component references in deployment descriptors (e.g. library-ref, profile-spec-ref etc) are fixed at component publish time.
Deployment descriptors (DDs) were originally thought to provide ‘ability for their values to be changed’ but unfortunately the following reasons mean their utility is marginalised:
-
the mechanism used (putting them inside a jar … sometimes jar files are signed)
-
the markup language (XML): Even though many tools exist, XML is not an easy mark-up language to work with
-
the JSLEE specification mandated validation of references as components are deployed
-
This means all bindings are effectively declared at publication time
-
-
the DD file was not the Java source file
-
This is softened originally by XDoclet, and done better through slee-annotations
-
Rhino bindings
Rhino’s bindings capability provides the loose binding capability that DDs never provided.
They can be thought of as like the ‘outwards component references in a DD’ but:
-
they only specify relationships between components
-
are outside the components that are bound together, rather than inside the jar
-
the Rhino SLEE provides additional and enhanced semantics above the JSLEE standard to support bindings
-
are derived from SLEE annotations — so they come from the Java source file
-
use JSON not XML as the markup language
Rhino binding files can provide parity with external references in DDs but they can be:
-
generated or handwritten after a component is published
-
applied inside the SLEE after all relevant components are deployed
In the Sentinel SDK, modules publish binding meta-data:
-
This meta-data includes the same information as the DDP
-
i.e. Component versions are fixed at component publish time in the meta-data
-
-
However, at the time of module binding into Rhino, exact component versions can be changed
Rhino bindings are optional. They are often used in conjunction with JSLEE deployment descriptors.