On 01/11/2011 02:17 PM, Marius Dumitru Florea wrote: > Hi Anca, > > On 01/10/2011 12:53 PM, lucaa (SVN) wrote: >> Author: lucaa >> Date: 2011-01-10 11:53:02 +0100 (Mon, 10 Jan 2011) >> New Revision: 33871 >> >> Added: >> platform/core/trunk/xwiki-skin/ >> platform/core/trunk/xwiki-skin/pom.xml >> platform/core/trunk/xwiki-skin/src/ >> platform/core/trunk/xwiki-skin/src/main/ >> platform/core/trunk/xwiki-skin/src/main/java/ >> platform/core/trunk/xwiki-skin/src/main/java/org/ >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/ >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/skinx/ >> >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/skinx/SkinExtension.java >> Modified: >> platform/core/trunk/pom.xml >> Log: >> XWIKI-5868: Add API for manipulating skin extensions as components >> >> >> Modified: platform/core/trunk/pom.xml >> =================================================================== >> --- platform/core/trunk/pom.xml 2011-01-10 09:32:57 UTC (rev 33870) >> +++ platform/core/trunk/pom.xml 2011-01-10 10:53:02 UTC (rev 33871) >> @@ -170,6 +170,7 @@ >> <module>xwiki-csrf</module> >> <module>xwiki-extension</module> >> <module>xwiki-legacy</module> >> +<module>xwiki-skin</module> >> </modules> >> <profiles> >> <profile> >> >> Added: platform/core/trunk/xwiki-skin/pom.xml >> =================================================================== >> --- platform/core/trunk/xwiki-skin/pom.xml (rev 0) >> +++ platform/core/trunk/xwiki-skin/pom.xml 2011-01-10 10:53:02 UTC (rev >> 33871) >> @@ -0,0 +1,32 @@ >> +<?xml version="1.0" encoding="UTF-8"?> >> +<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >> http://maven.apache.org/xsd/maven-4.0.0.xsd" >> xmlns="http://maven.apache.org/POM/4.0.0" >> + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> >> +<modelVersion>4.0.0</modelVersion> >> +<parent> >> +<groupId>org.xwiki.platform</groupId> >> +<artifactId>xwiki-core-parent</artifactId> >> +<version>3.0-SNAPSHOT</version> >> +</parent> >> +<artifactId>xwiki-core-skin</artifactId> >> +<name>XWiki Core - Skin Component</name> >> +<description>XWiki Core - Skin Component</description> >> +<properties> >> +<xwiki.clirr.skip>true</xwiki.clirr.skip> >> +</properties> >> +<dependencies> >> +<dependency> >> +<groupId>org.xwiki.platform</groupId> >> +<artifactId>xwiki-core-component-default</artifactId> >> +<version>${project.version}</version> >> +</dependency> >> +</dependencies> >> +<build> >> +<plugins> >> +<!-- Apply the Checkstyle configurations defined in the top level pom.xml >> file --> >> +<plugin> >> +<groupId>org.apache.maven.plugins</groupId> >> +<artifactId>maven-checkstyle-plugin</artifactId> >> +</plugin> >> +</plugins> >> +</build> >> +</project> >> >> >> Property changes on: platform/core/trunk/xwiki-skin/pom.xml >> ___________________________________________________________________ >> Added: svn:keywords >> + Author Id Revision HeadURL >> Added: svn:eol-style >> + native >> >> Added: >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/skinx/SkinExtension.java >> =================================================================== >> --- >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/skinx/SkinExtension.java >> (rev 0) >> +++ >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/skinx/SkinExtension.java >> 2011-01-10 10:53:02 UTC (rev 33871) >> @@ -0,0 +1,58 @@ >> +/* >> + * See the NOTICE file distributed with this work for additional >> + * information regarding copyright ownership. >> + * >> + * This is free software; you can redistribute it and/or modify it >> + * under the terms of the GNU Lesser General Public License as >> + * published by the Free Software Foundation; either version 2.1 of >> + * the License, or (at your option) any later version. >> + * >> + * This software is distributed in the hope that it will be useful, >> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU >> + * Lesser General Public License for more details. >> + * >> + * You should have received a copy of the GNU Lesser General Public >> + * License along with this software; if not, write to the Free >> + * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA >> + * 02110-1301 USA, or see the FSF site: http://www.fsf.org. >> + */ >> +package org.xwiki.skinx; >> + >> +import java.util.Map; >> + >> +import org.xwiki.component.annotation.ComponentRole; >> + >> +/** >> + * Allows a component to use a skin file (js or css), in the current page >> being rendered. >> + * >> + * @version $Id$ >> + * @since 3.0M1 >> + */ >> +...@componentrole >> +public interface SkinExtension >> +{ >> + /** >> + * Mark a resource as used in the current result. A resource is >> registered only once per request, further calls will >> + * not result in additional links, even if it is pulled with different >> parameters. >> + * >> + * @param resource The name of the resource to pull. > >> + * @see AbstractSkinExtensionPlugin#use(String, XWikiContext) > > I don't like the fact that the component interface points to an > implementation. What others think?
Sure, I agree. I must have forgot it there... But in this case it's not that clear to me, in the case of plugins I cannot say for sure what's implementation and what's not. Would it be ok if it pointed to the skin extension plugin API? Thanks, Anca > > Thanks, > Marius > >> + */ >> + void use(String resource); >> + >> + /** >> + * Mark a skin extension document as used in the current result, >> together with some parameters. How the parameters >> + * are used, depends on the type of resource being pulled. For example, >> JS and CSS extensions use the parameters in >> + * the resulting URL, while Link extensions use the parameters as >> attributes of the link tag. A resource is >> + * registered only once per request, further calls will not result in >> additional links, even if it is pulled with >> + * different parameters. If more than one calls per request are made, >> the parameters used are the ones from the last >> + * call (or none, if the last call did not specify any parameters).<br >> /> >> + * TODO: document here the parameters that can be used and their >> meaning. >> + * >> + * @param resource The name of the resource to pull. >> + * @param parameters The parameters for this resource. >> + * @see AbstractSkinExtensionPlugin#use(String, Map, XWikiContext) >> + */ >> + void use(String resource, Map<String, Object> parameters); >> +} >> >> >> Property changes on: >> platform/core/trunk/xwiki-skin/src/main/java/org/xwiki/skinx/SkinExtension.java >> ___________________________________________________________________ >> Added: svn:keywords >> + Author Id Revision HeadURL >> Added: svn:eol-style >> + native >> >> _______________________________________________ >> notifications mailing list >> [email protected] >> http://lists.xwiki.org/mailman/listinfo/notifications > _______________________________________________ > devs mailing list > [email protected] > http://lists.xwiki.org/mailman/listinfo/devs _______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs

