Felix
  1. Felix
  2. FELIX-3084

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

    Details

    • Type: Task Task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: HTTP Service
    • Labels:

      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

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

        Activity

        No work has yet been logged on this issue.

          People

          • Assignee:
            Unassigned
            Reporter:
            Ken Gilmer
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development