Btw, writing a custom plugin would still solve nothing; the problem is not in the plugin but in the javadoc tool itself. Thinking of it, I would suggest solution 3, the Doclet approach. Refactoring package names only for better javadoc generation wouldn't be a good thing, but even that wouldn't solve it all. A good example is the CassandraDaemonService. This service interface for the Cassandra daemon is used by other Cassandra bundles (listener, persistence manager) but should not be used directly by Amdatu developers. Especially with Cassandra 0.7 things can go wrong seriously when directly using the Cassandra server to register keyspaces and CF's. So except from explicitly stating it on the website, we should hide it from our API documentation, which can easily be done using the Doclet approach (just add the @exclude annotation to the interface)
Regards, Ivo From: amdatu-developers-bounces at amdatu.org [mailto:[email protected]] On Behalf Of Ivo Ladage-van Doorn Sent: dinsdag 12 oktober 2010 9:40 To: amdatu-developers at amdatu.org Subject: Re: [Amdatu-developers] Package naming versus automated javadoc generation For an illustration of the "javadoc problem", I posted an example of the current Javadoc to http://repository.amdatu.org/sites/apidocs/ My point is that if you are a developer that builds components on top of Amdatu, you should be able to read javadoc of classes that you are supposed to use. In the example you see about 20 occurrences of the class "Activator", one for each bundle. These classes are completely irrelevant for this developer. In fact the majority of the classes are irrelevant (only 11 of the 60 packages). OSGi activators, service implementation classes and much more are just classes that this developer should not use or depend on. So why publish javadoc of all classes when only 10% of these classes should be used? I agree with Angelo that next to the javadoc for this kind of developer, we will also need javadoc for an Amdatu developer. For a developer building on Amdatu, all classes are relevant and the javadoc should describe all classes (even private)? But that is a different use case. Regards, Ivo From: amdatu-developers-bounces at amdatu.org [mailto:[email protected]] On Behalf Of Marcel Offermans Sent: maandag 11 oktober 2010 23:36 To: amdatu-developers at amdatu.org Subject: Re: [Amdatu-developers] Package naming versus automated javadoc generation Remark: I started writing this this afternoon, but didn't get to finish the mail until now. ;) On 11 Oct 2010, at 16:04 , Ivo Ladage-van Doorn wrote: In most Apache projects it is standard to use the root package for public API classes (for example service interfaces). Now this causes an issue with automated javadoc generation. When using the maven-javadoc-plugin it seems that you cannot specify to include javadoc for the root package but omit javadoc of all subpackages without explicitly excluding all existing subpackages. Formally, there is no such thing as a subpackage, packages are a "flat" namespace. But basically the problem you're trying to solve is to generate only JavaDoc for the API, in other words all exported packages? To properly do that we have to have a plugin that really understands OSGi bundles and gets the metadata from the pom.xml. Anything else is probably too easy to break. So, in short, I really would like to solve this in the plugin instead of enforcing conventions on package names. Also, reading the other responses right now, I'm not so sure why it's important to create just Javadoc for our API. We have already defined what our API is in other places, so people should be able to figure out what they can use. If we really want to create docs for our APIs, my workaround (if we don't fix the plugin) would be to explicitly list all packages. Greetings, Marcel -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.amdatu.org/pipermail/amdatu-developers/attachments/20101012/065bdbbf/attachment.html

