I'm in the process of writing a javadoc Taglet that is intended to be used in the class overview block, and which will render a table describing the validation constraints for the class and the properties in the class. This will initially be used in internal projects, and I'll release the code and open-source it if there is interest in using this.

I'm really just looking for input on whether this is useful, any suggestions, and one long shot request for help on an issue not related to validator.

You can see the following from that example:* Any constraints on the entire class don't specify a property name* Properties with multiple constraints list them on separate lines* Base class property constraints are treated exactly the same* If the property is cascading (@Valid is present), it adds "See class <classname>"

The last one probably looks a little dumb, as you'd probably prefer to have that be a link to the class in question. I'd like to figure out how to do that. Some of you might be thinking "duh, just use "{@link <classname>.class}", but you'd be wrong, as taglets are executed after tags are parsed, and it can only generate pure text. There might be a javadoc API that I can use to generate the correct output, but I'm not aware of one.

The table title and column headers are not internationalized, not sure how to do that effectively.

For the record, Gunnar mentioned to me that he'd prefer to see all the constraints for a single property on a single row. I don't know that I would want that, but I could see that some people might want that. I verified it can be done with a configuration option, although I'm currently struggling to find any way to register Taglets with configuration variations. I don't see any way as of yet.

My goal was, once I got it completely working in my builds, I would release it.

I've gotten it to work fine in "standalone" builds, or "single-project" builds. Getting it to work in multi-project builds has not happened yet, and I've been blocked on that effort. The problem is the build tools. I've tried this in both Maven and Gradle, and they both present different problems. Both of them have to do with the issue that this taglet requires access to the class associated with the source file the taglet is contained within. It's uncommon for taglets to require this, so the tool chain doesn't support this very well right now.

I technically could get it to work in Maven, but what I would have to do to get it work has a bad smell (coding knowledge of all subprojects in a parent pom). In retrospect, this may be my only option for a while, so perhaps I'll come back to this.

I'd really prefer it to work in Gradle, although my current build is using Maven. Once I was able to remove all obstructions of Gradle in this build, I was going to convert.

The problem with Gradle is that the plugin for merging javadoc from multiple subprojects just doesn't work. I've filed an issue for this, but it's been completely ignored. I see Gradle as the "build tool of the future", but issues with plugins are going to have to get worked out.

Great to hear you could make some progress. I'd suggest that you let not stop you by those build tool issues and rather publish a first version on GitHub. I know there's always that one more thing which one feels should be there before releasing it, but it doesn't have to be perfect! Instead, put something out and people may use it on a single module already. You can improve from there, or maybe even someone else steps up to help out.