Author: veithen
Date: Fri May 14 18:58:46 2010
New Revision: 944395

URL: http://svn.apache.org/viewvc?rev=944395&view=rev
Log:
Moved the SizeAwareDataSource interface to org.apache.axiom.ext.activation, 
which is the right place for this kind of Axiom specific extension to existing 
APIs. This also allows to break a cyclic dependency between packages.

Added:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/SizeAwareDataSource.java
      - copied, changed from r944181, 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/package.html
   (with props)
Modified:
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/ByteArrayDataSource.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
    
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/blob/BlobDataSource.java

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/ByteArrayDataSource.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/ByteArrayDataSource.java?rev=944395&r1=944394&r2=944395&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/ByteArrayDataSource.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/ByteArrayDataSource.java
 Fri May 14 18:58:46 2010
@@ -24,7 +24,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
-public class ByteArrayDataSource implements SizeAwareDataSource {
+public class ByteArrayDataSource implements 
org.apache.axiom.ext.activation.SizeAwareDataSource {
 
     private byte[] data;
 

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java?rev=944395&r1=944394&r2=944395&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java
 Fri May 14 18:58:46 2010
@@ -19,40 +19,8 @@
 
 package org.apache.axiom.attachments;
 
-import javax.activation.DataSource;
-
 /**
- * Optional extension interface that can be implemented by data sources that 
support a
- * getSize method.
- * Code working with data sources can use this this information to optimize 
certain operations.
- * Note however that instead of checking of this interface directly, this kind 
of code
- * should use {...@link 
org.apache.axiom.util.activation.DataSourceUtils#getSize(DataSource)}
- * because this method is able to determine the size of other types of data 
sources as well.
- * <p>
- * Code using this interface should be aware that some implementations may be 
unable to guarantee
- * 100% accuracy when determining the size of the data source. Situations 
where this can occur
- * include:
- * <ul>
- *   <li>The data source uses a network protocol that allows to get the size 
of the data
- *       but that doesn't guarantee accurateness.</li>
- *   <li>Reading the data involves a decoding operation and the length of the 
resulting stream
- *       can't be determined precisely without performing the decoding 
operation. In this
- *       case the implementation of this interface may return a value based on 
an estimation.</li>
- * </ul>
- * When reading the actual data, the code should always read until the end of 
the stream is
- * reached (as indicated by the return value of the <code>read</code> methods 
of the 
- * {...@link java.io.InputStream} class). It must be prepared to reach the end 
of the stream after
- * a number of bytes that is lower or higher than the value returned by 
{...@link #getSize()}.
+ * @deprecated Please implement {...@link 
org.apache.axiom.ext.activation.SizeAwareDataSource}
  */
-public interface SizeAwareDataSource extends DataSource {
-    /**
-     * Get the size of the data source.
-     * Implementations must return the number of bytes that can be read from
-     * the input stream returned by {...@link #getInputStream()} before 
reaching
-     * the end of the stream. If the implementation is unable to determine the
-     * size, it must return -1.
-     * 
-     * @return the size of the data source or -1 if the size is not known
-     */
-    long getSize();
+public interface SizeAwareDataSource extends 
org.apache.axiom.ext.activation.SizeAwareDataSource {
 }

Copied: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/SizeAwareDataSource.java
 (from r944181, 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java)
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/SizeAwareDataSource.java?p2=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/SizeAwareDataSource.java&p1=webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java&r1=944181&r2=944395&rev=944395&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/attachments/SizeAwareDataSource.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/SizeAwareDataSource.java
 Fri May 14 18:58:46 2010
@@ -17,7 +17,7 @@
  * under the License.
  */
 
-package org.apache.axiom.attachments;
+package org.apache.axiom.ext.activation;
 
 import javax.activation.DataSource;
 

Added: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/package.html
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/package.html?rev=944395&view=auto
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/package.html
 (added)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/package.html
 Fri May 14 18:58:46 2010
@@ -0,0 +1,5 @@
+<html>
+<body>
+Defines Axiom specific extensions to the Java Activation Framework API.
+</body>
+</html>
\ No newline at end of file

Propchange: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/ext/activation/package.html
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java?rev=944395&r1=944394&r2=944395&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/activation/DataSourceUtils.java
 Fri May 14 18:58:46 2010
@@ -26,7 +26,7 @@ import javax.activation.DataSource;
 import javax.activation.FileDataSource;
 import javax.mail.util.ByteArrayDataSource;
 
-import org.apache.axiom.attachments.SizeAwareDataSource;
+import org.apache.axiom.ext.activation.SizeAwareDataSource;
 
 /**
  * Contains utility methods to work with {...@link DataSource} objects.

Modified: 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/blob/BlobDataSource.java
URL: 
http://svn.apache.org/viewvc/webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/blob/BlobDataSource.java?rev=944395&r1=944394&r2=944395&view=diff
==============================================================================
--- 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/blob/BlobDataSource.java
 (original)
+++ 
webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom/util/blob/BlobDataSource.java
 Fri May 14 18:58:46 2010
@@ -23,7 +23,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 
-import org.apache.axiom.attachments.SizeAwareDataSource;
+import org.apache.axiom.ext.activation.SizeAwareDataSource;
 
 /**
  * Data source backed by a {...@link Blob}.


Reply via email to