I've started working on a small project which is looking for an open source home and a friendly community, so OPS4J would be a natural choice :-)

The working title is XVisitor: this is going to be a plugin for the xjc code generator to enrich the JAXB model generated from an XML schema so that users can work with the Visitor pattern on this model.

A similar project is http://code.google.com/p/jaxb-visitor - I'm currently using a patched version of this in some of my daytime projects, and based on that experience, there's couple of things I would like to do differently:

* Support mixed content

* No separation of Visitor and Traverser.
(I do appreciate the design goal of this, but in practice I find myself writing too much boilerplate code for theoretical flexibility that I don't actually need)

* Not just a single visit() method, but enter() and leave() methods for each model class, which are called before and after traversing the child elements of the current node.

* The visitor methods have a return type of VisitorAction, an enum with values CONTINUE, SKIP and TERMINATE, which allow the user to skip a subtree or terminate the traversal prematurely.

There is no relation to OSGi, so this project would not be part of the Pax family. In my sandbox, I'm currently using a package name org.ops4j.xvisitor and a Maven reactor inheriting from org.ops4j:master:2.0.0, with two modules, one for the plugin and one for integration tests.

Potential hosting alternatives to OPS4J include jaxb2-commons.java.net and Google Code. jaxb2-commons might be the natural fit at first sight, but it doesn't seem to be very active, the procedure of releasing to Maven central is not clear, there is no CI server, and I'm not really keen on getting familiar with yet another OSS platform.

Google Code is what I use for other projects. Biggest plus: Mercurial. Minuses: No CI server, no community, no automatic push to Maven central.

OPS4J pluses: Great community, low barriers, JIRA, Confluence, Hudson, Sonatype OSS and Maven Central integration. Minus: Git.

Oh well, if Git is the only price I have to pay for all the rest, then I don't really mind ;-)

Best regards,

Harald


_______________________________________________
general mailing list
[email protected]
http://lists.ops4j.org/mailman/listinfo/general

Reply via email to