Discussions

News: Salmon LLC releases version 1.2 of The JADE Open Framework

  1. Salmon LLC has announced the release of The JADE Open Framework 1.2, an open source RAD tool for J2EE. New features in 1.2 include integration with Tomcat 4.1 and IntelliJ 3, and improved form validation, page navigation, bug fixes, etc. A new open source license also allows free use for commerical projects.

    Check out JADE 1.2.

    Press Release
    --------------------------
    Salmon LLC is pleased to announce the release of The JADE Open Framework 1.2, the open source rapid application development tool for the J2EE. Since the initial release of the framework four months ago we’ve have 34,000 downloads and a great deal of positive feedback and contributions from the open source community. Version 1.2 adds the following new features:

    1) Integration with IntelliJ IDEA 3.0.
    2) Integration with Tomcat 4.1.
    3) Improved form validation, improved navigation as well lots of additional features and fixes developed by Salmon and by folks in the open source community.
    4) A new license. The JADE Open Framework was originally released under the GNU GPL.Lots of folks complained about that and so we added a second license. If you register at http://www.salmonllc.com/register, you will be able use the framework under the Salmon license. This allows you to include the runtime in binary form with a non-open-source web site or web application developed with the tool. Whether or not you use the framework for open or closed source projects the price is the same (free).

    For those unfamiliar with The JADE Open Framework, it is an open source framework for Java web developers. It has three major goals:

    1) To provide strong foundation code for building database driven J2EE-based web applications.
    2) To improve developer productivity and to allow the developer to focus on business problems rather than on the infrastructure details required to make an application function.
    3) To achieve this in an open way that avoids “lock-in” to any one particular vendor, i.e. JADE applications can be written with a variety of development tools, run on a variety of J2EE servers and use all the popular database engines.
     
    The JADE Open Framework provides a class and tag library that employs commonly used metaphors to abstract and hide many of the time consuming tasks associated with J2EE development. As a result a JADE Open Framework application will require significantly less code, take less time to write and be easier to maintain than an identical application written with standard J2EE technologies. The framework further improves a developer’s productivity by extending Macromedia’s Dreamweaver so that visual portions of an application can be “painted” instead of hand-coded. The framework also provides code generators for many non-visual tasks such as database access and event handling. Finally, JADE integrates these tools, along with J2EE servers (Apache Tomcat and BEA Weblogic), into best-of-breed integrated development environments (IntelliJ IDEA and Eclipse) to speed up and to ease coding, testing, and debugging.

    For more information on The JADE Open Framework take a look at http://www.salmonllc.com/jade
    The JADE open framework can be downloaded free of charge from Source Forge at
    http://www.sourceforge.net/projects/salmon

    About Salmon LLC:

    Founded in 1995, Salmon LLC specializes in the development of Java applications using object-oriented languages, tools and techniques within intranet and Internet and architectures. Project management skills and in-depth technology expertise provide a basis for cost-effective solutions and flexible business arrangements. We offer both traditional consulting and fixed-price solutions. Find out more about Salmon at www.salmonllc.com.

    Threaded Messages (20)

  2. Dan,

    The online "Navigation Bar" Code example throws a Tomcat internal server error. Since this is one of the areas listed in 1.2 improvements, I wanted to take a look at it.

    The URL which doesn't work is:

    http://www.salmonllc.com/jadeExamples/Jsp/example7/NavigationBar.jsp

    I've taken a pretty close look at JADE, and am thinking of using it for a large project I'm getting started on. Navigation was one of the weaknesses, providing only a verticla navbar, with no horizontal. So I'm curious as to what improvements you made in this area for 1.2.
  3. We added a horizontal attribute to the navbar. By setting the property to true in the JSP or in the controller you can switch from vertical to horizontal navbar orientation. Also with the old navbar, the popup menu's only worked in Internet Explorer. Now they work in Netscape 6 and 7 also.

    I think what may of happened on the site is that the examples were updated, but not the framework itself. I'll have a look at it on Monday. But the example works fine in the downloaded. Take a look.
  4. Pete,

    I took a quick look and some of the JSPs in the example application were out of data. I put the latest on there and the navigation example is now working. Take a look if you get a chance.

    http://www.salmonllc.com/jadeExamples/Jsp/example7/NavigationBar.jsp
  5. Hi,
     
    Just saw your post on TSS and I must say JADE looks pretty nice based on my cursory look. I have been looking for a ASP.net equivalent in the JAVA JSP world and it looks like Jade may fit the bill.
     
    1. Do the JADE gui's render properly in NS4x? I know it is an older browser, but most NS users are using 4.x versions. And since the browser still has a 7 to 10% market share, it can't be ignored even if I like to.
     
    2. I did not see any built in validation routines but I am pretty sure you have them. Assuming that you do, do you provided both client and server side validations that you can bind to gui widgets?
     
    3. I use Resin as the app server and I also like to use Resin's database pool. It is easy to point to a pool rather than a driver ?
     
    5. Do your data objects support some sort of caching capability?
     
    6. You say that you support/use MVC, so I guess you don't use a 'postBack' method that you see in ASP.net? I am thinking in terms of user feed back to bad form entries or success and failure of database interactions.

    7. Do you guys have state-maintenance mechanism where page state and gui widget state is automatically handled by the framework? ASP.net makes this really easy.

     
     
    Your choice of tools to support is right on the money, you can't beat IntelliJ and Dreamweaver MX.
     
    There seems to be some sort of problem downloading JADE from SourceForge, I'm sure it will clear up later.
     
     
    Thanks,

    Stefan
  6. 1. JADE GUIs do render properly in Netscape 4 except for some of the complex components that require a lot of style sheets and javascript like the navigation bar popup menus. In fact a lot of JADE was written for Netscape 4 several years ago when it was still the dominant browser, but we don't focus on it anymore like we used to. Take a look for yourself. Point your Netscape 4 browser to http://www.salmonllc.com/jadeExamples
     
    2. JADE has extensive validation functionality. Take a look at page 42 to 51 of the user guide at http://www.salmonllc.com/website/Jsp/vanity/bin/UserGuide.pdf
     
    3. There are currently a few bugs in Resin that we have to work through before we can certify that JADE works properly there. It is one of the items on our to-do list.
     
    5. Our data objects do caching of sorts. They retrieve the result set and hold it in app server memory until you are finished with it. This allows for things like paging lists. We don't cache the whole database in J2EE server memory, however because it presents all sorts of problems with clustering and if any other application needs to update the database.
     
    6. Interactive pages that provide user feedback to things like form entries are very easy in JADE. Take a look at the data entry example at http://www.salmonllc.com/jadeExamples/Jsp/example8/ContactList.jsp. Try to add a new contact to the list, but don't fill in any of the fields and you will see examples of interactive validation and automatic state management.
     
    7. JADE does handle all the session stuff for you. Every page will remember its state no problem if you want it to, with no developer code required.

    8. Source forge can be flaky at times. I just tried to do a download and it worked. I would try a different mirror if you have trouble.

    9. Choice of tools was easy. For HTML/JSP we couldn't find any tool out there with the functionality of Dreamweaver. For the IDEs, we tried a ton of them and found IntelliJ to be the best one and Eclipse to be the best free one (no flames please, this is my opinion).

    This is one of the big problems with Java as we see it. The tools are generally so poor that it makes it too easy to justify a switch to dot net. There was a posting on here a few days ago that caused quite a stir over a rewritten Petstore application that didn't perform well compared to dot net. We haven't had any trouble with response time using JADE or the J2EE even on inexpensive hardware, but from my point of view it wouldn't be that big a deal if we did because we can just throw more hardware at the problem and hardware is getting cheaper all the time.

    The thing that is troubling to me is that a J2EE application takes so much more code than Microsoft and most of it has to be developed by hand. I don't have any stats to quote, but from experience I would say that most of the cost of enterprise development is developer time (which isn't getting any cheaper thank goodness). If you can develop a web app with equal quality in less time with Microsoft the J2EE has a serious problem.

    Rapid Application Development tools for the J2EE typically haven't existed or have been really bad. Part of what we are trying to do is provide a quality alternative to dot net studio so Java doesn't die off. We are trying to do what Microsoft does in terms of increased programmer productivity and strong tools, only our stuff is free and doesn't lock you in.
  7. Dan,

    The NavBar is working now, and it looks good. For this project, I can live with no NS 4 support (other aspects of the UI won't support NS 4, so no big deal if JADE isn't strong there).

    I'm about 2 weeks away from diving in, so I'll download the latest JADE and put it through its paces again. I use Eclipse heavily now, and can use Dreamweaver MX, so I'll give JADE a try with those tools.

    I do want to commend you on your responsiveness on these forums, and also on the quality of JADE's documentation and tutorials. I was able to find my way around JADE and get reasonably up to speed very quickly; much more so than is typical for an open source project of JADE's depth and breadth.

    Keep up the good work.
  8. Thank's Pete for your nice comments. A big part of JADE's mission is to make things as easy as possible for developers. Good documentation is a big part of that.
  9. I cannot install Jade 1.2.

    When I run the JadeInstall.exe, it seems ok at the beginning. Then it asks to install Tomcat 4.0. That
    is ok. I install it in a non-space directory, like
    c:\tomcat4. When Tomcat is finished installing, I close
    it. But the JadeInstall.exe popup to install Tomcat 4.0
    again and again, but not continue it's other following
    steps. I have to use Windows Task Manager to close the
    installation.

    It seems JadeInstall.exe does not know Tomcat is successfully installed.

    Please tell me how to solve this. I am using Windows XP.

    by the way, why I must use the Tomcat in the package. I
    hope I can install my own latest Tomcat and ask Jade to find it, like Intellij 3.0, which is installed separately.

    Thanks

    Sheng
  10. Usually the reason for the tomcat install popping up is the space in the directory name. You should double check, because apparently it is hard to see the space on the Tomcat installer dialog. Also, some people have tried to install in a directory like c:\program files\tomcat4. That doesn't work because of a space between program and files.

    You can use any version of Tomcat 4.0x with the default JADE install. If tomcat is already installed, it should find that and not try to install a new version.

    You can also use Tomcat 4.1, but it requires an additional file to be downloaded (JADETomcat41EA.zip).
  11. Will you have plug ins for JDeveloper or Sun One Studio?
  12. At this point we don't have any plans to, but you never know. A lot depends on the open source community, if people there want to build plug-ins for their favorite IDE or contract with us to do it.
  13. This looks like an excellent package, and is a very welcome advancement in web-based GUI tools for java...

    Well done guys!


    I have a concern though, and forgive my ignorance if it is off base.

    The JADE framework seems to force a specific type of data model through the use of various "DataStore" objects, and from what

    i can understand, these are meant to act as the model for the custom JSP tags supplied with the framework.

    These DataStore objects appear to be tightly coupled to the relational nature of the underlying database, and in fact appear

    to be designed to hook directly into the database, at least that is what i could glean from your "Case Study: Jade Open

    Framework" whitepaper.


    So my concern is this:

    What if my development process starts with my own data model, one that is more "object oriented", and more importantly, more

    closely matched to my problem domain, using regular java beans?

    What if i tied this data model to the database using an O/R mapping layer, like Hibernate or Castor?

    Or decided to forgo an RDBMS in favour of an object database, like db4o?


    In other words, i am not really interested in having JADE define my data model, but i am still very keen to leverage the RAD

    nature of your GUI framework, to quickly build a web-based presentation layer on top of my data model.


    Will this approach conflict with the JADE framework?


    If not, then could you recommend any "best practices" for interfacing a custom data model with a presentation layer built

    using the JADE framework?




    any guidance would be most appreciated.

    Peter
  14. please forgive the formatting in the previous message, not sure what happened there :-/

    Peter
  15. Actually JADE can get to lots of different kind of data using different kind of datastores. The Datastore (actually its ancestor the DataStoreBuffer) serves as a conduit between the GUI and the back end. There are several flavors of Datastore buffer that you can use depending on the back end you want.

    We have a regular datastore that goes to a SQL database. This one is the most commonly used so it is the one most often talked about.

    We also have a BeanDataStore for getting data from Java beans. This basically lets you bind an entity EJB, EJB value object or any other generic bean to the GUI component. I think this is what you are looking for.

    We also have datastores that let you hook into content management systems and xml and are working on a web services datastore to get data from a web service.
  16. awesome, could you point me to some more extensive documentation on this?

    Peter
  17. See Building a Model from a Bean, page 33 of the User Guide at

    http://www.salmonllc.com/website/Jsp/vanity/bin/UserGuide.pdf
  18. I read the User Guide, but couldn't find out how to dynamically select the next page. As I understand, by default the JADE framework will use the same JSP page to generate the outbound HTML page, after a submit from that same page. I was expecting to be able to specify a different JSP page in the controller class (after processing the submitted form data).

    Am I missing something, or is this not possible with JADE?

    Thanks,

    Rogerio
  19. With JADE, you submit back to the same page and then the page can do a redirect to a new one:

    public static boolean submitPerformed(SubmitEvent e) {
       if (e.getSource() == _nextButton)
          getCurrentResponse().sendRedirect("NextPage.jsp");
       return true;
    }
  20. Ok, but what about a forward? An HTTP redirect is not desirable, since it will cause the browser to send a new HTTP request. A forward, however, would be done in the server itself, and be transparent to the browser.
    On the other hand, the use of the RequestDispatcher.forward method would require that the "<jade:page />" tag in the web page return SKIP_PAGE in the implementation of Tag.doEndTag. That's why you need an explicit method in the JspController base class that performs page forwards.
  21. We have found that send redirect works very fast and is simple so that's generally what we use.

    Also forwards can be a bit odd because the user sees one url in the browser, but is really looking at a different page so things like bookmarking can become a problem.

    But if you feel this is important, we are always happy to work with developers in the open source community. If you have some ideas on what specifically needs to be changed to support this functionality, please send us an email at jade at salmonllc dot com and we'll see what we can do.