This is an automated email from the ASF dual-hosted git repository. juanpablo pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/jspwiki.git
commit 9a4374877aac5f1d68a218a40e3b11231e0edff0 Author: Juan Pablo Santos RodrÃguez <[email protected]> AuthorDate: Tue Sep 30 20:01:11 2025 +0200 Remove deprecated libraries usage + use some jdk-17 constructs --- .../wiki/search/kendra/KendraSearchProvider.java | 46 ++++----- .../org/apache/wiki/auth/SecurityVerifier.java | 36 +++---- .../apache/wiki/auth/user/JDBCUserDatabase.java | 3 +- .../apache/wiki/parser/JSPWikiMarkupParser.java | 113 ++++++++++----------- .../apache/wiki/search/LuceneSearchProvider.java | 12 ++- .../java/org/apache/wiki/ui/TemplateManager.java | 3 +- .../org/apache/wiki/url/DefaultURLConstructor.java | 8 +- .../JSPWikiLinkAttributeProvider.java | 9 +- .../JSPWikiLinkNodePostProcessor.java | 6 +- 9 files changed, 113 insertions(+), 123 deletions(-) diff --git a/jspwiki-kendra-searchprovider/src/main/java/org/apache/wiki/search/kendra/KendraSearchProvider.java b/jspwiki-kendra-searchprovider/src/main/java/org/apache/wiki/search/kendra/KendraSearchProvider.java index 9563e59f2..bf5409f26 100644 --- a/jspwiki-kendra-searchprovider/src/main/java/org/apache/wiki/search/kendra/KendraSearchProvider.java +++ b/jspwiki-kendra-searchprovider/src/main/java/org/apache/wiki/search/kendra/KendraSearchProvider.java @@ -26,7 +26,7 @@ import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.reflect.TypeToken; import org.apache.commons.io.FilenameUtils; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Strings; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.wiki.InternalWikiException; @@ -54,7 +54,13 @@ import java.io.InputStreamReader; import java.lang.reflect.Type; import java.nio.ByteBuffer; import java.nio.charset.StandardCharsets; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Properties; import static java.lang.String.format; @@ -123,7 +129,7 @@ public class KendraSearchProvider implements SearchProvider { return gson.fromJson( new InputStreamReader( in ), collectionType ); } } catch ( final IOException e ) { - LOG.error( format( "Unable to load default propertyfile 'content_types.json': %s", e.getMessage() ), e ); + LOG.error( "Unable to load default propertyfile 'content_types.json': {}", e.getMessage(), e ); } return null; } @@ -146,9 +152,9 @@ public class KendraSearchProvider implements SearchProvider { .withDocumentIdList( pageName ); final BatchDeleteDocumentResult result = getKendra().batchDeleteDocument( request ); if (result.getFailedDocuments().isEmpty()) { - LOG.debug( format( "Page '%s' was removed from index", pageName ) ); + LOG.debug( "Page '{}' was removed from index", pageName ); } else { - LOG.error( format( "Failed to remove Page '%s' from index", pageName ) ); + LOG.error( "Failed to remove Page '{}' from index", pageName ); } } @@ -243,7 +249,7 @@ public class KendraSearchProvider implements SearchProvider { return null; } for ( final IndexConfigurationSummary item : items ) { - if ( StringUtils.equals( item.getName(), indexName ) ) { + if ( Strings.CS.equals( item.getName(), indexName ) ) { return item.getId(); } } @@ -267,12 +273,12 @@ public class KendraSearchProvider implements SearchProvider { String nextToken = ""; while ( nextToken != null ) { final List< DataSourceSummary > items = result.getSummaryItems(); - if ( items == null || items.isEmpty() ) { + if( items == null || items.isEmpty() ) { return null; } - for ( final DataSourceSummary item : items ) { - if ( StringUtils.equals( item.getName(), dataSourceName ) ) { + for( final DataSourceSummary item : items ) { + if( Strings.CS.equals( item.getName(), dataSourceName ) ) { return item.getId(); } } @@ -287,18 +293,13 @@ public class KendraSearchProvider implements SearchProvider { * Converts a SCORE Confidence from Kendra to an "equivalent" integer score */ private int confidence2score( final String scoreConfidence ) { - switch ( ScoreConfidence.fromValue( scoreConfidence ) ) { - case VERY_HIGH: - return 100; - case HIGH: - return 75; - case MEDIUM: - return 50; - case LOW: - return 25; - default: - return 0; - } + return switch( ScoreConfidence.fromValue( scoreConfidence ) ) { + case VERY_HIGH -> 100; + case HIGH -> 75; + case MEDIUM -> 50; + case LOW -> 25; + default -> 0; + }; } /** @@ -417,8 +418,7 @@ public class KendraSearchProvider implements SearchProvider { final String title = TextUtil.beautifyString( pageName ); ByteBuffer blob; ContentType contentType = ContentType.PLAIN_TEXT; - if ( page instanceof Attachment ) { - final Attachment attachment = ( Attachment ) page; + if ( page instanceof final Attachment attachment ) { InputStream is = null; try { final String filename = attachment.getFileName(); diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java index c5b6519bb..4075478dd 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/SecurityVerifier.java @@ -206,7 +206,7 @@ public final class SecurityVerifier { final int pageActionsLength = pageActions.length; // Calculate column widths final String colWidth; - if( pageActionsLength > 0 && rolesLength > 0 ) { + if( rolesLength > 0 ) { colWidth = ( 67f / ( pageActionsLength * rolesLength ) ) + "%"; } else { colWidth = "67%"; @@ -344,7 +344,7 @@ public final class SecurityVerifier { final Authorizer authorizer = authorizationManager.getAuthorizer(); // If authorizer not WebContainerAuthorizer, print error message - if ( !( authorizer instanceof WebContainerAuthorizer ) ) { + if ( !( authorizer instanceof final WebContainerAuthorizer wca ) ) { throw new IllegalStateException( "Authorizer should be WebContainerAuthorizer" ); } @@ -369,7 +369,6 @@ public final class SecurityVerifier { s.append( "</thead>\n" ); s.append( "<tbody>\n" ); - final WebContainerAuthorizer wca = (WebContainerAuthorizer) authorizer; for( int i = 0; i < CONTAINER_ACTIONS.length; i++ ) { final String action = CONTAINER_ACTIONS[i]; final String jsp = CONTAINER_JSPS[i]; @@ -438,26 +437,20 @@ public final class SecurityVerifier { * container <code>web.xml</code> file. * @throws WikiException if the web authorizer cannot verify the roles */ - void verifyPolicyAndContainerRoles() throws WikiException - { + void verifyPolicyAndContainerRoles() throws WikiException { final Authorizer authorizer = m_engine.getManager( AuthorizationManager.class ).getAuthorizer(); final Principal[] containerRoles = authorizer.getRoles(); boolean missing = false; - for( final Principal principal : m_policyPrincipals ) - { - if ( principal instanceof Role ) - { - final Role role = (Role) principal; + for( final Principal principal : m_policyPrincipals ) { + if( principal instanceof final Role role ) { final boolean isContainerRole = ArrayUtils.contains( containerRoles, role ); - if ( !Role.isBuiltInRole( role ) && !isContainerRole ) - { + if ( !Role.isBuiltInRole( role ) && !isContainerRole ) { m_session.addMessage( ERROR_ROLES, "Role '" + role.getName() + "' is defined in security policy but not in web.xml." ); missing = true; } } } - if ( !missing ) - { + if ( !missing ) { m_session.addMessage( INFO_ROLES, "Every non-standard role defined in the security policy was also found in web.xml." ); } } @@ -466,8 +459,7 @@ public final class SecurityVerifier { * Verifies that the group datbase was initialized properly, and that * user add and delete operations work as they should. */ - void verifyGroupDatabase() - { + void verifyGroupDatabase() { final GroupManager mgr = m_engine.getManager( GroupManager.class ); GroupDatabase db = null; try { @@ -735,20 +727,16 @@ public final class SecurityVerifier { * Verifies that the user datbase was initialized properly, and that * user add and delete operations work as they should. */ - void verifyUserDatabase() - { + void verifyUserDatabase() { final UserDatabase db = m_engine.getManager( UserManager.class ).getUserDatabase(); // Check for obvious error conditions - if ( db == null ) - { - m_session.addMessage( ERROR_DB, "UserDatabase is null; JSPWiki could not " + - "initialize it. Check the error logs." ); + if ( db == null ) { + m_session.addMessage( ERROR_DB, "UserDatabase is null; JSPWiki could not initialize it. Check the error logs." ); return; } - if ( db instanceof DummyUserDatabase ) - { + if ( db instanceof DummyUserDatabase ) { m_session.addMessage( ERROR_DB, "UserDatabase is DummyUserDatabase; JSPWiki " + "may not have been able to initialize the database you supplied in " + "jspwiki.properties, or you left the 'jspwiki.userdatabase' property " + diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java index 9dd48be06..a06655732 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/JDBCUserDatabase.java @@ -19,6 +19,7 @@ package org.apache.wiki.auth.user; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Strings; import org.apache.wiki.api.core.Engine; import org.apache.wiki.api.exceptions.NoRequiredPropertyException; import org.apache.wiki.auth.NoSuchPrincipalException; @@ -589,7 +590,7 @@ public class JDBCUserDatabase extends AbstractUserDatabase { } // If password changed, hash it before we save - if( !StringUtils.equals( password, existingPassword ) ) { + if( !Strings.CS.equals( password, existingPassword ) ) { password = getHash( password ); } diff --git a/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java b/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java index 0998f6068..8f901f64a 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/JSPWikiMarkupParser.java @@ -18,59 +18,59 @@ */ package org.apache.wiki.parser; -import org.apache.commons.lang3.StringUtils; -import org.apache.commons.text.StringEscapeUtils; -import org.apache.logging.log4j.LogManager; -import org.apache.logging.log4j.Logger; -import org.apache.oro.text.regex.MalformedPatternException; -import org.apache.oro.text.regex.MatchResult; -import org.apache.oro.text.regex.Pattern; -import org.apache.oro.text.regex.PatternCompiler; -import org.apache.oro.text.regex.PatternMatcher; -import org.apache.oro.text.regex.Perl5Compiler; -import org.apache.oro.text.regex.Perl5Matcher; -import org.apache.wiki.InternalWikiException; -import org.apache.wiki.StringTransmutator; -import org.apache.wiki.api.core.Acl; -import org.apache.wiki.api.core.Context; -import org.apache.wiki.api.core.ContextEnum; -import org.apache.wiki.api.core.Page; -import org.apache.wiki.api.exceptions.PluginException; -import org.apache.wiki.api.plugin.Plugin; -import org.apache.wiki.api.spi.Wiki; -import org.apache.wiki.attachment.AttachmentManager; -import org.apache.wiki.auth.AuthorizationManager; -import org.apache.wiki.auth.UserManager; -import org.apache.wiki.auth.WikiSecurityException; -import org.apache.wiki.auth.acl.AclManager; -import org.apache.wiki.i18n.InternationalizationManager; -import org.apache.wiki.preferences.Preferences; -import org.apache.wiki.util.TextUtil; -import org.apache.wiki.util.XmlUtil; -import org.apache.wiki.variables.VariableManager; -import org.jdom2.Attribute; -import org.jdom2.Content; -import org.jdom2.Element; -import org.jdom2.IllegalDataException; -import org.jdom2.ProcessingInstruction; -import org.jdom2.Verifier; - -import javax.xml.transform.Result; -import java.io.IOException; -import java.io.Reader; -import java.io.StringReader; -import java.text.MessageFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collection; -import java.util.EmptyStackException; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.ResourceBundle; -import java.util.Stack; + import org.apache.commons.lang3.Strings; + import org.apache.commons.text.StringEscapeUtils; + import org.apache.logging.log4j.LogManager; + import org.apache.logging.log4j.Logger; + import org.apache.oro.text.regex.MalformedPatternException; + import org.apache.oro.text.regex.MatchResult; + import org.apache.oro.text.regex.Pattern; + import org.apache.oro.text.regex.PatternCompiler; + import org.apache.oro.text.regex.PatternMatcher; + import org.apache.oro.text.regex.Perl5Compiler; + import org.apache.oro.text.regex.Perl5Matcher; + import org.apache.wiki.InternalWikiException; + import org.apache.wiki.StringTransmutator; + import org.apache.wiki.api.core.Acl; + import org.apache.wiki.api.core.Context; + import org.apache.wiki.api.core.ContextEnum; + import org.apache.wiki.api.core.Page; + import org.apache.wiki.api.exceptions.PluginException; + import org.apache.wiki.api.plugin.Plugin; + import org.apache.wiki.api.spi.Wiki; + import org.apache.wiki.attachment.AttachmentManager; + import org.apache.wiki.auth.AuthorizationManager; + import org.apache.wiki.auth.UserManager; + import org.apache.wiki.auth.WikiSecurityException; + import org.apache.wiki.auth.acl.AclManager; + import org.apache.wiki.i18n.InternationalizationManager; + import org.apache.wiki.preferences.Preferences; + import org.apache.wiki.util.TextUtil; + import org.apache.wiki.util.XmlUtil; + import org.apache.wiki.variables.VariableManager; + import org.jdom2.Attribute; + import org.jdom2.Content; + import org.jdom2.Element; + import org.jdom2.IllegalDataException; + import org.jdom2.ProcessingInstruction; + import org.jdom2.Verifier; + + import javax.xml.transform.Result; + import java.io.IOException; + import java.io.Reader; + import java.io.StringReader; + import java.text.MessageFormat; + import java.util.ArrayList; + import java.util.Arrays; + import java.util.Collection; + import java.util.EmptyStackException; + import java.util.HashMap; + import java.util.Iterator; + import java.util.List; + import java.util.Map; + import java.util.Properties; + import java.util.ResourceBundle; + import java.util.Stack; /** * Parses JSPWiki-style markup into a WikiDocument DOM tree. This class is the heart and soul of JSPWiki : make @@ -748,9 +748,9 @@ public class JSPWikiMarkupParser extends MarkupParser { callMutatorChain( m_externalLinkMutatorChain, url ); if( m_linkParsingOperations.isImageLink( url, isImageInlining(), getInlineImagePatterns() ) ) { - result = handleImageLink( StringUtils.replace( url, "&", "&" ), url, false ); + result = handleImageLink( Strings.CS.replace( url, "&", "&" ), url, false ); } else { - result = makeLink( EXTERNAL, StringUtils.replace( url, "&", "&" ), url, null, null ); + result = makeLink( EXTERNAL, Strings.CS.replace( url, "&", "&" ), url, null, null ); addElement( outlinkImage() ); } @@ -1625,8 +1625,7 @@ public class JSPWikiMarkupParser extends MarkupParser { if( handleClosebrace() == null ) m_plainTextBuf.append( (char) ch ); } else if( ch == -1 ) { quitReading = true; - } - else if( ch == '\r' ) { + } else if( ch == '\r' ) { // DOS line feeds we ignore. } else if( ch == '<' ) { m_plainTextBuf.append( "<" ); diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java index 959371201..40179362e 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/search/LuceneSearchProvider.java @@ -33,6 +33,7 @@ import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.IndexWriterConfig.OpenMode; +import org.apache.lucene.index.StoredFields; import org.apache.lucene.index.Term; import org.apache.lucene.queryparser.classic.MultiFieldQueryParser; import org.apache.lucene.queryparser.classic.ParseException; @@ -41,6 +42,7 @@ import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TermQuery; +import org.apache.lucene.search.TopDocs; import org.apache.lucene.search.highlight.Highlighter; import org.apache.lucene.search.highlight.InvalidTokenOffsetsException; import org.apache.lucene.search.highlight.QueryScorer; @@ -478,13 +480,13 @@ public class LuceneSearchProvider implements SearchProvider { new QueryScorer( luceneQuery ) ); } - final ScoreDoc[] hits = searcher.search( luceneQuery, MAX_SEARCH_HITS ).scoreDocs; final AuthorizationManager mgr = m_engine.getManager( AuthorizationManager.class ); + final TopDocs hits = searcher.search( luceneQuery, MAX_SEARCH_HITS ); + final StoredFields storedFields = reader.storedFields(); - list = new ArrayList<>( hits.length ); - for( final ScoreDoc hit : hits ) { - final int docID = hit.doc; - final Document doc = searcher.doc( docID ); + list = new ArrayList<>( hits.scoreDocs.length ); + for( final ScoreDoc hit : hits.scoreDocs ) { + final Document doc = storedFields.document( hit.doc ); final String pageName = doc.get( LUCENE_ID ); final Page page = m_engine.getManager( PageManager.class ).getPage( pageName, PageProvider.LATEST_VERSION ); diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java b/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java index a0f3c08e6..d0f91a6eb 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/TemplateManager.java @@ -19,6 +19,7 @@ package org.apache.wiki.ui; import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Strings; import org.apache.logging.log4j.LogManager; import org.apache.wiki.api.core.Context; import org.apache.wiki.i18n.InternationalizationManager; @@ -326,7 +327,7 @@ public interface TemplateManager extends ModuleManager { resources = new Vector<>(); } String resolvedResource = resource; - if( StringUtils.startsWith( resource, "engine://" ) ) { + if( Strings.CS.startsWith( resource, "engine://" ) ) { final String val = ctx.getEngine().getWikiProperties().getProperty( resource.substring( 9 ) ); // "engine//:".length() == 9 if( StringUtils.isNotBlank( val ) ) { resolvedResource = val; diff --git a/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java b/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java index 1817485d5..0ecb617c6 100644 --- a/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java +++ b/jspwiki-main/src/main/java/org/apache/wiki/url/DefaultURLConstructor.java @@ -18,14 +18,14 @@ */ package org.apache.wiki.url; -import org.apache.commons.lang3.StringUtils; +import jakarta.servlet.http.HttpServletRequest; +import org.apache.commons.lang3.Strings; import org.apache.wiki.api.core.Command; import org.apache.wiki.api.core.ContextEnum; import org.apache.wiki.api.core.Engine; import org.apache.wiki.ui.CommandResolver; import org.apache.wiki.util.TextUtil; -import jakarta.servlet.http.HttpServletRequest; import java.nio.charset.Charset; import java.util.Properties; @@ -86,8 +86,8 @@ public class DefaultURLConstructor implements URLConstructor { */ private String encodeURI( String uri ) { uri = m_engine.encodeName(uri); - uri = StringUtils.replace( uri, "+", "%20" ); - uri = StringUtils.replace( uri, "%2F", "/" ); + uri = Strings.CS.replace( uri, "+", "%20" ); + uri = Strings.CS.replace( uri, "%2F", "/" ); return uri; } diff --git a/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/attributeprovider/JSPWikiLinkAttributeProvider.java b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/attributeprovider/JSPWikiLinkAttributeProvider.java index 8fda0116b..4b4a930c9 100644 --- a/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/attributeprovider/JSPWikiLinkAttributeProvider.java +++ b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/attributeprovider/JSPWikiLinkAttributeProvider.java @@ -22,7 +22,7 @@ import com.vladsch.flexmark.html.AttributeProvider; import com.vladsch.flexmark.html.renderer.AttributablePart; import com.vladsch.flexmark.util.ast.Node; import com.vladsch.flexmark.util.html.MutableAttributes; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Strings; import org.apache.oro.text.regex.Pattern; import org.apache.wiki.api.core.Context; import org.apache.wiki.markdown.nodes.JSPWikiLink; @@ -34,7 +34,7 @@ import java.util.List; /** * {@link AttributeProvider} to decorate {@link JSPWikiLink}s. - * + * <p> * Acts as a factory of {@link NodeAttributeProviderState}s, which are the classes setting the attributes for each concrete type of link. */ public class JSPWikiLinkAttributeProvider implements AttributeProvider { @@ -60,14 +60,13 @@ public class JSPWikiLinkAttributeProvider implements AttributeProvider { */ @Override public void setAttributes( final Node node, final AttributablePart part, final MutableAttributes attributes ) { - if( node instanceof JSPWikiLink ) { - final JSPWikiLink link = ( JSPWikiLink )node; + if( node instanceof JSPWikiLink link ) { final NodeAttributeProviderState< JSPWikiLink > linkState; if( linkOperations.isExternalLink( link.getWikiLink() ) ) { linkState = new ExternalLinkAttributeProviderState( wikiContext, link.hasRef(), isImageInlining, inlineImagePatterns ); } else if( linkOperations.isInterWikiLink( link.getWikiLink() ) ) { linkState = new InterWikiLinkAttributeProviderState( wikiContext, link.hasRef(), isImageInlining, inlineImagePatterns ); - } else if( StringUtils.startsWith( link.getWikiLink(), "#" ) ) { + } else if( Strings.CS.startsWith( link.getWikiLink(), "#" ) ) { linkState = new LocalFootnoteLinkAttributeProviderState( wikiContext ); } else if( TextUtil.isNumber( link.getWikiLink() ) ) { linkState = new LocalFootnoteRefLinkAttributeProviderState( wikiContext ); diff --git a/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/postprocessor/JSPWikiLinkNodePostProcessor.java b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/postprocessor/JSPWikiLinkNodePostProcessor.java index d4903709a..b96dbb8be 100644 --- a/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/postprocessor/JSPWikiLinkNodePostProcessor.java +++ b/jspwiki-markdown/src/main/java/org/apache/wiki/markdown/extensions/jspwikilinks/postprocessor/JSPWikiLinkNodePostProcessor.java @@ -24,7 +24,7 @@ import com.vladsch.flexmark.parser.block.NodePostProcessor; import com.vladsch.flexmark.util.ast.Document; import com.vladsch.flexmark.util.ast.Node; import com.vladsch.flexmark.util.ast.NodeTracker; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.Strings; import org.apache.oro.text.regex.Pattern; import org.apache.wiki.api.core.Context; import org.apache.wiki.markdown.nodes.JSPWikiLink; @@ -37,7 +37,7 @@ import java.util.List; /** * {@link NodePostProcessor} to convert {@link Link}s into {@link JSPWikiLink}s. - * + * <p> * Acts as a factory of {@link NodePostProcessorState}, which are the classes generating the extra markup for each concrete type of link. */ public class JSPWikiLinkNodePostProcessor extends NodePostProcessor { @@ -84,7 +84,7 @@ public class JSPWikiLinkNodePostProcessor extends NodePostProcessor { linkPostProcessor = new ExternalLinkNodePostProcessorState( m_context, isImageInlining, inlineImagePatterns ); } else if( linkOperations.isInterWikiLink( link.getUrl().toString() ) ) { linkPostProcessor = new InterWikiLinkNodePostProcessorState( m_context, document, isImageInlining, inlineImagePatterns ); - } else if( StringUtils.startsWith( link.getUrl().toString(), "#" ) ) { + } else if( Strings.CS.startsWith( link.getUrl().toString(), "#" ) ) { linkPostProcessor = new LocalFootnoteLinkNodePostProcessorState( m_context ); } else if( TextUtil.isNumber( link.getUrl().toString() ) ) { linkPostProcessor = new LocalFootnoteRefLinkNodePostProcessorState( m_context );
