sounds good! On 2/7/08, Felix Meschberger <[EMAIL PROTECTED]> wrote: > Hi all, > > I think this idea is certainly worth considering, though of course with > a slightly more general approach: > > (1) Extend the Resource API to include a method > > String getSuperResourceType() - returns the resource super type > or null if there > is none > > (2) JCR Resource Implementation 1: The JCR implementation of the > Resource interface based on nodes (JcrNodeResource) will return the > value of the sling:superResourceType field if such a field is defined. > The implementation based on properties (JcrPropertyResource) will return > the value of the sling:superResourceType property of the parent node > plus the property name, similar as the resource type of the property > resource is defined. > > (3) JCR Resource Implementation 2: If the sling:superResourceType field > does not exist, the super types of the primary node type may be > considered: If the primary node type as one or more base types, select > any of the non-mixin base types as the sling:superResourceType. Most of > the time, a primary node type will only have a single non-mixin base > type and multiple mixin base types. So this mechanism should be pretty > stable. In cases where this might not be the case, the primary node type > may still be defined with a sling:superResourceType property with a > predefined (auto created default value) value. > > (4) Other Resource Implementations: May or may not support super > resource types, currently, neither bundle nor the servlet based resource > implementations will probably support this. > > (5) Servlet/Script resolution: The resolver will primarily consider the > resource type. If no script could be found, the resource's super > resource type (if defined) is considered. If not script can be found, an > algorithm as follows may be applied: > > String type = resource.getSuperResourceType(); > type = JcrResourceUtil.getTypeAsPath(type); > Resource typeResource = > resourceResolver.getResource(type); > type = typeResource.getSuperResourceType(); > while (type != null) { > servlet = getServletForType(request, type); > if (servelt != null) { > ... done ... > } > type = JcrResourceUtil.getTypeAsPath(type); > Resource typeResource = > resourceResolver.getResource(type); > type = typeResource.getSuperResourceType(); > } > > > WDYT ? > > Regards > Felix > > Am Mittwoch, den 06.02.2008, 02:16 +0100 schrieb Tobias Bocanegra: > > hi, > > i think we need some sort of resource type inheritance. the use case > > is the following: > > > > assume we have: > > /apps/base/html.jsp > > /apps/base/title/png.jsp > > /content/en/sling:resourceType = "/apps/base" > > > > where the image script produces some title image. which is used: > > <img src="/content/en.title.png"/> > > > > now, i define a 'sub type' which has a different body than the base > > but uses the same image script: > > /apps/special/html.jsp > > /content/special/sling:resourceType = "/apps/special" > > > > now the img: > > <img src="/content/special.title.png"/> > > > > this wont work of course, since it does not define the title script. > > the workaround is to add a /apps/special/title/png.jsp which > > jsp-includes the base one, eg: > > > > <[EMAIL PROTECTED] file="/apps/base/title.png.jsp" %> > > > > but this is not usable at all. > > > > what i suggest is to introduce a "sling:parentType" which you place to > > the folder of the script, eg: > > > > /apps/special/sling:parentType="/apps/base" > > > > and the script resolution would check if the resource type node > > defines such a property and uses it as new resource type for the > > resolution. > > > > WDYT ? > > regards, toby > > > > btw: this is not only a problem just for 'image scripts' but also for > > all resources that are included via an url and not via the path / > > resource type. > >
-- -----------------------------------------< [EMAIL PROTECTED] >--- Tobias Bocanegra, Day Management AG, Barfuesserplatz 6, CH - 4001 Basel T +41 61 226 98 98, F +41 61 226 98 97 -----------------------------------------------< http://www.day.com >---