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

                 Key: FELIX-3084
                 URL: https://issues.apache.org/jira/browse/FELIX-3084
             Project: Felix
          Issue Type: Task
          Components: HTTP Service
            Reporter: Ken Gilmer


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 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/
  
 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to