Social Apps Proxy – Winning app in the Liferay Marketplace App Contest

MPAC-Winner-Badge-White-2Last month I entered and won this year’s Liferay Marketplace apps contest with my latest Liferay Portal app! There were some really good entries and it must have been a tough contest to call. Social Apps Proxy was my entry. It’s an app for drastically simplifying the building of other Liferay Portal apps that need to integrate with the social graph of its users. For example it can be used to retrieve recent mentions of the user on Twitter. That’s about 10 lines of code to achieve, and the full source code for this can be found here.

Social Apps proxy can be downloaded here.

Social Apps Proxy - Now available

Social Apps Proxy – Now available

James Falkner (Liferay community manager) wrote a good blog on the contest results.

In reality I started building the app some time before the contest was announced, because I wanted to combine my knowledge of a few different technologies that I had been working with in recent years. Namely XForms 1.1, OAuth 1.0a, and all things Liferay Portal!

The link to XForms 1.1 may seem obscure, but it was possibly my experience with XForms 1.1 that triggered the idea to build the app in the first place. XForms 1.1 has no native support for consuming OAuth services or parsing JSON data commonly returned by such services. It is however a superb framework for rapidly building complex forms using its model driven approach and excellent support for consuming HTTP services. So the idea was to create a HTTP proxy server which would do all the OAuth and JSON parsing (transforming it to XML) stuff on its behalf without it even being aware! Liferay Portal’s plug-able architecture provided a great opportunity to put a face on the proxy server for easy configuration and deployment. And from a user experience perspective, allowing users to managing their OAuth tokens for a whole website (web domain) hosted on Liferay Portal instead of using something specifically put together for an individual form (or portlet) is going to be more aligned with the user’s expectations of OAuth itself.

Integrating XForms with Liferay Portal is not something I will go into detail with, but Orbeon Forms is the XForms 1.1 implementation I am most familiar with and it comes with out of the box Liferay Portal integration. I’m sure other XForms implementations can also be integrated quite easily and Social Apps Proxy will work with those too!

So does that mean that Social Apps Proxy requires a XForms 1.1 implementation to be useful? Not at all. Any kind of app that can be deployed as a portlet to Liferay Portal can use Social Apps Proxy. Once installed, all portlets will automatically receive a special token as a render request attribute which indirectly links the app to all of the user’s OAuth tokens. Using the special token the app can request any OAuth resource as if it requires no OAuth token. Whenever this requires user authorisation the Social Apps Proxy will provide a special HTTP response with an authorisation URL which the portlet should simply send the user to.

So what’s next?

I’m going to be at a few upcoming Liferay conferences; The North America Symposium, London Solutions Forum, and the DevCon in Germany. It would be great to discuss how Social Apps Proxy could be improved so if you’re going to be at any of those events then great. Or you can simply leave a comment, it would be great to hear from you either way!

References

Advertisements

Upcoming Liferay meetup in Exeter on 24th June

In recent years I’ve really enjoyed being part of the Liferay Portal open source community. For some time I have felt I should contribute something back beyond proving assistance to other members via message boards and such. For me, in order to participate offiline I have had to do a fair bit of travelling to London, Bristol, Worcestershire, Stockholm and Wiesbaden (Germany). I have enjoyed every meetup, but part of me wishes there was more of a community here in the South West of UK. To hopefully help build this I’ve organised a meetup in Exeter with talks that should be of interest to those with little or no exposure to Liferay Portal as well as the seasoned expert.

You can RSVP for the meetup here. If you intend to come, it is important you RSVP so I can ensure there is enough food and freebies (!) to go around.

To give you a heads up…

Continue reading

Moving towards full automation for build, test and deploy

A couple of topics which have interested me for a while now is CI (Continuous Integration) and automation. I’m introducing tools to provide developer support using these approaches for my team to enhance the experience of new application builds and regression testing. The latter is of particular important as this removes the need to hassle the original developers of applications whenever a change has to be made, to a large extent. There are also benefits in the area of handing over support more effectively to first and second line support teams. However, achieving CI and automation is a complex challenge because our applications are loosely coupled n-tier, spread across three core platforms: Liferay Portal 6.1 EE, Orbeon forms 4.0 PE and Weblogic 12c middleware (coming soon!).

For those who are not familiar with CI, this is the practice of integrating code changes frequently into a shared code branch, often your mainline (a.k.a. trunk or master). The theory is that by integrating frequently, you will be integrating smaller changes, and in larger teams this means a decreased likelihood of code branch merge conflicts. As it turns out, this is true. It is made easy with support from powerful SCM (Source Code Management) solutions like Git where branching, and more importantly merging, is a low cost activity. To get the full benefit it is recommended that you integrate your SCM with an issue tracker and branch for every issue, no matter how small, and make include issue IDs in commit messages when you commit the code changes that represent fixes. This facilitates automatic generation of release notes for builds and issue trackers are often able to tell you which commits resolved which issues.

Continue reading

17th September Liferay UK User Group meetup in review

September was an interesting month packed full of interesting meet ups and opportunities to put into practice concepts that I have been evolving over the past couple of years. In this post I will cover the Liferay UK User Group (@LiferayUKUG) meet up on the 17th September hosted on LGA (Local Government Association) premises in Westminster (London). Continue reading

Every competitor is a potential collaborator – #digpen

The second #digpen web developer unconference took place at the Phoenix in Exeter on Saturday the 14th of May – with a lecture theatre full of talented web developers and designers from the South West of England.

The focus was on strengthening the community of developers and designers which already exists in the South West.  There were a series of 3 minute “lightning talk introductions” from individuals and small enterprises from the region, followed by some more lengthy spotlight presentations and workshops.  The conference wrapped up with some 2 minute pitches by representatives of other web related communities of potential interest to attendees.

I would highly recommend that if you live in the South West region that you subscribe for the next #digpen unconference which is on Saturday the 11th of June in Cornwall.  For up to date information please follow the hyperlink in the reference section.

I attended this event to gain more awareness of the types of technologies and tools that freelance and SME web developers are using to build and deploy web apps for clients.  I am especially interested in this as I would like to help make possible a future where local authorities play a key role in facilitating growth of local communities such as #digpen – procuring digital services from the community to help deliver innovative and effective services to the public.

Continue reading

Reflecting on the Forward25 Data Mashup in Exeter, April 1st – 4th 2011

From the 1st to the 4th of April 2011, “Forward 25” hosted a Data Mashup event to look into new and innovative ways to visualise data from the UNFPA’s Upcoming State of the World Midwifery Report.  “Forward 25” Careers is a social enterprise promoting creative action on future work and careers; focussing on young persons aged 9 to 25.

I had never attended a mashup event before so this seemed like a really good opportunity, right on my doorstep! Continue reading

The state of play

Thanks for stopping by my blog!  Over the coming weeks I will be blogging about solutions architecture research, initially focussing on portal technology.

I’m currently working on architecting a new web delivery platform built upon open standards and technologies including XHTML, AJAX, JSR-286 (Portlet 2.0), WSRP, SOAP, REST, xForms, MVC.

This new web architecture must not only enable web developers to deliver reliable applications through the web channel, but extend to empower non-technical users to build mash-ups through configuration of common solution web components.

Stay tuned!