Author: hwright
Date: Fri May 28 03:17:27 2010
New Revision: 949082

URL: http://svn.apache.org/viewvc?rev=949082&view=rev
Log:
JavaHL: Instead of using a custom output interface, just use the OutputStream
object from the standard library.

[ in subversion/bindings/javahl/ ]
* tests/org/apache/subversion/javahl/SVNAdminTests.java
  (testLoadRepo): Use the proper type.

* tests/org/apache/subversion/javahl/SVNTests.java
  (setUp): Use the standard FileOutputStream.
  (FileOutputer): Remove.
  (IgnoreOutputer): Reimplement in terms of an OutputStream.

* native/SVNAdmin.cpp,
  native/SVNAdmin.h
  (dump, load, verify): Use the OutputStream object in place of an Outputer.

* native/Outputer.h,
  native/Outputer.cpp:
  Remove.

* native/OutputStream.cpp:
  Copied from Outputer.cpp.  Update reference to OutputStream.
 
* native/OutputStream.h:
  Copied from Outputer.h.

* native/org_apache_subversion_javahl_SVNAdmin.cpp
  (Java_org_apache_subversion_javahl_SVNAdmin_dump,
   Java_org_apache_subversion_javahl_SVNAdmin_load,
   Java_org_apache_subversion_javahl_SVNAdmin_verify):
    Update to use an OutputStream.

* native/org_apache_subversion_javahl_SVNClient.cpp:
  Remove reference to Outputer.h.

* src/org/apache/subversion/javahl/ISVNAdmin.java,
  src/org/apache/subversion/javahl/SVNAdmin.java
  (dump, load, verify): Use a standard OutputStream.

* src/org/apache/subversion/javahl/IOutput.java:
  Remove.
 
* src/org/tigris/subversion/javahl/SVNAdmin.java
  (dump, load, verify): Wrap the output objects so they will be OutputStreams.
  (OutputWrapper): New.

* src/org/tigris/subversion/javahl/OutputInterface.java:
  Revert changes made in r906648.

Added:
    subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp
      - copied, changed from r949066, 
subversion/trunk/subversion/bindings/javahl/native/Outputer.cpp
    subversion/trunk/subversion/bindings/javahl/native/OutputStream.h
      - copied, changed from r949066, 
subversion/trunk/subversion/bindings/javahl/native/Outputer.h
Removed:
    subversion/trunk/subversion/bindings/javahl/native/Outputer.cpp
    subversion/trunk/subversion/bindings/javahl/native/Outputer.h
    
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/IOutput.java
Modified:
    subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp
    subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h
    
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
    
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
    
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
    
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
    
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java
    
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
    
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
    
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java

Copied: subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp 
(from r949066, subversion/trunk/subversion/bindings/javahl/native/Outputer.cpp)
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp?p2=subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp&p1=subversion/trunk/subversion/bindings/javahl/native/Outputer.cpp&r1=949066&r2=949082&rev=949082&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/Outputer.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/OutputStream.cpp Fri May 
28 03:17:27 2010
@@ -20,19 +20,19 @@
  * ====================================================================
  * @endcopyright
  *
- * @file Outputer.cpp
- * @brief Implementation of the class Outputer
+ * @file OutputStream.cpp
+ * @brief Implementation of the class OutputStream
  */
 
-#include "Outputer.h"
+#include "OutputStream.h"
 #include "JNIUtil.h"
 #include "JNIByteArray.h"
 
 /**
- * Create an Outputer object.
+ * Create an OutputStream object.
  * @param jthis the Java object to be stored
  */
-Outputer::Outputer(jobject jthis)
+OutputStream::OutputStream(jobject jthis)
 {
   m_jthis = jthis;
 }
@@ -40,7 +40,7 @@ Outputer::Outputer(jobject jthis)
 /**
  * Destroy an Inputer object.
  */
-Outputer::~Outputer()
+OutputStream::~OutputStream()
 {
   // The m_jthis does not need to be destroyed, because it is the
   // passed in parameter to the Java method.
@@ -52,41 +52,42 @@ Outputer::~Outputer()
  * @param pool  the pool, from which the structure is allocated
  * @return the output stream
  */
-svn_stream_t *Outputer::getStream(const SVN::Pool &pool)
+svn_stream_t *OutputStream::getStream(const SVN::Pool &pool)
 {
   // Create a stream with this as the baton and set the write and
   // close functions.
   svn_stream_t *ret = svn_stream_create(this, pool.pool());
-  svn_stream_set_write(ret, Outputer::write);
-  svn_stream_set_close(ret, Outputer::close);
+  svn_stream_set_write(ret, OutputStream::write);
+  svn_stream_set_close(ret, OutputStream::close);
   return ret;
 }
 
 /**
  * Implements svn_write_fn_t to write data out from Subversion.
- * @param baton     an Outputer object for the callback
+ * @param baton     an OutputStream object for the callback
  * @param buffer    the buffer for the write data
  * @param len       on input the buffer len, on output the number of written
  *                  bytes
  * @return a subversion error or SVN_NO_ERROR
  */
-svn_error_t *Outputer::write(void *baton, const char *buffer, apr_size_t *len)
+svn_error_t *OutputStream::write(void *baton, const char *buffer,
+                                 apr_size_t *len)
 {
   JNIEnv *env = JNIUtil::getEnv();
 
   // An object of our class is passed in as the baton.
-  Outputer *that = (Outputer*)baton;
+  OutputStream *that = (OutputStream*)baton;
 
   // The method id will not change during the time this library is
   // loaded, so it can be cached.
   static jmethodID mid = 0;
   if (mid == 0)
     {
-      jclass clazz = env->FindClass(JAVA_PACKAGE"/IOutput");
+      jclass clazz = env->FindClass("java/io/OutputStream");
       if (JNIUtil::isJavaExceptionThrown())
         return SVN_NO_ERROR;
 
-      mid = env->GetMethodID(clazz, "write", "([B)I");
+      mid = env->GetMethodID(clazz, "write", "([B)V");
       if (JNIUtil::isJavaExceptionThrown() || mid == 0)
         return SVN_NO_ERROR;
 
@@ -100,29 +101,26 @@ svn_error_t *Outputer::write(void *baton
     return SVN_NO_ERROR;
 
   // write the data
-  jint written = env->CallIntMethod(that->m_jthis, mid, data);
+  env->CallObjectMethod(that->m_jthis, mid, data);
   if (JNIUtil::isJavaExceptionThrown())
     return SVN_NO_ERROR;
 
   env->DeleteLocalRef(data);
 
-  // return the number of bytes written
-  *len = written;
-
   return SVN_NO_ERROR;
 }
 
 /**
  * Implements svn_close_fn_t to close the output stream.
- * @param baton     an Outputer object for the callback
+ * @param baton     an OutputStream object for the callback
  * @return a subversion error or SVN_NO_ERROR
  */
-svn_error_t *Outputer::close(void *baton)
+svn_error_t *OutputStream::close(void *baton)
 {
   JNIEnv *env = JNIUtil::getEnv();
 
   // An object of our class is passed in as the baton
-  Outputer *that = (Outputer*)baton;
+  OutputStream *that = (OutputStream*)baton;
 
   // The method id will not change during the time this library is
   // loaded, so it can be cached.

Copied: subversion/trunk/subversion/bindings/javahl/native/OutputStream.h (from 
r949066, subversion/trunk/subversion/bindings/javahl/native/Outputer.h)
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/OutputStream.h?p2=subversion/trunk/subversion/bindings/javahl/native/OutputStream.h&p1=subversion/trunk/subversion/bindings/javahl/native/Outputer.h&r1=949066&r2=949082&rev=949082&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/Outputer.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/OutputStream.h Fri May 
28 03:17:27 2010
@@ -20,22 +20,22 @@
  * ====================================================================
  * @endcopyright
  *
- * @file Outputer.h
- * @brief Interface of the class Outputer
+ * @file OutputStream.h
+ * @brief Interface of the class OutputStream
  */
 
-#ifndef OUTPUTER_H
-#define OUTPUTER_H
+#ifndef OUTPUT_STREAM_H
+#define OUTPUT_STREAM_H
 
 #include <jni.h>
 #include "svn_io.h"
 #include "Pool.h"
 
 /**
- * This class contains a Java objects implementing the interface Outputer and
- * implements the functions write & close of svn_stream_t
+ * This class contains a Java objects implementing the interface OutputStream
+ * and implements the functions write & close of svn_stream_t
  */
-class Outputer
+class OutputStream
 {
   /**
    * A local reference to the Java object.
@@ -45,9 +45,9 @@ class Outputer
                             const char *buffer, apr_size_t *len);
   static svn_error_t *close(void *baton);
  public:
-  Outputer(jobject jthis);
-  ~Outputer();
+  OutputStream(jobject jthis);
+  ~OutputStream();
   svn_stream_t *getStream(const SVN::Pool &pool);
 };
 
-#endif // OUTPUTER_H
+#endif // OUTPUT_STREAM_H

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.cpp Fri May 28 
03:17:27 2010
@@ -151,7 +151,8 @@ void SVNAdmin::deltify(const char *path,
   return;
 }
 
-void SVNAdmin::dump(const char *path, Outputer &dataOut, Outputer &messageOut,
+void SVNAdmin::dump(const char *path, OutputStream &dataOut,
+                    OutputStream &messageOut,
                     Revision &revsionStart, Revision &revisionEnd,
                     bool incremental, bool useDeltas)
 {
@@ -263,7 +264,7 @@ void SVNAdmin::listUnusedDBLogs(const ch
 
 void SVNAdmin::load(const char *path,
                     Inputer &dataIn,
-                    Outputer &messageOut,
+                    OutputStream &messageOut,
                     bool ignoreUUID,
                     bool forceUUID,
                     bool usePreCommitHook,
@@ -452,7 +453,7 @@ SVNAdmin::getRevnum(svn_revnum_t *revnum
   return SVN_NO_ERROR;
 }
 
-void SVNAdmin::verify(const char *path, Outputer &messageOut,
+void SVNAdmin::verify(const char *path, OutputStream &messageOut,
                       Revision &revisionStart, Revision &revisionEnd)
 {
   SVN::Pool requestPool;

Modified: subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h (original)
+++ subversion/trunk/subversion/bindings/javahl/native/SVNAdmin.h Fri May 28 
03:17:27 2010
@@ -31,7 +31,7 @@
 #include "svn_repos.h"
 #include "SVNBase.h"
 #include "Revision.h"
-#include "Outputer.h"
+#include "OutputStream.h"
 #include "Inputer.h"
 #include "MessageReceiver.h"
 #include "StringArray.h"
@@ -41,7 +41,7 @@ class SVNAdmin : public SVNBase
  public:
   void rmlocks(const char *path, StringArray &locks);
   jobject lslocks(const char *path);
-  void verify(const char *path, Outputer &messageOut,
+  void verify(const char *path, OutputStream &messageOut,
               Revision &revisionStart, Revision &revisionEnd);
   void setRevProp(const char *path, Revision &revision,
                   const char *propName, const char *propValue,
@@ -50,14 +50,14 @@ class SVNAdmin : public SVNBase
   void rmtxns(const char *path, StringArray &transactions);
   jlong recover(const char *path);
   void lstxns(const char *path, MessageReceiver &messageReceiver);
-  void load(const char *path, Inputer &dataIn, Outputer &messageOut,
+  void load(const char *path, Inputer &dataIn, OutputStream &messageOut,
             bool ignoreUUID, bool forceUUID, bool usePreCommitHook,
             bool usePostCommitHook, const char *relativePath);
   void listUnusedDBLogs(const char *path,
                         MessageReceiver &messageReceiver);
   void listDBLogs(const char *path, MessageReceiver &messageReceiver);
   void hotcopy(const char *path, const char *targetPath, bool cleanLogs);
-  void dump(const char *path, Outputer &dataOut, Outputer &messageOut,
+  void dump(const char *path, OutputStream &dataOut, OutputStream &messageOut,
             Revision &revsionStart, Revision &RevisionEnd,
             bool incremental, bool useDeltas);
   void deltify(const char *path, Revision &start, Revision &end);

Modified: 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNAdmin.cpp
 Fri May 28 03:17:27 2010
@@ -32,7 +32,7 @@
 #include "SVNAdmin.h"
 #include "Revision.h"
 #include "Inputer.h"
-#include "Outputer.h"
+#include "OutputStream.h"
 #include "MessageReceiver.h"
 #include "svn_props.h"
 #include "svn_private_config.h"
@@ -145,11 +145,11 @@ Java_org_apache_subversion_javahl_SVNAdm
   if (JNIUtil::isExceptionThrown())
     return;
 
-  Outputer dataOut(jdataout);
+  OutputStream dataOut(jdataout);
   if (JNIUtil::isExceptionThrown())
     return;
 
-  Outputer messageOut(jmessageout);
+  OutputStream messageOut(jmessageout);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -258,7 +258,7 @@ Java_org_apache_subversion_javahl_SVNAdm
     return;
 
 
-  Outputer outputMsg(joutputMsg);
+  OutputStream outputMsg(joutputMsg);
   if (JNIUtil::isExceptionThrown())
     return;
 
@@ -388,7 +388,7 @@ Java_org_apache_subversion_javahl_SVNAdm
   if (JNIUtil::isExceptionThrown())
     return;
 
-  Outputer messageOut(jmessageout);
+  OutputStream messageOut(jmessageout);
   if (JNIUtil::isExceptionThrown())
     return;
 

Modified: 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/native/org_apache_subversion_javahl_SVNClient.cpp
 Fri May 28 03:17:27 2010
@@ -53,7 +53,6 @@
 #include "svn_version.h"
 #include "svn_private_config.h"
 #include "version.h"
-#include "Outputer.h"
 #include <iostream>
 
 JNIEXPORT jlong JNICALL

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/ISVNAdmin.java
 Fri May 28 03:17:27 2010
@@ -24,6 +24,7 @@
 package org.apache.subversion.javahl;
 
 import java.util.Set;
+import java.io.OutputStream;
 
 import org.apache.subversion.javahl.SVNAdmin.MessageReceiver;
 
@@ -84,8 +85,9 @@ public interface ISVNAdmin {
         * @throws ClientException  throw in case of problem
         * @since 1.5
         */
-       public abstract void dump(String path, IOutput dataOut, IOutput 
errorOut,
-                       Revision start, Revision end, boolean incremental, 
boolean useDeltas)
+       public abstract void dump(String path, OutputStream dataOut,
+                OutputStream errorOut, Revision start, Revision end,
+                boolean incremental, boolean useDeltas)
                        throws ClientException;
 
        /**
@@ -133,7 +135,7 @@ public interface ISVNAdmin {
         * @since 1.5
         */
        public abstract void load(String path, IInput dataInput,
-                       IOutput messageOutput, boolean ignoreUUID, boolean 
forceUUID,
+                       OutputStream messageOutput, boolean ignoreUUID, boolean 
forceUUID,
                        boolean usePreCommitHook, boolean usePostCommitHook,
                        String relativePath) throws ClientException;
 
@@ -192,7 +194,7 @@ public interface ISVNAdmin {
         * @param end               the last revision
         * @throws ClientException If an error occurred.
         */
-       public abstract void verify(String path, IOutput messageOut,
+       public abstract void verify(String path, OutputStream messageOut,
                        Revision start, Revision end) throws ClientException;
 
        /**

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/apache/subversion/javahl/SVNAdmin.java
 Fri May 28 03:17:27 2010
@@ -24,6 +24,7 @@
 package org.apache.subversion.javahl;
 
 import java.util.Set;
+import java.io.OutputStream;
 
 /**
  * This class offers the same commands as the svnadmin commandline
@@ -122,8 +123,8 @@ public class SVNAdmin implements ISVNAdm
      * @throws ClientException  throw in case of problem
      * @since 1.5
      */
-    public native void dump(String path, IOutput dataOut,
-                            IOutput errorOut, Revision start,
+    public native void dump(String path, OutputStream dataOut,
+                            OutputStream errorOut, Revision start,
                             Revision end, boolean incremental,
                             boolean useDeltas)
             throws ClientException;
@@ -185,7 +186,7 @@ public class SVNAdmin implements ISVNAdm
      * @since 1.5
      */
     public native void load(String path, IInput dataInput,
-                            IOutput messageOutput, boolean ignoreUUID,
+                            OutputStream messageOutput, boolean ignoreUUID,
                             boolean forceUUID, boolean usePreCommitHook,
                             boolean usePostCommitHook, String relativePath)
             throws ClientException;
@@ -247,7 +248,7 @@ public class SVNAdmin implements ISVNAdm
      * @param end               the last revision
      * @throws ClientException If an error occurred.
      */
-    public native void verify(String path,  IOutput messageOut,
+    public native void verify(String path, OutputStream messageOut,
                               Revision start, Revision end)
             throws ClientException;
 

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/OutputInterface.java
 Fri May 28 03:17:27 2010
@@ -23,10 +23,23 @@
 
 package org.tigris.subversion.javahl;
 
+import java.io.IOException;
+
 /**
  * Interface to send data to subversion used by SVNAdmin.load.
  */
 public interface OutputInterface
-    extends org.apache.subversion.javahl.IOutput
 {
+    /**
+     * write the bytes in data to java
+     * @param data          the data to be writtem
+     * @throws IOException  throw in case of problems.
+     */
+    public int write(byte[] data) throws IOException;
+
+    /**
+     * close the output
+     * @throws IOException throw in case of problems.
+     */
+    public void close() throws IOException;
 }

Modified: 
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/src/org/tigris/subversion/javahl/SVNAdmin.java
 Fri May 28 03:17:27 2010
@@ -24,6 +24,8 @@
 package org.tigris.subversion.javahl;
 
 import java.util.Set;
+import java.io.OutputStream;
+import java.io.IOException;
 
 /**
  * This class offers the same commands as the svnadmin commandline
@@ -164,7 +166,8 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.dump(path, dataOut, errorOut,
+            aSVNAdmin.dump(path, new OutputWrapper(dataOut),
+                           new OutputWrapper(errorOut),
                            start == null ? null : start.toApache(),
                            end == null ? null : end.toApache(),
                            incremental, useDeltas);
@@ -286,9 +289,9 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.load(path, dataInput, messageOutput, ignoreUUID,
-                           forceUUID, usePreCommitHook, usePostCommitHook,
-                           relativePath);
+            aSVNAdmin.load(path, dataInput, new OutputWrapper(messageOutput),
+                           ignoreUUID, forceUUID, usePreCommitHook,
+                           usePostCommitHook, relativePath);
         }
         catch (org.apache.subversion.javahl.ClientException ex)
         {
@@ -429,7 +432,7 @@ public class SVNAdmin
     {
         try
         {
-            aSVNAdmin.verify(path, messageOut,
+            aSVNAdmin.verify(path, new OutputWrapper(messageOut),
                              start == null ? null : start.toApache(),
                              end == null ? null : end.toApache());
         }
@@ -488,4 +491,29 @@ public class SVNAdmin
             throw new ClientException(ex);
         }
     }
+
+    private class OutputWrapper extends OutputStream
+    {
+        private OutputInterface outputer;
+
+        OutputWrapper(OutputInterface outputer)
+        {
+            this.outputer = outputer;
+        }
+
+        public void write(int b) throws IOException
+        {
+            outputer.write(new byte[]{ (byte) ( b & 0xFF) });
+        }
+
+        public void write(byte[] b) throws IOException
+        {
+            outputer.write(b);
+        }
+
+        public void close() throws IOException
+        {
+            outputer.close();
+        }
+    }
 }

Modified: 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNAdminTests.java
 Fri May 28 03:17:27 2010
@@ -25,6 +25,7 @@ package org.apache.subversion.javahl;
 import org.apache.subversion.javahl.callback.*;
 
 import java.io.File;
+import java.io.OutputStream;
 import java.io.IOException;
 import java.util.Map;
 
@@ -98,7 +99,7 @@ public class SVNAdminTests extends SVNTe
                 "subversion/bindings/javahl");
         File dump = new File(testSrcdir, "tests/data/issue2979.dump");
         IInput input = new FileInputer(dump);
-        IOutput loadLog = new IgnoreOutputer();
+        OutputStream loadLog = new IgnoreOutputer();
         admin.load(thisTest.getRepositoryPath(),
                    input, loadLog, true, true, false, false, null);
         // should have two revs after the load

Modified: 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
URL: 
http://svn.apache.org/viewvc/subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java?rev=949082&r1=949081&r2=949082&view=diff
==============================================================================
--- 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
 (original)
+++ 
subversion/trunk/subversion/bindings/javahl/tests/org/apache/subversion/javahl/SVNTests.java
 Fri May 28 03:17:27 2010
@@ -27,6 +27,7 @@ import org.apache.subversion.javahl.call
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.io.IOException;
 import java.util.Set;
 import java.util.HashSet;
@@ -238,8 +239,9 @@ class SVNTests extends TestCase
                               NodeKind.none, CommitItemStateFlags.Add);
         client.doImport(greekFiles.getAbsolutePath(), makeReposUrl(greekRepos),
                         null, Depth.infinity, false, false, null);
-        admin.dump(greekRepos.getAbsolutePath(), new FileOutputer(greekDump),
-                   new IgnoreOutputer(), null, null, false, false);
+        admin.dump(greekRepos.getAbsolutePath(),
+                   new FileOutputStream(greekDump), new IgnoreOutputer(),
+                   null, null, false, false);
     }
 
     /**
@@ -427,67 +429,14 @@ class SVNTests extends TestCase
     }
 
     /**
-     * internal class which implements the OutputInterface to write the data
-     * to a file.
+     * internal class extends OutputStream, but ignores the data
      */
-    public class FileOutputer implements IOutput
+    public class IgnoreOutputer extends OutputStream
     {
-        /**
-         * the output file stream
-         */
-        FileOutputStream myStream;
-        /**
-         * create new object
-         * @param outputName    the file to write the data to
-         * @throws IOException
-         */
-        public FileOutputer(File outputName) throws IOException
-        {
-            myStream = new FileOutputStream(outputName);
-        }
-
-        /**
-         * write the bytes in data to java
-         * @param data          the data to be writtem
-         * @throws IOException  throw in case of problems.
-         */
-        public int write(byte[] data) throws IOException
-        {
-            myStream.write(data);
-            return data.length;
-        }
-
-        /**
-         * close the output
-         * @throws IOException throw in case of problems.
-         */
-        public void close() throws IOException
-        {
-            myStream.close();
-        }
-    }
-
-    /**
-     * internal class implements the OutputInterface, but ignores the data
-     */
-    public class IgnoreOutputer implements IOutput
-    {
-        /**
-         * write the bytes in data to java
-         * @param data          the data to be writtem
-         * @throws IOException  throw in case of problems.
-         */
-        public int write(byte[] data) throws IOException
-        {
-            return data.length;
-        }
-
-        /**
-         * close the output
-         * @throws IOException throw in case of problems.
-         */
-        public void close() throws IOException
+        public void write(int b) throws IOException
         {
+            /* Just do nothing. */
+            return;
         }
     }
 


Reply via email to