[
https://issues.apache.org/jira/browse/SLING-10740?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Eric Norman updated SLING-10740:
--------------------------------
Description:
The processing of the "create path" statement calls save() at the end which
will cause a constraint violation if the nodetype of the created path contains
any properties that are declared as mandatory (and not autocreated). No
processing of "set properties" statements happens before the save() call in
AclVisitor#visitCreatePath so it does not seem to be possible to define any
mandatory properties using the current repoinit grammar.
I could see this solved in a couple ways:
# The AclVisitor#visitCreatePath could possibly pre-process any "set
properties" statements that are applicable to the created path before calling
save and then skip those same items when NodePropertiesVisitor visits the same.
# Or, the "create path" grammar could be extended to allow defining properties
to be set at the same time as the create (with a syntax that is similar to the
"set properties" statement?)
# Or, perhaps calling save in AclVisitor#visitCreatePath is not necessary?
I'm not sure of the historical reasons why save() is done there.
# Or, maybe something else I haven't thought of
was:
The processing of the "create path" statement calls save() at the end which
will cause a constraint violation if the nodetype of the created path contains
any properties that are declared as mandatory. No processing of "set
properties" statements happens before the save() call in
AclVisitor#visitCreatePath so it does not seem to be possible to define any
mandatory properties using the current repoinit grammar.
I could see this solved in a couple ways:
# The AclVisitor#visitCreatePath could possibly pre-process any "set
properties" statements that are applicable to the created path before calling
save and then skip those same items when NodePropertiesVisitor visits the same.
# Or, the "create path" grammar could be extended to allow defining properties
to be set at the same time as the create (with a syntax that is similar to the
"set properties" statement?)
# Or, perhaps calling save in AclVisitor#visitCreatePath is not necessary?
I'm not sure of the historical reasons why save() is done there.
# Or, maybe something else I haven't thought of
> Repoinit create path statement fails for node types with a mandatory property
> -----------------------------------------------------------------------------
>
> Key: SLING-10740
> URL: https://issues.apache.org/jira/browse/SLING-10740
> Project: Sling
> Issue Type: Bug
> Components: Repoinit
> Reporter: Eric Norman
> Priority: Major
> Fix For: Repoinit JCR 1.1.38
>
>
> The processing of the "create path" statement calls save() at the end which
> will cause a constraint violation if the nodetype of the created path
> contains any properties that are declared as mandatory (and not autocreated).
> No processing of "set properties" statements happens before the save() call
> in AclVisitor#visitCreatePath so it does not seem to be possible to define
> any mandatory properties using the current repoinit grammar.
> I could see this solved in a couple ways:
> # The AclVisitor#visitCreatePath could possibly pre-process any "set
> properties" statements that are applicable to the created path before calling
> save and then skip those same items when NodePropertiesVisitor visits the
> same.
> # Or, the "create path" grammar could be extended to allow defining
> properties to be set at the same time as the create (with a syntax that is
> similar to the "set properties" statement?)
> # Or, perhaps calling save in AclVisitor#visitCreatePath is not necessary?
> I'm not sure of the historical reasons why save() is done there.
> # Or, maybe something else I haven't thought of
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)