Do you know Griffon? No? In short: Griffon is a Grails like framework for writing RIAs on the JVM using Groovy.
Look here for more information:
(And here a link to a nice groovy resource)
Just two links:
Size for version 20091025: 2.1 MB (core); 2.8 MB (dependencies)
Now Eclipse and NetBeans gets some really nice competitor 🙂 !
Now the JSR330 is final! This was really fast (because of JEE 6)!
From the JSR:
This JSR will standardize:
The code is located at google.
I read an interesting blog entry at Google, where they talk about Thread Weaver (Apache license), which can be used to test against synchronization issues.
Maybe you already know it;
there are several docking managers and since April 2009 (3.0) you can include VL Docking for free even in commercial applications, because its LGPL!
The good thing about VL Docking is (and of MyDoggy by the way …) that it is well integrated into the Spring RC project.
More information about VL Docking
Inactive projects
Please let me know if you know other libraries which support ‘window docking’.
In an old post I listed all Java libraries,where only two application frameworks were listed.
Today it is time to list some client side Java application frameworks, because I discovered some new ones while reading the W-JAX announcement. Some of the listed frameworks will make developing application with DB easier. And some of them are real 3 tier architectured frameworks. Some of them even allow you to develop RIA’s and web frameworks at the same time.
Here is now the list of open source Java application frameworks especially for the desktop. Feel free to add some more (via comment):
Especially JVx with a webstart demo looks very promising! It even feels better and faster than an ordinary flash application!
Commercial:
I listed only frameworks which help developers to easier build client side desktop application and only if they run in the JVM. So frameworks where the client is browser-based (aka web frameworks) are not listed here.
For a good list of J2EE frameworks go to java-source.net or to wikipedia. (Or here, or there, or even here)
Update: For additional comments look at dzone
In short: To share settings (e.g. code formatting) from NetBeans with Eclipse a little bit work has to be done.
For NetBeans you have the following possibilities
'home'/.netbeans/6.0/config/Preferences/org/netbeans/modules/java/source/CodeStyle/default.properties


As always I would like to know where I was correct and where the picture has holes or even mistakes.
You could use the comment functionality to make suggestions!
And check this post for a buildr vs. gradle comparison.
In one of my last posts I listed some xml serializers and binding tools. After trying XStream, JAXB, XmlEncoder, Apache Digester and X2JB I decided to create another one: xvantage!
Why yet another xml tool?
To make it clear: At the moment xvantage is in its early stage (one week old) and I hacked it down in some hours of my spare time. So it is not a fully fledged and bugless solution like the other ones should be.
But it has some new ideas included to make the serialization as easy as XStream and XmlEncoder, but to make the xml checkable through an xsd file. The advantage of a valid xml is first of all: “then you know all is fine” and second “It is nice to read and editable from a person!”. The latter one was very important for me and is really important for xml configuration files.
Apache Digester was another candidate but the set up was relative complex and the dependencies are to big for me. And last but not least: you need an additional, not further developed library (Betwixt) to make writing working too! So xvantage seems to solve at least these two problems: it is small and it can write xml from your POJOs and read it back.
How would it look like to write my objects?
// Create a data pool with all your POJOs you want to serialize
DataPool pool = new DefaultDataPool();
Map<Long, SimpleObj> map = pool.getData(SimpleObj.class);
map.put(0L, new SimpleObj("test"));
StringWriter writer = new StringWriter();
xadv.mount("/path/", SimpleObj.class);
xadv.saveObjects(pool, writer);
The resulting xml looks like
<?xml version="1.0" encoding="UTF-8"?> <path> <simpleObj id="0"> <name>test</name> </simpleObj> </path>
And reading?
// get xml from somewhere
StringReader iStream = new StringReader(
"<path>" +
" <myobject><name>test</name></myobject>" +
"</path>");
// mount to /path/ with an alternative name 'myobject' instead of the default which would be simpleObj
// this is the preferred way for mounting, because otherwise class refactoring results in different xml
xadv.mount("/path/myobject", SimpleObj.class);
DataPool pool = xadv.readObjects(iStream);
// get the first SimpleObj and check the name
SimpleObj obj = pool.getData(SimpleObj.class).values().iterator().next();
assertEquals("test", obj.getName());
Why does xvantage needs the DataPool interface?
Without it it couldn’t handle references properly. And now with this DataPool interesting use cases arises, e.g. where parts of an object graph should be refreshed through xml (imagine you grab some objects as xmls through HTTP GET …)
Why do we need to mount classes?
To mount a class means: xvantage should track every occurance of that class as references and should NOT nest the object within other objects.
This looks interesting, but does it works for more complex objects?
Yes, it should. I could successfully embed this in my TimeFinder project, where I tried to persist 4 entities (some of them with hundreds of objects and several references) and read them successfully back. Objects which are not mounted explicitly will be nested within mounted objects like in xstream.
Look into this for more information.
Is xvantage an xml binding tool?
No, it is an xml processor. So serialization and deserialization is easily possible if you start from Java code. At the moment it is nearly impossible to start from xml. Use JAXB or JiBX in that case.
What is are the disadvantages?
And what are the advantages?
There are several
How can I use it?
Just clone the git repository:
git clone git://github.com/karussell/xvantage.git cd xvantage mvn clean install -Dmaven.test.skip=true
Currently it is a netbeans project and the tests in maven will not pass because some resource files are not available.(?)
How does it work in theory?
Writing
Reading
Provide Feedback!
Be constructive and tell me facts (maybe such a tool already exists :0!). Use comments or peathal at yaahooo dot de.
Thanks a lot for your attention!