Johan Vos started to work with Java in 1995. He worked on the Java Linux port with the Blackdown team. He has been doing Java consulting and development for a number of customers in completely different areas. Over the years, he has been active in a number of Java-based community projects, e.g. OSGi, the Glassfish project and JFXtras.org. Johan is a DZone MVB and is not an employee of DZone and has posted 22 posts at DZone. You can read more from them at their website. View Full User Profile

DaliCore on java.net

02.07.2012
| 3824 views |
  • submit to reddit

After years of development, refactoring, brainstorms, projects, fun, more refactoring,... we open-sourced the DaliCore code. DaliCore creates the core for the social networking applications that we developed with LodgON over the past years. Some code and documentation is now available on http://java.net/projects/dalicore and we will be adding more code and documentation gradually.

Most of the projects we do at LodgON have a number of things in common:

  • there is often a link to one or more Social Networks (e.g. Facebook, Twitter)
  • Users and user-specific information is often key.
  • Users and applications often require fine-grained or coarse-grained permissions in order to do some actions.
  • Performance, scalability, transactions and other enterprise-features are important.

In order to be able to rapidly develop applications for customers, we created code that we could re-use in most of our projects. That code is DaliCore. LodgON is a long-time Java EE and Glassfish user, and DaliCore is based on the Java EE 6 API's. DaliCore starts where the Java EE 6 specification and the Glassfish implementation (containing Jersey) ends.

I've been blogging about DaliCore for some time already -- see http://blogs.lodgon.com/johan/blog/entry/DaliCore_usergenerated_content_on_top_of_Java_EE. Although it has always been our intention to make DaliCore open-source, it took a long time before we did it. There are a number of reasons for this, and lack of time is probably the most important. It is easy to take existing code, and throw it over the open-source wall, but there is little benefit in this (neither to the creator or the consumer of the projects). Successful open-source projects should be a win-win for both the original creator as well as for the external developers and community using it.
We want DaliCore to be useful for the Java developer community, and we want to be able to enhance the code based on community feedback and contributions. Using the java.net umbrella, we have found a way to deal with this.

The DaliCore code we use at LodgON contains a large number of modules, and lots of information is implicitly known by LodgON employees, or exists on flipcharts, notes, googledocs, internal issue trackers,... . When moving code and documentation to java.net, we try to document and structure the different modules. At this moment, we published three modules:

  • dalicore-ejb, containing the core entities (e.g. User, Content, Group, Permission) and the core operations (in stateless Session Beans)
  • dalicore-oauth, allowing applications to use (3-legged) oauth and leverage a distributed authentication system
  • dalicore-externalnetwork, allowing applications to leverage authentication provided by Social Networks

We added samples with code and some basic documentation for those three modules. We realize we have to add more documentation and samples though. When browsing open-source projects myself, I often try to find the "sample" section first. Next, I look for the Javadoc -- so we added the JavaDoc to java.net as well.

We will be adding more modules in the future, but we already encourage feedback and suggestions. We realize some things might be vague, and we will do our very best to explain things.

 

From http://blogs.lodgon.com/johan/blog/entry/DaliCore_on_javanet

Published at DZone with permission of Johan Vos, author and DZone MVB.

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Tags: