Over a million developers have joined DZone.

eXo Social 1.0 Makes Transactional Java Apps More Socially Aware

DZone 's Guide to

eXo Social 1.0 Makes Transactional Java Apps More Socially Aware

· Java Zone ·
Free Resource
Free to download under the AGPL license today is eXo Platform's new eXo Social 1.0, a software package based on OpenSocial.  It allows developers and IT organizations to "own" the move to enterprise social networks, unlike the simplistic packages that let business managers run the software.  eXo Social comes bundled with GateIn 3 and Tomcat 6 to run out of box.

You may have heard of GateIn, which recently delivered version 3.0.  The GateIn portal is a merger of two projects that have been around for a while - JBoss Portal and eXo Portal.  By taking significant code contributions from both parties, the GateIn portal aims to provide both an intuitive portal framework for building social applications depending on user needs, and a platform that can also be used 'as is'.

eXo Social, on the other hand, is a general purpose enterprise social platform that's used to develop, deploy, and extend social features and applications.  It uses an LDAP integration to plug into a company's existing infrastructure.  To create an internal social network, you don't need to add any extra layers of administration or dedicated resources.  You just use the company directory to make a network that already includes specified groups, roles, and permissions.

eXo Social in Action

Getting Started with eXo Social from eXo on Vimeo.

After the social network is set up, employees can modify their profiles, connect with colleagues, and share work information via an activity stream.  In eXo Social, applications are treated as individuals, so users can subscribe to updates on JIRA, for example, and activity streams can be customized for individuals, groups and even applications.  Streams can also access Java or REST-sourced posts and status updates as well.  Along with collaboration workspaces, eXo Social also offers a mashup development environment for building gadgets. Gadgets can be both hosted and deployed in any dashboard or workspace. The GateIn application registry organizes gadgets and sets permissions for users.

eXo Social Activity Stream

Here are some potential use cases for eXo Social:

  • Create a developer dashboard. Developers can create an activity stream for an application—that is, show changes made in commonly used developer tools like JIRA, Hudson and Sonar, which are published as activities. These activity streams are displayed in a gadget. Check out this video to see how this can be done.
  • Add social features to an application. With eXo Social, many applications can be turned into interactive social applications. eXo shows how using the popular Grails bookstore application in this video.
  • Aggregate data to measure marketing campaigns. Developers can mashup Google Analytics data (using its API) with product launch dates in a graph and combine and grab download data from a .csv file—all shown in a single view in a gadget. A step-by-step tutorial is available.

Last year, eXo founder and CEO Benjamin Mestrallet said that OpenSocial in the enterprise was the primary topic at a discussion panel including executives from Atlassian, IBM, and SocialText.  The question that was asked, "Is OpenSocial destroying the portal world and portlets in general?" was generally answered: 'no'.  Mestrallet says that portals are shifting from aggregators of external applications to platforms for building and delivering services that add value to the user organization.

eXo Social supports version 0.8.1 of the OpenSocial API.  Along with a fully compliant gadget container, eXo Social 1.0 supports OAuth, REST, and RPC.  You can download eXo Social from this link.  A full listing of features can be found here.  eXo platform also released an implementation of the recently standardized CMIS specification called xCMIS.  Here's a list of CMIS clients.

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}