One To Watch

The Java Social Media API is dead: Long Live Agorava

Chris Mayer
agorava

Rising from the embers of the Social Media API, the open source framework Agorava is hoping to inject some life into Java and archaic social media connections

Social media is an ever changing place- that’s a given. Over the past decade, some social networks have flourished, some have died a sorry death. But with numerous social networks seemingly appearing by the day, Java hasn’t really had chance to connect to the latest network making a big splash. Many Java developers are left frustrated by the dearth of options when wanting to authenticate users’ Twitter, Facebook or LinkedIn accounts or post tweets or Facebook updates automatically from within their applications.

Fortunately, a new project has emerged to provide the missing link between Java and Social Media. Agorava is an open source framework that will, according to its Tech Lead Antoine Sabot-Durand, “provide a way to authenticate on Social Media, use APIs and map JSON answers to Java pojo.”

Currently based on CDI, which is gaining increasing importance within Java communities, the plan is to bring in multiple implementations (such as Java SE, JSR 330 supporting framework and others) to support your needs. But this is of course further down the pipeline, with the current focus being on creating influence with the CDI implementation.

It’s important to give context the genesis of this project, with the area of social media standardisation in Java having been discussed at great length. Agorava was born after two main events. In March 2011 the project Seam Social was launched, aiming to provide a collection of CDI beans and extension to support growing social network consumption. With Seam 3 project ending at the back of last year, (and merged into Apache Deltaspike with Apache CODI and others), some of the team decided launch the JCP proposal: Java Social JSR 357.

However, some on the Executive Committee were sceptical of its timing and its broad scope,
rejecting it early in proceedings. Sabot-Durand believes that it was down to not having “real proof of concept (an implementation) behind it.”

Hence Agorava comes into play – taking stock of those JCP comments and aiming to start over by experimenting in creating a standard API for Java to solve all these social media problems within the language. Not that there haven’t been attempts to amend this social shortcoming – only recently was Java Specification Request 357: Social Media API rejected due to such a broad scope and many felt it wasn’t the right time to standardise.

Now some of you are probably thinking here – don’t most (if not all) networks have their own APIs? What would be the point of reinventing the wheel so to speak? Sabot-Durand fields this in his blogpost:

Yes it’s true, but these social APIs are almost always in Javascript only and if it’s available in Java, mostly its created by a third part or its build for one or few particular Social Media. So they are ok if you want to deal with GUI or simple manipulation.

Having a vendor free solution to deal with these Services is also an advantage, we’ll try to implement all the available public APIs and provide similar functionalities across “all Social Media”.


Sabot-Durands also details just some of the roadmap ahead, and from the looks of it, it’s a pretty ambitious one. The 0.5.0 snapshot release is expected this summer, with a heavy focus on supporting stateless architectures – quite a big deal. Further down the line in the first final release, we can expect the following:

  • Change REST engine for JAX-RS 2.0 client framework
  • Implement OAuth implementation on JAX-RS client Framework
  • Provide compatibility with Weld-OSGi
  • Java SE implementation
  • JSR 330 specific API and implementation (Guice or Spring)
  • Finished Twitter, LinkedIn, Facebook Modules

It’s a bold ambitious to tackle so much, but are the team behind Agorava biting off more than they can chew? It may be an incredibly noble goal, as Java absolutely needs to be cohesive with social media. But with the field still changing, is it too much at once? We do agree though that this is the correct way to go about getting a Social Media API in Java.

We’re eager to monitor the progress of this huge undertaking and hope that it can live up to the claims made. There’s also heavy praise for Spring Social, and we’re wondering how it can possibly differentiate from that project.

You won’t be surprised to hear Agorava is already up and running – You can test the demo application Socializer or fork the Socializer project on Github. As you’d hope with a project devoted to the area, there’s oodles of social networking going on too – follow on Twitter @Agoravaproj and check out the Google User Group for more discussion surrounding the project. Why not join in?

Author
Comments
comments powered by Disqus