News: Leeonsoft releases Dreamsource, a RAD application for J2EE

  1. Leeonsoft has released Dreamsource, a J2EE application generator that builds an application based on database schema and user input. The basic edition uses JDBC to access the data directly, whereas the professional edition uses EJB in front of JDBC.

    The goal of Dreamsource is to allow users with fairly little Java experience to create a functional application to access data.

    A demo version can be downloaded from their site.

    With the current exposure given to Ruby on Rails, applications like this look like they might have some leverage. What do you think? Is something like this useful as a "starter application" that others can change into a full-fledged custom application?
  2. Hmmm, I wonder how much it costs? Also, who uses entity beans these days? Also, the Servlets+JSP combination worries me - why not use a web framework? That might help get rid of their script-ridden JSPs. For example?
        int i = 0;
        Iterator iterator = ordersDataBeans.iterator();
        while (iterator.hasNext()) {
            OrdersDataBean ordersDataBean = (OrdersDataBean)iterator.next();
            OrdersPK ordersPK = (OrdersPK)ordersDataBean.getPrimaryKey();

            Integer custId = ordersDataBean.getCustId();
            String custIdString = "&nbsp;";
            if (custId != null) {
                custIdString = custId.toString();

            BigDecimal discount = ordersDataBean.getDiscount();
            String discountString = "&nbsp;";
            if (discount != null) {
                discountString = discount.toString();

            BigDecimal total = ordersDataBean.getTotal();
            String totalString = "&nbsp;";
            if (total != null) {
                totalString = total.toString();

            Integer status = ordersDataBean.getStatus();
            String statusString = "&nbsp;";
            if (status != null) {
                statusString = status.toString();

            java.sql.Date entryDate = ordersDataBean.getEntryDate();
            String entryDateString = "&nbsp;";
            if (entryDate != null) {
                entryDateString = entryDate.toString();

            java.sql.Date shipDate = ordersDataBean.getShipDate();
            String shipDateString = "&nbsp;";
            if (shipDate != null) {
                shipDateString = shipDate.toString();

    Is this really a good starter app for folks new to J2EE?
  3. Noooooooooo !
  4. Noooooooooo !

  5. Man, these guys are about 3 years behind the curve, aren't they? This is just going to encourage more embarassing .NET comparisons.
  6. I think generating persistance code from the database schema is a great idea.

    For me it follows the DRY (don't repeat yourself) pattern, I can specify my tables and attributes once and I don't have to repeat those attributes between value objects, dao's etc.

    Ian Purton
    Get Things Done
  7. I really, really, like code generation and generating persistance code from the database is in most projects a good thing to do, BUT, for this kind of product to be successful it can't rely on its own web framework, and support for Entity beans instead of Hibernate??? (3 years behind the curve as somebody else stated...)

    Sure this kind of product might be good to developers with little Java experience, but for this AppFuse do a much better job.

    To summarize I think that a code generator that works like Dreamsource but have support for this combination: "Velocity/Webwork/Spring/Hibernate" might have a little success...

    Issue tracking and project management made easy
  8. Dreamsource generates the source codes for 1. servlet->JDBCHome->RDBMS, 2. servlet->session->JDBCHome->RDBMS, 3. servlet->session-entity bean -> RDBMS. So it is not correct that Dreamsource only supports entity bean.

    The challenges we are facing to build J2EE applications are how to build complex and customized SQL queries and build a web part. Dreamsource can allow users to build and test complex and customized SQL queries, and then generate source codes for them. When you see the following code, do you know who wrote it? The answer is Dreamsource generated it.
    public Collection findCustomersBasedOnSalesrepLocation(String city1, String state, String _orderBy)
                throws JDODataStoreException, JDOInvalidRequestException, JDOFatalException, JDOUserException {
            JDBCHomeFactory jdbcHomeFactory = _cacheManagerFactory.getJDBCHomeFactory();
            CustomersJDBCHome customersJDBCHome =
                (CustomersJDBCHome)jdbcHomeFactory.createJDBCHome(CustomersJDBCHome.class, _persistenceManager);

            Select select = new Select(_fields);

            JoinCondition locationsSalesrepsJoinCondition = new JoinCondition();
            locationsSalesrepsJoinCondition.add(LocationsTable.getLocationField(), SalesrepsTable.getRepLocationField());

            LocationsTable locationsTable = new LocationsTable();
            SalesrepsTable salesrepsTable = new SalesrepsTable();

            JoinTable joinTable0 =
                locationsTable.join(salesrepsTable, JoinTable.INNER_JOIN, locationsSalesrepsJoinCondition);

            JoinCondition salesrepsCustomersJoinCondition = new JoinCondition();
            salesrepsCustomersJoinCondition.add(SalesrepsTable.getEmplNumField(), CustomersTable.getCustRepField());

            CustomersTable customersTable = new CustomersTable();
            JoinTable joinTable1 = joinTable0.join(customersTable, JoinTable.INNER_JOIN, salesrepsCustomersJoinCondition);

            And and = new And();
            ConditionField conditionField = LocationsTable.getCityField().eqs(city1);

            ConditionField conditionField1 = LocationsTable.getStateField().eqs(state);

            Condition condition = new Condition(and);


            return customersJDBCHome.findBySelect(select, joinTable1);

     Dreamsource can generate all source codes and deployment descriptors without users writting single line of code. Yes. I admmit Dreamsource doesn't generate major web framework source codes. It is a drawback for advanced Java programmers. Dreamsource will support struts in next release.

    Dreamsource pricings are $299 for basic edition, $499 for professional edition per license.

  9. I wonder if they've used middlegen at the basis of their product. Ithey didn't than they've thrown all their money out of the window. I myself am an old user of Middlegen and I've written over the time (more than 1.5 years time span, I developed it exclusively based on my development needs, there's no single piece of unneeded functionality there) a complete plugin for middlegen that seems to generate far more 'usefull' things than the advertised product. Of course I don't generate JDBC, I'd only use JDBC in conjunction with Spring's JDBC support :-D.

    I'm generating the application in a layered approach (web tier/swing gui - services - dao) and the current dao is hibernate, but thanks to the layered architecture, to switch to iBatis I'd only need to write a little sub-plugin that would generate the dao implementations (I'm using Spring as IoC, this is no news - I think you'all have already expecting that :-)) - so each layer has a interface/implementation separation which makes swithing persistence a breeze).

    Unfortunately yes, there are already alternatives in Middlegen for most of the parts I generate BUT I've written my own because I don't like them :-D. Anyway I use the excellent middlegen-hibernate extension and anything in middlegen that is worth(there's a lot actually)

    After I've seen this product I'm considering making it commercial, or better, give it back to the middlegen team where it belongs :-)

    So I am stunned that a commercial company comes out and sells something that was working since at least 2 years in the java community. huh :-D

    If somebody is interested: dorel.vaida at gmail dot com.
  10. btw[ Go to top ]

    btw I suspect there are lots of developers who did exactly what I did :-)