You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jspwiki.apache.org by ju...@apache.org on 2018/10/28 23:26:31 UTC

[jspwiki] 16/17: AttachmentManager#listAttachments now returns a List instead of a Collection (breaking backwards-compatible change)

This is an automated email from the ASF dual-hosted git repository.

juanpablo pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/jspwiki.git

commit 37761217837f2a67b2440f5d1e9c027a858198ea
Author: juanpablo <ju...@apache.org>
AuthorDate: Sun Oct 28 22:56:03 2018 +0100

    AttachmentManager#listAttachments now returns a List<Attachment> instead of a Collection  (breaking backwards-compatible change)
---
 .../main/java/org/apache/wiki/ReferenceManager.java  |  3 ++-
 .../src/main/java/org/apache/wiki/WikiEngine.java    |  6 +++---
 .../apache/wiki/attachment/AttachmentManager.java    | 20 ++++----------------
 .../java/org/apache/wiki/content/PageRenamer.java    |  7 +++----
 .../wiki/providers/BasicAttachmentProvider.java      |  4 ++--
 .../wiki/providers/CachingAttachmentProvider.java    | 17 +++++++++--------
 .../wiki/providers/WikiAttachmentProvider.java       |  2 +-
 .../src/main/java/org/apache/wiki/rss/AtomFeed.java  | 15 ++++++++-------
 .../src/main/java/org/apache/wiki/rss/RSS20Feed.java |  6 +++---
 .../org/apache/wiki/search/BasicSearchProvider.java  | 10 ++++++----
 .../org/apache/wiki/search/LuceneSearchProvider.java |  7 ++++---
 .../org/apache/wiki/tags/AttachmentsIteratorTag.java |  8 ++++----
 .../wiki/attachment/AttachmentManagerTest.java       |  4 ++--
 13 files changed, 51 insertions(+), 58 deletions(-)

diff --git a/jspwiki-main/src/main/java/org/apache/wiki/ReferenceManager.java b/jspwiki-main/src/main/java/org/apache/wiki/ReferenceManager.java
index 9371f65..12be34e 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/ReferenceManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/ReferenceManager.java
@@ -37,6 +37,7 @@ import java.util.ConcurrentModificationException;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.TreeSet;
@@ -193,7 +194,7 @@ public class ReferenceManager
         Collection<String> links = m_engine.scanWikiLinks( page, content );
 
         res.addAll( links );
-        Collection< Attachment > attachments = m_engine.getAttachmentManager().listAttachments( page );
+        List< Attachment > attachments = m_engine.getAttachmentManager().listAttachments( page );
 
         for( Iterator< Attachment > atti = attachments.iterator(); atti.hasNext(); )
         {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
index 213c26f..4c19788 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/WikiEngine.java
@@ -2182,10 +2182,10 @@ public class WikiEngine
 
                 if (m_attachmentManager.hasAttachments( p ))
                 {
-                    Collection attachments = m_attachmentManager.listAttachments( p );
-                    for( Iterator atti = attachments.iterator(); atti.hasNext(); )
+                    List< Attachment > attachments = m_attachmentManager.listAttachments( p );
+                    for( Iterator< Attachment > atti = attachments.iterator(); atti.hasNext(); )
                     {
-                        Attachment attachment = (Attachment)atti.next();
+                        Attachment attachment = atti.next();
                         refTo.remove(attachment.getName());
 
                         m_attachmentManager.deleteAttachment( attachment );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentManager.java b/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentManager.java
index 2c7719a..48d10c5 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentManager.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/attachment/AttachmentManager.java
@@ -360,26 +360,14 @@ public class AttachmentManager
      *  @return a valid collection of attachments.
      *  @throws ProviderException If there was something wrong in the backend.
      */
-
-    // FIXME: This API should be changed to return a List.
-    @SuppressWarnings("unchecked")
-    public Collection listAttachments( WikiPage wikipage )
-        throws ProviderException
-    {
+    public List< Attachment > listAttachments( WikiPage wikipage ) throws ProviderException {
         if( m_provider == null )
         {
-            return new ArrayList();
+            return new ArrayList<>();
         }
 
-        Collection atts = m_provider.listAttachments( wikipage );
-
-        //
-        //  This is just a sanity check; all of our providers return a Collection.
-        //
-        if( atts instanceof List )
-        {
-            m_engine.getPageSorter().sortPages( (List) atts );
-        }
+        List< Attachment >atts = m_provider.listAttachments( wikipage );
+        m_engine.getPageSorter().sortPages( (List) atts );
 
         return atts;
     }
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java b/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java
index 22df9e0..ad91697 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/content/PageRenamer.java
@@ -19,6 +19,7 @@
 package org.apache.wiki.content;
 
 import java.util.Collection;
+import java.util.List;
 import java.util.Set;
 import java.util.TreeSet;
 import java.util.regex.Matcher;
@@ -125,8 +126,7 @@ public class PageRenamer
         //
         
         //  Remove references to attachments under old name
-        @SuppressWarnings( "unchecked" )
-        Collection<Attachment> attachmentsOldName = engine.getAttachmentManager().listAttachments( fromPage );
+        List<Attachment> attachmentsOldName = engine.getAttachmentManager().listAttachments( fromPage );
         for (Attachment att:attachmentsOldName)
         {
             WikiPage fromAttPage = engine.getPage( att.getName() );
@@ -256,8 +256,7 @@ public class PageRenamer
         
         try
         {
-            @SuppressWarnings( "unchecked" )
-            Collection<Attachment> attachments = engine.getAttachmentManager().listAttachments( fromPage );
+            List<Attachment> attachments = engine.getAttachmentManager().listAttachments( fromPage );
 
             for( Attachment att : attachments  )
             {
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java
index 10b3f87..b3382a6 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/providers/BasicAttachmentProvider.java
@@ -452,10 +452,10 @@ public class BasicAttachmentProvider
     /**
      *  {@inheritDoc}
      */
-    public Collection listAttachments( WikiPage page )
+    public List< Attachment > listAttachments( WikiPage page )
         throws ProviderException
     {
-        Collection<Attachment> result = new ArrayList<Attachment>();
+        List<Attachment> result = new ArrayList<Attachment>();
 
         File dir = findPageDir( page.getName() );
 
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 491975d..12e0ac7 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
@@ -167,13 +167,13 @@ public class CachingAttachmentProvider
     /**
      * {@inheritDoc}
      */
-    public Collection listAttachments(WikiPage page) throws ProviderException {
+    public List< Attachment > listAttachments(WikiPage page) throws ProviderException {
         log.debug("Listing attachments for " + page);
-        Collection<Attachment> c = null;
+        List<Attachment> c = null;
         Element element = m_cache.get(page.getName());
 
         if (element != null) {
-            c = (Collection<Attachment>) element.getObjectValue();
+            c = (List<Attachment>) element.getObjectValue();
             log.debug("LIST from cache, " + page.getName() + ", size=" + c.size());
             return cloneCollection(c);
         }
@@ -183,9 +183,9 @@ public class CachingAttachmentProvider
         return refresh(page);
     }
 
-    private <T> Collection<T> cloneCollection( Collection<T> c )
+    private <T> List<T> cloneCollection( Collection<T> c )
     {
-        ArrayList<T> list = new ArrayList<T>();
+        ArrayList<T> list = new ArrayList<>();
 
         list.addAll( c );
 
@@ -255,9 +255,9 @@ public class CachingAttachmentProvider
      *
      *  @return The newly fetched object from the provider.
      */
-    private Collection<Attachment> refresh( WikiPage page ) throws ProviderException
+    private List<Attachment> refresh( WikiPage page ) throws ProviderException
     {
-        Collection<Attachment> c = m_provider.listAttachments( page );
+        List<Attachment> c = m_provider.listAttachments( page );
         m_cache.put(new Element(page.getName(), c));
 
         return c;
@@ -361,7 +361,8 @@ public class CachingAttachmentProvider
         //
         String checkName = oldParent + "/";
 
-        Collection< String > names = m_cache.getKeysWithExpiryCheck();
+        @SuppressWarnings("unchecked")
+		List< String > names = m_cache.getKeysWithExpiryCheck();
         for( String name : names )
         {
             if( name.startsWith( checkName ) )
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/providers/WikiAttachmentProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/providers/WikiAttachmentProvider.java
index 9630b69..91195b6 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/providers/WikiAttachmentProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/providers/WikiAttachmentProvider.java
@@ -78,7 +78,7 @@ public interface WikiAttachmentProvider
      *  @throws ProviderException If something goes wrong when listing the attachments.
      */
 
-    Collection listAttachments( WikiPage page )
+    List< Attachment > listAttachments( WikiPage page )
         throws ProviderException;
 
     /**
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
index feb5fe9..72b6866 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/AtomFeed.java
@@ -24,20 +24,21 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 
 import javax.servlet.ServletContext;
 
 import org.apache.commons.lang.time.DateFormatUtils;
-import org.jdom2.Element;
-import org.jdom2.Namespace;
-import org.jdom2.output.Format;
-import org.jdom2.output.XMLOutputter;
 import org.apache.wiki.Release;
 import org.apache.wiki.WikiContext;
 import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.exceptions.ProviderException;
 import org.apache.wiki.attachment.Attachment;
+import org.jdom2.Element;
+import org.jdom2.Namespace;
+import org.jdom2.output.Format;
+import org.jdom2.output.XMLOutputter;
 
 /**
  *  Provides an Atom 1.0 standard feed, with enclosures.
@@ -120,11 +121,11 @@ public class AtomFeed extends Feed
             {
                 try
                 {
-                    Collection c = engine.getAttachmentManager().listAttachments(p);
+                    List< Attachment > c = engine.getAttachmentManager().listAttachments(p);
 
-                    for( Iterator a = c.iterator(); a.hasNext(); )
+                    for( Iterator< Attachment > a = c.iterator(); a.hasNext(); )
                     {
-                        Attachment att = (Attachment) a.next();
+                        Attachment att = a.next();
 
                         Element attEl = getElement("link");
                         attEl.setAttribute( "rel","enclosure" );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
index 0da6e65..f6f66ee 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/rss/RSS20Feed.java
@@ -87,11 +87,11 @@ public class RSS20Feed extends Feed
             {
                 try
                 {
-                    Collection c = engine.getAttachmentManager().listAttachments(p);
+                    List< Attachment > c = engine.getAttachmentManager().listAttachments(p);
 
-                    for( Iterator a = c.iterator(); a.hasNext(); )
+                    for( Iterator< Attachment > a = c.iterator(); a.hasNext(); )
                     {
-                        Attachment att = (Attachment) a.next();
+                        Attachment att = a.next();
 
                         Element attEl = new Element("enclosure");
                         attEl.setAttribute( "url", engine.getURL(WikiContext.ATTACH, att.getName(), null, true ) );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java b/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java
index eaeb396..1dd2970 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/search/BasicSearchProvider.java
@@ -21,6 +21,7 @@ package org.apache.wiki.search;
 import java.io.IOException;
 import java.util.Collection;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 import java.util.StringTokenizer;
 import java.util.TreeSet;
@@ -122,7 +123,7 @@ public class BasicSearchProvider implements SearchProvider
     {
         if(m_engine.getAttachmentManager().hasAttachments(page))
         {
-            Collection attachments;
+            List< Attachment > attachments;
             try
             {
                 attachments = m_engine.getAttachmentManager().listAttachments(page);
@@ -134,12 +135,13 @@ public class BasicSearchProvider implements SearchProvider
             }
 
             StringBuilder attachmentNames = new StringBuilder();
-            for( Iterator it = attachments.iterator(); it.hasNext(); )
+            for( Iterator< Attachment > it = attachments.iterator(); it.hasNext(); )
             {
-                Attachment att = (Attachment) it.next();
+                Attachment att = it.next();
                 attachmentNames.append(att.getName());
-                if(it.hasNext())
+                if(it.hasNext()) {
                     attachmentNames.append(separator);
+                }
             }
             return attachmentNames.toString();
         }
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 ea56612..1902930 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
@@ -29,6 +29,7 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Date;
 import java.util.Iterator;
+import java.util.List;
 import java.util.Properties;
 import java.util.Vector;
 
@@ -483,12 +484,12 @@ public class LuceneSearchProvider implements SearchProvider {
         // Now add the names of the attachments of this page
         try
         {
-            Collection attachments = m_engine.getAttachmentManager().listAttachments(page);
+            List< Attachment > attachments = m_engine.getAttachmentManager().listAttachments(page);
             String attachmentNames = "";
 
-            for( Iterator it = attachments.iterator(); it.hasNext(); )
+            for( Iterator< Attachment > it = attachments.iterator(); it.hasNext(); )
             {
-                Attachment att = (Attachment) it.next();
+                Attachment att = it.next();
                 attachmentNames += att.getName() + ";";
             }
             field = new Field( LUCENE_ATTACHMENTS, attachmentNames, TextField.TYPE_STORED );
diff --git a/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java b/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
index 8cea2f5..f3e301c 100644
--- a/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
+++ b/jspwiki-main/src/main/java/org/apache/wiki/tags/AttachmentsIteratorTag.java
@@ -19,18 +19,18 @@
 package org.apache.wiki.tags;
 
 import java.io.IOException;
-import java.util.Collection;
+import java.util.List;
 
 import javax.servlet.jsp.JspWriter;
 import javax.servlet.jsp.PageContext;
 
 import org.apache.log4j.Logger;
-import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiContext;
+import org.apache.wiki.WikiEngine;
 import org.apache.wiki.WikiPage;
 import org.apache.wiki.api.exceptions.ProviderException;
-import org.apache.wiki.attachment.AttachmentManager;
 import org.apache.wiki.attachment.Attachment;
+import org.apache.wiki.attachment.AttachmentManager;
 
 /**
  *  Iterates through the list of attachments one has.
@@ -75,7 +75,7 @@ public class AttachmentsIteratorTag
         {
             if( page != null && engine.pageExists(page) )
             {
-                Collection atts = mgr.listAttachments( page );
+                List< Attachment > atts = mgr.listAttachments( page );
 
                 if( atts == null )
                 {
diff --git a/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java b/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java
index 15f2504..192cb35 100644
--- a/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java
+++ b/jspwiki-main/src/test/java/org/apache/wiki/attachment/AttachmentManagerTest.java
@@ -18,7 +18,7 @@ import java.io.InputStream;
 import java.io.InputStreamReader;
 import java.io.StringReader;
 import java.io.StringWriter;
-import java.util.Collection;
+import java.util.List;
 import java.util.Properties;
 
 import org.apache.wiki.TestEngine;
@@ -238,7 +238,7 @@ public class AttachmentManagerTest
 
         m_manager.storeAttachment( att, makeAttachmentFile() );
 
-        Collection<?> c = m_manager.listAttachments( new WikiPage(m_engine, NAME1) );
+        List< Attachment > c = m_manager.listAttachments( new WikiPage(m_engine, NAME1) );
 
         Assertions.assertEquals( 1, c.size(), "Length" );