From 1bd3118c4a59eae634f021902ae51e5c84075f9a Mon Sep 17 00:00:00 2001 From: Arturo Bernal Date: Mon, 17 Oct 2022 21:28:32 +0200 Subject: [PATCH] Replace Vector usages with the java.util.ArrayList. --- .../apache/wiki/event/WikiEventManager.java | 8 ++++---- .../org/apache/wiki/auth/acl/AclImpl.java | 6 +++--- .../org/apache/wiki/auth/authorize/Group.java | 6 ++++-- .../wiki/filters/PingWeblogsComFilter.java | 10 ++++++---- .../org/apache/wiki/filters/SpamFilter.java | 6 +++--- .../org/apache/wiki/ui/TemplateManager.java | 12 +++++------ .../wiki/xmlrpc/AbstractRPCHandler.java | 10 ++++++---- .../wiki/parser/JSPWikiMarkupParserTest.java | 13 ++++++------ .../wiki/providers/CounterProvider.java | 3 +-- .../wiki/providers/VerySimpleProvider.java | 3 +-- .../apache/wiki/ui/TemplateManagerTest.java | 4 ++-- .../apache/wiki/xmlrpc/RPCHandlerTest.java | 20 +++++++++---------- .../org/apache/wiki/util/ByteUtilsTest.java | 2 -- 13 files changed, 53 insertions(+), 50 deletions(-) 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;