Introduction
 

What is JGenerator ?

JGenerator is a powerful Enterprise Software Automation tool for generating Java that conforms to J2EE design patterns. JGenerator can create, compile and deploy Beans for In-Memory, JDBC, EJB, JSP and Web Service applications. JGenerator is both a product and a service from Javelin Software. With JGenerator you get the benefit of our real-world experience creating numerous working products, captured in both JGenerator and in the Consultancy that we offer.

JGenerator can be used to quickly generate and deploy your business components across a variety of technologies. JGenerator allows a single developer to rapidly develop and deploy complex, interrelated, high performance Java components whose business and architectural design may change in the future.

JGenerators design is at the the forefront of architectural designs by adopting a 'Component-Oriented' philosophy. This means that it makes a clear distinction (as possible) between Message V's Method (Interface V's Implementation) and Module V's Type (Architecture V's Data). JGenerator separates the Architecture and Data and the Interfaces and the Implementations. It is an evolutionary step beyond pure-EJB which tightly-couples both the interfaces to the implementation and the architecture to the data.

JGenerator has modules to generate the following:-

  • 1-tier (In-Memory or Serial File Beans)
  • 2-tier (JDBC or EJB Local Beans).
  • 3-tier (Web Services or EJB Remote Beans).
  • N-tier (Web Services)
  • JSP and HTML Fragments.
  • A JSP Administration System.

JGenerator generates code to the JBeans standard. JBeans is a standard that embraces all the nice to have aspects of Beans (properties, events) and EJB (Sessions and Homes), but none of the knives and daggers involved in each. JBeans defines a thin layer that hides the implementation details. Using JBeans means that you can migrate across technologies transparently.

 

Which Languages does JGenerator support ?

JGenerator creates pure 100% Java code.

JGenerator can also generate out SOAP publishers for all its interfaces. In other words your VB or C# programmers can use our robust and friendly to use interfaces. Any language that has a SOAP client stub compiler can talk to an application generated by JGenerator. JGenerator supports true enterprise wide deployment.

When was JGenerator written ?

The origins of JGenerator go back to the early 90's when we integrated several large static-data databases and fed the data out to other systems, for an investment bank. The business model was unstable right up to the release date. Every column required hundreds of lines of code to be written. We got the idea of writing a code generator that would encode design patterns, that we could then feed table definitions. A team of 4 managed to develop and deploy the whole project in a couple of months. The software is still running, nearly 10 years later.

Since then we've written several code generators, some with the meta-data based on the Java Beans standard, others based on UML.

In the early days of EJB we saw that EJB tools from Vendors would only produce vanilla code, and that EJB didn't address real-world scalability and transparency issues. It was obvious that most projects would require handcrafting. Another issue we had was that the EJB programming model had departed from the intuitive and easy to use Java Beans standard and now development required highly skilled programmers. Meaning that handcrafting by highly skilled programmers was required: not a very profitable mix.

To address the problems with EJB we developed a standard called JBeans, which encapsulated both the Beans and EJB standards. JBeans evolved over several large financial projects, so that we could optionally implement property files, real-time data feeds, Jdbc or EJB under a thin layer. This then allowed us to optimise and scale transparently. After perfecting the design we set about writing JGenerator to encapsulate our programming experience.

How does JGenerator Work ?

JGenerator works by reading in a business definition file and writing out different code depdending on which design patterns you choose. The business definition file uses our business definition language. The business definition language contains all the component definitions, type definitions, validation rules, finding patterns, supplementary files and name mappings. The business definition file also tells JGenerator which design patterns to generate.

Once the code is generated you can use our tools to compile and deploy the code.

Who was JGenerator written for ?

JGenerator was written for projects that require Java Components.

The main users of JGenerator are Architects and Senior Developers. They can use JGenerator to build the business components for a project, and supply them to the application developers. The can also modify the code that JGenerator produces if they wish.

Business Analysts can read the business definition file to explain the design of the whole system, rather than ask the developers to explain logic in the code.

The JSight module gives Administrators intuitive browsing across all keys and values in the database, and gives them the ability to edit beans with full validation. Complete administration systems, like JSight, normally take the same time to develop as the rest of the user interfaces put together.

JGenerator was designed to be used by Corporates to build complex, large scale projects. Anybody about to embark on a large scale project should consider using JGenerator to break that back of their development cycle.

JGenerator is ideal for Consultancies who are bidding for fixed price contracts. JGenerator takes many of the risks out of the pricing model because it eliminates so many of the costs and unknown quantities.

JGenerator fits into the model of a Recruitment Agency expanding into consultancy. JGenerator captures in code the skills that recruitment agents sell, meaning that they're selling the same thing. Agents can charge a premium rate for consultants that use JGenerator as they are more productive.

Small startups can use JGenerator to quickly build a platform on which they can develop their product and core functionality. JGenerator allows them to move their product rapidly into a new area if the business need arises.

Web Designers can use JGenerator to build a stable foundation on which to develop sophisticated Web sites. We've quickly built complex JSP web sites on top of the code that has been code generated by JGenerator.

Javelin Software also provide consultancy services to help you get the most out of the product.

Why should you use JGenerator ?

JGenerator has many technical and business benefits.

To read more about the business benefits click here.

To read more about the technical benefits click here.

We've encountered several objections to using a code generators, none of which are true for JGenerator.

  1. Code Generators are a good idea, but I can't wait and need the code new.
    JGenerator has already been written, you can automate your code generation today.

  2. If I don't like the code that is generated I'm stuck.
    With JGenerator you get all the source code, so you can change the code as you see fit.

  3. I can't integrate my business code.
    JGenerator has been written to allow in-lining, delegation and sub-classing of business code,
    so you can integrate your code as you see fit.

How should I Contact Javelin Software ?

Please contact Robin Sharp at Javelin Software for further information.