Announcement Announcement Module
No announcement yet.
Video Tutorial for creating Spring Roo Advanced Addons Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • Video Tutorial for creating Spring Roo Advanced Addons

    Hi All,
    I have created some videos which explains how to create, package, install and run Spring Roo Advanced Add on. The same video show has a short code walk through explaining the code of Advanced Addon.

    I plan to put couple of more videos for the addons I am creating myself. One being a security addon which does database based security, register, email etc.


  • #2
    Hello Rohit

    Thanks for share your knowledge, it is useful for everybody!!!!

    My Best Regards


    • #3
      Thank you for sharing, can you share more about your security addon, its complete features, where it is being published (github, google code,

      I have been working on one too, but so far its mostly been about the end result code (and not how Addon specific stuff) so haven't published any thing.


      • #4
        Here is the complete feature set for my security addon

        1. Use Entity classes for User, Role and UserRole
        2. Change to Database Authentication Provider in applicationContext-security.xml
        3. Put in Forgot Password
        4. Put in User Registration with captcha
        5. Put in User Activation
        6. Put in Password encryption
        7. Put in Change Password and may be Change Profile as well.

        Sorry, so far I haven't uploaded the code anywhere. I have kindda finished on top 2 items for the addons.



        • #5
          Hi Everyone,
          Sorry for the spam, but in my earlier link my first tutorial link wasn't appearing, so posting all the youtube video links here

          1. Part 1 -
          2. Part 2 -
          3. Part 3 -
          4. Part 4 -



          • #6

            ->features , neat stuff. I wonder how you wish to handle email messages. I looked into using spring integration email support, which it's self could be abstracted as a plugin. (I wonder how could one plugin use another plugin to avoid duplication of functionality)

            There is a nice writeup by gordondickens (on of the spring ROO in action authors)

            My initial interest was centered around ACL. I have had to come up with more than a few applications which required ACL setup in the past few months, and I strongly felt that an ACL recipe with ROO could save lots of time for lots of people


            • #7
              Hi Hatim,

              This is actually very easy, I use

              @Reference Shell shell;

              in my Operations class

              then I just say

              shell.executeCommand("entity --class ~.model.WebUser --testAutomatically");

              I was advised against this, just because if the dependent plugin changes, the code breaks. However, I am using all Roo basic addons, so it safe.

              For email I just use
              shell.executeCommand("email sender setup --hostServer ....");

              Also, I was studying GWT Addon as its pretty big and complex, and I want to create an addon of the same complexity. This is what I understand so far.

              1. When we develop addon there is
              a. Managed Code (or Active Generation code), which has to get updated if the code it depends on (e.g a Entity) changes. This require quite a lot of work
              b. There is a unManaged Code (or Passive Generation code), which ones generated, is not required to be maintained.

              2. For Managed code like entities and its controller, I simply choose to use shell.executeCommand() to basic spring roo addon do Active Generation. However, soon I will have to jump in and write code which does active generation of some of my classes from Entity classes.

              3. For Passive Generation, I looked up GWT Addon. They simply store lot of class files as These files had code as follows

              package __TOP_LEVEL_PACKAGE__
              import ...
              import __TOP_LEVEL_PACKAGE__.__SEGMENT_LEVEL_PACKAGE__.ab c;

              public class XYZ{


              They simply copy these code using FileCopyUtils and while copying they find replace __TOP_LEVEL_PACKAGE__ with actual package.
              I think this is fair enough for passive code generation (as active code generation is lot of effort, not saying they don't have ready made code for this, but effort is great).

              4. When it comes to modifying XML files, its lot more easier than both Active or Passive Code Generation, you simply use XMLUtils along with standard w3c DOM manipulation using Nodes, Elements.




              • #8
                I'm new in Roo and I want to play a little bit with advanced addons in the future. I understand from examples that with ClassOrInterfaceTypeDetailsBuilder i can create new java classes, but how can i create packages for my souces like in controller all command.May be it's a stupid question, but i'm a little bit confused right now about this detail