On Oct 10, 2009, at 7:16 AM, Caleb James DeLisle wrote:
> Hey Sergiu,
> line 58 is failing checkstyle for being 2 characters too long.
>
> * @return HTML code linking to the pulled resource (eg: <script
> type="text/javascript" src="/this/url.js"></script>)
and you could/should use {...@code <code here>} I think otherwise the
script element will get evaluated in the javadoc.
Thanks
-Vincent
>
> Thanks again,
> Caleb
>
> sdumitriu (SVN) wrote:
>> Author: sdumitriu
>> Date: 2009-10-10 01:04:21 +0200 (Sat, 10 Oct 2009)
>> New Revision: 24354
>>
>> Added:
>> platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/AbstractResourceSkinExtensionPlugin.java
>> Modified:
>> platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/CssResourceSkinExtensionPlugin.java
>> platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/JsResourceSkinExtensionPlugin.java
>> Log:
>> XSKINX-29: Refactor duplicate code
>> Refactor JsResourceSkinExtensionPlugin and
>> CssResourceSkinExtensionPlugin.
>> Patch from Caleb James DeLisle, applied with several changes.
>>
>>
>> Added: platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/
>> xwiki/plugin/skinx/AbstractResourceSkinExtensionPlugin.java
>> ===================================================================
>> --- platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/
>> AbstractResourceSkinExtensionPlugin.java
>> (rev 0)
>> +++ platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/AbstractResourceSkinExtensionPlugin.java 2009-10-09
>> 23:04:21 UTC (rev 24354)
>> @@ -0,0 +1,102 @@
>> +/*
>> + * 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 com.xpn.xwiki.plugin.skinx;
>> +
>> +import java.util.Collections;
>> +import java.util.Set;
>> +
>> +import com.xpn.xwiki.XWikiContext;
>> +import com.xpn.xwiki.XWikiException;
>> +
>> +/**
>> + * Skin Extension plugin to use extension files from JAR resources.
>> + * @version $Id$
>> + */
>> +public abstract class AbstractResourceSkinExtensionPlugin extends
>> AbstractSkinExtensionPlugin
>> +{
>> + /**
>> + * XWiki plugin constructor.
>> + *
>> + * @param name The name of the plugin, which can be used for
>> retrieving the plugin API from velocity. Unused.
>> + * @param className The canonical classname of the plugin.
>> Unused.
>> + * @param context The current request context.
>> + * @see
>> com
>> .xpn
>> .xwiki
>> .plugin
>> .XWikiDefaultPlugin
>> #XWikiDefaultPlugin(String,String,com.xpn.xwiki.XWikiContext)
>> + */
>> + public AbstractResourceSkinExtensionPlugin(String name, String
>> className, XWikiContext context)
>> + {
>> + super(name, className, context);
>> + }
>> +
>> + /**
>> + * Get the action which the url should specify for calling
>> this resource.
>> + *
>> + * @return String Action name.
>> + */
>> + protected abstract String getAction();
>> +
>> + /**
>> + * Takes a URL string and outputs a link which will cause the
>> browser to load the url.
>> + *
>> + * @param url String representation of the url to load (eg: "/
>> this/url.js")
>> + * @return HTML code linking to the pulled resource (eg:
>> <script type="text/javascript" src="/this/url.js"></script>)
>> + */
>> + protected abstract String generateLink(String url);
>> +
>> + /**
>> + * {...@inheritdoc}
>> + *
>> + * @see AbstractSkinExtensionPlugin#getLink(String,
>> XWikiContext)
>> + */
>> + public String getLink(String resourceName, XWikiContext context)
>> + {
>> + // If the current user has access to Main.WebHome, we will
>> use this document in the URL
>> + // to serve the resource. This way, the resource can be
>> efficiently cached, since it has a
>> + // common URL for any page.
>> + try {
>> + String page = context.getWiki().getDefaultWeb(context)
>> + "." + context.getWiki().getDefaultPage(context);
>> + if (!
>> context.getWiki().getRightService().hasAccessLevel("view",
>> context.getUser(), page, context)) {
>> + page = context.getDoc().getFullName();
>> + }
>> + return generateLink(context.getWiki().getURL(page,
>> getAction(),
>> + "resource=" + resourceName +
>> parametersAsQueryString(resourceName, context), context));
>> + } catch (XWikiException e) {
>> + // Do nothing here; we can't access the wiki, so don't
>> link to this resource at all.
>> + return "";
>> + }
>> + }
>> +
>> + /**
>> + * {...@inheritdoc}
>> + * <p>
>> + * There is no support for always used resource-based
>> extensions yet.
>> + * </p>
>> + *
>> + * @see
>> AbstractSkinExtensionPlugin#getAlwaysUsedExtensions(XWikiContext)
>> + */
>> + @Override
>> + public Set<String> getAlwaysUsedExtensions(XWikiContext context)
>> + {
>> + // There is no mean to define an always used extension for
>> something else than a document extension now,
>> + // so for resources-based extensions, we return an emtpy
>> set.
>> + // An idea for the future could be to have an API for
>> plugins and components to register always used resources
>> + // extensions.
>> + return Collections.emptySet();
>> + }
>> +}
>>
>>
>> Property changes on: platform/xwiki-plugins/trunk/skinx/src/main/
>> java/com/xpn/xwiki/plugin/skinx/
>> AbstractResourceSkinExtensionPlugin.java
>> ___________________________________________________________________
>> Name: svn:keywords
>> + Id
>> Name: svn:eol-style
>> + native
>>
>> Modified: platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/
>> xwiki/plugin/skinx/CssResourceSkinExtensionPlugin.java
>> ===================================================================
>> --- platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/CssResourceSkinExtensionPlugin.java 2009-10-09
>> 18:28:50 UTC (rev 24353)
>> +++ platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/CssResourceSkinExtensionPlugin.java 2009-10-09
>> 23:04:21 UTC (rev 24354)
>> @@ -20,11 +20,7 @@
>> */
>> package com.xpn.xwiki.plugin.skinx;
>>
>> -import java.util.Collections;
>> -import java.util.Set;
>> -
>> import com.xpn.xwiki.XWikiContext;
>> -import com.xpn.xwiki.XWikiException;
>>
>> /**
>> * Skin Extension plugin to use css files from JAR resources.
>> @@ -32,7 +28,7 @@
>> * @version $Id$
>> * @since 1.3
>> */
>> -public class CssResourceSkinExtensionPlugin extends
>> AbstractSkinExtensionPlugin
>> +public class CssResourceSkinExtensionPlugin extends
>> AbstractResourceSkinExtensionPlugin
>> {
>> /**
>> * XWiki plugin constructor.
>> @@ -45,7 +41,6 @@
>> public CssResourceSkinExtensionPlugin(String name, String
>> className, XWikiContext context)
>> {
>> super(name, className, context);
>> - init(context);
>> }
>>
>> /**
>> @@ -61,47 +56,22 @@
>>
>> /**
>> * {...@inheritdoc}
>> - *
>> - * @see AbstractSkinExtensionPlugin#getLink(String,
>> XWikiContext)
>> + *
>> + * @see AbstractSkinExtensionPlugin#getAction()
>> */
>> - @Override
>> - public String getLink(String documentName, XWikiContext context)
>> + protected String getAction()
>> {
>> - String result = "";
>> - // If the current user has access to Main.WebHome, we will
>> use this document in the URL
>> - // to serve the css resource. This way, the resource can
>> be efficiently cached, since it has a
>> - // common URL for any page.
>> - try {
>> - String page = context.getWiki().getDefaultWeb(context)
>> + "." + context.getWiki().getDefaultPage(context);
>> - if (!
>> context.getWiki().getRightService().hasAccessLevel("view",
>> context.getUser(), page, context)) {
>> - page = context.getDoc().getFullName();
>> - }
>> - String url =
>> - context.getWiki().getURL(page, "ssx",
>> - "resource=" + documentName +
>> parametersAsQueryString(documentName, context), context);
>> - result = "<link rel='stylesheet' type='text/css'
>> href='" + url + "'/>";
>> - } catch (XWikiException e) {
>> - // Do nothing here; we can't access the wiki, so don't
>> link to this resource at all.
>> - }
>> - return result;
>> + return "ssx";
>> }
>>
>> /**
>> * {...@inheritdoc}
>> - * <p>
>> - * There is no support for always used resource-based
>> extensions yet.
>> - * </p>
>> - *
>> - * @see
>> AbstractSkinExtensionPlugin#getAlwaysUsedExtensions(XWikiContext)
>> + *
>> + * @see AbstractSkinExtensionPlugin#generateLink()
>> */
>> - @Override
>> - public Set<String> getAlwaysUsedExtensions(XWikiContext context)
>> + protected String generateLink(String url)
>> {
>> - // There is no mean to define an always used extension for
>> something else than a document extension now,
>> - // so for resources-based extensions, we return an emtpy
>> set.
>> - // An idea for the future could be to have an API for
>> plugins and components to register always used resources
>> - // extensions.
>> - return Collections.emptySet();
>> + return "<link rel='stylesheet' type='text/css' href='" +
>> url + "'/>\n";
>> }
>>
>> /**
>>
>> Modified: platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/
>> xwiki/plugin/skinx/JsResourceSkinExtensionPlugin.java
>> ===================================================================
>> --- platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/JsResourceSkinExtensionPlugin.java 2009-10-09 18:28:50
>> UTC (rev 24353)
>> +++ platform/xwiki-plugins/trunk/skinx/src/main/java/com/xpn/xwiki/
>> plugin/skinx/JsResourceSkinExtensionPlugin.java 2009-10-09 23:04:21
>> UTC (rev 24354)
>> @@ -20,11 +20,7 @@
>> */
>> package com.xpn.xwiki.plugin.skinx;
>>
>> -import java.util.Collections;
>> -import java.util.Set;
>> -
>> import com.xpn.xwiki.XWikiContext;
>> -import com.xpn.xwiki.XWikiException;
>>
>> /**
>> * Skin Extension plugin that allows pulling javascript files from
>> JAR resources.
>> @@ -32,7 +28,7 @@
>> * @version $Id$
>> * @since 1.3
>> */
>> -public class JsResourceSkinExtensionPlugin extends
>> AbstractSkinExtensionPlugin
>> +public class JsResourceSkinExtensionPlugin extends
>> AbstractResourceSkinExtensionPlugin
>> {
>> /**
>> * XWiki plugin constructor.
>> @@ -44,57 +40,42 @@
>> */
>> public JsResourceSkinExtensionPlugin(String name, String
>> className, XWikiContext context)
>> {
>> - super("jsrx", className, context);
>> - init(context);
>> + super(name, className, context);
>> }
>>
>> /**
>> * {...@inheritdoc}
>> *
>> - * @see AbstractSkinExtensionPlugin#getLink(String,
>> XWikiContext)
>> + * @see com.xpn.xwiki.plugin.XWikiDefaultPlugin#getName()
>> */
>> @Override
>> - public String getLink(String documentName, XWikiContext context)
>> + public String getName()
>> {
>> - String result = "";
>> - // If the current user has access to Main.WebHome, we will
>> use this document in the URL
>> - // to serve the js resource. This way, the resource can be
>> efficiently cached, since it has a
>> - // common URL for any page.
>> - try {
>> - String page = context.getWiki().getDefaultWeb(context)
>> + "." + context.getWiki().getDefaultPage(context);
>> - if (!
>> context.getWiki().getRightService().hasAccessLevel("view",
>> context.getUser(), page, context)) {
>> - page = context.getDoc().getFullName();
>> - }
>> - String url =
>> - context.getWiki().getURL(page, "jsx",
>> - "resource=" + documentName +
>> parametersAsQueryString(documentName, context), context);
>> - result = "<script type=\"text/javascript\" src=\"" +
>> url + "\"></script>";
>> - } catch (XWikiException e) {
>> - // Do nothing here; we can't access the wiki, so don't
>> link to this resource at all.
>> - }
>> - return result;
>> + return "jsrx";
>> }
>>
>> /**
>> * {...@inheritdoc}
>> - * <p>
>> - * There is no support for always used resource-based
>> extensions yet.
>> - * </p>
>> - *
>> - * @see
>> AbstractSkinExtensionPlugin#getAlwaysUsedExtensions(XWikiContext)
>> + *
>> + * @see AbstractSkinExtensionPlugin#getAction()
>> */
>> - @Override
>> - public Set<String> getAlwaysUsedExtensions(XWikiContext context)
>> + protected String getAction()
>> {
>> - // There is no mean to define an always used extension for
>> something else than a document extension now,
>> - // so for resources-based extensions, we return an emtpy
>> set.
>> - // An idea for the future could be to have an API for
>> plugins and components to register always used resources
>> - // extensions.
>> - return Collections.emptySet();
>> + return "jsx";
>> }
>>
>> /**
>> * {...@inheritdoc}
>> + *
>> + * @see AbstractSkinExtensionPlugin#generateLink()
>> + */
>> + protected String generateLink(String url)
>> + {
>> + return "<script type=\"text/javascript\" src=\"" + url +
>> "\"></script>\n";
>> + }
>> +
>> + /**
>> + * {...@inheritdoc}
>> * <p>
>> * We must override this method since the plugin manager only
>> calls it for classes that provide their own
>> * implementation, and not an inherited one.
>>
>> _______________________________________________
>> 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