From fa77dcbfaed930e0d9cd38a028d174175ce268f6 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Mon, 6 Mar 2023 14:21:55 +0100 Subject: [PATCH 01/13] XWIKI-19383: Display a title on createlink * Added a title attribute to the generated wikicreatelink span --- ...efaultPageAttachmentURITitleGenerator.java | 45 +++++++++++++++++++ .../reference/link/URITitleGenerator.java | 41 +++++++++++++++++ .../main/resources/META-INF/components.txt | 1 + .../link/AbstractXHTMLLinkTypeRenderer.java | 34 +++++++++++++- .../link/DocumentXHTMLLinkTypeRenderer.java | 1 + 5 files changed, 121 insertions(+), 1 deletion(-) create mode 100644 xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java create mode 100644 xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java new file mode 100644 index 0000000000..7ad66afc57 --- /dev/null +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java @@ -0,0 +1,45 @@ +/* + * 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.rendering.internal.renderer; + +import javax.inject.Named; +import javax.inject.Singleton; + +import org.xwiki.component.annotation.Component; +import org.xwiki.rendering.listener.reference.ResourceReference; +import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; + +/** + * Generate link titles for ATTACH URIs. + * + * @version $Id$ + * @since 15.2-RC1 + */ +@Component +@Named("pageAttach") +@Singleton +public class DefaultPageAttachmentURITitleGenerator implements URITitleGenerator +{ + @Override + public String generateCreateTitle(ResourceReference reference) + { + return "Create page: " + reference.getReference(); + } +} diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java new file mode 100644 index 0000000000..e7741d3813 --- /dev/null +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java @@ -0,0 +1,41 @@ +/* + * 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.rendering.renderer.reference.link; + +import org.xwiki.component.annotation.Role; +import org.xwiki.rendering.listener.reference.ResourceReference; + +/** + * Generate Resource Reference titles for URIs. For example an implementation for MAILTO URIs would remove the scheme + * part and the query string part. + * + * @version $Id$ + * @since 15.2-RC1 + */ +@Role +public interface URITitleGenerator +{ + /** + * @param reference the reference pointing to a URI for which we want to generate a create link title + * @return the URI title to display when rendering resource references + * @since 15.2-RC1 + */ + String generateCreateTitle(ResourceReference reference); +} diff --git a/xwiki-rendering-api/src/main/resources/META-INF/components.txt b/xwiki-rendering-api/src/main/resources/META-INF/components.txt index a8e6bab0fb..a34b11f899 100644 --- a/xwiki-rendering-api/src/main/resources/META-INF/components.txt +++ b/xwiki-rendering-api/src/main/resources/META-INF/components.txt @@ -29,6 +29,7 @@ org.xwiki.rendering.internal.renderer.DefaultAttachmentURILabelGenerator org.xwiki.rendering.internal.renderer.MailtoURILabelGenerator org.xwiki.rendering.internal.renderer.DataURILabelGenerator org.xwiki.rendering.internal.renderer.DefaultPageAttachmentURILabelGenerator +org.xwiki.rendering.internal.renderer.DefaultPageAttachmentURITitleGenerator org.xwiki.rendering.internal.renderer.reference.DefaultResourceReferenceTypeSerializer org.xwiki.rendering.internal.syntax.SyntaxConverter org.xwiki.rendering.internal.syntax.DefaultSyntaxRegistry diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index 6e3e2022e2..68faa6968f 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -33,6 +33,7 @@ import org.xwiki.rendering.listener.reference.ResourceReference; import org.xwiki.rendering.renderer.printer.XHTMLWikiPrinter; import org.xwiki.rendering.renderer.reference.link.URILabelGenerator; +import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; /** * Common code for XHTML Link Type Renderer implementations. @@ -46,6 +47,10 @@ public abstract class AbstractXHTMLLinkTypeRenderer implements XHTMLLinkTypeRend * The XHTML element class parameter. */ protected static final String CLASS = "class"; + /** + * The XHTML element title parameter. + */ + protected static final String TITLE = "title"; /** * The name of the XHTML format element. @@ -136,6 +141,30 @@ protected String computeLabel(ResourceReference reference) return label; } + /** + * Default implementation for computing a link title when no title has been specified. Can be overwritten by + * implementations to provide a different algorithm. + * + * @param reference the reference of the link for which to compute the label + * @return the computed title + */ + protected String computeCreateTitle(ResourceReference reference) + { + // Look for a component implementing URITitleGenerator with a role hint matching the link scheme. + // If not found then use the full reference as the label. + // If there's no scheme separator then use the full reference as the title. Note that this can happen + // when we're not in wiki mode (since all links are considered URIs when not in wiki mode). + String title; + try { + URITitleGenerator uriTitleGenerator = + this.componentManager.getInstance(URITitleGenerator.class, reference.getType().getScheme()); + title = uriTitleGenerator.generateCreateTitle(reference); + } catch (ComponentLookupException e) { + title = reference.getReference(); + } + return title; + } + @Override public void beginLink(ResourceReference reference, boolean freestanding, Map parameters) { @@ -221,7 +250,10 @@ public void endLink(ResourceReference reference, boolean freestanding, Map Date: Mon, 6 Mar 2023 16:05:10 +0100 Subject: [PATCH 02/13] XWIKI-19383: Display a title on createlink * Fixed wrong since javadocs tags --- .../rendering/renderer/reference/link/URITitleGenerator.java | 3 +-- .../renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java | 4 +++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java index e7741d3813..c8483c0bc2 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java @@ -27,7 +27,7 @@ * part and the query string part. * * @version $Id$ - * @since 15.2-RC1 + * @since 15.2RC1 */ @Role public interface URITitleGenerator @@ -35,7 +35,6 @@ public interface URITitleGenerator /** * @param reference the reference pointing to a URI for which we want to generate a create link title * @return the URI title to display when rendering resource references - * @since 15.2-RC1 */ String generateCreateTitle(ResourceReference reference); } diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index 68faa6968f..b99778917c 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -49,6 +49,7 @@ public abstract class AbstractXHTMLLinkTypeRenderer implements XHTMLLinkTypeRend protected static final String CLASS = "class"; /** * The XHTML element title parameter. + * @since 15.2RC1 */ protected static final String TITLE = "title"; @@ -144,9 +145,9 @@ protected String computeLabel(ResourceReference reference) /** * Default implementation for computing a link title when no title has been specified. Can be overwritten by * implementations to provide a different algorithm. - * * @param reference the reference of the link for which to compute the label * @return the computed title + * @since 15.2RC1 */ protected String computeCreateTitle(ResourceReference reference) { @@ -160,6 +161,7 @@ protected String computeCreateTitle(ResourceReference reference) this.componentManager.getInstance(URITitleGenerator.class, reference.getType().getScheme()); title = uriTitleGenerator.generateCreateTitle(reference); } catch (ComponentLookupException e) { + e.printStackTrace(); title = reference.getReference(); } return title; From 84de6411440edf163ec8ce6b8fa5fcbbbf6eaece Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Thu, 16 Mar 2023 15:58:47 +0100 Subject: [PATCH 03/13] XWIKI-19383: Display a title on createlink * Added an hint on the URITitleGenerator component --- .../renderer/DefaultPageAttachmentURITitleGenerator.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java index 7ad66afc57..c7d6d1711f 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java @@ -32,7 +32,7 @@ * @version $Id$ * @since 15.2-RC1 */ -@Component +@Component(hints = {"doc", "page"}) @Named("pageAttach") @Singleton public class DefaultPageAttachmentURITitleGenerator implements URITitleGenerator From 4e29001df49951ac55f187807c09eced45f2da45 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Thu, 16 Mar 2023 17:03:11 +0100 Subject: [PATCH 04/13] XWIKI-19383: Display a title on createlink * Fixed the hint of the URITitleGenerator implementation --- .../renderer/DefaultPageAttachmentURITitleGenerator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java index c7d6d1711f..465a4614b3 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java @@ -32,8 +32,8 @@ * @version $Id$ * @since 15.2-RC1 */ -@Component(hints = {"doc", "page"}) -@Named("pageAttach") +@Component +@Named("doc") @Singleton public class DefaultPageAttachmentURITitleGenerator implements URITitleGenerator { From a3689eb412aee924f42cc22483c2f265effbd1f7 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Mon, 20 Mar 2023 11:51:16 +0100 Subject: [PATCH 05/13] XWIKI-19383: Display a title on createlink * Refactored name * Fixed hint to match DocumentXHTMLLinkTypeRenderer. * Moved behavior from the AbstractXHTMLLinkTypeRenderer to DocumentXHTMLLinkTypeRenderer * Fixed since annotation format * Marked the API as unstable * Fixed comments. --- ... => DefaultDocumentURITitleGenerator.java} | 12 +++--- .../reference/link/URITitleGenerator.java | 6 ++- .../main/resources/META-INF/components.txt | 2 +- .../link/AbstractXHTMLLinkTypeRenderer.java | 26 ------------- .../link/DocumentXHTMLLinkTypeRenderer.java | 38 +++++++++++++++++++ 5 files changed, 49 insertions(+), 35 deletions(-) rename xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/{DefaultPageAttachmentURITitleGenerator.java => DefaultDocumentURITitleGenerator.java} (81%) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java similarity index 81% rename from xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java rename to xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java index 465a4614b3..6ce144de2a 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultPageAttachmentURITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java @@ -27,19 +27,19 @@ import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; /** - * Generate link titles for ATTACH URIs. + * Generate link titles for DOC URIs. * * @version $Id$ - * @since 15.2-RC1 + * @since 15.2RC1 */ -@Component -@Named("doc") +@Component(hints = {"doc", "page"}) @Singleton -public class DefaultPageAttachmentURITitleGenerator implements URITitleGenerator +public class DefaultDocumentURITitleGenerator implements URITitleGenerator { + private static final String DEFAULT_LABEL = "Create page: %s"; @Override public String generateCreateTitle(ResourceReference reference) { - return "Create page: " + reference.getReference(); + return String.format(DEFAULT_LABEL,reference.getReference()); } } diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java index c8483c0bc2..d7102e1166 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java @@ -21,15 +21,17 @@ import org.xwiki.component.annotation.Role; import org.xwiki.rendering.listener.reference.ResourceReference; +import org.xwiki.stability.Unstable; /** - * Generate Resource Reference titles for URIs. For example an implementation for MAILTO URIs would remove the scheme - * part and the query string part. + * Generate Resource Reference titles for URIs. + * The implementations should be named according to the kind of reference they process. * * @version $Id$ * @since 15.2RC1 */ @Role +@Unstable public interface URITitleGenerator { /** diff --git a/xwiki-rendering-api/src/main/resources/META-INF/components.txt b/xwiki-rendering-api/src/main/resources/META-INF/components.txt index a34b11f899..26fd072ac0 100644 --- a/xwiki-rendering-api/src/main/resources/META-INF/components.txt +++ b/xwiki-rendering-api/src/main/resources/META-INF/components.txt @@ -29,7 +29,7 @@ org.xwiki.rendering.internal.renderer.DefaultAttachmentURILabelGenerator org.xwiki.rendering.internal.renderer.MailtoURILabelGenerator org.xwiki.rendering.internal.renderer.DataURILabelGenerator org.xwiki.rendering.internal.renderer.DefaultPageAttachmentURILabelGenerator -org.xwiki.rendering.internal.renderer.DefaultPageAttachmentURITitleGenerator +org.xwiki.rendering.internal.renderer.DefaultDocumentURITitleGenerator org.xwiki.rendering.internal.renderer.reference.DefaultResourceReferenceTypeSerializer org.xwiki.rendering.internal.syntax.SyntaxConverter org.xwiki.rendering.internal.syntax.DefaultSyntaxRegistry diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index b99778917c..c9f0ec2241 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -33,7 +33,6 @@ import org.xwiki.rendering.listener.reference.ResourceReference; import org.xwiki.rendering.renderer.printer.XHTMLWikiPrinter; import org.xwiki.rendering.renderer.reference.link.URILabelGenerator; -import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; /** * Common code for XHTML Link Type Renderer implementations. @@ -142,31 +141,6 @@ protected String computeLabel(ResourceReference reference) return label; } - /** - * Default implementation for computing a link title when no title has been specified. Can be overwritten by - * implementations to provide a different algorithm. - * @param reference the reference of the link for which to compute the label - * @return the computed title - * @since 15.2RC1 - */ - protected String computeCreateTitle(ResourceReference reference) - { - // Look for a component implementing URITitleGenerator with a role hint matching the link scheme. - // If not found then use the full reference as the label. - // If there's no scheme separator then use the full reference as the title. Note that this can happen - // when we're not in wiki mode (since all links are considered URIs when not in wiki mode). - String title; - try { - URITitleGenerator uriTitleGenerator = - this.componentManager.getInstance(URITitleGenerator.class, reference.getType().getScheme()); - title = uriTitleGenerator.generateCreateTitle(reference); - } catch (ComponentLookupException e) { - e.printStackTrace(); - title = reference.getReference(); - } - return title; - } - @Override public void beginLink(ResourceReference reference, boolean freestanding, Map parameters) { diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java index eb7fd9ede0..bbd25dfee4 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java @@ -25,6 +25,9 @@ import javax.inject.Inject; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.InstantiationStrategy; import org.xwiki.component.descriptor.ComponentInstantiationStrategy; @@ -34,6 +37,7 @@ import org.xwiki.rendering.listener.reference.DocumentResourceReference; import org.xwiki.rendering.listener.reference.ResourceReference; import org.xwiki.rendering.renderer.reference.link.LinkLabelGenerator; +import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; import org.xwiki.rendering.wiki.WikiModel; /** @@ -51,6 +55,8 @@ public class DocumentXHTMLLinkTypeRenderer extends AbstractXHTMLLinkTypeRenderer */ private static final String WIKILINK = "wikilink"; + private static final Logger LOGGER = LoggerFactory.getLogger(AbstractXHTMLLinkTypeRenderer.class); + /** * Used to generate the link targeting a local document. */ @@ -62,6 +68,13 @@ public class DocumentXHTMLLinkTypeRenderer extends AbstractXHTMLLinkTypeRenderer @Inject private LinkLabelGenerator linkLabelGenerator; + /** + * Used to generate a link title. + */ + @Inject + private URITitleGenerator defaultTitleGenerator; + + @Override public void initialize() throws InitializationException { @@ -90,6 +103,31 @@ protected String computeLabel(ResourceReference reference) return this.linkLabelGenerator.generate(reference); } + /** + * Implementation for computing a document link title when no title has been specified. + * Looks for a component implementing URITitleGenerator with a role hint matching the reference scheme. + * @param reference the reference of the link for which to compute the label + * @return the computed title + * @since 15.2RC1 + */ + private String computeCreateTitle(ResourceReference reference) + { + URITitleGenerator titleGenerator = this.defaultTitleGenerator; + String title; + if (this.componentManager.hasComponent(URITitleGenerator.class, reference.getType().getScheme())) { + try { + titleGenerator = this.componentManager.getInstance(URITitleGenerator.class, + reference.getType().getScheme()); + } catch (Exception e) { + LOGGER.error("Error while loading component for generating URI title: [{}]", + ExceptionUtils.getRootCauseMessage(e)); + LOGGER.debug("Full stack trace: ", e); + } + } + title = titleGenerator.generateCreateTitle(reference); + return title; + } + @Override protected void beginLinkExtraAttributes(ResourceReference reference, Map spanAttributes, Map anchorAttributes) From e275325e1a3e522ca00a1a9fef922c8cfa457351 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Mon, 20 Mar 2023 12:11:43 +0100 Subject: [PATCH 06/13] XWIKI-19383: Display a title on createlink * Inject logger Co-authored-by: Manuel Leduc --- .../renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java index bbd25dfee4..dc8c03e57d 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java @@ -55,7 +55,8 @@ public class DocumentXHTMLLinkTypeRenderer extends AbstractXHTMLLinkTypeRenderer */ private static final String WIKILINK = "wikilink"; - private static final Logger LOGGER = LoggerFactory.getLogger(AbstractXHTMLLinkTypeRenderer.class); + @Inject + private Logger logger; /** * Used to generate the link targeting a local document. From de2d1e776c232c24057306eec17db2756665269a Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Mon, 20 Mar 2023 12:52:32 +0100 Subject: [PATCH 07/13] XWIKI-19383: Display a title on createlink * Fixed code style * Used logger injection * Fixed a constant name --- .../DefaultDocumentURITitleGenerator.java | 6 ++-- .../link/AbstractXHTMLLinkTypeRenderer.java | 3 +- .../link/DocumentXHTMLLinkTypeRenderer.java | 34 ++++++++++--------- 3 files changed, 23 insertions(+), 20 deletions(-) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java index 6ce144de2a..8f423fbe1c 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java @@ -19,7 +19,6 @@ */ package org.xwiki.rendering.internal.renderer; -import javax.inject.Named; import javax.inject.Singleton; import org.xwiki.component.annotation.Component; @@ -36,10 +35,11 @@ @Singleton public class DefaultDocumentURITitleGenerator implements URITitleGenerator { - private static final String DEFAULT_LABEL = "Create page: %s"; + private static final String DEFAULT_TITLE = "Create page: %s"; + @Override public String generateCreateTitle(ResourceReference reference) { - return String.format(DEFAULT_LABEL,reference.getReference()); + return String.format(DEFAULT_TITLE, reference.getReference()); } } diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index c9f0ec2241..ffbe60b506 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -46,8 +46,9 @@ public abstract class AbstractXHTMLLinkTypeRenderer implements XHTMLLinkTypeRend * The XHTML element class parameter. */ protected static final String CLASS = "class"; + /** - * The XHTML element title parameter. + * The XHTML element {@code title} parameter. * @since 15.2RC1 */ protected static final String TITLE = "title"; diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java index dc8c03e57d..b11fb18193 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java @@ -27,7 +27,6 @@ import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.xwiki.component.annotation.Component; import org.xwiki.component.annotation.InstantiationStrategy; import org.xwiki.component.descriptor.ComponentInstantiationStrategy; @@ -75,7 +74,6 @@ public class DocumentXHTMLLinkTypeRenderer extends AbstractXHTMLLinkTypeRenderer @Inject private URITitleGenerator defaultTitleGenerator; - @Override public void initialize() throws InitializationException { @@ -104,29 +102,33 @@ protected String computeLabel(ResourceReference reference) return this.linkLabelGenerator.generate(reference); } - /** - * Implementation for computing a document link title when no title has been specified. - * Looks for a component implementing URITitleGenerator with a role hint matching the reference scheme. - * @param reference the reference of the link for which to compute the label - * @return the computed title - * @since 15.2RC1 - */ - private String computeCreateTitle(ResourceReference reference) + private URITitleGenerator getTitleGenerator(ResourceReference reference) { URITitleGenerator titleGenerator = this.defaultTitleGenerator; - String title; if (this.componentManager.hasComponent(URITitleGenerator.class, reference.getType().getScheme())) { try { titleGenerator = this.componentManager.getInstance(URITitleGenerator.class, - reference.getType().getScheme()); + reference.getType().getScheme()); } catch (Exception e) { - LOGGER.error("Error while loading component for generating URI title: [{}]", + logger.warn("Error while loading component for generating URI title: [{}]", ExceptionUtils.getRootCauseMessage(e)); - LOGGER.debug("Full stack trace: ", e); + logger.debug("Full stack trace: ", e); } } - title = titleGenerator.generateCreateTitle(reference); - return title; + return titleGenerator; + } + + /** + * Implementation for computing a document link title when no title has been specified. + * Looks for a component implementing URITitleGenerator with a role hint matching the reference scheme. + * @param reference the reference of the link for which to compute the label + * @return the computed title + * @since 15.2RC1 + */ + private String computeCreateTitle(ResourceReference reference) + { + URITitleGenerator titleGenerator = getTitleGenerator(reference); + return titleGenerator.generateCreateTitle(reference); } @Override From 3cbda64a9f6ba75a3922d51929707e35543066a5 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Mon, 20 Mar 2023 13:01:22 +0100 Subject: [PATCH 08/13] XWIKI-19383: Display a title on createlink * Added a comment to DefaultDocumentURITileGenerator --- .../renderer/DefaultDocumentURITitleGenerator.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java index 8f423fbe1c..9121898288 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java @@ -37,6 +37,13 @@ public class DefaultDocumentURITitleGenerator implements URITitleGenerator { private static final String DEFAULT_TITLE = "Create page: %s"; + /** + * Generate the title of a Document URI. Using this implementation should be avoided, another implementation should + * be used instead, e.g. XWikiDocumentURITitleGenerator in xwiki-platform which is used to provide proper + * translations. This implementation should only be used when xwiki-rendering is running by itself. + * @param reference the reference pointing to a document URI for which we want to generate a create link title + * @return the URI title to display when rendering a document reference. + */ @Override public String generateCreateTitle(ResourceReference reference) { From 42255e70c0ca57da5d46f189631378354f12dac9 Mon Sep 17 00:00:00 2001 From: Sereza7 Date: Fri, 31 Mar 2023 10:52:25 +0200 Subject: [PATCH 09/13] XWIKI-19383: Display a title on createlink * Fixed types and names TODO: * Fix tests * Check DocumentXHTMLLinkTypeRenderer.java L105 --- ...a => DefaultWantedLinkTitleGenerator.java} | 27 ++++++------ ...tor.java => WantedLinkTitleGenerator.java} | 12 ++--- .../main/resources/META-INF/components.txt | 2 +- .../link/AbstractXHTMLLinkTypeRenderer.java | 7 +-- .../link/DocumentXHTMLLinkTypeRenderer.java | 44 ++++++++++--------- 5 files changed, 46 insertions(+), 46 deletions(-) rename xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/{DefaultDocumentURITitleGenerator.java => DefaultWantedLinkTitleGenerator.java} (57%) rename xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/{URITitleGenerator.java => WantedLinkTitleGenerator.java} (77%) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java similarity index 57% rename from xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java rename to xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java index 9121898288..f156912953 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultDocumentURITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java @@ -23,29 +23,30 @@ import org.xwiki.component.annotation.Component; import org.xwiki.rendering.listener.reference.ResourceReference; -import org.xwiki.rendering.renderer.reference.link.URITitleGenerator; +import org.xwiki.rendering.renderer.reference.link.WantedLinkTitleGenerator; /** - * Generate link titles for DOC URIs. - * + * Generates wanted link titles for resource references. + * Using this implementation should be avoided, another implementation should be used instead. + * E.g. XWikiDocumentURITitleGenerator in xwiki-platform which is used to provide proper translations. + * This implementation is a fallback and should only be used when xwiki-rendering is running by itself. + * This implementation uses the reference as the title. * @version $Id$ - * @since 15.2RC1 + * @since 15.3RC1 */ -@Component(hints = {"doc", "page"}) +@Component @Singleton -public class DefaultDocumentURITitleGenerator implements URITitleGenerator +public class DefaultWantedLinkTitleGenerator implements WantedLinkTitleGenerator { - private static final String DEFAULT_TITLE = "Create page: %s"; + private static final String DEFAULT_TITLE = "Create resource: %s"; /** - * Generate the title of a Document URI. Using this implementation should be avoided, another implementation should - * be used instead, e.g. XWikiDocumentURITitleGenerator in xwiki-platform which is used to provide proper - * translations. This implementation should only be used when xwiki-rendering is running by itself. - * @param reference the reference pointing to a document URI for which we want to generate a create link title - * @return the URI title to display when rendering a document reference. + * Generates wanted link titles for resource references. + * @param reference the reference for which we want to generate a wanted link title + * @return the wanted link title used when rendering a resource reference. */ @Override - public String generateCreateTitle(ResourceReference reference) + public String generateWantedLinkTitle(ResourceReference reference) { return String.format(DEFAULT_TITLE, reference.getReference()); } diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java similarity index 77% rename from xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java rename to xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java index d7102e1166..764164c852 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/URITitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java @@ -24,19 +24,19 @@ import org.xwiki.stability.Unstable; /** - * Generate Resource Reference titles for URIs. + * Generate Resource Reference titles for wanted links. * The implementations should be named according to the kind of reference they process. * * @version $Id$ - * @since 15.2RC1 + * @since 15.3RC1 */ @Role @Unstable -public interface URITitleGenerator +public interface WantedLinkTitleGenerator { /** - * @param reference the reference pointing to a URI for which we want to generate a create link title - * @return the URI title to display when rendering resource references + * @param reference the reference for which we want to generate a wanted link title + * @return the title to display when rendering the resource reference wanted link */ - String generateCreateTitle(ResourceReference reference); + String generateWantedLinkTitle(ResourceReference reference); } diff --git a/xwiki-rendering-api/src/main/resources/META-INF/components.txt b/xwiki-rendering-api/src/main/resources/META-INF/components.txt index 26fd072ac0..6c233d52e4 100644 --- a/xwiki-rendering-api/src/main/resources/META-INF/components.txt +++ b/xwiki-rendering-api/src/main/resources/META-INF/components.txt @@ -29,7 +29,7 @@ org.xwiki.rendering.internal.renderer.DefaultAttachmentURILabelGenerator org.xwiki.rendering.internal.renderer.MailtoURILabelGenerator org.xwiki.rendering.internal.renderer.DataURILabelGenerator org.xwiki.rendering.internal.renderer.DefaultPageAttachmentURILabelGenerator -org.xwiki.rendering.internal.renderer.DefaultDocumentURITitleGenerator +org.xwiki.rendering.internal.renderer.DefaultWantedLinkTitleGenerator org.xwiki.rendering.internal.renderer.reference.DefaultResourceReferenceTypeSerializer org.xwiki.rendering.internal.syntax.SyntaxConverter org.xwiki.rendering.internal.syntax.DefaultSyntaxRegistry diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index ffbe60b506..1d655efa74 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -49,7 +49,7 @@ public abstract class AbstractXHTMLLinkTypeRenderer implements XHTMLLinkTypeRend /** * The XHTML element {@code title} parameter. - * @since 15.2RC1 + * @since 15.3RC1 */ protected static final String TITLE = "title"; @@ -227,10 +227,7 @@ public void endLink(ResourceReference reference, boolean freestanding, Map Date: Fri, 31 Mar 2023 13:57:21 +0200 Subject: [PATCH 10/13] XWIKI-19383: Display a title on createlink * Fixed integration tests --- .../internal/renderer/DefaultWantedLinkTitleGenerator.java | 2 +- .../src/test/resources/wiki/link/links20.test | 6 +++--- .../src/test/resources/wiki/link/links22.test | 2 +- .../src/test/resources/wiki/link/links3.test | 6 +++--- .../src/test/resources/wiki/link/links6.test | 6 +++--- .../src/test/resources/wiki/link/links7.test | 6 +++--- .../src/test/resources/wiki/link/links8.test | 6 +++--- 7 files changed, 17 insertions(+), 17 deletions(-) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java index f156912953..e23d95ac9f 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java @@ -28,7 +28,7 @@ /** * Generates wanted link titles for resource references. * Using this implementation should be avoided, another implementation should be used instead. - * E.g. XWikiDocumentURITitleGenerator in xwiki-platform which is used to provide proper translations. + * E.g. XWikiDocumentWantedLinkTitleGenerator in xwiki-platform which is used to provide translations. * This implementation is a fallback and should only be used when xwiki-rendering is running by itself. * This implementation uses the reference as the title. * @version $Id$ diff --git a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links20.test b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links20.test index 1369b09032..709600fd7a 100644 --- a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links20.test +++ b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links20.test @@ -15,11 +15,11 @@ endDocument .#----------------------------------------------------- .expect|xhtml/1.0 .#----------------------------------------------------- -

\

+

\

.#----------------------------------------------------- .expect|annotatedxhtml/1.0 .#----------------------------------------------------- -

\

+

\

.#----------------------------------------------------- .expect|xwiki/2.0 .#----------------------------------------------------- @@ -27,4 +27,4 @@ endDocument .#----------------------------------------------------- .input|xhtml/1.0 .#----------------------------------------------------- -

\

\ No newline at end of file +

\

\ No newline at end of file diff --git a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links22.test b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links22.test index dd1d428621..304a598ae8 100644 --- a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links22.test +++ b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links22.test @@ -6,4 +6,4 @@ .#----------------------------------------------------- .expect|xhtml/1.0 .#----------------------------------------------------- -

label

\ No newline at end of file +

label

\ No newline at end of file diff --git a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links3.test b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links3.test index 6838c3bf81..9f47b1177d 100644 --- a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links3.test +++ b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links3.test @@ -15,11 +15,11 @@ endDocument .#----------------------------------------------------- .expect|xhtml/1.0 .#----------------------------------------------------- -

label

+

label

.#----------------------------------------------------- .expect|annotatedxhtml/1.0 .#----------------------------------------------------- -

label

+

label

.#----------------------------------------------------- .expect|xwiki/2.0 .#----------------------------------------------------- @@ -27,7 +27,7 @@ endDocument .#----------------------------------------------------- .input|xhtml/1.0 .#----------------------------------------------------- -

label

+

label

.#----------------------------------------------------- .expect|plain/1.0 .#----------------------------------------------------- diff --git a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links6.test b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links6.test index 2a281b92f7..0c5adf17e0 100644 --- a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links6.test +++ b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links6.test @@ -51,11 +51,11 @@ endDocument .#----------------------------------------------------- .expect|xhtml/1.0 .#----------------------------------------------------- -

{{macro}}
Label>Reference
Reference|Param=Value
[[no link>>Not Reference]]
[[whatever
not:link

+

{{macro}}
Label>Reference
Reference|Param=Value
[[no link>>Not Reference]]
[[whatever
not:link

.#----------------------------------------------------- .expect|annotatedxhtml/1.0 .#----------------------------------------------------- -

{{macro}}
Label>Reference
Reference|Param=Value
[[no link>>Not Reference]]
[[whatever
not:link

+

{{macro}}
Label>Reference
Reference|Param=Value
[[no link>>Not Reference]]
[[whatever
not:link

.#----------------------------------------------------- .expect|xwiki/2.0 .#----------------------------------------------------- @@ -68,4 +68,4 @@ not:link .#----------------------------------------------------- .input|xhtml/1.0 .#----------------------------------------------------- -

{{macro}}
Label>Reference
Reference|Param=Value
[[no link>>Not Reference]]
[[whatever
not:link

\ No newline at end of file +

{{macro}}
Label>Reference
Reference|Param=Value
[[no link>>Not Reference]]
[[whatever
not:link

\ No newline at end of file diff --git a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links7.test b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links7.test index 5f1799092b..208f7cd86b 100644 --- a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links7.test +++ b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links7.test @@ -29,11 +29,11 @@ endDocument .#----------------------------------------------------- .expect|xhtml/1.0 .#----------------------------------------------------- -

hello
= notheader

+

hello
= notheader

.#----------------------------------------------------- .expect|annotatedxhtml/1.0 .#----------------------------------------------------- -

hello
= notheader

+

hello
= notheader

.#----------------------------------------------------- .expect|xwiki/2.0 .#----------------------------------------------------- @@ -43,4 +43,4 @@ endDocument .#----------------------------------------------------- .input|xhtml/1.0 .#----------------------------------------------------- -

hello
= notheader

\ No newline at end of file +

hello
= notheader

\ No newline at end of file diff --git a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links8.test b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links8.test index 17ee7f72b7..3e63591331 100644 --- a/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links8.test +++ b/xwiki-rendering-integration-tests/src/test/resources/wiki/link/links8.test @@ -19,11 +19,11 @@ endDocument .#----------------------------------------------------- .expect|xhtml/1.0 .#----------------------------------------------------- -

Space.ExistingPage
label

+

Space.ExistingPage
label

.#----------------------------------------------------- .expect|annotatedxhtml/1.0 .#----------------------------------------------------- -

Space.ExistingPage
label

+

Space.ExistingPage
label

.#----------------------------------------------------- .expect|xwiki/2.0 .#----------------------------------------------------- @@ -32,4 +32,4 @@ endDocument .#----------------------------------------------------- .input|xhtml/1.0 .#----------------------------------------------------- -

Space.ExistingPage
label

\ No newline at end of file +

Space.ExistingPage
label

\ No newline at end of file From fe164114c31ad5967d492a662e5458088a6d7cbc Mon Sep 17 00:00:00 2001 From: LucasC Date: Fri, 5 Apr 2024 12:12:27 +0200 Subject: [PATCH 11/13] XWIKI-19383: Display a title on createlink * Replaced a hard-coded string --- .../renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java index 97f46afd20..3417f39279 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java @@ -109,8 +109,8 @@ private WantedLinkTitleGenerator getTitleGenerator(ResourceReference reference) titleGenerator = this.componentManager.getInstance(WantedLinkTitleGenerator.class, reference.getType().getScheme()); } catch (Exception e) { - String message = "Could not find a [WantedLinkTitleGenerator] component to generate the wanted " - + "link title for [{}]."; + String message = String.format("Could not find a [%s] component to generate the wanted " + + "link title for [{}].", WantedLinkTitleGenerator.class.getName()); if (logger.isDebugEnabled()) { logger.debug(message, reference, e); } else { From 16d333c89c6feff5a2d2cbccc44ece65b30e9360 Mon Sep 17 00:00:00 2001 From: LucasC Date: Thu, 11 Apr 2024 11:21:02 +0200 Subject: [PATCH 12/13] XWIKI-19383: Display a title on createlink * Updated versions --- .../internal/renderer/DefaultWantedLinkTitleGenerator.java | 2 +- .../renderer/reference/link/WantedLinkTitleGenerator.java | 2 +- .../renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java | 2 +- .../renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java index e23d95ac9f..6c7e587b82 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/internal/renderer/DefaultWantedLinkTitleGenerator.java @@ -32,7 +32,7 @@ * This implementation is a fallback and should only be used when xwiki-rendering is running by itself. * This implementation uses the reference as the title. * @version $Id$ - * @since 15.3RC1 + * @since 16.3.0RC1 */ @Component @Singleton diff --git a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java index 764164c852..60750bfe8b 100644 --- a/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java +++ b/xwiki-rendering-api/src/main/java/org/xwiki/rendering/renderer/reference/link/WantedLinkTitleGenerator.java @@ -28,7 +28,7 @@ * The implementations should be named according to the kind of reference they process. * * @version $Id$ - * @since 15.3RC1 + * @since 16.3.0RC1 */ @Role @Unstable diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index 1d655efa74..7166cf3caf 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -49,7 +49,7 @@ public abstract class AbstractXHTMLLinkTypeRenderer implements XHTMLLinkTypeRend /** * The XHTML element {@code title} parameter. - * @since 15.3RC1 + * @since 16.3.0RC1 */ protected static final String TITLE = "title"; diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java index 3417f39279..027f57e9ce 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/DocumentXHTMLLinkTypeRenderer.java @@ -125,7 +125,7 @@ private WantedLinkTitleGenerator getTitleGenerator(ResourceReference reference) * Looks for a component implementing WantedLinkTitleGenerator with a role hint matching the reference scheme. * @param reference the reference for which to compute the title * @return the wanted link title - * @since 15.3RC1 + * @since 16.3.0RC1 */ private String computeWantedLinkTitle(ResourceReference reference) { From 672ba6424ba9e48db42faaf4018cb1fa15446ef1 Mon Sep 17 00:00:00 2001 From: LucasC Date: Mon, 24 Mar 2025 16:50:49 +0100 Subject: [PATCH 13/13] XWIKI-19383: Display a title on createlink * Removed unwanted codestyle change. --- .../renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java index 7166cf3caf..3eae74ecc8 100644 --- a/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java +++ b/xwiki-rendering-syntaxes/xwiki-rendering-syntax-xhtml/src/main/java/org/xwiki/rendering/internal/renderer/xhtml/link/AbstractXHTMLLinkTypeRenderer.java @@ -227,7 +227,10 @@ public void endLink(ResourceReference reference, boolean freestanding, Map