[ 
https://issues.apache.org/jira/browse/JCRVLT-403?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17026049#comment-17026049
 ] 

Dominik Süß commented on JCRVLT-403:
------------------------------------

[~kwin] - looking at AEM as example the discussion about given structures is 
more or less virtual as the paths are split up in libs (vendor owned) & apps 
(customer owned). Repoinit is being used to define the root nodes (e.g. apps) 
so a customer may easily define apps in a repository-structure package as given 
by the system. It is up to the ones maintaining the structures to make sure to 
not change them in backwards incompatible way (e.g. incompatible nodeTypes)  in 
the future. 
As special scenario arises for the case of overlays as overlays would be spread 
over the tree and people would not really care about the parent structures that 
in case of overlays mostly are about nt:Folder or sling:folder nodes (or maybe 
nt:unstructured). As long as it IS nt:folder one may just rely on the implicit 
creation via parent path and declare the parent structure  as given by the 
system via repository structure package.  
As soon as the corresponding ancestor node in libs is other than nt:Folder 
there is a chance that another overlay later on will depend on that node type 
to be set or even the overlay itself as nt:folder might break functionality - 
therefore it is curcial in such a case to have either a package which defines 
this node (and this should only be one package or duplication will eventually 
run out of synch) OR the structure is being defined via repoinit (again as 
single source of truth) in which case the structure would be reflected in the 
repository structure package for the ancestor check not to fail.

> Clarify usage of package type "application" for overlays
> --------------------------------------------------------
>
>                 Key: JCRVLT-403
>                 URL: https://issues.apache.org/jira/browse/JCRVLT-403
>             Project: Jackrabbit FileVault
>          Issue Type: Improvement
>            Reporter: Konrad Windszus
>            Priority: Major
>             Fix For: 3.4.4
>
>
> According to JCRVLT-170 it is not allowed to use {{includes}} or {{excludes}} 
> below a filter rule for {{application}} packages. This is a pretty common 
> pattern though for including overlays in an apps package to enforce creating 
> the ancestor nodes with the right type.
> See also 
> https://issues.apache.org/jira/browse/JCRVLT-170?focusedCommentId=17016199&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-17016199
> The use case of two different apps packages providing overlays below the same 
> ancestor node should be supported (with both apps packages not knowing 
> anything about each other) and still ensuring that the right node type is 
> being created for ancestors.
> There must be a way of enforcing a certain ancestor node type during import 
> and creating it in case it is not yet there, and failing in case if the 
> ancestor is there with a different/incompatible type.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to