Announcement Announcement Module
Collapse
No announcement yet.
documentation for greenhouse? Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • documentation for greenhouse?

    The code is reasonably commented but shy of stepping through everything with a debugger is there a design doc or any documentation and/or videos that show how greenhouse hangs together and how it uses point-by-point to the spring features? I'm looking for a birds-eye view after "A guide to building and running Greenhouse locally" is running.

    Keith, do you have a video and/or ppt from your Chicago presentation?

    http://www.springone2gx.com/conferen...ssion?id=20328

    Thanks.

    -John

  • #2
    John,

    We're working on a article that goes into Greenhouse's architecture. Can you wait a few weeks? I can post my presentation in the mean time (it's a bit high-level though).

    Keith

    Comment


    • #3
      Inside the greenhouse?

      Hi Keith,

      Did you upload the presentation yet? If so, where can I find it?

      Thx.

      -John


      Originally posted by Keith Donald View Post
      John,

      We're working on a article that goes into Greenhouse's architecture. Can you wait a few weeks? I can post my presentation in the mean time (it's a bit high-level though).

      Keith

      Comment


      • #4
        John,
        Here's a presentation that is more up-to-date and along the same lines: http://s3.springsource.org/MVC/green...chitecture.pdf. Specifically, it shows how Greenhouse's architecture is evolving as we approach the upcoming S2G Forum in Amsterdam on May 26th. We'll be publishing a lot more content as that date approaches (that's what I'm currently working on).

        Keith

        Comment


        • #5
          How to make greenhouse even Mo betta'

          Hi Keith,

          Thanks for the slides. As you may have guessed, I've been reviewing greenhouse to understand Spring. Here is some feedback based on the pdf presentation you provided + my experience experimenting with the greenhouse code. I hope this feedback helps you make greenhouse more successful and helps you prepare for the S2G:

          1. LOOSELY COUPLED DB: When you move to MySQL it would be nice if you could loosely couple the design so it could be easily swapped to another database (MS-SQL/Oracle/NoSQL)

          2. KEEP REST: Good decision to move to single-page JavaScript app, but please don't lose the REST links. Annoying when you can't save off a link to a drilled down page and I like this with the current greenhouse. Check out window.location.hash as a good way to dynamically change content, provide a new RESTful URL, but perform a round trip.

          3. MORE MODULAR: If possible, it would be nice if the spring features were modular within greenhouse. For example, if someone doesn't have a mobile requirement or social requirement they can easily disconnect those greenhouse features (delete the unneeded code an pom dependencies) and still have a functioning site. I know it is possible to do this because I experimented with cutting both of these out (views/java/pom) but it would be nice to see it more modular as these dependencies were all over the place and required lots of hacking to remove. I can also see situations where you want both mobile and social but no security requirement. Having the code more modular would allow one to leverage geenhouse a-la-carte

          4. CLIENT SIDE VALIDATION: signupFormFragment.jsp is currently using server side validation which has the slow round-trip consequence. It would be nice to see a good client side validation example that stores form data on the back end.

          5. EXTENSION EXAMPLES: It would be good to have a clear example on steps for an end-to-end extension of new pages to greenhouse. Something like how to create a help page:
          A. in views folder create (or copy) help.jsp and tiles.xml
          B. rewire tiles.xml to point /help to help.jsp
          C. in java, create (or copy) new folder with HelpControler.java and package-info.java
          D. wire HelpControler.java @RequestMapping to the view (this is what maps it to your tiles.xml)
          E. Add any business logic classes as needed.

          Having a good A-E example would have saved me a time figuring out how it worked. I haven�t tried testing the mail feature yet but a good �how to create your own response email� example would also be helpful.


          5. CODE REDUCTION/AUTOMATION: Spring seems like a significant code and effort reduction over Struts but the amount of java that has to be manually written (A-E) makes the experience not very RAD. Ideally I would have something like an eclipse plugin "create a new form" and it would generate A-D automatically. As I add a new input control to the form a matching bean would automagically get created with the correct field name mapped saving tons of time creating beans and reduce errors. Perhaps I�m dreaming, but FYI this is pretty much what MS Visual Studio MVC will do for you + wire it will wire to the database. This would save TONS of generally unnecessary coding time but still allow you to add special business logic as needed. If there are tricks/tools to have Spring development be more rapid I�d love to learn about it.

          Comment


          • #6
            Thanks for the comments. All good suggestions we are definitely keeping in mind. Re #3: If you wouldn't mind, if you could pull & review the latest code on github and offer specific thoughts about where you think we could further improve modularity? The module boundaries of Greenhouse should be clearly defined, and we have performed a structural analysis. Where you can think we can do better still, please let us know specifically.

            Re: #5, you might want to checkout Spring Roo, as it provides a command-line shell you can use to generate application artifacts. Currently, Greenhouse is not showcasing any code generation tool because one of it's major roles is to lead the way in demonstrating (and driving) the latest advances/simplifications in the Spring programming model itself (and we'll generally be ahead of what code generators support because of this). I can recognize the value in such a generation capability, though. And I also recognize the view layer particularly can be simplified (for example, it should be possible to eliminate the need for a tiles.xml for most cases). This is something are working on.

            Keith
            Last edited by Keith Donald; May 13th, 2011, 12:49 PM.

            Comment


            • #7
              How to make greenhouse even Mo betta' -- #3 modular enhancement

              FOR #3. I suggest defining the lines on each of the spring features (security, social, mobile, etc) and any 3rd party dependencies (such as database, tiles, etc). The best way to test the dependencies is to remove those jars 1 at a time leaving all else equal and see how many files break. See how much code you have to comment out or swap with a replacement before you can re-deploy a functioning greenhouse w/o that feature. Is the code mostly compartmentalized into a couple of files (e.g., comment out those java files and you are good to go) or is do the dependencies run through the whole project which tightly couples everything together.

              THEN DOCUMENT HOW TO POP OUT EACH FEATURE

              Hope that helps.

              -John

              Comment


              • #8
                The code is compartmentalized, but there's not documentation on how to "pop out each feature". Thanks for the input.

                Keith

                Comment


                • #9
                  Post S2G Forum release?

                  Hi Keith,

                  Now that we are past the S2G Forum in Amsterdam. How are things coming along with the new greenhouse release. In particular I'm interested in the following:

                  * MySQL support
                  * page-centric web site
                  * documentation

                  Thanks,

                  -John

                  Comment


                  • #10
                    The code is fully open source, and you can always review the latest activity over at github. For the forums we plugged in Redis but are still using H2 as our database. To port to MySQL would require updating the DB schema to be MySQL compatible, then performing a migration of the data on our production instance. We haven't put as high priority on this as other things.

                    As for the other two, I am beginning work on making the HTML client single-page/JavaScript-centric. We're also starting a blog series on "The Greenhouse files", covering various aspects of the application and the unique application of Spring to do things like implement an OAuth provider, a continuous deployment process, and a common REST API shared by mobile and web clients, among other things. Stay tuned for that at blog.springsource.com.

                    Keith

                    Comment


                    • #11
                      Hi Stark you article about green house is really great and thank you so much for sharing these valuable information to all of us..

                      PHP Web Development Company India

                      Comment


                      • #12
                        Hi....where can i get presentation....????

                        If uploaded please share....!!!!

                        Comment

                        Working...
                        X