API Specification Repository
Status
Very rough and ready first draft. Please feel free to dive in and edit.
Rationale
Apache has many codebases scattered throughout various projects that contain clean room implementations of specification APIs.
Though these are extremely useful, there is no central location where users, developers or committers can find which specifications Apache has clean room API implementations for.
In addition, there is no space where existing committers from different projects can collaborate on clean room API implementations of mutual benefit.
There are various legal issues which arise from clean room API implementations. A central point of contact should make it easier to manage these issues.
Jakarta seems an ideal candidate for hosting a central specification repository. Jakarta is well known amongst Java users. Jakarta is also neutral development ground.
Manifesto
- To maintain a central index of Specification API's with clean room Apache implementations in Java whether hosted in a repository @ Jakarta or elsewhere
- To host a repository allowing:
- existing Apache committers to collaborate on clean room specification API implementations in Java
- existing Apache clean room specification API implementations in Java to be maintained
- new specification API implementations in Java to be homed at Apache after vetting and approval by the incubator
- To document the legal difficulties around clean room implementations
- To accept that some projects may prefer to maintain their own APIs
- To accept that one day a TLP may be preferable
- To offer advice (when asked) on the creation of clean room API implementations
Thoughts
Hen: Might want to consider an m2 style repository for specs as the foundation for the above.
Inventory
The following table is an attempt at cataloging the various places where currently APIs are kept within the ASF.
Spec |
Maintainer |
Repository Location |
||
J2SE |
http://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/trunk/modules/ |
|||
JAXP JSR 206, W3C DOM |
http://svn.apache.org/repos/asf/xml/commons/trunk/java/external/src/ |
|||
JSF JSR 127 |
http://svn.apache.org/repos/asf/myfaces/core/trunk/api/src/main/java/ |
|||
JAXB |
http://svn.apache.org/repos/asf/webservices/jaxme/trunk/src/api/ |
|||
Servlet JSR 154 |
http://svn.apache.org/repos/asf/tomcat/servletapi/ |
|||
Various (Activation, JavaMail, etc.) |
http://svn.apache.org/repos/asf/geronimo/specs/trunk/ |
|||
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="0b76e002-8966-4acf-aa9f-3014b28b1154"><ac:plain-text-body><![CDATA[ |
JBI JSR 208 |
[http://incubator.apache.org/servicemix/ ServiceMix |
http://svn.apache.org/repos/asf/incubator/servicemix/trunk/servicemix-jbi/src/main/java/ |
]]></ac:plain-text-body></ac:structured-macro> |
Portlet-API JSR-168 |
http://portals.apache.org/pluto/ |
http://svn.apache.org/repos/asf/portals/pluto/ |