Uploaded image for project: 'Felix'
  1. Felix
  2. FELIX-3084

Submission of source code for review of software grant for lightweight HTTP service implementation.

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • None
    • HTTP Service

    Description

      This issue is created as part of the process outlined in the "Contributing Source Code" Felix page as suggested by Richard Hall in issue FELIX-538[1]. The source code attached[6] to this issue is an implementation of the OSGi HTTP Service specification version 1.2. The code is based on Richard's original server which is also referenced in FELIX-538, and the remaining code was developed by me, with the exception of a few classes which were adapted from existing Felix sources[2].

      Design constraints for this project were backwards compatibility, simplicity, and size. The code base consists of 23 Java files in 3 packages. The source is divided into "osgi", "server", and "servlet" packages according to the primary purpose of the class, and interfaces are utilized to keep the three domains fairly isolated[3]. The minimal compiled jar which does not include the servlet API or OSGi API currently is 41Kb, and the dependency-free jar with all necessary APIs is 125Kb. An Ant script is provided that will build the jars and a CI server is also available for binary builds[4] and javadocs[5].

      In terms of features the server doesn't offer:
      -HTTPS
      -Authentication
      -Cookie support
      -Session support

      In addition several aspects of the Servlet implementation have not been tested including:
      -Multipart POST
      -DELETE
      -PUT
      -Non-default character encodings

      And as of the submission several Servlet API methods are unimplemented in (all unimplemented methods throw org.apache.felix.http.lightweight.servlet.UnimplementedAPIException):
      -HttpServletRequest(Impl)
      -HttpServletResponse(Impl)

      However the core functionality has been implemented and tested and the Felix Web Admin application can be hosted with this HTTP Service implementation.

      I plan in continuing to use the service in personal and professional projects and would be happy to continue to add unimplemented features and maintain the code base as a Felix committer.

      Thanks!
      Ken Gilmer

      1: https://issues.apache.org/jira/browse/FELIX-538
      2: /plain-http-service/src/main/java/org/apache/felix/http/lightweight/osgi/DefaultContextImpl.java, /plain-http-service/src/main/java/org/apache/felix/http/lightweight/osgi/Logger.java
      3: /plain-http-service/src/main/java/org/apache/felix/http/lightweight/osgi/ServiceRegistrationHandler.java, /plain-http-service/src/main/java/org/apache/felix/http/lightweight/osgi/ServiceRegistrationResolver.java
      4: https://leafcutter.ci.cloudbees.com/job/lightweight%20http%20service/
      5: https://leafcutter.ci.cloudbees.com/job/lightweight%20http%20service/javadoc/
      6: MD5SUM 47580996a8c364890518222494d4d26b org.apache.felix.http.lightweight-src.tar.gz

      Attachments

        1. org.apache.felix.http.lightweight-src.tar.gz
          37 kB
          Ken Gilmer
        2. GRANT.pdf
          6.11 MB
          Ken Gilmer

        Activity

          People

            Unassigned Unassigned
            kgilmer Ken Gilmer
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: