[jboss-dev] building the documentation for JBoss public and private API...
Anil Saldhana
Anil.Saldhana at redhat.com
Thu Jun 4 11:49:30 EDT 2009
If you look at the Java EE javadoc bundle for example - there is no
clear separation between what is applicable to SPI implementers,
container vendors and JavaEE users.
We really need documentation on API that is for public usage ( both
users as well as JBoss system integrators) and of course the private api.
Scott Marlow wrote:
> One illegal usage might be detecting that a private (JBoss internal)
> API was used by a customer application. This would be useful for our
> customers to know as private API can change unexpectedly from release
> to release.
>
> Applications that use private APIs will need more refactoring during
> migration to a new AS release.
>
> Perhaps we could also have a usage check for unsupported APIs (some
> projects have contributions that may be considered experimental).
> David M. Lloyd wrote:
>> Illegal usages such as what?
>>
>> - DML
>>
>> On 06/01/2009 04:04 PM, Emmanuel Bernard wrote:
>>> +1 for annotations as we could also flag illegal usages at compile
>>> time via an annotations compiler.
>>>
>>> On Jun 1, 2009, at 17:00, David M. Lloyd wrote:
>>>
>>>> On 06/01/2009 03:19 PM, Scott Marlow wrote:
>>>>> We were just talking about building a list of all JBoss AS public
>>>>> API calls. This will be used to document the public API versus
>>>>> what is considered private (we will include only the public API in
>>>>> this "public api" documentation).
>>>>> One idea mentioned already is that we could use an annotation
>>>>> (e.g. something like @publicAPI mentioned elsewhere
>>>>> http://www.opends.org/promoted-builds/2.0.0-RC1/javadoc/org/opends/server/types/PublicAPI.html).
>>>>> We would then build the "public API" documentation based on the
>>>>> @publicAPI annotations (the how to be determined).
>>>>> We might want to also include a @privateAPI tag, for source files
>>>>> that contain a mix of public and private API (or maybe we should
>>>>> move anything private into separate modules).
>>>>
>>>> The way I traditionally tackle this is by using package-private
>>>> access for non-API stuff in the API package. Otherwise, a taglet
>>>> would be a great way to do this (annotations are probably
>>>> overkill). Javadoc may be an old technology but it's still decent.
>>>>
>>>> One thing I also have for Remoting 3 is a set of javadoc tags that
>>>> I can stick on a class or interface which causes a generic
>>>> explanation to be appended to the javadoc (like "This interface is
>>>> intended to be implemented by the end user" or "This interface is
>>>> intended for service providers, so new methods may be added without
>>>> notice", etc). I can provide a link as soon as I get around to
>>>> getting the javadoc published for 3.1.
>>>>
>>>> - DML
More information about the jboss-development
mailing list