S3 APIs: Remove the dependency to com.jamesmurty.utils:java-xmlbuilder (#98)
authorJean-Noël Rouvignac <JnRouvignac@users.noreply.github.com>
Mon, 1 Mar 2021 14:01:10 +0000 (15:01 +0100)
committerGitHub <noreply@github.com>
Mon, 1 Mar 2021 14:01:10 +0000 (15:01 +0100)
commit0b89ee0825d45de1193090cdd5efc5f1135fa200
treed66e3939f75ce9f4f1b64feee24cbad84f0e3861
parentf6f3f99024317abc9b8e8ff58be86e6c923f43a8
S3 APIs: Remove the dependency to com.jamesmurty.utils:java-xmlbuilder (#98)

XMLBuilder is a very nice fluent API for building XML documents.
However, it is only used by a tiny portion of jclouds: the s3 api. The
use of the XMLBuilder class requires a dependency to
com.jamesmurty.utils:java-xmlbuilder jar and a transitive
dependency to the net.iharder:base64 jar (superseded by
java.util.Base64 in java 8). They are 18kb each approximately and they
not OSGi compatible. They are not huge, but they represent more API
surface and more things to change when trying to use jclouds in an OSGi
context (they need to be replaced by OSGi compatible bundles like
org.apache.servicemix.bundles.java-xmlbuilder).

This commit replaces the use of XMLBuilder by a direct use of the
javax.xml and org.w3c.dom APIs.

I hope retesting will be minimal, and most of this code is covered by
unit tests.
apis/s3/pom.xml
apis/s3/src/main/java/org/jclouds/s3/binders/BindACLToXMLPayload.java
apis/s3/src/main/java/org/jclouds/s3/binders/BindBucketLoggingToXmlPayload.java
apis/s3/src/main/java/org/jclouds/s3/binders/BindIterableAsPayloadToDeleteRequest.java
apis/s3/src/main/java/org/jclouds/s3/binders/XMLHelper.java [new file with mode: 0644]
project/pom.xml