tells about another open source project, alike: XMLField, and about avc-binding-yaml.
See Also
Some interesting projects to visit if you like avc-binding-dom.
See Also: XMLField
Another open source project uses the same annotation system to bind Java interfaces to XML documents (DOM): XMLField, hosted at Sourceforge's. It uses Subversion for source code management and Mantis for issue tracking.
I happened to be one of the main contributors of that project in the fall of 2010 (it was private at the time, and not called "XMLField"), and I was regularly and anxiously asking for its source to become open.
This was actually done a few months later, and was a Good Thing™.
Yet, I recently chose to create a new and similar project, for the following reasons :
- I rather use a Distributed VCS.
- I need to import classes from some projects of mine.
- Mantis?… seriously, folks.
- Still some comments are in French.
- I am using a different type of abstraction than the original designed in XMLField so I can bind Java interfaces also to YAML streams (see below, avc-binding-yaml.)
- I have not yet understood SLF4J.
I am also trying to bring the following:
- Documentation through another point of view.
- Fail-functions (see XPath Expressions.)
- Maps.
- Usage of Groovy to write tests (well, some day. I am used to them in some other projects.)
That said, one must consider that the XMLField project has a lot of nice features my own project doesn't have:
- It contains many test cases; It has lived its way in many projects I guess.
- Performances issues were raised, and were solved.
- It allows DOM modification with setter methods. Yeah, we wrote the API that way at the very beginning
:-)
Naming conventions:setXxx()
,addToXxx()
,removeFromXxx()
. - It implements
toString()
,hashCode()
andequals()
. - It implements all primitive types, and enums.
- It provides static validation via annotations.
- It instantiates a static factory from a property file in the classpath.
- It uses Jaxen.
- It provides caching.
See Also: avc-binding-yaml
With the same @XPath annotation as in avc-binding-dom, I started writing another tool, avc-binding-yaml, that enables binding Java interfaces to YAML streams.
There is no documentation yet, but the aim is exactly the same as for avc-binding-dom.
Note: The @Nodes annotation, which is common to both projects (it is in avc-binding-common), is specific to my parsing of YAML streams into DOM-like structures.