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
The following commit(s) were added to refs/heads/master by this push:
new 0013d81d6 Use java Stream instead.
0013d81d6 is described below
commit 0013d81d626174ee8e72b851ab8c58091670e402
Author: Arturo Bernal <[email protected]>
AuthorDate: Thu Oct 20 21:58:06 2022 +0200
Use java Stream instead.
---
.../src/main/java/org/apache/wiki/WikiSession.java | 15 ++---------
.../apache/wiki/auth/AuthenticationManager.java | 7 +----
.../wiki/auth/DefaultAuthorizationManager.java | 6 +----
.../java/org/apache/wiki/auth/SessionMonitor.java | 7 +++--
.../org/apache/wiki/auth/acl/AclEntryImpl.java | 21 +++------------
.../java/org/apache/wiki/auth/acl/AclImpl.java | 7 +----
.../wiki/auth/authorize/DefaultGroupManager.java | 8 ++----
.../java/org/apache/wiki/auth/authorize/Group.java | 21 +++------------
.../auth/authorize/WebContainerAuthorizer.java | 30 +++++-----------------
.../wiki/auth/permissions/GroupPermission.java | 8 +-----
.../org/apache/wiki/auth/user/XMLUserDatabase.java | 22 +++++-----------
.../apache/wiki/diff/ContextualDiffProvider.java | 24 +++++------------
.../org/apache/wiki/filters/ProfanityFilter.java | 10 ++------
.../java/org/apache/wiki/parser/LinkParser.java | 7 ++---
.../apache/wiki/plugin/AbstractReferralPlugin.java | 16 ++++--------
.../main/java/org/apache/wiki/plugin/Denounce.java | 7 +----
.../java/org/apache/wiki/plugin/IndexPlugin.java | 12 +++------
.../wiki/plugin/ReferringUndefinedPagesPlugin.java | 14 ++++------
.../wiki/providers/CachingAttachmentProvider.java | 6 +----
.../wiki/references/DefaultReferenceManager.java | 19 +++-----------
.../org/apache/wiki/render/CreoleRenderer.java | 5 ++--
.../apache/wiki/search/LuceneSearchProvider.java | 17 ++++--------
.../org/apache/wiki/tags/AdminBeanIteratorTag.java | 8 ++----
.../org/apache/wiki/tags/EditorIteratorTag.java | 7 +++--
.../java/org/apache/wiki/tags/UserProfileTag.java | 18 +++++--------
.../main/java/org/apache/wiki/ui/Installer.java | 9 +++----
.../org/apache/wiki/ui/WikiRequestWrapper.java | 11 ++------
.../wiki/ui/admin/DefaultAdminBeanManager.java | 7 +----
.../wiki/variables/DefaultVariableManager.java | 22 +++-------------
.../wiki/workflow/DefaultWorkflowManager.java | 7 ++---
.../org/apache/wiki/xmlrpc/AbstractRPCHandler.java | 9 +++----
.../java/org/apache/wiki/xmlrpc/RPCHandler.java | 10 ++------
.../org/apache/wiki/xmlrpc/RPCHandlerUTF8.java | 10 ++------
.../main/java/org/apache/wiki/util/TextUtil.java | 15 +++--------
.../org/apache/wiki/util/TimedCounterList.java | 10 ++------
.../main/java/org/apache/wiki/util/XmlUtil.java | 11 +++-----
.../htmltowiki/XHtmlElementToWikiTranslator.java | 7 ++---
37 files changed, 110 insertions(+), 340 deletions(-)
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
b/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
index 318b2156b..c161cf6e7 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiSession.java
@@ -91,12 +91,7 @@ public class WikiSession implements Session {
* @return the result
*/
protected boolean isInGroup( final Group group ) {
- for( final Principal principal : getPrincipals() ) {
- if( isAuthenticated() && group.isMember( principal ) ) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(getPrincipals()).anyMatch(principal ->
isAuthenticated() && group.isMember(principal));
}
/**
@@ -211,16 +206,10 @@ public class WikiSession implements Session {
/** {@inheritDoc} */
@Override
public Principal[] getPrincipals() {
- final ArrayList< Principal > principals = new ArrayList<>();
// Take the first non Role as the main Principal
- for( final Principal principal : m_subject.getPrincipals() ) {
- if ( AuthenticationManager.isUserPrincipal( principal ) ) {
- principals.add( principal );
- }
- }
- return principals.toArray( new Principal[0] );
+ return
m_subject.getPrincipals().stream().filter(AuthenticationManager::isUserPrincipal).toArray(Principal[]::new);
}
/** {@inheritDoc} */
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
index 72a93f92a..3657473ca 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/AuthenticationManager.java
@@ -187,12 +187,7 @@ public interface AuthenticationManager extends
Initializable {
* @return the login principal
*/
default Principal getLoginPrincipal( final Set< Principal > principals ) {
- for( final Principal principal : principals ) {
- if ( isUserPrincipal( principal ) ) {
- return principal;
- }
- }
- return null;
+ return
principals.stream().filter(AuthenticationManager::isUserPrincipal).findFirst().orElse(null);
}
// events processing
.......................................................
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
index 09b0bc296..f39f65cdc 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/auth/DefaultAuthorizationManager.java
@@ -189,11 +189,7 @@ public class DefaultAuthorizationManager implements
AuthorizationManager {
if( session.isAuthenticated() &&
AuthenticationManager.isUserPrincipal( principal ) ) {
final String principalName = principal.getName();
final Principal[] userPrincipals = session.getPrincipals();
- for( final Principal userPrincipal : userPrincipals ) {
- if( userPrincipal.getName().equals( principalName ) ) {
- return true;
- }
- }
+ return Arrays.stream(userPrincipals).anyMatch(userPrincipal ->
userPrincipal.getName().equals(principalName));
}
return false;
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
index ddd8dd81e..dee79f4ad 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/SessionMonitor.java
@@ -39,6 +39,7 @@ import java.util.Collection;
import java.util.Map;
import java.util.WeakHashMap;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
/**
* <p>Manages Sessions for different Engines.</p>
@@ -220,11 +221,9 @@ public class SessionMonitor implements HttpSessionListener
{
* @return the array of user principals
*/
public final Principal[] userPrincipals() {
- final Collection<Principal> principals = new ArrayList<>();
+ final Collection<Principal> principals;
synchronized ( m_sessions ) {
- for ( final Session session : m_sessions.values()) {
- principals.add( session.getUserPrincipal() );
- }
+ principals =
m_sessions.values().stream().map(Session::getUserPrincipal).collect(Collectors.toList());
}
final Principal[] p = principals.toArray( new Principal[0] );
Arrays.sort( p, m_comparator );
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclEntryImpl.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclEntryImpl.java
index 87cdac7b1..cc7464a45 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclEntryImpl.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclEntryImpl.java
@@ -25,6 +25,7 @@ import java.security.Permission;
import java.security.Principal;
import java.util.Enumeration;
import java.util.Vector;
+import java.util.stream.Collectors;
/**
@@ -135,19 +136,8 @@ public class AclEntryImpl implements AclEntry,
Serializable {
*/
public String toString() {
final Principal p = getPrincipal();
- final StringBuilder sb = new StringBuilder();
- sb.append( "[AclEntry ALLOW " )
- .append( p != null ? p.getName() : "null" )
- .append( " " );
-
- for( final Permission pp : m_permissions ) {
- sb.append( pp.toString() );
- sb.append( "," );
- }
-
- sb.append( "]" );
- return sb.toString();
+ return m_permissions.stream().map(pp -> pp.toString() +
",").collect(Collectors.joining("", "[AclEntry ALLOW " + (p != null ?
p.getName() : "null") + " ", "]"));
}
/**
@@ -155,12 +145,7 @@ public class AclEntryImpl implements AclEntry,
Serializable {
* permission.
*/
private Permission findPermission( final Permission p ) {
- for( final Permission pp : m_permissions ) {
- if( pp.implies( p ) ) {
- return pp;
- }
- }
- return null;
+ return m_permissions.stream().filter(pp ->
pp.implies(p)).findFirst().orElse(null);
}
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclImpl.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclImpl.java
index b5388e70d..11af72c27 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclImpl.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/acl/AclImpl.java
@@ -115,13 +115,8 @@ public class AclImpl implements Acl, Serializable {
/** {@inheritDoc} */
@Override
public AclEntry getAclEntry( final Principal principal ) {
- for( final AclEntry entry : m_entries ) {
- if( entry.getPrincipal().getName().equals( principal.getName() ) )
{
- return entry;
- }
- }
+ return m_entries.stream().filter(entry ->
entry.getPrincipal().getName().equals(principal.getName())).findFirst().orElse(null);
- return null;
}
/** {@inheritDoc} */
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
index cb7f45b8d..3d6c2ed97 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/DefaultGroupManager.java
@@ -42,6 +42,7 @@ import org.apache.wiki.ui.InputValidator;
import org.apache.wiki.util.ClassUtil;
import java.security.Principal;
+import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -181,12 +182,7 @@ public class DefaultGroupManager implements GroupManager,
Authorizer, WikiEventL
}
// Check each user principal to see if it belongs to the group
- for( final Principal principal : session.getPrincipals() ) {
- if( AuthenticationManager.isUserPrincipal( principal ) &&
group.isMember( principal ) ) {
- return true;
- }
- }
- return false;
+ return Arrays.stream(session.getPrincipals()).anyMatch(principal ->
AuthenticationManager.isUserPrincipal(principal) && group.isMember(principal));
}
/** {@inheritDoc} */
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
index cba072f15..fc0b733ab 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/Group.java
@@ -138,13 +138,7 @@ public class Group {
return false;
}
- for( final Principal principal : m_members ) {
- if( !g.isMember( principal ) ) {
- return false;
- }
- }
-
- return true;
+ return m_members.stream().allMatch(g::isMember);
}
/**
@@ -154,11 +148,7 @@ public class Group {
*/
@Override
public int hashCode() {
- int hc = 0;
- for( final Principal member : m_members ) {
- hc ^= member.hashCode();
- }
- return hc;
+ return m_members.stream().mapToInt(Principal::hashCode).reduce(0, (a,
b) -> a ^ b);
}
/**
@@ -307,13 +297,8 @@ public class Group {
}
private Principal findMember( final String name ) {
- for( final Principal member : m_members ) {
- if( member.getName().equals( name ) ) {
- return member;
- }
- }
+ return m_members.stream().filter(member ->
member.getName().equals(name)).findFirst().orElse(null);
- return null;
}
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
index 7018c67f7..5a7724ddb 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/auth/authorize/WebContainerAuthorizer.java
@@ -39,10 +39,12 @@ import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.net.URL;
import java.security.Principal;
+import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Properties;
import java.util.Set;
+import java.util.stream.Collectors;
/**
@@ -118,10 +120,7 @@ public class WebContainerAuthorizer implements
WebAuthorizer {
}
if( m_containerRoles.length > 0 ) {
- final StringBuilder roles = new StringBuilder();
- for( final Role containerRole : m_containerRoles ) {
- roles.append(containerRole).append(" ");
- }
+ final String roles =
Arrays.stream(m_containerRoles).map(containerRole -> containerRole + "
").collect(Collectors.joining());
LOG.info( " JSPWiki determined the web container manages these
roles: " + roles );
}
LOG.info( "Authorizer WebContainerAuthorizer initialized
successfully." );
@@ -181,12 +180,7 @@ public class WebContainerAuthorizer implements
WebAuthorizer {
*/
@Override
public Principal findRole( final String role ) {
- for( final Role containerRole : m_containerRoles ) {
- if ( containerRole.getName().equals( role ) ) {
- return containerRole;
- }
- }
- return null;
+ return Arrays.stream(m_containerRoles).filter(containerRole ->
containerRole.getName().equals(role)).findFirst().map(containerRole ->
containerRole).orElse(null);
}
/**
@@ -243,14 +237,7 @@ public class WebContainerAuthorizer implements
WebAuthorizer {
}
// If a constraint is contained in both lists, we must be constrained
- for( final Element constraint : constraints ) {
- for( final Element roleConstraint : roles ) {
- if( constraint.equals( roleConstraint ) ) {
- return true;
- }
- }
- }
- return false;
+ return constraints.stream().anyMatch(constraint ->
roles.stream().anyMatch(constraint::equals));
}
/**
@@ -297,7 +284,7 @@ public class WebContainerAuthorizer implements
WebAuthorizer {
* @return an array of Role objects
*/
protected Role[] getRoles( final Document webxml ) {
- final Set<Role> roles = new HashSet<>();
+ final Set<Role> roles;
final Element root = webxml.getRootElement();
final Namespace jeeNs = Namespace.getNamespace( "j",
J2EE_SCHEMA_25_NAMESPACE );
@@ -306,10 +293,7 @@ public class WebContainerAuthorizer implements
WebAuthorizer {
final List< Element > constraints = XPathFactory.instance()
.compile(
constrainsSelector, Filters.element(), null, jeeNs )
.evaluate( root );
- for( final Element constraint : constraints ) {
- final String role = constraint.getTextTrim();
- roles.add( new Role( role ) );
- }
+ roles =
constraints.stream().map(Element::getTextTrim).map(Role::new).collect(Collectors.toSet());
// Get all defined roles
final String rolesSelector = "//j:web-app/j:security-role/j:role-name";
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/GroupPermission.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/GroupPermission.java
index cef601ab1..42352ee2b 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/GroupPermission.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/auth/permissions/GroupPermission.java
@@ -488,13 +488,7 @@ public final class GroupPermission extends Permission
implements Serializable
// GroupPrincipal with same name as target
final Subject subject = ( (SubjectDomainCombiner) dc
).getSubject();
final Set<GroupPrincipal> principals = subject.getPrincipals(
GroupPrincipal.class );
- for( final Principal principal : principals )
- {
- if ( principal.getName().equals( gp.m_group ) )
- {
- return true;
- }
- }
+ return principals.stream().anyMatch(principal ->
principal.getName().equals(gp.m_group));
}
return false;
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
index 069bc3d31..026237427 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/auth/user/XMLUserDatabase.java
@@ -52,6 +52,8 @@ import java.util.Map;
import java.util.Properties;
import java.util.SortedSet;
import java.util.TreeSet;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
/**
* <p>Manages {@link DefaultUserProfile} objects using XML files for
persistence. Passwords are hashed using SHA1. User entries are simple
@@ -372,14 +374,7 @@ public class XMLUserDatabase extends AbstractUserDatabase {
final DateFormat c_format = new SimpleDateFormat( DATE_FORMAT );
final String index = profile.getLoginName();
final NodeList users = c_dom.getElementsByTagName( USER_TAG );
- Element user = null;
- for( int i = 0; i < users.getLength(); i++ ) {
- final Element currentUser = ( Element )users.item( i );
- if( currentUser.getAttribute( LOGIN_NAME ).equals( index ) ) {
- user = currentUser;
- break;
- }
- }
+ Element user = IntStream.range(0, users.getLength()).mapToObj(i ->
(Element) users.item(i)).filter(currentUser ->
currentUser.getAttribute(LOGIN_NAME).equals(index)).findFirst().orElse(null);
boolean isNew = false;
@@ -523,17 +518,12 @@ public class XMLUserDatabase extends AbstractUserDatabase
{
* @return the text nodes that are immediate children of the base element,
concatenated together
*/
private String extractText( final Element element ) {
- final StringBuilder text = new StringBuilder();
+ final String text = "";
if( element.getChildNodes().getLength() > 0 ) {
final NodeList children = element.getChildNodes();
- for( int k = 0; k < children.getLength(); k++ ) {
- final Node child = children.item( k );
- if( child.getNodeType() == Node.TEXT_NODE ) {
- text.append(((Text) child).getData());
- }
- }
+ text = IntStream.range(0,
children.getLength()).mapToObj(children::item).filter(child ->
child.getNodeType() == Node.TEXT_NODE).map(child -> ((Text)
child).getData()).collect(Collectors.joining());
}
- return text.toString();
+ return text;
}
/**
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
b/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
index 9075116d2..32d96bce1 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/diff/ContextualDiffProvider.java
@@ -38,9 +38,11 @@ import org.suigeneris.jrcs.diff.myers.MyersDiff;
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.Properties;
import java.util.StringTokenizer;
+import java.util.stream.Collectors;
/**
@@ -253,25 +255,18 @@ public class ContextualDiffProvider implements
DiffProvider {
if (m_firstElem > 0) {
final int endIndex = Math.min( m_firstElem +
m_unchangedContextLimit, m_origStrings.length -1 );
- for( int j = m_firstElem; j < endIndex; j++ ) {
- m_sb.append( m_origStrings[ j ] );
- }
+ m_sb.append(Arrays.stream(m_origStrings, m_firstElem,
endIndex).collect(Collectors.joining("", "", ELIDED_TAIL_INDICATOR_HTML)));
- m_sb.append( ELIDED_TAIL_INDICATOR_HTML );
}
m_sb.append( ELIDED_HEAD_INDICATOR_HTML );
final int startIndex = Math.max(orig.first() -
m_unchangedContextLimit, 0);
- for (int j = startIndex; j < orig.first(); j++) {
- m_sb.append( m_origStrings[ j ] );
- }
+ m_sb.append(Arrays.stream(m_origStrings, startIndex,
orig.first()).collect(Collectors.joining()));
} else {
// No need to skip anything, just output the whole range...
- for( int j = m_firstElem; j < orig.first(); j++ ) {
- m_sb.append( m_origStrings[ j ] );
- }
+ m_sb.append(Arrays.stream(m_origStrings, m_firstElem,
orig.first()).collect(Collectors.joining()));
}
}
m_firstElem = orig.last() + 1;
@@ -346,16 +341,11 @@ public class ContextualDiffProvider implements
DiffProvider {
// If there's more than the limit of the orginal left just
emit limit and elided...
if( ( m_origStrings.length - m_firstElem ) >
m_unchangedContextLimit ) {
final int endIndex = Math.min( m_firstElem +
m_unchangedContextLimit, m_origStrings.length -1 );
- for (int j = m_firstElem; j < endIndex; j++) {
- m_sb.append( m_origStrings[ j ] );
- }
+ m_sb.append(Arrays.stream(m_origStrings, m_firstElem,
endIndex).collect(Collectors.joining("", "", ELIDED_TAIL_INDICATOR_HTML)));
- m_sb.append( ELIDED_TAIL_INDICATOR_HTML );
} else {
// emit entire tail of original...
- for( int j = m_firstElem; j < m_origStrings.length; j++ ) {
- m_sb.append( m_origStrings[ j ] );
- }
+ m_sb.append(Arrays.stream(m_origStrings, m_firstElem,
m_origStrings.length).collect(Collectors.joining()));
}
}
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/filters/ProfanityFilter.java
b/jspwiki-main/src/main/java/org/apache/wiki/filters/ProfanityFilter.java
index 240aefd5d..77ed0d7e8 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/ProfanityFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/ProfanityFilter.java
@@ -52,15 +52,9 @@ public class ProfanityFilter extends BasePageFilter {
throw new IOException( "No property file found! (Check the
installation, it should be there.)" );
}
try( final BufferedReader br = new BufferedReader( new
InputStreamReader( in ) ) ) {
- final List< String > profs = new ArrayList<>();
- String str;
- while ( ( str = br.readLine() ) != null ) {
- if( !str.isEmpty() && !str.startsWith( "#" ) ) { // allow
comments on profanities file
- profs.add( str );
- }
- }
- c_profanities = profs.toArray( new String[0] );
+ // allow comments on profanities file
+ c_profanities = br.lines().filter(str -> !str.isEmpty() &&
!str.startsWith("#")).toArray(String[]::new);
}
} catch( final IOException e ) {
LOG.error( "Unable to load profanities from " + PROPERTYFILE, e );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
b/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
index 5484a9595..42e0bd55f 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/parser/LinkParser.java
@@ -25,6 +25,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.NoSuchElementException;
import java.util.StringTokenizer;
+import java.util.stream.IntStream;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -335,11 +336,7 @@ public class LinkParser
*/
public static final boolean isSpace(final String s )
{
- for( int i = 0 ; i < s.length() ; i++ )
- {
- if( !isSpace( s.charAt(i)) ) return false;
- }
- return true;
+ return IntStream.range(0, s.length()).allMatch(i ->
isSpace(s.charAt(i)));
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
b/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
index 4eb422847..b878b0e5a 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/plugin/AbstractReferralPlugin.java
@@ -52,6 +52,7 @@ import java.text.ParseException;
import java.text.RuleBasedCollator;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Date;
import java.util.Iterator;
@@ -260,20 +261,13 @@ public abstract class AbstractReferralPlugin implements
Plugin {
boolean includeThis = m_include == null;
if( m_include != null ) {
- for( final Pattern pattern : m_include ) {
- if( pm.matches( pageName, pattern ) ) {
- includeThis = true;
- break;
- }
- }
+ includeThis = Arrays.stream(m_include).anyMatch(pattern ->
pm.matches(pageName, pattern)) ? true : m_include == null;
}
if( m_exclude != null ) {
- for( final Pattern pattern : m_exclude ) {
- if( pm.matches( pageName, pattern ) ) {
- includeThis = false;
- break; // The inner loop, continue on the next item
- }
+ // The inner loop, continue on the next item
+ if (Arrays.stream(m_exclude).anyMatch(pattern ->
pm.matches(pageName, pattern))) {
+ includeThis = false;
}
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
index 7e84792f2..95aa8b24c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/Denounce.java
@@ -167,12 +167,7 @@ public class Denounce implements Plugin {
*/
private boolean matchPattern( final List< Pattern > list, final String
path ) {
final PatternMatcher matcher = new Perl5Matcher();
- for( final Pattern pattern : list ) {
- if( matcher.matches( path, pattern ) ) {
- return true;
- }
- }
- return false;
+ return list.stream().anyMatch(pattern -> matcher.matches(path,
pattern));
}
private boolean matchHeaders( final HttpServletRequest request ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
index 7f7faf285..16aea1466 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/plugin/IndexPlugin.java
@@ -39,6 +39,7 @@ import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Pattern;
+import java.util.stream.Collectors;
/**
* A Plugin that creates an index of pages according to a certain pattern.
@@ -138,16 +139,9 @@ public class IndexPlugin extends AbstractReferralPlugin
implements Plugin {
private List<String> listPages( final Context context, final String
include, final String exclude ) throws ProviderException {
final Pattern includePtrn = include != null ? Pattern.compile( include
) : Pattern.compile(".*");
final Pattern excludePtrn = exclude != null ? Pattern.compile( exclude
) : Pattern.compile("\\p{Cntrl}"); // there are no control characters in page
names
- final List< String > result = new ArrayList<>();
+ final List< String > result;
final Set< String > pages = context.getEngine().getManager(
ReferenceManager.class ).findCreated();
- for( final String pageName : pages ) {
- if( excludePtrn.matcher( pageName ).matches() ) {
- continue;
- }
- if( includePtrn.matcher( pageName ).matches() ) {
- result.add( pageName );
- }
- }
+ result = pages.stream().filter(pageName ->
!excludePtrn.matcher(pageName).matches()).filter(pageName ->
includePtrn.matcher(pageName).matches()).collect(Collectors.toList());
return result;
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
index 0cd11de56..07323c040 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/plugin/ReferringUndefinedPagesPlugin.java
@@ -28,8 +28,11 @@ import org.apache.wiki.util.TextUtil;
import java.text.MessageFormat;
import java.util.Collection;
import java.util.Map;
+import java.util.Objects;
import java.util.ResourceBundle;
import java.util.TreeMap;
+import java.util.stream.Collectors;
+
/**
* <p>Lists all pages containing links to Undefined Pages (pages containing
dead links).</p>
*
@@ -60,16 +63,9 @@ public class ReferringUndefinedPagesPlugin extends
AbstractReferralPlugin {
super.initialize( context, params );
Collection< String > result = null;
- final TreeMap< String, String > sortedMap = new TreeMap<>();
+ final TreeMap< String, String > sortedMap;
if( uncreatedPages != null ) {
- for( final String uncreatedPageName : uncreatedPages ) {
- final Collection< String > referrers =
referenceManager.findReferrers( uncreatedPageName );
- if( referrers != null ) {
- for( final String referringPage : referrers ) {
- sortedMap.put( referringPage, "" );
- }
- }
- }
+ sortedMap =
uncreatedPages.stream().map(referenceManager::findReferrers).filter(Objects::nonNull).flatMap(Collection::stream).collect(Collectors.toMap(referringPage
-> referringPage, referringPage -> "", (a, b) -> b, TreeMap::new));
result = sortedMap.keySet();
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
b/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
index 9d1d264de..e8523d071 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/providers/CachingAttachmentProvider.java
@@ -180,11 +180,7 @@ public class CachingAttachmentProvider implements
AttachmentProvider {
*/
private Attachment findAttachmentFromCollection( final Collection<
Attachment > c, final String name ) {
if( c != null ) {
- for( final Attachment att : c ) {
- if( name.equals( att.getFileName() ) ) {
- return att;
- }
- }
+ return c.stream().filter(att ->
name.equals(att.getFileName())).findFirst().orElse(null);
}
return null;
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
index ce95d4ca6..1c5b2b6a0 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/references/DefaultReferenceManager.java
@@ -47,6 +47,7 @@ import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
/*
BUGS
@@ -530,11 +531,7 @@ public class DefaultReferenceManager extends
BasePageFilter implements Reference
final Collection< String > oldRefTo = m_refersTo.get( page );
m_refersTo.remove( page );
- final TreeSet< String > cleanedRefs = new TreeSet<>();
- for( final String ref : references ) {
- final String reference = getFinalPageName( ref );
- cleanedRefs.add( reference );
- }
+ final TreeSet< String > cleanedRefs =
references.stream().map(this::getFinalPageName).collect(Collectors.toCollection(TreeSet::new));
m_refersTo.put( page, cleanedRefs );
@@ -713,20 +710,12 @@ public class DefaultReferenceManager extends
BasePageFilter implements Reference
*/
@Override
public Collection< String > findUncreated() {
- final TreeSet< String > uncreated = new TreeSet<>();
+ final TreeSet< String > uncreated;
// Go through m_refersTo values and check that m_refersTo has the
corresponding keys.
// We want to reread the code to make sure our HashMaps are in sync...
final Collection< Collection< String > > allReferences =
m_refersTo.values();
- for( final Collection<String> refs : allReferences ) {
- if( refs != null ) {
- for( final String aReference : refs ) {
- if( !m_engine.getManager( PageManager.class
).wikiPageExists( aReference ) ) {
- uncreated.add( aReference );
- }
- }
- }
- }
+ uncreated =
allReferences.stream().filter(Objects::nonNull).flatMap(Collection::stream).filter(aReference
->
!m_engine.getManager(PageManager.class).wikiPageExists(aReference)).collect(Collectors.toCollection(TreeSet::new));
return uncreated;
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
b/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
index 263295204..67dca3e72 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/render/CreoleRenderer.java
@@ -27,6 +27,8 @@ import org.jdom2.Text;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
/**
* Implements DOM-to-Creole rendering.
@@ -105,8 +107,7 @@ public class CreoleRenderer extends WikiRenderer {
m_listCount++;
m_listChar = '#';
} else if( LI.equals(ce.getName()) ) {
- for(int i = 0; i < m_listCount; i++ ) sb.append( m_listChar );
- sb.append( ONE_SPACE );
+ sb.append(IntStream.range(0, m_listCount).mapToObj(i ->
String.valueOf(m_listChar)).collect(Collectors.joining("", "", ONE_SPACE)));
} else if( A.equals( ce.getName() ) ) {
final String href = ce.getAttributeValue( HREF_ATTRIBUTE );
final String text = ce.getText();
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 c93b33b83..fabbef1d2 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
@@ -76,6 +76,7 @@ import java.io.InputStreamReader;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
@@ -83,6 +84,7 @@ import java.util.List;
import java.util.Properties;
import java.util.concurrent.Executor;
import java.util.concurrent.Executors;
+import java.util.stream.Collectors;
/**
@@ -280,13 +282,7 @@ public class LuceneSearchProvider implements
SearchProvider {
final String filename = att.getFileName();
- boolean searchSuffix = false;
- for( final String suffix : SEARCHABLE_FILE_SUFFIXES ) {
- if( filename.endsWith( suffix ) ) {
- searchSuffix = true;
- break;
- }
- }
+ boolean searchSuffix =
Arrays.stream(SEARCHABLE_FILE_SUFFIXES).anyMatch(filename::endsWith);
String out = filename;
if( searchSuffix ) {
@@ -378,12 +374,9 @@ public class LuceneSearchProvider implements
SearchProvider {
// Now add the names of the attachments of this page
try {
final List< Attachment > attachments = m_engine.getManager(
AttachmentManager.class ).listAttachments( page );
- final StringBuilder attachmentNames = new StringBuilder();
+ final String attachmentNames = attachments.stream().map(att ->
att.getName() + ";").collect(Collectors.joining());
- for( final Attachment att : attachments ) {
- attachmentNames.append( att.getName() ).append( ";" );
- }
- field = new Field( LUCENE_ATTACHMENTS, attachmentNames.toString(),
TextField.TYPE_STORED );
+ field = new Field( LUCENE_ATTACHMENTS, attachmentNames,
TextField.TYPE_STORED );
doc.add( field );
} catch( final ProviderException e ) {
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/tags/AdminBeanIteratorTag.java
b/jspwiki-main/src/main/java/org/apache/wiki/tags/AdminBeanIteratorTag.java
index 4913aea92..991cef02b 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/AdminBeanIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/AdminBeanIteratorTag.java
@@ -24,6 +24,7 @@ import org.apache.wiki.ui.admin.AdminBeanManager;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Provides an iterator for all AdminBeans of a given type.
@@ -54,12 +55,7 @@ public class AdminBeanIteratorTag extends IteratorTag {
public void resetIterator() {
final AdminBeanManager mgr = m_wikiContext.getEngine().getManager(
AdminBeanManager.class );
final Collection< AdminBean > beans = mgr.getAllBeans();
- final ArrayList< AdminBean > typedBeans = new ArrayList<>();
- for( final AdminBean ab : beans ) {
- if( ab.getType() == m_type ) {
- typedBeans.add( ab );
- }
- }
+ final ArrayList< AdminBean > typedBeans = beans.stream().filter(ab ->
ab.getType() == m_type).collect(Collectors.toCollection(ArrayList::new));
setList( typedBeans );
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/tags/EditorIteratorTag.java
b/jspwiki-main/src/main/java/org/apache/wiki/tags/EditorIteratorTag.java
index cea885360..3f10b9b44 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/EditorIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/EditorIteratorTag.java
@@ -24,7 +24,9 @@ import org.apache.wiki.ui.Editor;
import org.apache.wiki.ui.EditorManager;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* Iterates through editors.
@@ -43,11 +45,8 @@ public class EditorIteratorTag extends IteratorTag {
final Engine engine = m_wikiContext.getEngine();
final EditorManager mgr = engine.getManager( EditorManager.class );
final String[] editorList = mgr.getEditorList();
- final Collection< Editor > editors = new ArrayList<>();
+ final Collection< Editor > editors =
Arrays.stream(editorList).map(editor -> new Editor(m_wikiContext,
editor)).collect(Collectors.toList());
- for( final String editor : editorList ) {
- editors.add( new Editor( m_wikiContext, editor ) );
- }
setList( editors );
return super.doStartTag();
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/tags/UserProfileTag.java
b/jspwiki-main/src/main/java/org/apache/wiki/tags/UserProfileTag.java
index 01c0f6b12..8facc0ffe 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/UserProfileTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/UserProfileTag.java
@@ -35,8 +35,10 @@ import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.security.Principal;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import java.util.ResourceBundle;
+import java.util.stream.Collectors;
/**
* <p>
@@ -170,14 +172,10 @@ public class UserProfileTag extends WikiTagBase {
*/
public static String printGroups( final Context context ) {
final Principal[] roles = context.getWikiSession().getRoles();
- final List< String > tempRoles = new ArrayList<>();
+ final List< String > tempRoles;
final ResourceBundle rb = Preferences.getBundle( context,
InternationalizationManager.CORE_BUNDLE );
- for( final Principal role : roles ) {
- if( role instanceof GroupPrincipal ) {
- tempRoles.add( role.getName() );
- }
- }
+ tempRoles = Arrays.stream(roles).filter(role -> role instanceof
GroupPrincipal).map(Principal::getName).collect(Collectors.toList());
if( tempRoles.size() == 0 ) {
return rb.getString( "userprofile.nogroups" );
}
@@ -205,14 +203,10 @@ public class UserProfileTag extends WikiTagBase {
*/
public static String printRoles( final Context context ) {
final Principal[] roles = context.getWikiSession().getRoles();
- final List< String > tempRoles = new ArrayList<>();
+ final List< String > tempRoles;
final ResourceBundle rb = Preferences.getBundle( context,
InternationalizationManager.CORE_BUNDLE );
- for( final Principal role : roles ) {
- if( role instanceof Role ) {
- tempRoles.add( role.getName() );
- }
- }
+ tempRoles = Arrays.stream(roles).filter(role -> role instanceof
Role).map(Principal::getName).collect(Collectors.toList());
if( tempRoles.size() == 0 ) {
return rb.getString( "userprofile.noroles" );
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java
b/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java
index 50b5900de..c1c4f5c95 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/Installer.java
@@ -45,6 +45,7 @@ import java.text.MessageFormat;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.Set;
+import java.util.stream.Collectors;
/**
* Manages JSPWiki installation on behalf of <code>admin/Install.jsp</code>.
The contents of this class were previously part of
@@ -154,12 +155,10 @@ public class Installer {
* @return the string
*/
public String getPropertiesList() {
- final StringBuilder result = new StringBuilder();
+ final String result;
final Set< String > keys = m_props.stringPropertyNames();
- for( final String key : keys ) {
- result.append(key ).append( " = " ).append( m_props.getProperty(
key ) ).append( "\n" );
- }
- return result.toString();
+ result = keys.stream().map(key -> key + " = " +
m_props.getProperty(key) + "\n").collect(Collectors.joining());
+ return result;
}
public String getPropertiesPath() {
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java
b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java
index 64104ec92..19c63984d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ui/WikiRequestWrapper.java
@@ -26,6 +26,7 @@ import org.apache.wiki.auth.authorize.Role;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
import java.security.Principal;
+import java.util.Arrays;
/**
* Servlet request wrapper that encapsulates an incoming HTTP request and
overrides its security methods so that the request returns
@@ -101,17 +102,9 @@ public class WikiRequestWrapper extends
HttpServletRequestWrapper {
// Iterate through all of the built-in roles and look for a match
final Principal[] principals = m_session.getRoles();
- for( final Principal value : principals ) {
- if( value instanceof Role ) {
- final Role principal = ( Role )value;
- if( Role.isBuiltInRole( principal ) &&
principal.getName().equals( role ) ) {
- return true;
- }
- }
- }
// None of the built-in roles match, so no luck
- return false;
+ return Arrays.stream(principals).filter(value -> value instanceof
Role).map(value -> (Role) value).anyMatch(principal ->
Role.isBuiltInRole(principal) && principal.getName().equals(role));
}
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java
index dc86a052e..fac49b109 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/ui/admin/DefaultAdminBeanManager.java
@@ -190,13 +190,8 @@ public class DefaultAdminBeanManager implements
WikiEventListener, AdminBeanMana
*/
@Override
public AdminBean findBean( final String id ) {
- for( final AdminBean ab : m_allBeans ) {
- if( ab.getId().equals( id ) ) {
- return ab;
- }
- }
+ return m_allBeans.stream().filter(ab ->
ab.getId().equals(id)).findFirst().orElse(null);
- return null;
}
/**
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/variables/DefaultVariableManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/variables/DefaultVariableManager.java
index c654eea18..adce1b51e 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/variables/DefaultVariableManager.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/variables/DefaultVariableManager.java
@@ -42,6 +42,7 @@ import java.util.Date;
import java.util.List;
import java.util.Properties;
import java.util.ResourceBundle;
+import java.util.stream.Collectors;
/**
@@ -323,30 +324,13 @@ public class DefaultVariableManager implements
VariableManager {
}
public String getInterwikilinks() {
- final StringBuilder res = new StringBuilder();
- for( final String link :
m_context.getEngine().getAllInterWikiLinks() ) {
- if( res.length() > 0 ) {
- res.append( ", " );
- }
- res.append( link );
- res.append( " --> " );
- res.append( m_context.getEngine().getInterWikiURL( link ) );
- }
- return res.toString();
+ return
m_context.getEngine().getAllInterWikiLinks().stream().map(link -> link + " -->
" + m_context.getEngine().getInterWikiURL(link)).collect(Collectors.joining(",
"));
}
public String getInlinedimages() {
- final StringBuilder res = new StringBuilder();
- for( final String ptrn :
m_context.getEngine().getAllInlinedImagePatterns() ) {
- if( res.length() > 0 ) {
- res.append( ", " );
- }
-
- res.append( ptrn );
- }
- return res.toString();
+ return
m_context.getEngine().getAllInlinedImagePatterns().stream().collect(Collectors.joining(",
"));
}
public String getPluginpath() {
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
b/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
index f5a7e9109..473abe866 100644
---
a/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
+++
b/jspwiki-main/src/main/java/org/apache/wiki/workflow/DefaultWorkflowManager.java
@@ -241,11 +241,8 @@ public class DefaultWorkflowManager implements
WorkflowManager {
final Principal[] sessionPrincipals = session.getPrincipals();
for( final Workflow w : m_workflows ) {
final Principal owner = w.getOwner();
- for ( final Principal sessionPrincipal : sessionPrincipals ) {
- if ( sessionPrincipal.equals( owner ) ) {
- workflows.add( w );
- break;
- }
+ if (Arrays.stream(sessionPrincipals).anyMatch(sessionPrincipal
-> sessionPrincipal.equals(owner))) {
+ workflows.add(w);
}
}
}
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
index ec7f88c05..28dbfbff4 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/AbstractRPCHandler.java
@@ -33,6 +33,7 @@ import java.util.Date;
import java.util.Hashtable;
import java.util.Set;
import java.util.Vector;
+import java.util.stream.Collectors;
/**
* Provides definitions for RPC handler routines.
@@ -72,7 +73,7 @@ public abstract class AbstractRPCHandler implements
WikiRPCHandler {
public Vector getRecentChanges( final Date since ) {
checkPermission( PagePermission.VIEW );
final Set< Page > pages = m_engine.getManager( PageManager.class
).getRecentChanges();
- final Vector< Hashtable< ?, ? > > result = new Vector<>();
+ final Vector< Hashtable< ?, ? > > result;
// Transform UTC into local time.
final Calendar cal = Calendar.getInstance();
@@ -80,11 +81,7 @@ public abstract class AbstractRPCHandler implements
WikiRPCHandler {
cal.add( Calendar.MILLISECOND, cal.get( Calendar.ZONE_OFFSET ) +
(cal.getTimeZone().inDaylightTime( since ) ? cal.get(
Calendar.DST_OFFSET ) : 0 ) );
- for( final Page page : pages ) {
- if( page.getLastModified().after( cal.getTime() ) ) {
- result.add( encodeWikiPage( page ) );
- }
- }
+ result = pages.stream().filter(page ->
page.getLastModified().after(cal.getTime())).map(this::encodeWikiPage).collect(Collectors.toCollection(Vector::new));
return result;
}
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
index 4be6ff807..670d229e2 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandler.java
@@ -38,6 +38,7 @@ import java.util.Date;
import java.util.Hashtable;
import java.util.Set;
import java.util.Vector;
+import java.util.stream.Collectors;
/**
* Provides handlers for all RPC routines.
@@ -79,15 +80,8 @@ public class RPCHandler extends AbstractRPCHandler {
public Vector< String > getAllPages() {
checkPermission( PagePermission.VIEW );
final Collection< Page > pages = m_engine.getManager(
PageManager.class ).getRecentChanges();
- final Vector< String > result = new Vector<>();
- for( final Page p : pages ) {
- if( !( p instanceof Attachment ) ) {
- result.add( toRPCString( p.getName() ) );
- }
- }
-
- return result;
+ return pages.stream().filter(p -> !(p instanceof Attachment)).map(p ->
toRPCString(p.getName())).collect(Collectors.toCollection(Vector::new));
}
/**
diff --git
a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
index 67870d5ce..4e5c399b9 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/xmlrpc/RPCHandlerUTF8.java
@@ -35,6 +35,7 @@ import java.util.Date;
import java.util.Hashtable;
import java.util.Set;
import java.util.Vector;
+import java.util.stream.Collectors;
/**
* Provides handlers for all RPC routines. These routines are used by
@@ -54,15 +55,8 @@ public class RPCHandlerUTF8 extends AbstractRPCHandler {
checkPermission( PagePermission.VIEW );
final Set< Page > pages = m_engine.getManager( PageManager.class
).getRecentChanges();
- final Vector< String > result = new Vector<>();
- for( final Page p : pages ) {
- if( !( p instanceof Attachment ) ) {
- result.add( p.getName() );
- }
- }
-
- return result;
+ return pages.stream().filter(p -> !(p instanceof
Attachment)).map(Page::getName).collect(Collectors.toCollection(Vector::new));
}
/**
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
b/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
index f6c4809a6..9b7df6c36 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/TextUtil.java
@@ -30,6 +30,8 @@ import java.security.SecureRandom;
import java.util.NoSuchElementException;
import java.util.Properties;
import java.util.Random;
+import java.util.stream.Collectors;
+import java.util.stream.IntStream;
/**
@@ -777,12 +779,8 @@ public final class TextUtil {
* @since 2.1.98.
*/
public static String repeatString( final String what, final int times ) {
- final StringBuilder sb = new StringBuilder();
- for( int i = 0; i < times; i++ ) {
- sb.append( what );
- }
- return sb.toString();
+ return IntStream.range(0, times).mapToObj(i ->
what).collect(Collectors.joining());
}
/**
@@ -869,12 +867,7 @@ public final class TextUtil {
* @since 2.4
*/
public static String generateRandomPassword() {
- final StringBuilder pw = new StringBuilder();
- for( int i = 0; i < PASSWORD_LENGTH; i++ ) {
- final int index = ( int )( RANDOM.nextDouble() * PWD_BASE.length()
);
- pw.append(PWD_BASE.charAt( index ));
- }
- return pw.toString();
+ return IntStream.range(0, PASSWORD_LENGTH).map(i -> (int)
(RANDOM.nextDouble() * PWD_BASE.length())).mapToObj(index ->
String.valueOf(PWD_BASE.charAt(index))).collect(Collectors.joining());
}
}
diff --git
a/jspwiki-util/src/main/java/org/apache/wiki/util/TimedCounterList.java
b/jspwiki-util/src/main/java/org/apache/wiki/util/TimedCounterList.java
index 4e115521f..0c23cd30d 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/TimedCounterList.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/TimedCounterList.java
@@ -152,18 +152,12 @@ public class TimedCounterList<T> extends AbstractList<T>
*/
public int count(final T obj )
{
- int c = 0;
+ int c;
m_lock.readLock().lock();
try
{
- for( final CounterItem< T > i : m_list )
- {
- if( i.m_obj.equals( obj ) )
- {
- c++;
- }
- }
+ c = (int) m_list.stream().filter(i -> i.m_obj.equals(obj)).count();
}
finally
{
diff --git a/jspwiki-util/src/main/java/org/apache/wiki/util/XmlUtil.java
b/jspwiki-util/src/main/java/org/apache/wiki/util/XmlUtil.java
index cf9258fa6..4d7d03eff 100644
--- a/jspwiki-util/src/main/java/org/apache/wiki/util/XmlUtil.java
+++ b/jspwiki-util/src/main/java/org/apache/wiki/util/XmlUtil.java
@@ -40,6 +40,7 @@ import java.util.Enumeration;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.stream.Collectors;
/**
* Utility class to parse XML files.
@@ -122,15 +123,11 @@ public final class XmlUtil {
if( doc == null ) {
return "";
}
- final StringBuilder sb = new StringBuilder();
+ final String sb;
final List< ? > nodes = XPathFactory.instance().compile(
ALL_TEXT_NODES ).evaluate( doc );
- for( final Object el : nodes ) {
- if( el instanceof Text ) {
- sb.append( ( ( Text )el ).getValue() );
- }
- }
+ sb = nodes.stream().filter(el -> el instanceof Text).map(el -> ((Text)
el).getValue()).collect(Collectors.joining());
- return sb.toString();
+ return sb;
}
public static Element getXPathElement( final Element base, final String
expression ) {
diff --git
a/jspwiki-wysiwyg/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
b/jspwiki-wysiwyg/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
index b61fe131f..18e1ed9c7 100644
---
a/jspwiki-wysiwyg/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
+++
b/jspwiki-wysiwyg/src/main/java/org/apache/wiki/htmltowiki/XHtmlElementToWikiTranslator.java
@@ -38,6 +38,7 @@ import java.util.Arrays;
import java.util.Deque;
import java.util.LinkedHashMap;
import java.util.Map;
+import java.util.stream.Collectors;
/**
@@ -230,11 +231,7 @@ public class XHtmlElementToWikiTranslator {
}
private String propsToStyleString( final Map< Object, Object > styleProps
) {
- final StringBuilder style = new StringBuilder();
- for( final Map.Entry< Object, Object > entry : styleProps.entrySet() )
{
- style.append( " " ).append( entry.getKey() ).append( ": "
).append( entry.getValue() ).append( ";" );
- }
- return style.toString();
+ return styleProps.entrySet().stream().map(entry -> " " +
entry.getKey() + ": " + entry.getValue() + ";").collect(Collectors.joining());
}
public void translateChildren( final Element base ) throws JDOMException {