If I understand the spec the right way, every implementation of JSR 170
should allow to register custom node types with custom supertypes and it
is not only a feature of Jackrabbit.
that's not correct. node type management (i.e. node type registration) has
intentionally been left out in the spec. registration of custom node types
is an implementation-specific feature.
I knew that registering nodetypes is not part of the spec from day one
since I read the spec ;-)... I was just not sure anymore if _custom_
supertypes allowed.
Additionally a subtype has to
inherit all property and child node definitions of the
supertype.
correct.
Perfect. After reading the section 6.7.8 of the spec I was not 100%
sure anymore and I've seen, inheritance of custom supertypes is not
tested in the TCK.
The inheritance of the pure node type definition(s)
(isMandantory, isAutoCreated, defaultPrimaryType, ... without
the property and child node definitions) and the possible conflicts
with the inheritance of more than one node type definition is not part
of the spec. Am I right with that?
i can't follow you here, sorry.
I afraid I wasn't clear enough with my questions. I just tried to figure
out what the section 6.7.8 of the spec means. At the moment I think I
know what I need to know.
The section 6.7.8 of the spec says:
"Inheritance Among Node Types
A node type may have one (or in some implementations, more than
one) supertype. A subtype inherits the property and child node
definitions of its supertype(s) (and possibly other attributes) and
may declare further property or child node definitions.
Configuring the inheritance hierarchy of node types available within
a particular repository is outside the scope of this specification. For
this reason the specification does not define how conflicts between
multiple super types are resolved or exactly which attributes of a
node type (other than its child node and property definitions) are
inherited by its subtypes. For example, the question of whether the
orderable child nodes setting of a node type is inherited by its
subtypes is left up to the particular implementation. See also,
6.7.22.2 Additions to the Hierarchy.
Some repositories may support multiple inheritance of node types.
As a result, the methods for discovering node type information
must allow for the possibility that a node type has more than one
supertype. See 6.7.11 Discovering the Definition of a Node Type."
Thank you very much for your feedback.
Regards,
Sandro