I am currently evaluating JForum with a view to potentially integrate it into a high volume web app. I am attracted to the relatively simple way that you can achieve SSO and the apparent plug and play nature of JForum. However, my database is sitting underneath a set of RESTful web services and I'm reluctant to use a straight JDBC/Datasource approach to get at it. I'd like to know how difficult it would be for me to replace the DAO layer of JForum with my own implementation to call my database service layer. What operations does JForum perform on the database that I would need to replicate in my DB service layer code? Can anyone give me any tips or point me in the direction of someone who has done this before?
I understand this approach would also make upgrading JForum a nightmare, but I think it's worth considering for me.
Cheers and thanks for the good work on what appears to be a great piece of kit. [originally posted on jforum.net by lebenski]
It's possible but takes a LOT of work and TESTING. I know because I wrote a full DAO based on Apache Torque (cause I'm one of the Dev's there and my app used it).
One thing to consider before going down this path is that JForum 3 is migrating the DAO to Hibernate (despite trying to get Raphael, et all to use Torque.. sigh). So, what you do for 2.1.x may or may not work with 3.0.
That said, basically, you will need to implement all of the interfaces in the net.jforum.dao package and make your own extension of the DataAccessDriver class to call them. Of course, you'll need to test that all the methods return or store the information as required.
I think the hardest part will be the various queries that return information that is a combination of various tables (e.g a lot of joins, etc). Most REST DB implementations I've seen are pretty table/view record based and don't do joins well.. yours may be different.. [originally posted on jforum.net by monroe]
You showed up just in time for the waffles! And this tiny ad:
Building a Better World in your Backyard by Paul Wheaton and Shawn Klassen-Koop