Science and Technology:

Software engineering, Agile,

UML, MODELING and more . . .

Wednesday, March 3, 2010

Installing Richnesse on Fitnesse



RichNesse is a WYSIWYG text editor for Fitnesse. It is based on FCKEditor. The last version of Richnesse was released on 2008-06-03; while the current version of Fitnesse was released on 2010-01-03. Richnesse is no more compatible with Fitnesse since version 2009-03-21 (more or less).
Nevertheless, it is possible to make them Work together. The instructions are as follow:


  1. Download and install the Fitnesse .JAR (I'm currently using the 20100103 version) file
    • You should have a folder with the fitnesse.jar file and a FitNesseRoot folder
    • The server should now be up at the end of the installation process. If so, then stop it by going to the following url: http://localhost/?responder=shutdown
  1. Download the Richnesse Zip file (I'm currently using the 0.804 version from 2008-06-03) and unzip it into the same folder as Fitnesse
    • You should obtain the following files beside the fitnesse.jar one:
      • RichNesse.jar
      • RichNesse.plugins.properties
  1. The next step is to set the properties file
    • Rename the RichNesse.plugins.properties file as plugins.properties
  1. At this point I got a problem: It was impossible to configure the classpath in order to point to the RichNesse.jar file. Then, I had to relocate the Richnesse files inside the Fitnesse jar file.
    • Open the RichNesse.jar file (try using winzip, for example)
    • extract the RichNesse folder
    • Open the fitnesse.jar file (try using winzip, for example)
    • Add the RichNesse folder that you have just extracted into the fitnesse.jar file
  1. Richnesse requires a 'responder' class which is not available any more in the recent versions of fitnesse (since 2009). It also requires an old version of a 'recorder' class. Lets get them:
    • Download the fitnesse zip folder version 2009-03-21
    • unzip this file into a temporal folder
    • Open the old fitnesse.jar file (try using winzip, for example)
    • Extract the SecureResponder.class file from fitnesse\responders\
    • Extract the SaveRecorder.class file from fitnesse\components\
  1. Lets integrate the old files into the new version of FitNesse
    • Open the recent fitnesse.jar file (try using winzip, for example)
    • Take the SecureResponder.class file you have extracted from the old fitnesse version and add it into fitnesse\responders\
    • Take the SaveRecorder.class file you have extracted from the old fitnesse version and add it into fitnesse\components\
    • Close the fitnesse.jar file

You can now launch the fitnesse server and access it in http://localhost/. The RichNesse button should now be available on the left panel.

The problem is that, when you install Richnesse this way, the standard 'Edit' button doesn't work any more. Moreover, if you click on this 'Edit' button, there will be a call to the server, the server will not respond to this call and the client will remain waiting for the answer. I think that the server is then altered and the following request will not longer succeed. The solution is then to shut-down and then up the Fitnesse server.

One more comment. I think that, when the Richnesse plugin is installed, then the reports created when there's a problem with the fixtures are less accurate.

Do you have another solution for installing a WYSIWYG editor for Fitnesse?

D. GARDUNO

10 comments:

  1. Hi,

    I think you have forgotten the copy of the javascript files from RichNesse to Fitnesse.

    Paco.

    ReplyDelete
  2. Paco,

    Are you sure?
    Can you give as some more details?
    how did you notice it?
    how did you solve it?

    D. Garduno

    ReplyDelete
  3. Hi, I have downloaded FitNesse 2009-03-21 but I am unable to follow these two steps:

    Open the old fitnesse.jar file (try using winzip, for example)
    Extract the SecureResponder.class file from fitnesse\responders\

    As I can't find that class.

    ReplyDelete
  4. Hi Marco,

    I have just downloaded the fitnesse20090321.zip file from the fitnesse website (http://fitnesse.org/FrontPage.FitNesseDevelopment.DownLoad)

    Then, I unzipped the file and inside I found the fitnesse.jar file.

    I opened this file (with winzip) and inside I found the SecureResponder.class; however, this time the file was in \fitnesse\authentication\

    Chears
    David

    ReplyDelete
  5. Hello David,

    Did you managed to reinstall Richnesse once you've noticed that the SecureResponder had been moved to \fitnesse\authentication\?

    Thks,

    Jerome P.

    ReplyDelete
  6. Hi Jerome,

    I didn't try to reinstall Richnesse under this configuration.

    If you manage to reinstall it, please let me know about the results.

    Friendly
    David

    ReplyDelete
  7. I followed all the steps, but when I try to launch the FitNesse server, I get the following exception:
    Exception in thread "main" java.lang.ClassNotFoundException: RichNesse.HtmlPageFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Unknown Source)
    at fitnesse.ComponentFactory.createComponent(ComponentFactory.java:86)
    at fitnesse.ComponentFactory.createComponent(ComponentFactory.java:98)
    at fitnesse.ComponentFactory.getHtmlPageFactory(ComponentFactory.java:112)
    at fitnesseMain.FitNesseMain.loadContext(FitNesseMain.java:99)
    at fitnesseMain.FitNesseMain.launchFitNesse(FitNesseMain.java:36)
    at fitnesseMain.FitNesseMain.main(FitNesseMain.java:27)

    Any suggestions?

    ReplyDelete
  8. The only think I can imagine right-now is to open the Richnesse package and search for the missing class "HtmlPageFactory"

    Are you sure that you are using the correct Richnesse version?
    Remember that Richnesse and Fitnesse haven't evolved the same way

    Cheers
    David

    ReplyDelete
  9. I would be much simpler if someone would take up the maintenance of Richnesse instead of finding wacky ways of making it work with old Fitnesse versions :p.

    ReplyDelete
    Replies
    1. I entirely agree with you!

      however, in the meanwhile, we have to do what we can with what we already have ;-)

      Delete