You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ws.apache.org by ve...@apache.org on 2022/11/06 20:21:15 UTC

[ws-axiom] branch master updated: Move the blob API to a separate Maven project

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 55d8a7a80 Move the blob API to a separate Maven project
55d8a7a80 is described below

commit 55d8a7a80bbb19b45dae3fc9d2f028dc56e668ac
Author: Andreas Veithen <an...@gmail.com>
AuthorDate: Sun Nov 6 20:20:09 2022 +0000

    Move the blob API to a separate Maven project
    
    This will enable us to use it the test utilities.
---
 axiom-api/pom.xml                                  |  6 +++
 components/{ => blob}/pom.xml                      | 48 +++++++++++-----------
 .../apache/axiom/blob/AbstractWritableBlob.java    |  0
 .../src/main/java/org/apache/axiom/blob/Blob.java  |  0
 .../src/main/java/org/apache/axiom/blob/Blobs.java |  0
 .../java/org/apache/axiom/blob/ByteArrayBlob.java  |  0
 .../java/org/apache/axiom/blob/MemoryBlob.java     |  0
 .../org/apache/axiom/blob/MemoryBlobChunk.java     |  0
 .../java/org/apache/axiom/blob/MemoryBlobImpl.java |  0
 .../apache/axiom/blob/MemoryBlobInputStream.java   |  0
 .../axiom/blob/MemoryBlobInputStreamImpl.java      |  0
 .../apache/axiom/blob/MemoryBlobOutputStream.java  |  0
 .../axiom/blob/MemoryBlobOutputStreamImpl.java     |  0
 .../org/apache/axiom/blob/OverflowableBlob.java    |  0
 .../apache/axiom/blob/OverflowableBlobImpl.java    |  0
 .../src/main/java/org/apache/axiom/blob/State.java |  0
 .../org/apache/axiom/blob/TempFileBlobFactory.java |  0
 .../org/apache/axiom/blob/TempFileBlobImpl.java    |  0
 .../org/apache/axiom/blob/TempFileInputStream.java |  0
 .../java/org/apache/axiom/blob/WritableBlob.java   |  0
 .../org/apache/axiom/blob/WritableBlobFactory.java |  0
 .../main/java/org/apache/axiom/blob/package.html   |  0
 .../java/org/apache/axiom/blob/MemoryBlobTest.java |  0
 .../apache/axiom/blob/OverflowableBlobTest.java    |  0
 .../org/apache/axiom/blob/TempFileBlobTest.java    |  0
 .../ByteArrayOutputStreamWithReadFromSupport.java  |  0
 .../apache/axiom/blob/suite/CleanupCallback.java   |  0
 .../suite/SizeSensitiveWritableBlobTestCase.java   |  0
 .../java/org/apache/axiom/blob/suite/State.java    |  0
 .../org/apache/axiom/blob/suite/TestAvailable.java |  0
 .../blob/suite/TestGetInputStreamIllegalState.java |  0
 .../suite/TestGetOutputStreamIllegalState.java     |  0
 .../axiom/blob/suite/TestGetSizeIllegalState.java  |  0
 .../org/apache/axiom/blob/suite/TestMarkReset.java |  0
 .../axiom/blob/suite/TestRandomReadWrite.java      |  0
 .../org/apache/axiom/blob/suite/TestReadEOF.java   |  0
 .../org/apache/axiom/blob/suite/TestReadFrom.java  |  0
 .../axiom/blob/suite/TestReadFromIllegalState.java |  0
 .../axiom/blob/suite/TestReadFromSupport.java      |  0
 .../axiom/blob/suite/TestReadFromWithError.java    |  0
 .../axiom/blob/suite/TestReadZeroLength.java       |  0
 .../apache/axiom/blob/suite/TestReleaseTwice.java  |  0
 .../axiom/blob/suite/TestResetWithoutMark.java     |  0
 .../java/org/apache/axiom/blob/suite/TestSkip.java |  0
 .../axiom/blob/suite/TestWriteAfterCommit.java     |  0
 .../org/apache/axiom/blob/suite/TestWriteTo.java   |  0
 .../axiom/blob/suite/TestWriteToIllegalState.java  |  0
 .../axiom/blob/suite/TestWriteToWithError.java     |  0
 .../blob/suite/TestWriteToWithReadFromSupport.java |  0
 .../axiom/blob/suite/WritableBlobTestCase.java     |  0
 .../blob/suite/WritableBlobTestSuiteBuilder.java   |  0
 components/{ => io}/pom.xml                        | 27 +-----------
 .../org/apache/axiom/ext/io/ReadFromSupport.java   |  0
 .../apache/axiom/ext/io/StreamCopyException.java   |  0
 .../main/java/org/apache/axiom/ext/io/package.html |  0
 .../java/org/apache/axiom/util/io/IOUtils.java     |  0
 components/pom.xml                                 |  2 +
 57 files changed, 34 insertions(+), 49 deletions(-)

diff --git a/axiom-api/pom.xml b/axiom-api/pom.xml
index cd5329136..1d91f1bfc 100644
--- a/axiom-api/pom.xml
+++ b/axiom-api/pom.xml
@@ -40,6 +40,12 @@
             <version>${project.version}</version>
             <optional>true</optional>
         </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>blob</artifactId>
+            <version>${project.version}</version>
+            <optional>true</optional>
+        </dependency>
         <dependency>
             <groupId>commons-logging</groupId>
             <artifactId>commons-logging</artifactId>
diff --git a/components/pom.xml b/components/blob/pom.xml
similarity index 61%
copy from components/pom.xml
copy to components/blob/pom.xml
index a344c14de..0d08f5e48 100644
--- a/components/pom.xml
+++ b/components/blob/pom.xml
@@ -22,34 +22,34 @@
 
     <parent>
         <groupId>org.apache.ws.commons.axiom</groupId>
-        <artifactId>axiom</artifactId>
+        <artifactId>components</artifactId>
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>components</artifactId>
-    <packaging>pom</packaging>
+    <artifactId>blob</artifactId>
 
     <url>http://ws.apache.org/axiom/</url>
 
-    <modules>
-        <module>base64-utils</module>
-        <module>core-streams</module>
-        <module>xml-utils</module>
-    </modules>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>com.github.veithen.phos</groupId>
-                <artifactId>enforcer-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
+    <dependencies>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>io</artifactId>
+            <version>${project.version}</version>
+        </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+            <scope>test</scope>
+        </dependency>
+        <dependency>
+            <groupId>${project.groupId}</groupId>
+            <artifactId>testutils</artifactId>
+            <version>${project.version}</version>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
 </project>
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java b/components/blob/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java
rename to components/blob/src/main/java/org/apache/axiom/blob/AbstractWritableBlob.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/Blob.java b/components/blob/src/main/java/org/apache/axiom/blob/Blob.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/Blob.java
rename to components/blob/src/main/java/org/apache/axiom/blob/Blob.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/Blobs.java b/components/blob/src/main/java/org/apache/axiom/blob/Blobs.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/Blobs.java
rename to components/blob/src/main/java/org/apache/axiom/blob/Blobs.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/ByteArrayBlob.java b/components/blob/src/main/java/org/apache/axiom/blob/ByteArrayBlob.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/ByteArrayBlob.java
rename to components/blob/src/main/java/org/apache/axiom/blob/ByteArrayBlob.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlob.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlob.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlob.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlob.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobChunk.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobChunk.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobChunk.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobChunk.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobImpl.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobImpl.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobImpl.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobImpl.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobInputStream.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobInputStream.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobInputStream.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobInputStream.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobInputStreamImpl.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobInputStreamImpl.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobInputStreamImpl.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobInputStreamImpl.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStream.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStream.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStream.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStream.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStreamImpl.java b/components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStreamImpl.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStreamImpl.java
rename to components/blob/src/main/java/org/apache/axiom/blob/MemoryBlobOutputStreamImpl.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlob.java b/components/blob/src/main/java/org/apache/axiom/blob/OverflowableBlob.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlob.java
rename to components/blob/src/main/java/org/apache/axiom/blob/OverflowableBlob.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java b/components/blob/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java
rename to components/blob/src/main/java/org/apache/axiom/blob/OverflowableBlobImpl.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/State.java b/components/blob/src/main/java/org/apache/axiom/blob/State.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/State.java
rename to components/blob/src/main/java/org/apache/axiom/blob/State.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/TempFileBlobFactory.java b/components/blob/src/main/java/org/apache/axiom/blob/TempFileBlobFactory.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/TempFileBlobFactory.java
rename to components/blob/src/main/java/org/apache/axiom/blob/TempFileBlobFactory.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/TempFileBlobImpl.java b/components/blob/src/main/java/org/apache/axiom/blob/TempFileBlobImpl.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/TempFileBlobImpl.java
rename to components/blob/src/main/java/org/apache/axiom/blob/TempFileBlobImpl.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/TempFileInputStream.java b/components/blob/src/main/java/org/apache/axiom/blob/TempFileInputStream.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/TempFileInputStream.java
rename to components/blob/src/main/java/org/apache/axiom/blob/TempFileInputStream.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/WritableBlob.java b/components/blob/src/main/java/org/apache/axiom/blob/WritableBlob.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/WritableBlob.java
rename to components/blob/src/main/java/org/apache/axiom/blob/WritableBlob.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/WritableBlobFactory.java b/components/blob/src/main/java/org/apache/axiom/blob/WritableBlobFactory.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/WritableBlobFactory.java
rename to components/blob/src/main/java/org/apache/axiom/blob/WritableBlobFactory.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/blob/package.html b/components/blob/src/main/java/org/apache/axiom/blob/package.html
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/blob/package.html
rename to components/blob/src/main/java/org/apache/axiom/blob/package.html
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java b/components/blob/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java
rename to components/blob/src/test/java/org/apache/axiom/blob/MemoryBlobTest.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java b/components/blob/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java
rename to components/blob/src/test/java/org/apache/axiom/blob/OverflowableBlobTest.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java b/components/blob/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java
rename to components/blob/src/test/java/org/apache/axiom/blob/TempFileBlobTest.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/ByteArrayOutputStreamWithReadFromSupport.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/ByteArrayOutputStreamWithReadFromSupport.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/ByteArrayOutputStreamWithReadFromSupport.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/ByteArrayOutputStreamWithReadFromSupport.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/CleanupCallback.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/CleanupCallback.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/CleanupCallback.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/CleanupCallback.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/SizeSensitiveWritableBlobTestCase.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/State.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/State.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/State.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/State.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestAvailable.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetInputStreamIllegalState.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetOutputStreamIllegalState.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestGetSizeIllegalState.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestMarkReset.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestRandomReadWrite.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadEOF.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFrom.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromIllegalState.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromSupport.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadFromWithError.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReadZeroLength.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestReleaseTwice.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestResetWithoutMark.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestSkip.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestSkip.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestSkip.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestSkip.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteAfterCommit.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteTo.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToIllegalState.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithError.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/TestWriteToWithReadFromSupport.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestCase.java
diff --git a/axiom-api/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java b/components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java
similarity index 100%
rename from axiom-api/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java
rename to components/blob/src/test/java/org/apache/axiom/blob/suite/WritableBlobTestSuiteBuilder.java
diff --git a/components/pom.xml b/components/io/pom.xml
similarity index 64%
copy from components/pom.xml
copy to components/io/pom.xml
index a344c14de..ea95cb0bc 100644
--- a/components/pom.xml
+++ b/components/io/pom.xml
@@ -22,34 +22,11 @@
 
     <parent>
         <groupId>org.apache.ws.commons.axiom</groupId>
-        <artifactId>axiom</artifactId>
+        <artifactId>components</artifactId>
         <version>2.0.0-SNAPSHOT</version>
     </parent>
 
-    <artifactId>components</artifactId>
-    <packaging>pom</packaging>
+    <artifactId>io</artifactId>
 
     <url>http://ws.apache.org/axiom/</url>
-
-    <modules>
-        <module>base64-utils</module>
-        <module>core-streams</module>
-        <module>xml-utils</module>
-    </modules>
-
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>com.github.veithen.phos</groupId>
-                <artifactId>enforcer-maven-plugin</artifactId>
-                <executions>
-                    <execution>
-                        <goals>
-                            <goal>enforce</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-        </plugins>
-    </build>
 </project>
diff --git a/axiom-api/src/main/java/org/apache/axiom/ext/io/ReadFromSupport.java b/components/io/src/main/java/org/apache/axiom/ext/io/ReadFromSupport.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/ext/io/ReadFromSupport.java
rename to components/io/src/main/java/org/apache/axiom/ext/io/ReadFromSupport.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/ext/io/StreamCopyException.java b/components/io/src/main/java/org/apache/axiom/ext/io/StreamCopyException.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/ext/io/StreamCopyException.java
rename to components/io/src/main/java/org/apache/axiom/ext/io/StreamCopyException.java
diff --git a/axiom-api/src/main/java/org/apache/axiom/ext/io/package.html b/components/io/src/main/java/org/apache/axiom/ext/io/package.html
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/ext/io/package.html
rename to components/io/src/main/java/org/apache/axiom/ext/io/package.html
diff --git a/axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java b/components/io/src/main/java/org/apache/axiom/util/io/IOUtils.java
similarity index 100%
rename from axiom-api/src/main/java/org/apache/axiom/util/io/IOUtils.java
rename to components/io/src/main/java/org/apache/axiom/util/io/IOUtils.java
diff --git a/components/pom.xml b/components/pom.xml
index a344c14de..fa90dd57d 100644
--- a/components/pom.xml
+++ b/components/pom.xml
@@ -33,7 +33,9 @@
 
     <modules>
         <module>base64-utils</module>
+        <module>blob</module>
         <module>core-streams</module>
+        <module>io</module>
         <module>xml-utils</module>
     </modules>