You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by hw...@apache.org on 2010/02/26 23:04:58 UTC

svn commit: r916834 - in /subversion/trunk/subversion/bindings/javahl: src/org/apache/subversion/javahl/ src/org/tigris/subversion/javahl/ tests/org/apache/subversion/javahl/

Author: hwright
Date: Fri Feb 26 22:04:58 2010
New Revision: 916834

URL: http://svn.apache.org/viewvc?rev=916834&view=rev
Log:
JavaHL: Start using more of the Collections framework in our APIs.  In this
step, I replace all the place we take String[] for a changelist list, and use
a Collection<String> instead.  Update the tests accordingly.

This *doesn't* push any of these changes down to the C++ layer, at least
not yet.  The infrastructure there is still set up for String[], so we just
make the current native methods private in SVNClient, and implement the public
methods as wrappers.

[ in subversion/bindings/javahl/ ]
* tests/org/apache/subversion/javahl/BasicTests.java
  (testBasicChangelist): Use a Collection of changelists.
  (MyChangelistCallback): Update to hold a generic Collection.
  (collectProperties, collectInfos): Take a Collection of Strings.

* src/org/tigris/subversion/javahl/SVNClient.java:
  Anywhere a changelist array is passed in, convert it to a list in the wrapper.

* src/org/apache/subversion/javahl/SVNClient.java:
  Change changelist array arguments to Collection<String>.  To prevent having
  to rewrite all the native code for this commit, we just privatize the native
  functions, and leave them alone for now (as above).

* src/org/apache/subversion/javahl/ISVNClient.java:
  Change all changelist array arguments to Collection<String>.

Modified:
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
    subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
    subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
    subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java?rev=916834&r1=916833&r2=916834&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNClient.java Fri Feb 26 22:04:58 2010
@@ -26,6 +26,7 @@
 import org.apache.subversion.javahl.callback.*;
 
 import java.io.OutputStream;
+import java.util.Collection;
 import java.util.Map;
 
 /**
@@ -78,7 +79,7 @@
      */
     void status(String path, int depth, boolean onServer,
                 boolean getAll, boolean noIgnore, boolean ignoreExternals,
-                String[] changelists, StatusCallback callback)
+                Collection<String> changelists, StatusCallback callback)
             throws ClientException;
 
     /**
@@ -227,7 +228,7 @@
      * @throws ClientException
      * @since 1.5
      */
-    void revert(String path, int depth, String[] changelists)
+    void revert(String path, int depth, Collection<String> changelists)
             throws ClientException;
 
     /**
@@ -302,7 +303,7 @@
      */
     long commit(String[] path, String message, int depth,
                 boolean noUnlock, boolean keepChangelist,
-                String[] changelists, Map<String, String> revpropTable)
+                Collection<String> changelists, Map<String, String> revpropTable)
             throws ClientException;
 
     /**
@@ -572,7 +573,7 @@
      */
     void diff(String target1, Revision revision1, String target2,
               Revision revision2, String relativeToDir, String outFileName,
-              int depth, String[] changelists, boolean ignoreAncestry,
+              int depth, Collection<String> changelists, boolean ignoreAncestry,
               boolean noDiffDeleted, boolean force, boolean copiesAsAdds)
             throws ClientException;
 
@@ -596,7 +597,7 @@
      */
     void diff(String target, Revision pegRevision, Revision startRevision,
               Revision endRevision, String relativeToDir, String outFileName,
-              int depth, String[] changelists, boolean ignoreAncestry,
+              int depth, Collection<String> changelists, boolean ignoreAncestry,
               boolean noDiffDeleted, boolean force, boolean copiesAsAdds)
             throws ClientException;
 
@@ -623,8 +624,8 @@
      */
     void diffSummarize(String target1, Revision revision1,
                        String target2, Revision revision2,
-                       int depth, String[] changelists, boolean ignoreAncestry,
-                       DiffSummaryCallback receiver)
+                       int depth, Collection<String> changelists,
+                       boolean ignoreAncestry, DiffSummaryCallback receiver)
             throws ClientException;
 
     /**
@@ -657,8 +658,8 @@
      */
     void diffSummarize(String target, Revision pegRevision,
                        Revision startRevision, Revision endRevision,
-                       int depth, String[] changelists, boolean ignoreAncestry,
-                       DiffSummaryCallback receiver)
+                       int depth, Collection<String> changelists,
+                       boolean ignoreAncestry, DiffSummaryCallback receiver)
         throws ClientException;
 
     /**
@@ -674,7 +675,8 @@
      * @since 1.5
      */
     void properties(String path, Revision revision, Revision pegRevision,
-                    int depth, String[] changelists, ProplistCallback callback)
+                    int depth, Collection<String> changelists,
+                    ProplistCallback callback)
             throws ClientException;
 
     /**
@@ -693,7 +695,7 @@
      * @since 1.5
      */
     void propertySet(String path, String name, String value, int depth,
-                     String[] changelists, boolean force,
+                     Collection<String> changelists, boolean force,
                      Map<String, String> revpropTable)
             throws ClientException;
 
@@ -707,7 +709,7 @@
      * @since 1.5
      */
     void propertyRemove(String path, String name, int depth,
-                        String[] changelists)
+                        Collection<String> changelists)
             throws ClientException;
 
     /**
@@ -723,7 +725,7 @@
      * @since 1.5
      */
     void propertyCreate(String path, String name, String value, int depth,
-                        String[] changelists, boolean force)
+                        Collection<String> changelists, boolean force)
             throws ClientException;
 
     /**
@@ -889,7 +891,7 @@
      * @since 1.5
      */
     void addToChangelist(String[] paths, String changelist, int depth,
-                         String[] changelists)
+                         Collection<String> changelists)
             throws ClientException;
 
     /**
@@ -899,7 +901,8 @@
      * @param changelists changelists to filter by
      * @since 1.5
      */
-    void removeFromChangelists(String[] paths, int depth, String[] changelist)
+    void removeFromChangelists(String[] paths, int depth,
+                               Collection<String> changelists)
             throws ClientException;
 
     /**
@@ -910,7 +913,7 @@
      * @param callback    the callback to return the changelists through
      * @since 1.5
      */
-    void getChangelists(String rootPath, String[] changelists, int depth,
+    void getChangelists(String rootPath, Collection<String> changelists, int depth,
                         ChangelistCallback callback)
             throws ClientException;
 
@@ -946,7 +949,7 @@
      * @since 1.5
      */
     void info2(String pathOrUrl, Revision revision, Revision pegRevision,
-               int depth, String[] changelists, InfoCallback callback)
+               int depth, Collection<String> changelists, InfoCallback callback)
         throws ClientException;
 
     /**

Modified: subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java?rev=916834&r1=916833&r2=916834&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNClient.java Fri Feb 26 22:04:58 2010
@@ -27,6 +27,7 @@
 
 import java.io.OutputStream;
 
+import java.util.Collection;
 import java.util.Map;
 
 /**
@@ -118,10 +119,21 @@
     /**
      * @since 1.5
      */
-    public native void status(String path, int depth, boolean onServer,
-                              boolean getAll, boolean noIgnore,
-                              boolean ignoreExternals, String[] changelists,
-                              StatusCallback callback)
+    public void status(String path, int depth, boolean onServer, boolean getAll,
+                       boolean noIgnore, boolean ignoreExternals,
+                       Collection<String> changelists, StatusCallback callback)
+            throws ClientException
+    {
+        this.status(path, depth, onServer, getAll, noIgnore, ignoreExternals,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    callback);
+    }
+
+    private native void status(String path, int depth, boolean onServer,
+                               boolean getAll, boolean noIgnore,
+                               boolean ignoreExternals, String[] changelists,
+                               StatusCallback callback)
             throws ClientException;
 
     /**
@@ -207,7 +219,15 @@
     /**
      * @since 1.5
      */
-    public native void revert(String path, int depth, String[] changelists)
+    public void revert(String path, int depth, Collection<String> changelists)
+            throws ClientException
+    {
+        this.revert(path, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]));
+    }
+
+    private native void revert(String path, int depth, String[] changelists)
             throws ClientException;
 
     /**
@@ -241,10 +261,22 @@
     /**
      * @since 1.5
      */
-    public native long commit(String[] path, String message, int depth,
-                              boolean noUnlock, boolean keepChangelist,
-                              String[] changelists,
-                              Map<String, String> revpropTable)
+    public long commit(String[] path, String message, int depth,
+                       boolean noUnlock, boolean keepChangelist,
+                       Collection<String> changelists,
+                       Map<String, String> revpropTable)
+            throws ClientException
+    {
+        return this.commit(path, message, depth, noUnlock, keepChangelist,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    revpropTable);
+    }
+
+    private native long commit(String[] path, String message, int depth,
+                               boolean noUnlock, boolean keepChangelist,
+                               String[] changelists,
+                               Map<String, String> revpropTable)
             throws ClientException;
 
     /**
@@ -367,82 +399,171 @@
     /**
      * @since 1.7
      */
-    public native void diff(String target1, Revision revision1, String target2,
-                            Revision revision2, String relativeToDir,
-                            String outFileName, int depth,
-                            String[] changelists, boolean ignoreAncestry,
-                            boolean noDiffDeleted, boolean force,
-                            boolean copiesAsAdds)
+    public void diff(String target1, Revision revision1, String target2,
+                     Revision revision2, String relativeToDir,
+                     String outFileName, int depth,
+                     Collection<String> changelists, boolean ignoreAncestry,
+                     boolean noDiffDeleted, boolean force,
+                     boolean copiesAsAdds)
+            throws ClientException
+    {
+        this.diff(target1, revision1, target2, revision2, relativeToDir,
+                    outFileName, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    ignoreAncestry, noDiffDeleted, force, copiesAsAdds);
+                
+    }
+
+    private native void diff(String target1, Revision revision1, String target2,
+                             Revision revision2, String relativeToDir,
+                             String outFileName, int depth,
+                             String[] changelists, boolean ignoreAncestry,
+                             boolean noDiffDeleted, boolean force,
+                             boolean copiesAsAdds)
             throws ClientException;
 
     /**
      * @since 1.7
      */
-    public native void diff(String target, Revision pegRevision,
-                            Revision startRevision, Revision endRevision,
-                            String relativeToDir, String outFileName,
-                            int depth, String[] changelists,
-                            boolean ignoreAncestry, boolean noDiffDeleted,
-                            boolean force, boolean copiesAsAdds)
+    public void diff(String target, Revision pegRevision,
+                     Revision startRevision, Revision endRevision,
+                     String relativeToDir, String outFileName,
+                     int depth, Collection<String> changelists,
+                     boolean ignoreAncestry, boolean noDiffDeleted,
+                     boolean force, boolean copiesAsAdds)
+            throws ClientException
+    {
+        this.diff(target, pegRevision, startRevision, endRevision,
+                    relativeToDir, outFileName, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    ignoreAncestry, noDiffDeleted, force, copiesAsAdds);
+    }
+
+    private native void diff(String target, Revision pegRevision,
+                             Revision startRevision, Revision endRevision,
+                             String relativeToDir, String outFileName,
+                             int depth, String[] changelists,
+                             boolean ignoreAncestry, boolean noDiffDeleted,
+                             boolean force, boolean copiesAsAdds)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void diffSummarize(String target1, Revision revision1,
-                                     String target2, Revision revision2,
-                                     int depth, String[] changelists,
-                                     boolean ignoreAncestry,
-                                     DiffSummaryCallback receiver)
+    public void diffSummarize(String target1, Revision revision1,
+                              String target2, Revision revision2,
+                              int depth, Collection<String> changelists,
+                              boolean ignoreAncestry,
+                              DiffSummaryCallback receiver)
+            throws ClientException
+    {
+        this.diffSummarize(target1, revision1, target2, revision2, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    ignoreAncestry, receiver);
+    }
+
+    private native void diffSummarize(String target1, Revision revision1,
+                                      String target2, Revision revision2,
+                                      int depth, String[] changelists,
+                                      boolean ignoreAncestry,
+                                      DiffSummaryCallback receiver)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void diffSummarize(String target, Revision pegRevision,
-                                     Revision startRevision,
-                                     Revision endRevision,
-                                     int depth, String[] changelists,
-                                     boolean ignoreAncestry,
-                                     DiffSummaryCallback receiver)
+    public void diffSummarize(String target, Revision pegRevision,
+                              Revision startRevision,
+                              Revision endRevision,
+                              int depth, Collection<String> changelists,
+                              boolean ignoreAncestry,
+                              DiffSummaryCallback receiver)
+            throws ClientException
+    {
+        this.diffSummarize(target, pegRevision, startRevision, endRevision,
+                    depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    ignoreAncestry, receiver);
+    }
+
+    private native void diffSummarize(String target, Revision pegRevision,
+                                      Revision startRevision,
+                                      Revision endRevision,
+                                      int depth, String[] changelists,
+                                      boolean ignoreAncestry,
+                                      DiffSummaryCallback receiver)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void properties(String path, Revision revision,
-                                  Revision pegRevision, int depth,
-                                  String[] changelists,
-                                  ProplistCallback callback)
+    public void properties(String path, Revision revision,
+                           Revision pegRevision, int depth,
+                           Collection<String> changelists,
+                           ProplistCallback callback)
+            throws ClientException
+    {
+        this.properties(path, revision, pegRevision, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    callback);
+    }
+
+    private native void properties(String path, Revision revision,
+                                   Revision pegRevision, int depth,
+                                   String[] changelists,
+                                   ProplistCallback callback)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void propertySet(String path, String name, String value,
-                                   int depth, String[] changelists,
-                                   boolean force,
-                                   Map<String, String> revpropTable)
+    public void propertySet(String path, String name, String value,
+                            int depth, Collection<String> changelists,
+                            boolean force, Map<String, String> revpropTable)
+            throws ClientException
+    {
+        this.propertySet(path, name, value, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    force, revpropTable);
+    }
+
+    private native void propertySet(String path, String name, String value,
+                                    int depth, String[] changelists,
+                                    boolean force,
+                                    Map<String, String> revpropTable)
             throws ClientException;
 
     /**
      * @since 1.5
      */
     public void propertyRemove(String path, String name, int depth,
-                               String[] changelists)
+                               Collection<String> changelists)
             throws ClientException
     {
-        propertySet(path, name, null, depth, changelists, false, null);
+        propertySet(path, name, null, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    false, null);
     }
 
     /**
      * @since 1.5
      */
     public void propertyCreate(String path, String name, String value,
-                               int depth, String[] changelists, boolean force)
+                               int depth, Collection<String> changelists,
+                               boolean force)
             throws ClientException
     {
-        propertySet(path, name, value, depth, changelists, force, null);
+        propertySet(path, name, value, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    force, null);
     }
 
     /**
@@ -545,22 +666,50 @@
     /**
      * @since 1.5
      */
-    public native void addToChangelist(String[] paths, String changelist,
-                                       int depth, String[] changelists)
+    public void addToChangelist(String[] paths, String changelist,
+                                int depth, Collection<String> changelists)
+            throws ClientException
+    {
+        this.addToChangelist(paths, changelist, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]));
+    }
+
+    private native void addToChangelist(String[] paths, String changelist,
+                                        int depth, String[] changelists)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void removeFromChangelists(String[] paths, int depth,
-                                             String[] changelists)
+    public void removeFromChangelists(String[] paths, int depth,
+                                      Collection<String> changelists)
+            throws ClientException
+    {
+        this.removeFromChangelists(paths, depth,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]));
+    }
+
+    private native void removeFromChangelists(String[] paths, int depth,
+                                              String[] changelists)
             throws ClientException;
 
     /**
      * @since 1.5
      */
-    public native void getChangelists(String rootPath, String[] changelists,
-                                      int depth, ChangelistCallback callback)
+    public void getChangelists(String rootPath, Collection<String> changelists,
+                               int depth, ChangelistCallback callback)
+            throws ClientException
+    {
+        this.getChangelists(rootPath,
+                    changelists == null ? null :
+                      changelists.toArray(new String[changelists.size()]),
+                    depth, callback);
+    }
+
+    private native void getChangelists(String rootPath, String[] changelists,
+                                       int depth, ChangelistCallback callback)
             throws ClientException;
 
     /**
@@ -635,8 +784,19 @@
     /**
      * @since 1.5
      */
-    public native void info2(String pathOrUrl, Revision revision,
-                             Revision pegRevision, int depth,
-                             String[] changelists, InfoCallback callback)
+    public void info2(String pathOrUrl, Revision revision,
+                      Revision pegRevision, int depth,
+                      Collection<String> changelists, InfoCallback callback)
+            throws ClientException
+    {
+        this.info2(pathOrUrl, revision, pegRevision, depth, 
+                   changelists == null ? null :
+                     changelists.toArray(new String[changelists.size()]),
+                   callback);
+    }
+
+    private native void info2(String pathOrUrl, Revision revision,
+                              Revision pegRevision, int depth,
+                              String[] changelists, InfoCallback callback)
             throws ClientException;
 }

Modified: subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java?rev=916834&r1=916833&r2=916834&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java (original)
+++ subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNClient.java Fri Feb 26 22:04:58 2010
@@ -29,6 +29,7 @@
 
 import java.util.Map;
 import java.util.List;
+import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Date;
 import java.text.ParseException;
@@ -213,7 +214,9 @@
         try
         {
             aSVNClient.status(path, depth, onServer, getAll, noIgnore,
-                              ignoreExternals, changelists,
+                              ignoreExternals,
+                              changelists == null ? null
+                                : Arrays.asList(changelists),
                               new aStatusCallback(callback));
         }
         catch (org.apache.subversion.javahl.ClientException ex)
@@ -777,7 +780,8 @@
     {
         try
         {
-            aSVNClient.revert(path, depth, changelists);
+            aSVNClient.revert(path, depth, changelists == null ? null
+                                : Arrays.asList(changelists));
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -916,7 +920,9 @@
         try
         {
             return aSVNClient.commit(path, message, depth, noUnlock,
-                                     keepChangelist, changelists,
+                                     keepChangelist,
+                                     changelists == null ? null
+                                       : Arrays.asList(changelists),
                                      revpropTable);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
@@ -1525,7 +1531,9 @@
                         revision1 == null ? null : revision1.toApache(),
                         target2,
                         revision2 == null ? null : revision2.toApache(),
-                        relativeToDir, outFileName, depth, changelists,
+                        relativeToDir, outFileName, depth,
+                        changelists == null ? null
+                            : Arrays.asList(changelists),
                         ignoreAncestry, noDiffDeleted, force,
                         copiesAsAdds);
         }
@@ -1588,7 +1596,8 @@
                      pegRevision == null ? null : pegRevision.toApache(),
                      startRevision == null ? null : startRevision.toApache(),
                      endRevision == null ? null : endRevision.toApache(),
-                     relativeToDir, outFileName, depth, changelists,
+                     relativeToDir, outFileName, depth,
+                     changelists == null ? null : Arrays.asList(changelists),
                      ignoreAncestry, noDiffDeleted, force, copiesAsAdds);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
@@ -1615,7 +1624,10 @@
                             revision1 == null ? null : revision1.toApache(),
                             target2,
                             revision2 == null ? null : revision2.toApache(),
-                            depth, changelists, ignoreAncestry, aReceiver);
+                            depth,
+                            changelists == null ? null
+                              : Arrays.asList(changelists),
+                            ignoreAncestry, aReceiver);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -1641,7 +1653,9 @@
                        pegRevision == null ? null : pegRevision.toApache(),
                        startRevision == null ? null : startRevision.toApache(),
                        endRevision == null ? null : endRevision.toApache(),
-                       depth, changelists, ignoreAncestry, aReceiver);
+                       depth, changelists == null ? null
+                            : Arrays.asList(changelists),
+                       ignoreAncestry, aReceiver);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -1713,7 +1727,8 @@
             aSVNClient.properties(path,
                           revision == null ? null : revision.toApache(),
                           pegRevision == null ? null : pegRevision.toApache(),
-                          depth, changelists, callback);
+                          depth, changelists == null ? null
+                                : Arrays.asList(changelists), callback);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -1780,7 +1795,9 @@
     {
         try
         {
-            aSVNClient.propertySet(path, name, value, depth, changelists,
+            aSVNClient.propertySet(path, name, value, depth,
+                                   changelists == null ? null
+                                    : Arrays.asList(changelists),
                                    force, revpropTable);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
@@ -2305,7 +2322,9 @@
     {
         try
         {
-            aSVNClient.addToChangelist(paths, changelist, depth, changelists);
+            aSVNClient.addToChangelist(paths, changelist, depth,
+                                       changelists == null ? null
+                                        : Arrays.asList(changelists));
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -2322,7 +2341,9 @@
     {
         try
         {
-            aSVNClient.removeFromChangelists(paths, depth, changelists);
+            aSVNClient.removeFromChangelists(paths, depth,
+                                             changelists == null ? null
+                                               : Arrays.asList(changelists));
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -2339,7 +2360,9 @@
     {
         try
         {
-            aSVNClient.getChangelists(rootPath, changelists, depth, callback);
+            aSVNClient.getChangelists(rootPath, changelists == null ? null
+                                        : Arrays.asList(changelists),
+                                      depth, callback);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -2531,7 +2554,8 @@
             aSVNClient.info2(pathOrUrl,
                           revision == null ? null : revision.toApache(),
                           pegRevision == null ? null : pegRevision.toApache(),
-                          depth, changelists,
+                          depth, changelists == null ? null
+                            : Arrays.asList(changelists),
                           new aInfoCallback(callback));
         }
         catch (org.apache.subversion.javahl.ClientException ex)

Modified: subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java?rev=916834&r1=916833&r2=916834&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java (original)
+++ subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/BasicTests.java Fri Feb 26 22:04:58 2010
@@ -32,6 +32,7 @@
 import java.io.PrintWriter;
 import java.io.ByteArrayOutputStream;
 import java.text.ParseException;
+import java.util.Collection;
 import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Date;
@@ -2253,18 +2254,18 @@
         // build the working copy
         OneTest thisTest = new OneTest();
         String changelistName = "changelist1";
-        String[] changelists = new String[] { changelistName };
+        Collection<String> changelists = new ArrayList<String>();
+        changelists.add(changelistName);
         MyChangelistCallback clCallback = new MyChangelistCallback();
 
         String[] paths = new String[]
           {fileToSVNPath(new File(thisTest.getWCPath(), "iota"), true)};
         // Add a path to a changelist, and check to see if it got added
         client.addToChangelist(paths, changelistName, Depth.infinity, null);
-        String[] cl = new String[1];
         client.getChangelists(thisTest.getWCPath(), changelists,
                               Depth.infinity, clCallback);
-        cl[0] = (String) clCallback.get(paths[0]).get(0);
-        assertTrue(java.util.Arrays.equals(cl, changelists));
+        Collection<String> cl = clCallback.get(paths[0]);
+        assertTrue(changelists.equals(cl));
         // Does status report this changelist?
         MyStatusCallback statusCallback = new MyStatusCallback();
         client.status(paths[0], Depth.immediates, false, false, false, false,
@@ -3552,7 +3553,8 @@
         }
     }
 
-    private class MyChangelistCallback extends HashMap<String, List<String>>
+    private class MyChangelistCallback
+        extends HashMap<String, Collection<String>>
         implements ChangelistCallback
     {
         public void doChangelist(String path, String changelist)
@@ -3560,8 +3562,8 @@
             if (super.containsKey(path))
             {
                 // Append the changelist to the existing list
-                List<String> changelistList = super.get(path);
-                changelistList.add(changelist);
+                Collection<String> changelists = super.get(path);
+                changelists.add(changelist);
             }
             else
             {
@@ -3572,7 +3574,7 @@
             }
         }
 
-        public List<String> get(String path)
+        public Collection<String> get(String path)
         {
             return super.get(path);
         }
@@ -3623,7 +3625,7 @@
 
     private PropertyData[] collectProperties(String path, Revision revision,
                                              Revision pegRevision, int depth,
-                                             String[] changelists)
+                                             Collection<String> changelists)
         throws ClientException
     {
         class MyProplistCallback implements ProplistCallback
@@ -3712,7 +3714,7 @@
 
     private Info2[] collectInfos(String pathOrUrl, Revision revision,
                                  Revision pegRevision, int depth,
-                                 String[] changelists)
+                                 Collection<String> changelists)
         throws ClientException
     {
         class MyInfoCallback implements InfoCallback