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

veithen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ws-axiom.git


The following commit(s) were added to refs/heads/master by this push:
     new 69f5b3b18 [AXIOM-506] Migrate OptimizationPolicy to Blob
69f5b3b18 is described below

commit 69f5b3b1800a0eb65f9c8118401cac84ceedab0b
Author: Andreas Veithen <andreas.veit...@gmail.com>
AuthorDate: Sat Nov 12 16:25:34 2022 +0000

    [AXIOM-506] Migrate OptimizationPolicy to Blob
---
 .../om/impl/stream/xop/OptimizationPolicy.java     | 27 ++++++++++------------
 .../om/impl/stream/xop/OptimizationPolicyImpl.java |  9 ++++----
 .../impl/stream/xop/XOPEncodingFilterHandler.java  |  6 ++---
 3 files changed, 18 insertions(+), 24 deletions(-)

diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicy.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicy.java
index 0b6778a8a..5bb807485 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicy.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicy.java
@@ -21,8 +21,7 @@ package org.apache.axiom.om.impl.stream.xop;
 
 import java.io.IOException;
 
-import javax.activation.DataHandler;
-
+import org.apache.axiom.blob.Blob;
 import org.apache.axiom.ext.stax.BlobProvider;
 
 /**
@@ -30,9 +29,8 @@ import org.apache.axiom.ext.stax.BlobProvider;
  * using XOP. The implementation takes the decision based on the submitted 
binary content and the
  * "eligible for optimization" flag. Depending on the context of use, this 
flag is provided by the
  * return value of {@link org.apache.axiom.ext.stax.BlobReader#isOptimized()} 
or the <code>optimize
- * </code> argument of {@link 
org.apache.axiom.ext.stax.BlobWriter#writeBlob(DataHandler, String,
- * boolean)} or {@link 
org.apache.axiom.ext.stax.BlobWriter#writeBlob(BlobProvider, String,
- * boolean)}.
+ * </code> argument of {@link 
org.apache.axiom.ext.stax.BlobWriter#writeBlob(Blob, String, boolean)}
+ * or {@link org.apache.axiom.ext.stax.BlobWriter#writeBlob(BlobProvider, 
String, boolean)}.
  */
 public interface OptimizationPolicy {
     /**
@@ -41,12 +39,12 @@ public interface OptimizationPolicy {
     OptimizationPolicy DEFAULT =
             new OptimizationPolicy() {
                 @Override
-                public boolean isOptimized(DataHandler dataHandler, boolean 
optimize) {
+                public boolean isOptimized(Blob blob, boolean optimize) {
                     return optimize;
                 }
 
                 @Override
-                public boolean isOptimized(BlobProvider dataHandlerProvider, 
boolean optimize) {
+                public boolean isOptimized(BlobProvider blobProvider, boolean 
optimize) {
                     return optimize;
                 }
             };
@@ -58,28 +56,27 @@ public interface OptimizationPolicy {
     OptimizationPolicy ALL =
             new OptimizationPolicy() {
                 @Override
-                public boolean isOptimized(DataHandler dataHandler, boolean 
optimize) {
+                public boolean isOptimized(Blob blob, boolean optimize) {
                     return true;
                 }
 
                 @Override
-                public boolean isOptimized(BlobProvider dataHandlerProvider, 
boolean optimize) {
+                public boolean isOptimized(BlobProvider blobProvider, boolean 
optimize) {
                     return true;
                 }
             };
 
     /**
-     * Determine whether the binary content supplied by a given {@link 
DataHandler} should be
-     * optimized.
+     * Determine whether the binary content supplied by a given {@link Blob} 
should be optimized.
      *
-     * @param dataHandler the binary content
+     * @param blob the binary content
      * @param optimize indicates whether the binary content was initially 
marked as eligible for
      *     optimization (see above)
      * @return <code>true</code> if the binary content should be optimized 
using XOP, i.e. encoded
      *     using {@code xop:Include}
-     * @throws IOException if an error occurs while reading the data handler
+     * @throws IOException if an error occurs while reading the blob
      */
-    boolean isOptimized(DataHandler dataHandler, boolean optimize) throws 
IOException;
+    boolean isOptimized(Blob blob, boolean optimize) throws IOException;
 
     /**
      * Determine whether the binary content supplied by a given {@link 
BlobProvider} should be
@@ -90,7 +87,7 @@ public interface OptimizationPolicy {
      *     optimization (see above)
      * @return <code>true</code> if the binary content should be optimized 
using XOP, i.e. encoded
      *     using {@code xop:Include}
-     * @throws IOException if an error occurs while reading the data handler
+     * @throws IOException if an error occurs while reading the blob
      */
     boolean isOptimized(BlobProvider blobProvider, boolean optimize) throws 
IOException;
 }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicyImpl.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicyImpl.java
index e2e79f01f..246d21e82 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicyImpl.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/OptimizationPolicyImpl.java
@@ -21,8 +21,7 @@ package org.apache.axiom.om.impl.stream.xop;
 
 import java.io.IOException;
 
-import javax.activation.DataHandler;
-
+import org.apache.axiom.blob.Blob;
 import org.apache.axiom.ext.stax.BlobProvider;
 import org.apache.axiom.om.OMOutputFormat;
 import org.apache.axiom.util.activation.DataHandlerUtils;
@@ -45,7 +44,7 @@ public final class OptimizationPolicyImpl implements 
OptimizationPolicy {
     }
 
     @Override
-    public boolean isOptimized(DataHandler dataHandler, boolean optimize) {
+    public boolean isOptimized(Blob blob, boolean optimize) {
         if (!optimize) {
             return false;
         }
@@ -54,7 +53,7 @@ public final class OptimizationPolicyImpl implements 
OptimizationPolicy {
             return true;
         }
         try {
-            return DataHandlerUtils.isLargerThan(dataHandler, threshold);
+            return 
DataHandlerUtils.isLargerThan(DataHandlerUtils.toDataHandler(blob), threshold);
         } catch (IOException ex) {
             log.warn("DataHandler.writeTo(OutputStream) threw IOException", 
ex);
             return true;
@@ -71,7 +70,7 @@ public final class OptimizationPolicyImpl implements 
OptimizationPolicy {
             // DataHandlerProvider#getDataHandler(), which would force loading 
the data handler.
             return true;
         } else {
-            return 
isOptimized(DataHandlerUtils.toDataHandler(blobProvider.getBlob()), optimize);
+            return isOptimized(blobProvider.getBlob(), optimize);
         }
     }
 }
diff --git 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
index 00826519b..8d42f9064 100644
--- 
a/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
+++ 
b/mixins/om-mixins/src/main/java/org/apache/axiom/om/impl/stream/xop/XOPEncodingFilterHandler.java
@@ -32,7 +32,6 @@ import org.apache.axiom.ext.stax.BlobProvider;
 import org.apache.axiom.om.OMAttachmentAccessor;
 import org.apache.axiom.om.OMException;
 import org.apache.axiom.om.impl.intf.TextContent;
-import org.apache.axiom.util.activation.DataHandlerUtils;
 
 public final class XOPEncodingFilterHandler extends 
AbstractXOPEncodingFilterHandler
         implements XOPHandler, OMAttachmentAccessor {
@@ -53,7 +52,7 @@ public final class XOPEncodingFilterHandler extends 
AbstractXOPEncodingFilterHan
     public String prepareBlob(Blob blob) {
         boolean doOptimize;
         try {
-            doOptimize = 
optimizationPolicy.isOptimized(DataHandlerUtils.toDataHandler(blob), true);
+            doOptimize = optimizationPolicy.isOptimized(blob, true);
         } catch (IOException ex) {
             doOptimize = true;
         }
@@ -109,8 +108,7 @@ public final class XOPEncodingFilterHandler extends 
AbstractXOPEncodingFilterHan
                     } else {
                         optimize =
                                 optimizationPolicy.isOptimized(
-                                        DataHandlerUtils.toDataHandler((Blob) 
blobObject),
-                                        textContent.isOptimize());
+                                        (Blob) blobObject, 
textContent.isOptimize());
                     }
                 } catch (IOException ex) {
                     throw new StreamException(ex);

Reply via email to