January 21, 2012

jclouds 1.3 released!

The 1.3 release of jclouds includes results of 3-months effort by our contributors. A total of 57 Issues were addressed between jclouds 1.2.0 and the current revision of jclouds 1.3 (1.3.1).

Notable updates include

  • support for Citrix CloudStack 2.2.13+
  • support for vCloud Director 1.5 endpoints
  • support for OpenStack Nova via our eucalyptus support

This release also supports more locations than ever including:

  • introduction of Ninefold compute in Sydney and HP Cloud Object Storage in SuperNAP (vegas)
  • new aws-ec2 regions in Oregon and Sao Paulo
  • new ElasticHosts zones in Toronto and Los Angeles

We also have a few new tricks for power users

As always, we keep our examples site up to date so you can see how to work this stuff. Also, check out recent jclouds integrations including Abiquo 2.0, Apache Camel, ElasticInbox, and GigaSpaces Cloudify.

Please submit your own ideas and let us know if there are features you’d like to see, need help on, or are interested in contributing. Make sure you follow us on Twitter for updates. If you are interested in learning about jclouds 1.3 IRL, come to our training in Stockholm or our next meetup at Jfokus

Credits

Special thanks to Alcatel Lucent for sponsoring the majority of our CloudStack implementation, and the CloudStack community for answering hundreds of questions over the last year! Additional thanks to Jeremy Daggett from HP for contributing HP Cloud Object Storage support, and setting stage for further OpenStack improvements in future releases. Also thanks to Jesse Wilson from Gson, who took time with us to hone our use of Gson to the point where we no longer require patches.

Finally, thanks to everyone who contributed their time and effort in order to make this release happen. Check out who’s been busy here.

More info?

Check out the release notes for more info on this release!

January 17, 2012

jclouds training and Jfokus Stockholm

For those of you in Stockholm, or coming in for Jfokus, don’t miss out on a few nearby events.

I’ll also be doing some cloud tracking at JFokus and generally available for beer :)

See you in freezing Stockholm!
-Adrian

October 18, 2011

jclouds 1.2 released!

The 1.2 release of jclouds includes results of almost 2 months effort by our community. A total of 55 Issues were addressed between jclouds 1.1 and 1.2, stabilizing the cloud so you don’t have to!

We now support 33 cloud providers and reach 8 new data centers from CloudSigma, Go2Cloud, and SoftLayer.

We’ve made sysadminy tasks more programmable, and feel more like Java.  Using submitScriptOnNode, you can use java concurrent semantics for bash scripts!

future = client.submitScriptOnNode(node.getId(), 
                        AdminAccess.builder().adminUsername("foo").build(),
                        nameTask("adminUpdate"));

As always, we keep our examples site up to date so you can see how to work this stuff.

Next release will be in approximately 1-months time. Look out for progress including vCloud 1.5, Voxel, and VirtualBox.

For full details on the jclouds 1.2.1 release, check out our release notes.

Catch up with us on twitter, irc, the mailing-list, or IRL at one of the many upcoming events.

Great job, team!

October 17, 2011

Resurrecting Tumblr

Blogger accidentally marked the jclouds blog as spam, and won’t reinstate it.  Future blog entries will go here!

May 20, 2009
May 13, 2009

Catching exceptions with less keystrokes

Some of us hate checked exceptions, but still use them for one reason or another.  A common problem we have is unnecessary exception nesting, or runtime swallowing.  This often leads to the all to familiar and crufty code with a million catch blocks.

jclouds has a slightly different approach that strikes a balance, allowing checked exceptions to be dealt with, but without the pain of so many lines of repetitious code.

	try{
        } catch (Exception e) {
	    Utils.<ApplicationException>rethrowIfRuntimeOrSameType(e);
	    throw new ApplicationException("Error applying stuff", e);
	}


This code does what it says, preventing us from unnecessarily nesting application exceptions or swallowing runtimes.

Now, this code shouldn’t work, as current versions of java hava a generic type erasure problem.  The reason it does work is a somewhat hackish line in the rethrowIfRuntimeOrSameType method:

        if (e instanceof RuntimeException) {
            throw (RuntimeException) e;
        } else {
            try {
                throw (E) e;
            } catch (ClassCastException throwAway) {
                // using cce as there's no way to do instanceof E in current java
            }
        }

The trick is that we try to force the exception we caught into the generic type. If that fails, we know it wasn’t that type and that we should wrap, log, etc.

If nothing else, I hope you enjoy the perspective!

May 11, 2009

jclouds-s3 beta released

logo

jclouds provides any-weight clouds tools for Java 5 and later: you choose the depth you want.

We are pleased to announce our first beta of jclouds-s3.

jclouds-s3 provides both Map<String,InputStream> and FutureCommand interfaces to Amazon S3.

It features a pluggable core, most notably supporting Apache HttpNio and Google App Engine for Java runtimes.

Please have a look at our project page and give it a try.  We welcome your feedback and participation.

adrian@jclouds.org