I've been working on an open source framework for some time now, which I have now released as BeanView 1.0. It can be downloaded from:
Briefly, BeanView allows you to create forms from your POJO + JDK 1.5 Annotations models. It supports generating forms for both Swing and Echo 2 user interfaces. No code generation is required - the form is generated entirely via reflection.
For example, let's say that you want a form for an Order, which is based on a com.example.Order JavaBean ("POJO"). Simply add the BeanView Swing panel to your app, pass in an instance of the Order, and you will automatically get a user interface form (complete with validation) based on the Order class properties and annotations.
Supported features include:
* Per visual widget error reporting
* Support for validation (both a variety of built-in validation types and an easy customization system)
* Support for a wide range of built-in data types
* Support for complex data models, such a mapping a collection to multiple selection list box, with custom factory methods via annotations
* Automatic configuration based on JavaBean meta-data (for example, if a JavaBean declares a get/setFoo(int input) method, will by default generate a text field with integer validation).
BeanView is intended to serve as a natural complement to the EJB 3.0 Persistence model and/or Hibernate or other "POJO"-based persistence frameworks.
The release notes include the following information:
1.0 What Is Beanview?
3.0 Trying Beanview Out
4.0 Getting Started Programming With Beanview
5.0 For More Information
This release includes the source, built javadoc, and binaries (JAR files). You can drop pre-built WAR files into your application server to try out the Echo 2 implementation, or quickly launch the Swing demos.
I'd be very curious to get feedback from java.net folks. I have experimented by dropping the Swing implementation into the NetBeans form designer as well as the Eclipse form designer, and it seems to work well. What other features would you need? I've looked at JSF + Creator support, but so far I've been happy with Echo 2.
In any event, take a look, play around with the demos, let me know what you think.
My previous article on web frameworks and the impact of Ajax got a lot of interesting comments. In no particular order, here are some of the general themes...
- The correct way to view the solution is more along the lines of a component framework, not a single web monolithic app.
Let's be clear - the JSF framework, and the profusion of third party components, are a very Good Thing(tm). There are an awful lot of web frameworks for Java right now, thanks to the efforts of a lot of passionate developers, but (especially for people new to the platform) it can be a bit overwhelming.
"Web presentation developer" was suggested, but that seems awfully close to "web developer." Maybe something like "Ajax Java developer"?
As a final note, there is a java.net project called facelets that builds on Hans Bergsten's thoughts regarding JSF without JSP. I haven't had a chance to play with it in depth yet, but it looks interesting.
Oh, and BTW, we still have a couple of job openings. Tell 'em Will sent you.
Today was day zero of the show - tutorials and NetBeans Day. In keeping with my ongoing interest in IDEs, I went to NetBeans Day.
There was a good deal of overview and introductions, but there was one big announcement - Sun is open-sourcing their collaboration tools. During the demo, an integrated chat window was shown hooked into NetBeans, with support for both text and audio chat. Simply dragging and dropping a project to an initiated chat session made all of the source assets visible to all parties. The remote user was able to take control and make changes and edits.
The collaboration tools shown are very powerful, both for remote users and even two users across the table from each other. True, this kind of capability has been demonstrated before (on the Mac, SubEthaEdit), but I'm not aware of such a cleanly integrated package, or anything like this for Windows (certainly not open-sourced). Folks use instant messaging software all of the time to collaborate, but it's a clunky affair compared to this.
Oh, and I just checked - they just posted the new Swing form designer, Matisse. There's also an early access of Creator 2.
That's a lot of bits to check out, and the show hasn't even officially started yet.
Tomorrow marks the start of the tenth JavaOne. Having attended every single JavaOne, it's a little disorienting (disturbing?) to think that it's now a decade old.
It looks like the advice for this period includes such pearls of wisdom as "the 10-year-old is very social," and "this may be a relatively calm period," and that the ten-year-old "is concerned about rules."
At first blush, the question seems to be: is there going to be anything interesting at this year's show? I've heard some folks wondering if Java is still interesting, but I think things are just getting started. On my short list for the show:
- Keep a scorecard in the NetBeans vs. Eclipse debate. Personally, I like both IDEs quite a bit, generally using Eclipse for more server-side work and using NetBeans/Creator for front-end development. It may sound a bit insane at first to use two IDEs, but I find that by splitting my time between the two for different projects, I feel a bit less reliant on a particular way of thinking. Things change, and we all win by having these two duke it out.
- See how the EJB 3.0 stuff is going along. I did write a book on Hibernate (blatant plug), and so I'm very interested in how (and when) EJB 3.0 material comes along. A beta of Hibernate annotations is a nice start, but not quite enough.
- I'm particularly interested in anything related to components at the show, as I'm on the expert group for JSR 273: Design-Time API for JavaBeans (JBDT).
- I'm very interested in the various presentation tier web frameworks at the show. I've seen people in forums referring to YAWF (yet another web framework), and there certain is no shortage of entries. I love the idea of the rich JSF component framework, but I'll confess that I'm increasingly sick of the reliance on JSP (as described in Hans Bergsten's Improving JSF by Dumping JSP, dated June 2004). The Echo Framework seems a lot closer to my hopes. Between the ongoing developments of the last year, the next version of Creator, the addition of Ajax to virtually every framework... it's going to be an interesting show for a presentation tier fellow.
...so, even after a decade, I'm finding there's still a lot to look forward to this year.
JavaOne this year is proving to be an exciting and interesting event. Between Hibernate and EJB 3.0, there is a sense that the persistence world is moving toward a more rational, coherent model. Initial skepticism over JavaServer Faces (JSF) is waning in the face of the broad tool and component vendor support. Many developers are warming up to the new features (and understanding the implications) of Tiger. All this interesting technology combined with a noticeably better economic outlook make for a pleasantly positive show.
In no particular order, here are some of the interesting personal highlights as of Monday:
- JSF is looking like a compelling component model for building web applications by assembly. In particular, there is a good chance we'll see a rich third party market for JSF components - one session I attended today showed sophisticated JSF components for charting and GIS. JSF components (and implicitly Creator) are going to have a huge impact on how we build Java web applications. There is some grousing about favorite pet features from other frameworks not appearing in JSF, but the writing seems to be on the wall.
- Sun appears to be reinvesting in 3D and entertainment technologies. This includes reinvesting in Java 3D, building game-centric OpenGL Java bindings, and the development of a server for massively multiplayer games. 3D technology plays a significant role in Project Looking Glass. It'll be interesting to see how this strategy unfolds over the course of the next few years.
- Tools, tools, tools. There are a huge variety of tools at the show, in addition to the JSF web/presentation tier Creator. Many vendors are demonstrating development tools integrated with Eclipse. Oracle's JDeveloper, available for a free trial (no timebomb, no restrictions) includes an astonishing array of functionality including Java/UML synchronized modeling and visual JSP design. NetBeans continues to advance, with a number of events planned for later in the week. Perhaps the most brutal thing for the various tool vendors is the sheer variety of frameworks in use. If you are attending the show, be sure to let the vendors know what frameworks you use now, and what you expect to be using over the course of the next year.
A good vibe, fun technology, new and interesting tools - a great start to the show.
I wrote this list up on the plane after reading several articles about how the technology business was in the doldrums, more or less arguing that we already had pretty much everything we need. The idea is so laughable... it reminds one of that infamous 1899 USPTO quote, "everything that can be invented already has been invented."
Take a look at the list - network aware UIs, security, and more. As a by-the-way, I do believe that Java could (or is) be a major force in virtually every one of these areas - or needs the innovation described (e.g. portable point energy sources).
As a brief disclaimer - I actually wrote this list a few months ago, but didn't bother posting it... like we need another coffeehouse pundit... but a friend told me I was to blame if the tech business collapsed because I didn't post it. Too much pressure for me...
Oh, and that USPTO quote...? Apparently, it's a myth. Go figure.
Feel free to either email me or post comments here...