Sakai App Builder

Information

The Sakai AppBuilder is a RAD tool that allows you to quickly create Sakai webapp projects in Eclipse that will work in the Sakai Framework. Use these as a basis for the projects that you want to make without all the busy work of creating the structures and adding in all the dependencies. You can choose various UI layer options and implementation types to get you started quickly. This will not write your entire app for your, but it should help you get started quickly.
Aaron Zeckoski (me) came up with the idea for this plugin and wrote the current versions so please contact me if you have questions or suggestions related to it.

Where do I get it?

The Sakai App Builder can be installed from within Eclipse using the built-in update feature as follows:

  1. Start Eclipse
  2. Under the "Window" menu, select "Preferences"
  3. Expand the "Java" heading on the left side
  4. Expand the "Build Path" subheading
  5. Single-click the "Classpath Variables" subheading
  6. Click the "New" button
  7. For the Name, enter "M2_REPO"
  8. Click the "Folder" button, then navigate to the location of your local maven 2 repository (you want the repository directory: ~/.m2/repository)
  9. Click "OK" to close the folder browsing dialog.
  10. Click "OK" to close the "New Variable Entry" dialog.
  11. Click "OK" to close the preferences window.
  12. Under the "Help" menu, select "Software Updates", then "Find and Install".
  13. Highlight the radio button marked "Search for new features to install", then click "Next".
  14. Click the button marked "New Remote Site".
  15. For the Name, enter "AppBuilder Site"
  16. For the URL, enter http://source.sakaiproject.org/appbuilder/update/
  17. Make sure the checkbox next to the new remote site is checked, then click "Finish"
  18. Check the box next to the latest version of Sakai AppBuilder, then click "Next"
  19. Read the license agreement, select the radio button indicating that you agree to the terms, then click "Finish"
  20. Select an alternate installation path if desired, then click "Finish" again
  21. Click "Install" on the next screen
  • Note: The plugin requires eclipse 3.2 or better

How do I use it? (plugin is installed, now what?)

Follow these steps to create a Sakai webapp starter project in eclipse:

  1. Click on File -> New -> Project -> SakaiProject -> Sakai App Project to start the wizard
  2. Enter a name for your project
  3. Change the directory location for the project if you don't like the default
    • Recommended: Use your local Sakai source root folder if you want your project ready to build, deploy, and run in Sakai (otherwise, you will have to move it and reimport it into Eclipse)
  4. Change the project key if you don't like the autogenerated one
  5. Select a UI display layer technology
  6. Select an implementation
    • Note: The directory structure only option will not produce a funcitonal app
  7. Click Finish to generate the webapp
    • Check the README file in the root of the new project for information on using the new project

Versions

  • 0.5 (Initial Release) - Sept 25, 2006
    • Build a functional tool to use as a basis for Sakai application development
      • Enter a project key and name which are used throughout the generated application
    • Choose from 3 display technologies (RSF, JSF, JSP)
    • Choose from 3 implementations
      1. Full CRUD app - a full 2 screen application which allows for creation, reading, updates, and deletes of items
      2. Hello World - a basic hello world app for those who want to start simple
      3. Directories Only - just the correct directory structure and maven project files for those who want to start with bare bones
  • 0.6 - Oct 12, 2006
    • Added support for Apache Velocity templates
      • Deprecated the old homegrown template system
    • Added an update site for the plugin
  • 0.7 - Nov 14, 2006
    • Corrected but that caused 0.6 to not update correctly
    • Added code to do better Sakai security (using Authz)
      • Add default security permissions demo code
    • Updated to use Generic DAO 0.8
    • Fixed a scope bug in the RSF templates
  • 0.77 - May 18, 2007
    • RSF updated to use 0.7.1 and new features for that version
    • Added ability to choose a package prefix (org.sakaiproject no longer required)
    • Fixed some template bugs
    • Added checking for reserved words in key and package name
    • Added extra comments
  • 0.82 - Aug 24, 2007
    • Added Maven 2 build options
    • Updated version of RSF, generic-dao, and other jars
    • Changed the created file structure to match with the new one at Sakai application (tool) structure
  • 0.9 - ??
    • Possibly add in velocity as a presentation option?
    • RSF OTP tool as an option?

Frequently Asked Questions (FAQ)

Where do I get the source?

Sakai contrib has the source for the plugin: https://source.sakaiproject.org/contrib/programmerscafe/appbuilder/
The source is licensed under the Creative Commons Attribution-ShareAlike 2.5 License.

Why didn't you include more display technologies or options?

Probably because I didn't think anyone wanted them. Send me a note if you have suggestions.

When I try to create a project in my sakai source directory (not using the default location) I get an error saying the project exists or I cannot create a project in that folder?

This is most likely caused because you are using Eclipse 3.1. Eclipse 3.2 is absolutely the lowest version you can use with this plugin safely.
If you are using 3.1 you can create the project and then move it to your Sakai source folder but that is dangerous. I recommend you upgrade to Eclipse 3.2.

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Nov 07, 2007

    David Megill says:

    Is the readme file in the org.sakaiproect.xx.model package still current? It ask...

    Is the readme file in the org.sakaiproect.xx.model package still current? It asks us to create a hibernate.conf file and place it somewhere in the project. Does the master/pom now take care of that or is that necessary to use the hibernate tools in eclipse? (Working with the trunk).

    Thanks,

    1. Nov 08, 2007

      James Marca says:

      I second this comment. I also want to note that I do not have a Hibernate plugin...

      I second this comment. I also want to note that I do not have a Hibernate plugin in my Eclipse installation, and there was no mention that I could find in the Programmer's Cafe setup to install such a plugin, but the Model readme talks about using Hibernate menu items in Eclipse. Some clarification would help.

  2. Nov 12, 2007

    David Megill says:

    The new version of the appbuilder is greatly appreciated. I have been able to im...

    The new version of the appbuilder is greatly appreciated. I have been able to import a new project, install it and deploy it but when tomcat tries to expand the war file I get an error I can't track down. The name of my project is RSFtest and the bean RSFtestItem can't be found and I get a fatal error. I checked to see that the class file is in the correct path ..../model/RSFtestItem.

    I suspect I have something amiss in the api .pom file?? The trace follows (any help would be appreciated):

    ERROR: Context initialization failed (2007-11-12 19:29:09,323 ContainerBackgroundProcessor[StandardEngine[Catalina]]_org.springframework.web.context.ContextLoader)
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'TLABPostProcessorLoader' defined in class path resource [conf/rsf-config.xml]: Invocation of init method failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopeAlterationWrapperProxy' defined in class path resource [conf/rsf-config.xml]: Cannot create inner bean 'RSACBridgeProxy$child#1bcb21' of type [uk.org.ponder.rsac.RSACBridgeProxy] while setting bean property 'value'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RSACBridgeProxy$child#1bcb21' defined in class path resource [conf/rsf-config.xml]: Cannot resolve reference to bean 'RSACBeanLocator' while setting bean property 'RSACBeanLocator'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RSACBeanLocator' defined in class path resource [conf/rsf-config.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/sakaiproject/rsftest/model/RsftestItem
    Caused by:
    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'scopeAlterationWrapperProxy' defined in class path resource [conf/rsf-config.xml]: Cannot create inner bean 'RSACBridgeProxy$child#1bcb21' of type [uk.org.ponder.rsac.RSACBridgeProxy] while setting bean property 'value'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RSACBridgeProxy$child#1bcb21' defined in class path resource [conf/rsf-config.xml]: Cannot resolve reference to bean 'RSACBeanLocator' while setting bean property 'RSACBeanLocator'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'RSACBeanLocator' defined in class path resource [conf/rsf-config.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: org/sakaiproject/rsftest/model/RsftestItem

    1. Nov 13, 2007

      Aaron Zeckoski says:

      Oddly enough it looks like a capitalization error based on what you pasted. You ...

      Oddly enough it looks like a capitalization error based on what you pasted. You might want to double check the caps and if you could, please paste in the exact settings you entered which generated the code.

  3. Jul 22

    Steve Swinsburg says:

    Hi Aaron, A few things: 1. Instead of adding in Velocity as a presentation opt...

    Hi Aaron,

    A few things:

    1. Instead of adding in Velocity as a presentation option (ugh), how about Wicket?

    2. Since Eclipse 3.4 I've had issues with using the update site, keeps saying its not valid etc. I just grabbed the jar from the site and manually placed it (just thought I'd add that

    3. Underscores are not allowed in the package name but they are legal (ie uk.ac.lancs.e_science is not valid in the app builder but a valid package name)

    4. Key Name needs an uppercase first character but this then makes an uppercase first letter project name? Not a big deal I guess, just Refactor>Rename to lowercase