|
Sponsored Links
Resources
Enterprise Java Research Library
Get Java white papers, product information, case studies and webcasts
|
News
News
News
|
Messages: 8
Messages: 8
Messages: 8
Printer friendly
Printer friendly
Printer friendly
Post reply
Post reply
Post reply
XML
XML
XML
|
 |
OpenXava 2.0 released: Business Application Framework
OpenXava 2.0 is available for download. OpenXava allows you to develop J2EE business applications easily. It's based in business components defined with XML: for example, the "Teachers" application from the OpenXava home page looks like this:<?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE component SYSTEM "dtds/component.dtd"> <component name="Teacher"> <entity> <property name="id" type="String" key="true" size="5" required="true"/> <property name="name" type="String" size="40" required="true"/> </entity> <entity-mapping table="MYSCHOOL.TEACHER"> <property-mapping property="id" column="ID"/> <property-mapping property="name" column="NAME"/> </entity-mapping> </component> This is not a complete configuration file, but this is enough to allow use of an application to display and edit lists of teachers. The new features of version 2.0 are:- Model layer generated using POJOs.
- Persistence managed by Hibernate.
- Works in a simple Tomcat.
Other features of OpenXava are:- Has been used for years to develop real applications.
- High productivity for developing business applications.
- Short learning curve and easy to use.
- Flexible enough to create sophisticated applications.
- It's possible to insert your own functionality in every place.
- Based in the concept of business component.
- Adapted to work with legacy database schemas.
- Generate a full J2EE application: including User Interface and model classes (with POJOs or EJBs)
- Supports WebSphere 6.0, 5.1 and 5.0, JBoss 4.0.x and 3.2.x using native EJB CMP2 EntityBeans.
- Supports any application server (Tomcat, JBoss, WebSphere, etc) using POJOs + Hibernate.
- Supports JSR-168: All OpenXava modules are standard portlets too.
- It's tested with the portals: JetSpeed 2, WebSphere Portal and Liferay.
- Easy integration of reports made with JasperReports.
- Some little support for aspects.
- Licensed under LGPL.
- The developer can use English or Spanish.
- All labels and messages are in English, Spanish, German, Indonesian, French and Catalan, with more coming.
What do you think about using XML to define your application? What do you think about automatic GUI generation from model? Do you really think that JavaEE 5 without additional framework is enough to afford the development of real life businees application in a productive way? What do you think about a Java5 + @annotation version of OpenXava?
|
|
Message #209432
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
How about writing CODE?
I'm in the minority I'm sure, but I'm of the opinion if someone has the programming chops to architect an application in XML, they'd probably be better off actually writing code themselves and getting on with their life. Yeah, yeah I know that if the model were to change, a 10 year old could probably work out the XML enough to make it. But let's face it, only programmers are going to be changing it. So let's ditch the extra layer of uncessary goop and all of the parity issues that come along with it.
That said, XML is the perfect solution for a lot of things and I use it all the time.
|
|
Message #209444
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Re: How about writing CODE?
I'm in the minority I'm sure, but I'm of the opinion if someone has the programming chops to architect an application in XML, they'd probably be better off actually writing code themselves and getting on with their life. Yeah, yeah I know that if the model were to change, a 10 year old could probably work out the XML enough to make it. But let's face it, only programmers are going to be changing it. So let's ditch the extra layer of uncessary goop and all of the parity issues that come along with it.
That said, XML is the perfect solution for a lot of things and I use it all the time.
I would agree with you when talking about app-specific business logic. But it seems much better to generate the boilerplate "goop" than rely on doing it by hand. Ideally, the generators should generate empty app-specific logic modules which can be modified by hand without requiring a regeneration.
Also I prefer the idea of having the app model defined once in an XML file, rather than through annotations/metadata in the source which seems too code-centric. There a many facets of a model that cut across many artifacts. Better to define them somewhere that isn't an artifact itself.
I've not looked at this project so I don't know how well it fits my needs. Looks interesting though.
Question: does it have a visual model builder?
Kit (ex VB monkey ;-)
|
|
Message #209455
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Re: How about writing CODE?
they'd probably be better off actually writing code themselves and getting on with their life
I know that a lot of programmer are more confortable with Java than with XML. Java is their native language. (In fact OpenXava itself is written in Java, and Java is my native language) The problem is when your need to write a lot of low level code for obtain a common result. Sometimes, as in case of business applications, you need a higher level of abstraction, or else the task will be impossible. XML is perfect for that. Using OpenXava you mix XML and Java in order to develop complex application. But a lot of common tasks are already done by OpenXava.
uncessary goop and all of the parity issues that come along with it.
In OpenXava we struggle for avoid parity. For example, the model layer is generated by OpenXava from XML definition, but you does not need to write model classes, nor modifying them.
Cheers
|
|
Message #209456
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
does it have a visual model builder?
Question: does it have a visual model builder?
No, at the momment.
What type of visual builder is better for you? - UML? - Standalone or integragate in Eclipse? - Maybe a web application for develop web applications? - Or do you prefer to use third party tools for model OpenXava applications?
Thanks
|
|
Message #209531
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Re: does it have a visual model builder?
Question: does it have a visual model builder?
No, at the momment.
What type of visual builder is better for you? - UML? - Standalone or integragate in Eclipse? - Maybe a web application for develop web applications? - Or do you prefer to use third party tools for model OpenXava applications?
Thanks
Hi Javier,
Answer: nothing too complex.
IMO, a normal scenario would be
- Define the structure, ie. domain classes
- Add domain logic by hand
- Add DB mapping info
- Pick a generation strategy, eg. EJB3, POJOs + Hibernate, whatever
- Generate
- Make any additions needed to web layer controller logic
- Build & run
So the key thing is the structure, mappings and generation strategy. That doesn't even need a graphical builder really, more like a hierarchical tree view of the project. It just presents things in one place. UML may be overkill, but maybe allow for XMI imports.
On a slightly different topic, the most useful tactic IMO for generation is to generate a base implementation, and an empty subclass which is the one actually instantiated and used. The base classes can be put into their own package. Modifications by hand can be made to the subclass, and the generator never overwrites any existing subclass. If this tactic is used at key points in the project (domain classes, controllers, views), it keeps things simple & productive.
Hope that's useful.
Kit
|
|
Message #209532
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Re: does it have a visual model builder?
- Define the structure, ie. domain classes
- Add domain logic by hand
- Add DB mapping info
- Pick a generation strategy, eg. EJB3, POJOs + Hibernate, whatever
- Generate
- Make any additions needed to web layer controller logic
- Build & run
Sorry, 2 should follow 5.
|
|
Message #209542
Post reply
Post reply
Post reply
Go to top
Go to top
Go to top
|
 |
Re: does it have a visual model builder?
Hi Kit
UML may be overkill
Interesting commentary.
Time ago I used UML in this way: - Create my model using a UML tool. - Export to XMI. - Import from VisualAge using a XMI to EJB converter.
Yes, this was impresive at first glance. But this approach did not convince to me.
In the other hand, TogetherJ approach liked me a lot. You can use Java or UML, it the same, UML only is a viewpoint of your code. Not code generation and UML is always in sync.
About development cycle, yours is like OpenXava: 1. Define businees component, using XML 2. Insert domain logic, customizing predefined calculators or creating new ones. 3. Generate 4. Choose your controllers, customizing predefined actions, or creating new ones. 5. Build & run
I looking for a way for removing (or reducing) the generate step. I like touch and see, touch and see, touch and see.
the most useful tactic IMO for generation is to generate a base implementation, and an empty subclass which is the one actually instantiated and used. The base classes can be put into their own package. Modifications by hand can be made to the subclass, and the generator never overwrites any existing subclass.
Seems a good technique. The important thing in an active code generator is that user never touch the generated code. But, OpenXava uses other (maybe not better, simply different) approach. OpenXava uses strategy pattern to insert custom functionality using code generation.
For example, if you need a custom method in you generated class you can write something as this:
<component name="Carrier"> <entity> ... <method name="translate"> <calculator class="org.openxava.test.calculators.TranslateCarrierNameCalculator"/> </method> </entity> ... </component>
In this case the code for Carrier class will have a method translate which implementation is the TranslateCarrierNameCalculator. We use this technique with success for years, and we have noted that is possible to create calculators that can be reused several times.
Kit, thanks for your comments
Cheers Javier
|
|
 |
New content on TheServerSide.comNew content on TheServerSide.comNew content on TheServerSide.com |
 |
 |
Reza Rahman continues to explore the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6.
(January 21, Article)
Ted Neward is an independent consultant specializing in high-scale enterprise systems, and an authority in Java and .NET technologies. He is the author and co-author of several books, including Effective Enterprise Java. At TheServerSide Java Symposium in March, he will be presenting sessions on pragmatic architecture, ECMAScript and Scala.
(January 15, Article)
Now that Oracle is absorbing Sun Microsystems, there mixed views on what should come of the Java Community Process (JCP). While some say Oracle should become the new steward of Java and keep the JCP much as it was, others argue that it may be time to open-source this widespread language.
(November 24, Article)
Reza Rahman explores the features of the proposed JSR 299, Contexts and Dependency Injection for Java EE (CDI). When approved, it promises to be a key feature of Java EE 6.
(November 2, Article)
SAML is an XML-based standard for exchanging authentication and authorization data between security domains. The single most important problem that SAML was created to solve is the Web browser Single Sign-On problem. Many organizations are debating whether to stay with version 1.1 or move to 2.0. This article makes observations about both options.
(September 28, Article)
Joe Ottinger takes a look at how people learn, and applies it to the practice of programming. He notes that understanding how people learn is an essential part of working in a programming team.
(September 22, Article)
Stephen Maryka gave us an article about the Asynchronous Web and posed a number of questions that get examined like an approach to delivering Asynchronous Web capabilities through extensions to existing Java EE technologies.
(July 14, Article)
JavaServer Faces Flex goal is to provide users capability in creating standard Flex components, part of flexSDK which is open sourced through MPL license, as normal JSF components. This article by Ji Hoon Kim will provide an overview of creating a simple multilingual JSF page consisting of JSF Flex tags.
(June 29, Article)
In this session Jeff explores the key characteristics of successful SOA projects. He covers some of the patterns, and anti-patterns, tool sets, and strategies that he himself learned the hard way. Last, he provides a strategy and blueprint for achieving a high likelihood of success in your SOA project.
(June 23, Tech Talk)
Ari Zilka, CTO of Terracotta, Inc., talks about the new features in Terracotta 3.1, announced during JavaOne and available now.
(June 15, Tech Talk)
In this Tech Talk, Josh Long explores an integration challenge using Spring Integration and walks through the implementation, employing and expanding on the basic patterns of Enterprise Application Integration to tie together components into a function integration solution, and then demonstrates how Spring Integration helps address the integration requirements.
(June 15, Tech Talk)
In this Tech Talk, David Geary teaches you: The basics of Google Web Toolkit; How to implement Ajax-enabled applications in Java; Internationalization; Hooking into the browser history mechanism; Remote procedure calls.
(June 4, Tech Talk)
Jon Kern discusses the best architecture/technical solutions and ensure that they are repeated by all developers. By tackling the architecture up-front in a serial manner, subsequent parallel development will be much more manageable and predictable.
(May 28, Tech Talk)
This keynote describes the frustrations of modern knowledge workers in their quest to actually get some work done, and solutions for how to guard yourself against all those distractions. Neal Ford talks about environments, coding, acceleration, automation, and avoiding repetition as ways to defeat the misguided attempts to sap your ability to produce good work.
(May 26, Tech Talk)
Gil demonstrates how new, aggressive uses of already abundant compute capacity by common applications offer competitive value for application designers.
(May 21, Tech Talk)
Chris Keene introduces WaveMaker as a new way to automate the ability to generate Hibernate classes in order to more quickly bring OR mapping into an application.
(May 19, Article)
Download the entire book of Jakarta-Struts Live and learn about Struts MVC, Tiles, the Validator, DynaActionForms, plug-ins, internationalization, and more.
(Book PDF Download)
The Application Server Matrix is a detailed listing of J2EE vendors and their application server products, with information on latest version numbers, J2EE spec support and licensing, pricing, platform support, and links to product downloads and reviews.
(Application Server Comparison Matrix)
|
|