You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ve...@apache.org on 2010/05/14 20:58:46 UTC

svn commit: r944395 - in /webservices/commons/trunk/modules/axiom/modules/axiom-api/src/main/java/org/apache/axiom: attachments/ ext/activation/ util/activation/ util/blob/

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}.