From 017fc69cd036f22a32bbcbe2da6e15b85588c48e Mon Sep 17 00:00:00 2001 From: Sergiu Dumitriu <sergiu@xwiki.com> Date: Fri, 9 Sep 2011 12:04:57 -0400 Subject: [PATCH] Revert "XWIKI-6948: Upgrade to commons-lang 3.0.1" Again git rebase messed up parts of the commit. This reverts commit a9e2b0136de0a7de98b4a9ac45b4275eb419a32d. --- .../internal/macro/code/CodeMacro.java | 273 +++--- .../BlocksGeneratorPygmentsListener.java | 2 +- .../parser/pygments/PygmentsParser.java | 4 +- .../macro/container/ColumnsLayoutManager.java | 2 +- .../container/AbstractContainerMacro.java | 4 +- .../macro/dashboard/DashboardMacro.java | 2 +- .../macro/dashboard/DefaultGadgetSource.java | 2 +- .../macro/rss/DefaultRomeFeedFactory.java | 2 +- .../internal/macro/rss/RssMacro.java | 4 +- .../macro/rss/RssMacroParameters.java | 254 +++-- .../DefaultAttachmentClassLoaderFactory.java | 4 +- .../ScriptClassLoaderHandlerListener.java | 4 +- .../script/AbstractJSR223ScriptMacro.java | 888 +++++------------- .../macro/script/AbstractScriptMacro.java | 4 +- .../macro/useravatar/UserAvatarMacro.java | 2 +- .../macro/velocity/VelocityMacro.java | 2 +- .../renderer/XWikiLinkLabelGenerator.java | 4 +- .../internal/wiki/XWikiWikiModel.java | 2 +- 18 files changed, 486 insertions(+), 973 deletions(-) diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/macro/code/CodeMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/macro/code/CodeMacro.java index ae64a0cba77..e8191bfd9dc 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/macro/code/CodeMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/macro/code/CodeMacro.java @@ -27,7 +27,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.xwiki.component.annotation.Component; import org.xwiki.component.manager.ComponentLookupException; @@ -45,172 +45,113 @@ /** * Highlight provided content depending of the content syntax. * - * @version $Id$der(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); - } -}uage(), new StringReader(content)); + * @version $Id$ + * @since 1.7RC1 + */ +@Component +@Named("code") +@Singleton +public class CodeMacro extends AbstractBoxMacro<CodeMacroParameters> +{ + /** + * The description of the macro. + */ + private static final String DESCRIPTION = "Highlights code snippets of various programming languages"; + + /** + * Used to indicate that content should not be highlighted. + */ + private static final String LANGUAGE_NONE = "none"; + + /** + * The description of the macro content. + */ + private static final String CONTENT_DESCRIPTION = "the content to highlight"; + + /** + * Used to parse content when language="none". + */ + @Inject + @Named("plain/1.0") + private Parser plainTextParser; + + /** + * Used to lookup highlight parsers. + */ + @Inject + private ComponentManager componentManager; + + /** + * The logger to log. + */ + @Inject + private Logger logger; + + /** + * Create and initialize the descriptor of the macro. + */ + public CodeMacro() + { + super("Code", DESCRIPTION, new DefaultContentDescriptor(CONTENT_DESCRIPTION), CodeMacroParameters.class); + setDefaultCategory(DEFAULT_CATEGORY_FORMATTING); } -}uage(), new StringReader(content)); + + /** + * {@inheritDoc} + * + * @see org.xwiki.rendering.internal.macro.box.DefaultBoxMacro#parseContent(org.xwiki.rendering.macro.box.BoxMacroParameters, + * java.lang.String, org.xwiki.rendering.transformation.MacroTransformationContext) + */ + @Override + protected List<Block> parseContent(CodeMacroParameters parameters, String content, + MacroTransformationContext context) throws MacroExecutionException + { + List<Block> result; + try { + if (LANGUAGE_NONE.equalsIgnoreCase(parameters.getLanguage())) { + if (StringUtils.isEmpty(content)) { + result = Collections.emptyList(); + } else { + result = this.plainTextParser.parse(new StringReader(content)).getChildren().get(0).getChildren(); + } + } else { + result = highlight(parameters, content); + } + } catch (Exception e) { + throw new MacroExecutionException("Failed to highlight content", e); + } + + return result; } -}uage(), new StringReader(content)); + + /** + * Return a highlighted version of the provided content. + * + * @param parameters the code macro parameters. + * @param content the content to highlight. + * @return the highlighted version of the provided content. + * @throws ParseException the highlight parser failed. + * @throws ComponentLookupException failed to find highlight parser for provided language. + */ + protected List<Block> highlight(CodeMacroParameters parameters, String content) throws ParseException, + ComponentLookupException + { + HighlightParser parser; + + if (parameters.getLanguage() != null) { + try { + parser = this.componentManager.lookup(HighlightParser.class, parameters.getLanguage()); + return parser.highlight(parameters.getLanguage(), new StringReader(content)); + } catch (ComponentLookupException e) { + this.logger.debug( + "Can't find specific highlighting parser for language [" + parameters.getLanguage() + "]", e); + } + } + + this.logger.debug("Trying the default highlighting parser"); + + parser = this.componentManager.lookup(HighlightParser.class, "default"); + + return parser.highlight(parameters.getLanguage(), new StringReader(content)); } } diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/BlocksGeneratorPygmentsListener.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/BlocksGeneratorPygmentsListener.java index 98c0e6eb4f1..2f75b847cf6 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/BlocksGeneratorPygmentsListener.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/BlocksGeneratorPygmentsListener.java @@ -26,7 +26,7 @@ import java.util.List; import java.util.Map; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.python.core.PyNone; import org.xwiki.rendering.block.Block; import org.xwiki.rendering.block.FormatBlock; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/PygmentsParser.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/PygmentsParser.java index 8231678a4d3..5ad404ccb28 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/PygmentsParser.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-code/src/main/java/org/xwiki/rendering/internal/parser/pygments/PygmentsParser.java @@ -29,7 +29,7 @@ import javax.inject.Inject; import org.apache.commons.io.IOUtils; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.python.core.Py; import org.python.core.PyObject; import org.python.core.PyUnicode; @@ -271,7 +271,7 @@ private PyObject getLexer(String language) { PythonInterpreter interpreter = getPythonInterpreter(); - if (StringUtils.isNotEmpty(language)) { + if (!StringUtils.isEmpty(language)) { interpreter.exec(MessageFormat.format(PY_LEXER_CREATE, language)); } else { interpreter.exec(PY_LEXER_FIND); diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/internal/macro/container/ColumnsLayoutManager.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/internal/macro/container/ColumnsLayoutManager.java index d190bd845dd..f0549cc51bb 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/internal/macro/container/ColumnsLayoutManager.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/internal/macro/container/ColumnsLayoutManager.java @@ -23,7 +23,7 @@ import java.util.List; import java.util.Map; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.Requirement; import org.xwiki.rendering.block.Block; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/macro/container/AbstractContainerMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/macro/container/AbstractContainerMacro.java index d426f406486..7f3c467b76b 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/macro/container/AbstractContainerMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-container/src/main/java/org/xwiki/rendering/macro/container/AbstractContainerMacro.java @@ -26,7 +26,7 @@ import javax.inject.Inject; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.component.manager.ComponentLookupException; import org.xwiki.component.manager.ComponentManager; import org.xwiki.rendering.block.Block; @@ -100,7 +100,7 @@ public List<Block> execute(P parameters, String content, MacroTransformationCont } // add the css class, if any, to the container root - if (StringUtils.isNotEmpty(parameters.getCssClass())) { + if (!StringUtils.isEmpty(parameters.getCssClass())) { containerRoot.setParameter(CLASS_ATTRIBUTE, parameters.getCssClass()); } diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DashboardMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DashboardMacro.java index eafeadfc18a..ad34625efea 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DashboardMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DashboardMacro.java @@ -28,7 +28,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.xwiki.component.annotation.Component; import org.xwiki.component.manager.ComponentLookupException; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DefaultGadgetSource.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DefaultGadgetSource.java index 3e860c9a21d..50c38d27379 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DefaultGadgetSource.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-dashboard/src/main/java/org/xwiki/rendering/internal/macro/dashboard/DefaultGadgetSource.java @@ -25,7 +25,7 @@ import java.util.Collections; import java.util.List; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.apache.velocity.VelocityContext; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.Requirement; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/DefaultRomeFeedFactory.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/DefaultRomeFeedFactory.java index 9ddd162dfd4..e631eb4b3e7 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/DefaultRomeFeedFactory.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/DefaultRomeFeedFactory.java @@ -25,7 +25,7 @@ import org.xwiki.rendering.macro.MacroExecutionException; import org.xwiki.rendering.macro.rss.RssMacroParameters; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import com.sun.syndication.feed.synd.SyndFeed; import com.sun.syndication.io.SyndFeedInput; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/RssMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/RssMacro.java index 9885b086791..6fb2e839d5f 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/RssMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/internal/macro/rss/RssMacro.java @@ -28,7 +28,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.bridge.SkinAccessBridge; import org.xwiki.component.annotation.Component; import org.xwiki.rendering.block.Block; @@ -137,7 +137,7 @@ public List<Block> execute(RssMacroParameters parameters, String content, MacroT boolean hasImage = parameters.isImage() && (feed.getImage() != null); boxParameters.setCssClass("rssfeed"); - if (StringUtils.isNotEmpty(parameters.getWidth())) { + if (!StringUtils.isEmpty(parameters.getWidth())) { boxParameters.setWidth(parameters.getWidth()); } diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/macro/rss/RssMacroParameters.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/macro/rss/RssMacroParameters.java index b14642b4a44..4771b50fd3f 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/macro/rss/RssMacroParameters.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-rss/src/main/java/org/xwiki/rendering/macro/rss/RssMacroParameters.java @@ -23,7 +23,7 @@ import java.net.MalformedURLException; import java.net.URL; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.properties.annotation.PropertyDescription; import org.xwiki.properties.annotation.PropertyMandatory; import org.xwiki.rendering.macro.parameter.MacroParameterException; @@ -31,145 +31,137 @@ /** * Parameters for the {@link org.xwiki.rendering.internal.macro.rss.RssMacro} Macro. * - * @version $Id$contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() - { - return this.contensContent() + * @version $Id$ + * @since 1.8RC1 + */ +public class RssMacroParameters +{ + /** + * The URL of the RSS feed. + */ + private String feed; + + /** + * If "true" displays the content of each feed in addition to the feed item link. + */ + private boolean content; + + /** + * The number of feed items to display. + */ + private int count = 10; + + /** + * If "true" and if the feed has an image, display it. + */ + private boolean image; + + /** + * The width of the enclosing box containing the RSS macro output. + */ + private String width = StringUtils.EMPTY; + + /** + * The RSS feed URL. + */ + private URL feedURL; + + /** + * @return the RSS feed URL. + */ + public String getFeed() { - return this.contensContent() + return feed; + } + + /** + * @param feed the RSS feed URL. + * @throws MacroParameterException if the feed URL is malformed. + */ + @PropertyMandatory + @PropertyDescription("URL of the RSS feed") + public void setFeed(String feed) throws MacroParameterException + { + this.feed = feed; + try { + this.feedURL = new java.net.URL(feed); + } catch (MalformedURLException ex) { + throw new MacroParameterException("Malformed feed URL", ex); + } + } + + /** + * @param image whether to display the feed's image. + */ + @PropertyDescription("If the feeds has an image associated, display it?") + public void setImage(boolean image) { - return this.contensContent() + this.image = image; + } + + /** + * @return whether to display the feed's image. + */ + public boolean isImage() { - return this.contensContent() + return image; + } + + /** + * @param width the width of the RSS box, that will dismiss potential CSS rules defining its default value. + */ + @PropertyDescription("The width, in px or %, of the box containing the RSS output (default is 30%)") + public void setWidth(String width) { - return this.contensContent() + this.width = width; + } + + /** + * @return the width of the RSS box, that will dismiss potential CSS rules defining its default value. + */ + public String getWidth() { - return this.contensContent() + return this.width; + } + + /** + * @param count the number of feed items to display. + */ + @PropertyDescription("The maximum number of feed items to display on the page.") + public void setCount(int count) { - return this.contensContent() + this.count = count; + } + + /** + * @return the number of feed items to display. + */ + public int getCount() { - return this.contensContent() + return count; + } + + /** + * @return the feed's URL + */ + public URL getFeedURL() { - return this.contensContent() + return feedURL; + } + + /** + * @param content if "true" displays the content of each feed in addition to the feed item link + */ + @PropertyDescription("Display content for feed entries") + public void setContent(boolean content) { - return this.contensContent() + this.content = content; + } + + /** + * @return true if the content of each feed should be displayed + */ + public boolean isContent() { return this.content; } diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/DefaultAttachmentClassLoaderFactory.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/DefaultAttachmentClassLoaderFactory.java index f804a9f8741..562d88507b5 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/DefaultAttachmentClassLoaderFactory.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/DefaultAttachmentClassLoaderFactory.java @@ -33,7 +33,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.classloader.ExtendedURLClassLoader; import org.xwiki.classloader.ExtendedURLStreamHandler; import org.xwiki.classloader.URIClassLoader; @@ -107,7 +107,7 @@ private Set<URI> extractURIs(String jarURLs) throws URISyntaxException { // Parse the passed JAR URLs to tokenize it. Set<URI> uris = new LinkedHashSet<URI>(); - if (StringUtils.isNotEmpty(jarURLs)) { + if (!StringUtils.isEmpty(jarURLs)) { StringTokenizer tokenizer = new StringTokenizer(jarURLs, ","); while (tokenizer.hasMoreElements()) { String token = tokenizer.nextToken().trim(); diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/ScriptClassLoaderHandlerListener.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/ScriptClassLoaderHandlerListener.java index 5242ba158ab..6d96687a8f8 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/ScriptClassLoaderHandlerListener.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/internal/macro/script/ScriptClassLoaderHandlerListener.java @@ -26,7 +26,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.bridge.DocumentAccessBridge; import org.xwiki.classloader.ExtendedURLClassLoader; import org.xwiki.component.annotation.Component; @@ -172,7 +172,7 @@ private ClassLoader findClassLoader(String jarsParameterValue, ClassLoader paren (ExtendedURLClassLoader) this.execution.getContext().getProperty(EXECUTION_CONTEXT_CLASSLOADER_KEY); if (cl == null) { - if (StringUtils.isNotEmpty(jarsParameterValue)) { + if (!StringUtils.isEmpty(jarsParameterValue)) { cl = createOrExtendClassLoader(true, jarsParameterValue, parent); } else { cl = this.attachmentClassLoaderFactory.createAttachmentClassLoader("", parent); diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractJSR223ScriptMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractJSR223ScriptMacro.java index 30abaaa2a5d..b5d586e5a1f 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractJSR223ScriptMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractJSR223ScriptMacro.java @@ -33,7 +33,7 @@ import javax.script.ScriptEngineManager; import javax.script.ScriptException; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.context.ExecutionContext; import org.xwiki.rendering.block.Block; import org.xwiki.rendering.block.XDOM; @@ -46,671 +46,251 @@ * Base Class for script evaluation macros based on JSR223. * * @param <P> the type of macro parameters bean. - * @version $Id$urn engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g - - return engine.compile(content); -g + * @version $Id$ + * @since 1.7M3 + */ +public abstract class AbstractJSR223ScriptMacro<P extends JSR223ScriptMacroParameters> extends AbstractScriptMacro<P> + implements PrivilegedScriptMacro +{ + /** + * Key under which the Script Engines are saved in the Execution Context, see {@link #execution}. + */ + private static final String EXECUTION_CONTEXT_ENGINE_KEY = "scriptEngines"; + + /** + * Used to get the current script context to give to script engine evaluation method. + */ + @Inject + private ScriptContextManager scriptContextManager; + + /** + * @param macroName the name of the macro (eg "groovy") + */ + public AbstractJSR223ScriptMacro(String macroName) + { + super(macroName, null, JSR223ScriptMacroParameters.class); + } - return engine.compile(content); -g + /** + * @param macroName the name of the macro (eg "groovy") + * @param macroDescription the text description of the macro. + */ + public AbstractJSR223ScriptMacro(String macroName, String macroDescription) + { + super(macroName, macroDescription, JSR223ScriptMacroParameters.class); + } - return engine.compile(content); -g + /** + * @param macroName the name of the macro (eg "groovy") + * @param macroDescription the text description of the macro. + * @param contentDescriptor the description of the macro content. + */ + public AbstractJSR223ScriptMacro(String macroName, String macroDescription, ContentDescriptor contentDescriptor) + { + super(macroName, macroDescription, contentDescriptor, JSR223ScriptMacroParameters.class); + } - return engine.compile(content); -g + /** + * @param macroName the name of the macro (eg "groovy") + * @param macroDescription the text description of the macro. + * @param parametersBeanClass class of the parameters bean for this macro. + */ + public AbstractJSR223ScriptMacro(String macroName, String macroDescription, + Class< ? extends JSR223ScriptMacroParameters> parametersBeanClass) + { + super(macroName, macroDescription, parametersBeanClass); + } - return engine.compile(content); -g + /** + * @param macroName the name of the macro (eg "groovy") + * @param macroDescription the text description of the macro. + * @param contentDescriptor the description of the macro content. + * @param parametersBeanClass class of the parameters bean for this macro. + */ + public AbstractJSR223ScriptMacro(String macroName, String macroDescription, ContentDescriptor contentDescriptor, + Class< ? extends JSR223ScriptMacroParameters> parametersBeanClass) + { + super(macroName, macroDescription, contentDescriptor, parametersBeanClass); + } - return engine.compile(content); -g + /** + * {@inheritDoc} + * + * @see org.xwiki.rendering.macro.Macro#supportsInlineMode() + */ + public boolean supportsInlineMode() + { + return true; + } - return engine.compile(content); -g + /** + * Method to overwrite to indicate the script engine name. + * + * @param parameters the macro parameters. + * @param context the context of the macro transformation. + * @return the name of the script engine to use. + */ + protected String getScriptEngineName(P parameters, MacroTransformationContext context) + { + return context.getCurrentMacroBlock().getId().toLowerCase(); + } - return engine.compile(content); -g + /** + * Get the current ScriptContext and refresh it. + * + * @return the script context. + */ + protected ScriptContext getScriptContext() + { + return this.scriptContextManager.getScriptContext(); + } - return engine.compile(content); -g + /** + * {@inheritDoc} + * + * @see AbstractScriptMacro#evaluate(ScriptMacroParameters, String, MacroTransformationContext) + */ + @Override + protected List<Block> evaluateBlock(P parameters, String content, MacroTransformationContext context) + throws MacroExecutionException + { + if (StringUtils.isEmpty(content)) { + return Collections.emptyList(); + } + + String engineName = getScriptEngineName(parameters, context); + + List<Block> result; + if (engineName != null) { + try { + ScriptEngine engine = getScriptEngine(engineName); + + if (engine != null) { + result = evaluateBlock(engine, parameters, content, context); + } else { + throw new MacroExecutionException("Can't find script engine with name [" + engineName + "]"); + } + } catch (ScriptException e) { + throw new MacroExecutionException("Failed to evaluate Script Macro for content [" + content + "]", e); + } + + } else { + // If no language identifier is provided, don't evaluate content + result = parseScriptResult(content, parameters, context); + } + + return result; + } - return engine.compile(content); -g + /** + * Execute provided script and return {@link Block} based result. + * + * @param engine the script engine to use to evaluate the script. + * @param parameters the macro parameters. + * @param content the script to execute. + * @param context the context of the macro transformation. + * @return the result of script execution. + * @throws ScriptException failed to evaluate script + * @throws MacroExecutionException failed to evaluate provided content. + */ + protected List<Block> evaluateBlock(ScriptEngine engine, P parameters, String content, + MacroTransformationContext context) throws ScriptException, MacroExecutionException + { + List<Block> result; + + ScriptContext scriptContext = getScriptContext(); + + StringWriter stringWriter = new StringWriter(); + + // set writer in script context + scriptContext.setWriter(stringWriter); + + try { + Object scriptResult = eval(content, engine, scriptContext); + + if (scriptResult instanceof XDOM) { + result = ((XDOM) scriptResult).getChildren(); + } else if (scriptResult instanceof Block) { + result = Collections.singletonList((Block) scriptResult); + } else if (scriptResult instanceof List && !((List< ? >) scriptResult).isEmpty() + && ((List< ? >) scriptResult).get(0) instanceof Block) { + result = (List<Block>) scriptResult; + } else { + // Run the wiki syntax parser on the script-rendered content + result = parseScriptResult(stringWriter.toString(), parameters, context); + } + } finally { + // remove writer script from context + scriptContext.setWriter(null); + } + + return result; + } - return engine.compile(content); -g + /** + * @param engineName the script engine name (eg "groovy", etc) + * @return the Script engine to use to evaluate the script + * @throws MacroExecutionException in case of an error in parsing the jars parameter + */ + private ScriptEngine getScriptEngine(String engineName) throws MacroExecutionException + { + // Look for a script engine in the Execution Context since we want the same engine to be used + // for all evals during the same execution lifetime. + // We must use the same engine because that engine may create an internal ClassLoader in which + // it loads new classes defined in the script and if we create a new engine then defined classes + // will be lost. + // However we also need to be able to execute several script Macros during a single execution request + // and for example the second macro could have jar parameters. In order to support this use case + // we ensure in AbstractScriptMacro to reuse the same thread context ClassLoader during the whole + // request execution. + ExecutionContext executionContext = this.execution.getContext(); + Map<String, ScriptEngine> scriptEngines = + (Map<String, ScriptEngine>) executionContext.getProperty(EXECUTION_CONTEXT_ENGINE_KEY); + if (scriptEngines == null) { + scriptEngines = new HashMap<String, ScriptEngine>(); + executionContext.setProperty(EXECUTION_CONTEXT_ENGINE_KEY, scriptEngines); + } + ScriptEngine engine = scriptEngines.get(engineName); + + if (engine == null) { + ScriptEngineManager sem = new ScriptEngineManager(); + engine = sem.getEngineByName(engineName); + scriptEngines.put(engineName, engine); + } + + return engine; + } - return engine.compile(content); -g + /** + * Execute the script. + * + * @param content the script to be executed by the script engine + * @param engine the script engine + * @param scriptContext the script context + * @return The value returned from the execution of the script. + * @throws ScriptException if an error occurrs in script. ScriptEngines should create and throw + * <code>ScriptException</code> wrappers for checked Exceptions thrown by underlying scripting + * implementations. + */ + protected Object eval(String content, ScriptEngine engine, ScriptContext scriptContext) throws ScriptException + { + return engine.eval(content, scriptContext); + } - return engine.compile(content); -g + // ///////////////////////////////////////////////////////////////////// + // Compiled scripts management + + /** + * Return a compiled version of the provided script. + * + * @param content the script to compile. + * @param engine the script engine. + * @return the compiled version of the script. + * @throws ScriptException failed to compile the script. + */ + protected CompiledScript getCompiledScript(String content, Compilable engine) throws ScriptException + { + // TODO: add caching return engine.compile(content); } diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractScriptMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractScriptMacro.java index 63cc36b93e2..0730b214f1e 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractScriptMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-script/src/main/java/org/xwiki/rendering/macro/script/AbstractScriptMacro.java @@ -26,7 +26,7 @@ import javax.inject.Inject; import javax.inject.Named; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.component.manager.ComponentManager; import org.xwiki.context.Execution; import org.xwiki.observation.ObservationManager; @@ -189,7 +189,7 @@ public List<Block> execute(P parameters, String content, MacroTransformationCont { List<Block> result = Collections.emptyList(); - if (StringUtils.isNotEmpty(content)) { + if (!StringUtils.isEmpty(content)) { try { // send evaluation starts event ScriptEvaluatingEvent event = new ScriptEvaluatingEvent(getDescriptor().getId().getId()); diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-useravatar/src/main/java/org/xwiki/rendering/internal/macro/useravatar/UserAvatarMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-useravatar/src/main/java/org/xwiki/rendering/internal/macro/useravatar/UserAvatarMacro.java index 51b07636210..6b06ec78fc7 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-useravatar/src/main/java/org/xwiki/rendering/internal/macro/useravatar/UserAvatarMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-useravatar/src/main/java/org/xwiki/rendering/internal/macro/useravatar/UserAvatarMacro.java @@ -26,7 +26,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.bridge.DocumentAccessBridge; import org.xwiki.bridge.SkinAccessBridge; import org.xwiki.component.annotation.Component; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-velocity/src/main/java/org/xwiki/rendering/internal/macro/velocity/VelocityMacro.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-velocity/src/main/java/org/xwiki/rendering/internal/macro/velocity/VelocityMacro.java index 7aa5efa7375..bf31c2682a9 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-velocity/src/main/java/org/xwiki/rendering/internal/macro/velocity/VelocityMacro.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-macros/xwiki-platform-rendering-macro-velocity/src/main/java/org/xwiki/rendering/internal/macro/velocity/VelocityMacro.java @@ -23,7 +23,7 @@ import javax.inject.Inject; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.apache.velocity.VelocityContext; import org.slf4j.Logger; import org.xwiki.component.annotation.Component; diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/renderer/XWikiLinkLabelGenerator.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/renderer/XWikiLinkLabelGenerator.java index 408834c3021..c9c70925163 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/renderer/XWikiLinkLabelGenerator.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/renderer/XWikiLinkLabelGenerator.java @@ -23,7 +23,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.xwiki.bridge.DocumentAccessBridge; import org.xwiki.bridge.DocumentModelBridge; import org.xwiki.model.reference.DocumentReference; @@ -85,7 +85,7 @@ public String generate(ResourceReference reference) if (result.indexOf("%t") > -1) { try { DocumentModelBridge document = this.documentAccessBridge.getDocument(documentReference); - if (StringUtils.isNotBlank(document.getTitle())) { + if (!StringUtils.isBlank(document.getTitle())) { result = result.replace("%t", document.getTitle()); } else { result = documentReference.getName(); diff --git a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/wiki/XWikiWikiModel.java b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/wiki/XWikiWikiModel.java index 98254e2dea9..3d78b1f714b 100644 --- a/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/wiki/XWikiWikiModel.java +++ b/xwiki-platform-core/xwiki-platform-rendering/xwiki-platform-rendering-xwiki/src/main/java/org/xwiki/rendering/internal/wiki/XWikiWikiModel.java @@ -30,7 +30,7 @@ import javax.inject.Named; import javax.inject.Singleton; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang.StringUtils; import org.w3c.css.sac.InputSource; import org.w3c.dom.css.CSSStyleDeclaration; import org.xwiki.bridge.DocumentAccessBridge; -- GitLab