diff --git a/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java b/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
index 635ec6e444..0943219033 100644
--- a/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
+++ b/jspwiki-event/src/main/java/org/apache/wiki/event/WikiEventManager.java
@@ -29,10 +29,10 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.ConcurrentModificationException;
import java.util.HashMap;
import java.util.Iterator;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.TreeSet;
-import java.util.Vector;
/**
* A singleton class that manages the addition and removal of WikiEvent listeners to a event source, as well as the firing of events
@@ -135,8 +135,8 @@ public final class WikiEventManager {
/* The Map of client object to WikiEventDelegate. */
private final Map< Object, WikiEventDelegate > m_delegates = new HashMap<>();
- /* The Vector containing any preloaded WikiEventDelegates. */
- private final Vector< WikiEventDelegate > m_preloadCache = new Vector<>();
+ /* The List containing any preloaded WikiEventDelegates. */
+ private final List< WikiEventDelegate > m_preloadCache = Collections.synchronizedList( new ArrayList<>() );
/* Singleton instance of the WikiEventManager. */
private static WikiEventManager c_instance;
@@ -324,7 +324,7 @@ private WikiEventDelegate getDelegateFor( final Object client ) {
} else if( !m_preloadCache.isEmpty() ) {
// then see if any of the cached delegates match the class of the incoming client
for( int i = m_preloadCache.size()-1 ; i >= 0 ; i-- ) { // start with most-recently added
- final WikiEventDelegate delegate = m_preloadCache.elementAt( i );
+ final WikiEventDelegate delegate = m_preloadCache.get( i );
if( delegate.getClientClass() == null || delegate.getClientClass().equals( client.getClass() ) ) {
// we have a hit, so use it, but only on a client we haven't seen before
if( !m_delegates.containsKey( client ) ) {
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 11af72c27f..0ca2d45a42 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
@@ -24,9 +24,9 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.security.Permission;
import java.security.Principal;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.Enumeration;
import java.util.List;
-import java.util.Vector;
/**
@@ -37,7 +37,7 @@ Licensed to the Apache Software Foundation (ASF) under one
public class AclImpl implements Acl, Serializable {
private static final long serialVersionUID = 1L;
- private final Vector< AclEntry > m_entries = new Vector<>();
+ private final List< AclEntry > m_entries = Collections.synchronizedList( new ArrayList<>() );
/**
* Constructs a new AclImpl instance.
@@ -109,7 +109,7 @@ public synchronized boolean removeEntry( final AclEntry entry ) {
/** {@inheritDoc} */
@Override
public Enumeration< AclEntry > aclEntries() {
- return m_entries.elements();
+ return Collections.enumeration(m_entries);
}
/** {@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 fc0b733abb..70e9daeae6 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
@@ -21,8 +21,10 @@ Licensed to the Apache Software Foundation (ASF) under one
import org.apache.wiki.auth.GroupPrincipal;
import java.security.Principal;
+import java.util.ArrayList;
+import java.util.Collections;
import java.util.Date;
-import java.util.Vector;
+import java.util.List;
/**
*
@@ -61,7 +63,7 @@ public class Group {
static final String[] RESTRICTED_GROUPNAMES = new String[] { "Anonymous", "All", "Asserted", "Authenticated" };
- private final Vector m_members = new Vector<>();
+ private final List m_members = Collections.synchronizedList( new ArrayList<>() );
private String m_creator;
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
index 1835cd0127..a9f89c85bd 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/PingWeblogsComFilter.java
@@ -29,7 +29,9 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.net.MalformedURLException;
import java.net.URL;
+import java.util.ArrayList;
import java.util.Hashtable;
+import java.util.List;
import java.util.Properties;
import java.util.Vector;
@@ -80,13 +82,13 @@ public void postSave( final Context context, final String pagecontent ) {
try {
final XmlRpcClient xmlrpc = new XmlRpcClient(m_pingURL);
- final Vector< String > params = new Vector<>();
- params.addElement( "The Butt Ugly Weblog" ); // FIXME: Must be settable
- params.addElement( engine.getURL( ContextEnum.PAGE_VIEW.getRequestContext(), blogName, null ) );
+ final List< String > params = new ArrayList<>();
+ params.add( "The Butt Ugly Weblog" ); // FIXME: Must be settable
+ params.add( engine.getURL( ContextEnum.PAGE_VIEW.getRequestContext(), blogName, null ) );
LOG.debug( "Pinging weblogs.com with URL: {}", engine.getURL( ContextEnum.PAGE_VIEW.getRequestContext(), blogName, null ) );
- xmlrpc.executeAsync("weblogUpdates.ping", params,
+ xmlrpc.executeAsync("weblogUpdates.ping", new Vector<>(params),
new AsyncCallback() {
@Override
public void handleError( final Exception ex, final URL url, final String method ) {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
index 1160d8b744..c9abc24f9d 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/filters/SpamFilter.java
@@ -69,13 +69,13 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Properties;
import java.util.Random;
import java.util.StringTokenizer;
-import java.util.Vector;
import java.util.concurrent.ThreadLocalRandom;
@@ -199,11 +199,11 @@ public class SpamFilter extends BasePageFilter {
private static final Logger C_SPAMLOG = LogManager.getLogger( "SpamLog" );
private static final Logger LOG = LogManager.getLogger( SpamFilter.class );
- private final Vector m_temporaryBanList = new Vector<>();
+ private final List m_temporaryBanList = Collections.synchronizedList( new ArrayList<>() );
private int m_banTime = 60; // minutes
- private final Vector m_lastModifications = new Vector<>();
+ private final List m_lastModifications = Collections.synchronizedList( new ArrayList<>() );
/** How many times a single IP address can change a page per minute? */
private int m_limitSinglePageChanges = 5;
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 b1fa47c740..e3ea95d68a 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
@@ -28,6 +28,7 @@ Licensed to the Apache Software Foundation (ASF) under one
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.jstl.fmt.LocaleSupport;
+import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.LinkedHashMap;
@@ -37,7 +38,6 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.ResourceBundle;
import java.util.Set;
import java.util.TimeZone;
-import java.util.Vector;
/**
@@ -316,14 +316,14 @@ static String getJSLocalizedStrings( final Context context ) {
* @param resource The resource to add.
*/
static void addResourceRequest( final Context ctx, final String type, final String resource ) {
- HashMap< String, Vector< String > > resourcemap = ctx.getVariable( RESOURCE_INCLUDES );
+ HashMap< String, List< String > > resourcemap = ctx.getVariable( RESOURCE_INCLUDES );
if( resourcemap == null ) {
resourcemap = new HashMap<>();
}
- Vector< String > resources = resourcemap.get( type );
+ List< String > resources = resourcemap.get( type );
if( resources == null ) {
- resources = new Vector<>();
+ resources = new ArrayList<>();
}
String resolvedResource = resource;
if( StringUtils.startsWith( resource, "engine://" ) ) {
@@ -368,12 +368,12 @@ static void addResourceRequest( final Context ctx, final String type, final Stri
* @return a String array for the resource requests
*/
static String[] getResourceRequests( final Context ctx, final String type ) {
- final HashMap< String, Vector< String > > hm = ctx.getVariable( RESOURCE_INCLUDES );
+ final HashMap< String, List< String > > hm = ctx.getVariable( RESOURCE_INCLUDES );
if( hm == null ) {
return new String[0];
}
- final Vector resources = hm.get( type );
+ final List resources = hm.get( type );
if( resources == null ){
return new String[0];
}
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 ec7f88c05c..5a44259cbe 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
@@ -28,11 +28,12 @@ Licensed to the Apache Software Foundation (ASF) under one
import org.apache.xmlrpc.AuthenticationFailed;
import java.security.Permission;
+import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
+import java.util.List;
import java.util.Set;
-import java.util.Vector;
/**
* Provides definitions for RPC handler routines.
@@ -69,16 +70,16 @@ public void initialize( final Context context ) {
protected abstract Hashtable encodeWikiPage( Page p );
- public Vector getRecentChanges( final Date since ) {
+ public List> geRecentChanges(final Date since ){
checkPermission( PagePermission.VIEW );
final Set< Page > pages = m_engine.getManager( PageManager.class ).getRecentChanges();
- final Vector< Hashtable< ?, ? > > result = new Vector<>();
+ final List< Hashtable< ?, ? > > result = new ArrayList<>();
// Transform UTC into local time.
final Calendar cal = Calendar.getInstance();
cal.setTime( since );
cal.add( Calendar.MILLISECOND, cal.get( Calendar.ZONE_OFFSET ) +
- (cal.getTimeZone().inDaylightTime( since ) ? cal.get( Calendar.DST_OFFSET ) : 0 ) );
+ (cal.getTimeZone().inDaylightTime( since ) ? cal.get( Calendar.DST_OFFSET ) : 0 ) );
for( final Page page : pages ) {
if( page.getLastModified().after( cal.getTime() ) ) {
@@ -113,4 +114,5 @@ public int getRPCVersionSupported() {
return RPC_VERSION;
}
+ public abstract List< Hashtable< String, Object > > getRecentChanges(Date since);
}
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java b/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
index 38ba1ebc85..7d11eccad2 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/parser/JSPWikiMarkupParserTest.java
@@ -43,8 +43,9 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.io.IOException;
import java.io.StringReader;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
import java.util.Collection;
-import java.util.Vector;
+import java.util.List;
import static org.apache.wiki.TestEngine.with;
@@ -53,7 +54,7 @@ public class JSPWikiMarkupParserTest {
static final String PAGE_NAME = "testpage";
- Vector< String > created = new Vector<>();
+ List< String > created = new ArrayList<>();
TestEngine testEngine = TestEngine.build( with( "jspwiki.translatorReader.matchEnglishPlurals", "true" ) );
@@ -65,7 +66,7 @@ public void tearDown() {
private void newPage( final String name ) throws WikiException {
testEngine.saveText( name, "" );
- created.addElement( name );
+ created.add( name );
}
private String translate( final String src ) throws IOException {
@@ -461,7 +462,7 @@ public void testAttachmentLink() throws Exception {
public void testAttachmentLink2() throws Exception {
final TestEngine testEngine2 = TestEngine.build( with( "jspwiki.encoding", StandardCharsets.ISO_8859_1.name() ) );
testEngine2.saveText( "Test", "foo " );
- created.addElement( "Test" );
+ created.add( "Test" );
final Attachment att = Wiki.contents().attachment( testEngine2, "Test", "TestAtt.txt" );
att.setAuthor( "FirstPost" );
@@ -478,7 +479,7 @@ public void testAttachmentLink2() throws Exception {
public void testAttachmentLink3() throws Exception {
final TestEngine testEngine2 = TestEngine.build();
testEngine2.saveText( "TestPage", "foo " );
- created.addElement( "TestPage" );
+ created.add( "TestPage" );
final Attachment att = Wiki.contents().attachment( testEngine2, "TestPage", "TestAtt.txt" );
att.setAuthor( "FirstPost" );
@@ -494,7 +495,7 @@ public void testAttachmentLink3() throws Exception {
public void testAttachmentLink4() throws Exception {
final TestEngine testEngine2 = TestEngine.build();
testEngine2.saveText( "TestPage", "foo " );
- created.addElement( "TestPage" );
+ created.add( "TestPage" );
final Attachment att = Wiki.contents().attachment( testEngine2, "TestPage", "TestAtt.txt" );
att.setAuthor( "FirstPost" );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/providers/CounterProvider.java b/jspwiki-main/src/test/java/org/apache/wiki/providers/CounterProvider.java
index 65ec376a60..95c29fc6e8 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/providers/CounterProvider.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/providers/CounterProvider.java
@@ -32,7 +32,6 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.Date;
import java.util.List;
import java.util.Properties;
-import java.util.Vector;
/**
* A provider who counts the hits to different parts.
@@ -136,7 +135,7 @@ public int getPageCount()
@Override
public List< Page > getVersionHistory( final String page )
{
- return new Vector<>();
+ return new ArrayList<>();
}
@Override
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/providers/VerySimpleProvider.java b/jspwiki-main/src/test/java/org/apache/wiki/providers/VerySimpleProvider.java
index 280b47a642..08f7c675cb 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/providers/VerySimpleProvider.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/providers/VerySimpleProvider.java
@@ -31,7 +31,6 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.Date;
import java.util.List;
import java.util.Properties;
-import java.util.Vector;
/**
* This is a simple provider that is used by some of the tests. It has some specific behaviours, like it always contains a single page.
@@ -137,7 +136,7 @@ public int getPageCount()
@Override
public List< Page > getVersionHistory( final String page )
{
- return new Vector<>();
+ return new ArrayList<>();
}
/**
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/ui/TemplateManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/ui/TemplateManagerTest.java
index 03f850640c..17f3ba5280 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/ui/TemplateManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/ui/TemplateManagerTest.java
@@ -30,8 +30,8 @@ Licensed to the Apache Software Foundation (ASF) under one
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.HashMap;
+import java.util.List;
import java.util.Properties;
-import java.util.Vector;
import java.util.stream.Stream;
@@ -55,7 +55,7 @@ void shouldCheckAddResourceRequest( final String type, final String res, final S
}
Mockito.doAnswer( invocationOnMock -> {
- final HashMap< String, Vector< String > > map = invocationOnMock.getArgument( 1, HashMap.class );
+ final HashMap< String, List< String >> map = invocationOnMock.getArgument( 1, HashMap.class );
Assertions.assertEquals( expected, map.get( type ).get( 0 ) );
return null;
} ).when( ctx ).setVariable( Mockito.eq( TemplateManager.RESOURCE_INCLUDES ), Mockito.any( HashMap.class ) );
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java
index 08b56a57aa..894726ab5d 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/xmlrpc/RPCHandlerTest.java
@@ -35,7 +35,7 @@ Licensed to the Apache Software Foundation (ASF) under one
import java.util.Calendar;
import java.util.Date;
import java.util.Hashtable;
-import java.util.Vector;
+import java.util.List;
public class RPCHandlerTest {
@@ -70,12 +70,12 @@ public void testNonexistantPage() {
public void testRecentChanges()
throws Exception {
Date time = getCalendarTime( Calendar.getInstance().getTime() );
- final Vector< Hashtable< String, Object > > previousChanges = m_handler.getRecentChanges( time );
+ final List< Hashtable< String, Object > > previousChanges = m_handler.getRecentChanges( time );
m_engine.saveText( NAME1, "Foo" );
final Page directInfo = m_engine.getManager( PageManager.class ).getPage( NAME1 );
time = getCalendarTime( directInfo.getLastModified() );
- final Vector< Hashtable< String, Object > > recentChanges = m_handler.getRecentChanges( time );
+ final List< Hashtable< String, Object > > recentChanges = m_handler.getRecentChanges( time );
Assertions.assertEquals( 1, recentChanges.size() - previousChanges.size(), "wrong number of changes" );
}
@@ -84,7 +84,7 @@ public void testRecentChanges()
public void testRecentChangesWithAttachments()
throws Exception {
Date time = getCalendarTime( Calendar.getInstance().getTime() );
- final Vector< Hashtable< String, Object > > previousChanges = m_handler.getRecentChanges( time );
+ final List< Hashtable< String, Object > > previousChanges = m_handler.getRecentChanges( time );
m_engine.saveText( NAME1, "Foo" );
final Attachment att = Wiki.contents().attachment( m_engine, NAME1, "TestAtt.txt" );
@@ -92,7 +92,7 @@ public void testRecentChangesWithAttachments()
m_engine.getManager( AttachmentManager.class ).storeAttachment( att, m_engine.makeAttachmentFile() );
final Page directInfo = m_engine.getManager( PageManager.class ).getPage( NAME1 );
time = getCalendarTime( directInfo.getLastModified() );
- final Vector< Hashtable< String, Object > > recentChanges = m_handler.getRecentChanges( time );
+ final List< Hashtable< String, Object > > recentChanges = m_handler.getRecentChanges( time );
Assertions.assertEquals( 1, recentChanges.size() - previousChanges.size(), "wrong number of changes" );
}
@@ -135,11 +135,11 @@ public void testListLinks()
m_engine.saveText( pageName, text );
- final Vector< Hashtable< String, String > > links = m_handler.listLinks( pageName );
+ final List< Hashtable< String, String > > links = m_handler.listLinks( pageName );
Assertions.assertEquals( 1, links.size(), "link count" );
- final Hashtable< String, String > linkinfo = links.elementAt( 0 );
+ final Hashtable< String, String > linkinfo = links.get( 0 );
Assertions.assertEquals( "Foobar", linkinfo.get( "page" ), "name" );
Assertions.assertEquals( "local", linkinfo.get( "type" ), "type" );
@@ -161,17 +161,17 @@ public void testListLinksWithAttachments()
// Test.
- final Vector< Hashtable< String, String > > links = m_handler.listLinks( pageName );
+ final List< Hashtable< String, String > > links = m_handler.listLinks( pageName );
Assertions.assertEquals( 2, links.size(), "link count" );
- Hashtable< String, String > linkinfo = links.elementAt( 0 );
+ Hashtable< String, String > linkinfo = links.get( 0 );
Assertions.assertEquals( "Foobar", linkinfo.get( "page" ), "edit name" );
Assertions.assertEquals( "local", linkinfo.get( "type" ), "edit type" );
Assertions.assertEquals( "/test/Edit.jsp?page=Foobar", linkinfo.get( "href" ), "edit href" );
- linkinfo = links.elementAt( 1 );
+ linkinfo = links.get( 1 );
Assertions.assertEquals( NAME1 + "/TestAtt.txt", linkinfo.get( "page" ), "att name" );
Assertions.assertEquals( "local", linkinfo.get( "type" ), "att type" );
diff --git a/jspwiki-util/src/test/java/org/apache/wiki/util/ByteUtilsTest.java b/jspwiki-util/src/test/java/org/apache/wiki/util/ByteUtilsTest.java
index caed32f66f..4efe00923d 100644
--- a/jspwiki-util/src/test/java/org/apache/wiki/util/ByteUtilsTest.java
+++ b/jspwiki-util/src/test/java/org/apache/wiki/util/ByteUtilsTest.java
@@ -19,8 +19,6 @@ Licensed to the Apache Software Foundation (ASF) under one
package org.apache.wiki.util;
-import java.util.Arrays;
-
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;