ECS Object Client SDK for Java

We've released a new object client for Java that is smaller, more robust, and faster than our previous client, which was a fork of the AWS SDK.  Removing that dependency, while requiring a bit more work on our part, gives us several advantages, among which are:

 

  • Full control over the architecture, design and direction of the project
  • Selecting our own dependency tree
  • Choosing our own OSS license

 

But don't fret.  We're also working on an adapter library, so you don't have to change your code to use the new interface (although this prevents you from using any ECS extensions).  Keep reading for more details.

 

 

The "Smart" Client

 

This new implementation takes advantage of another one of our projects, called the smart-client.  The smart-client is really just a Jersey client with some additional filters that provide client-side load-balancing, node discovery, VDC awareness, and health checking.  It's one of the reasons our client is so efficient.

 

 

Usage

 

Download


The project is hosted on github.  You can find the latest release there, which includes a link to download the distribution package.  The release history is also available, which will highlight the changes included in each version.

 

Maven

 

We've also published the binaries on Maven Central, so including them in a Maven build is simple.  Just add the following dependency:

 

   <dependency>
       <groupId>com.emc.ecs</groupId>
       <artifactId>object-client</artifactId>
       <version>3.0.0</version>
   </dependency>






 

Gradle

 

The same is true for Gradle (just a syntax change):

 

   compile "com.emc.ecs:object-client:3.0.0"






 

 

Documentation

 

Javadoc

 

Our javadocs are hosted on github as well.

 

Quick-start

 

There is a quick-start guide on the github wiki.

 

Samples

 

We have some code samples hosted on github as well in a separate project.

 

AWS Adapter

 

As mentioned above, there will soon be an AWS adapter available for use with code that already leverages the AmazonS3 interface (AWS SDK).  When this adapter is used, you will not have access to any of the ECS proprietary extensions, like atomic append and range updates, but it may be a good solution if you want to leverage our smart-client while limiting the impact to your project.