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

Harmony

http://svn.apache.org/repos/asf/incubator/harmony/enhanced/classlib/trunk/modules/

JAXP JSR 206, W3C DOM

XML Commons Externals

http://svn.apache.org/repos/asf/xml/commons/trunk/java/external/src/

JSF JSR 127

MyFaces

http://svn.apache.org/repos/asf/myfaces/core/trunk/api/src/main/java/

JAXB

JaxMe

http://svn.apache.org/repos/asf/webservices/jaxme/trunk/src/api/

Servlet JSR 154

Tomcat

http://svn.apache.org/repos/asf/tomcat/servletapi/

Various (Activation, JavaMail, etc.)

Geronimo

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/

  • No labels