diff --git a/http/NOTICE b/http/NOTICE
new file mode 100644
index 0000000..d3f3543
--- /dev/null
+++ b/http/NOTICE
@@ -0,0 +1,27 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed by
+Mortbay (http://mortbay.org)
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/api/NOTICE b/http/api/NOTICE
new file mode 100644
index 0000000..a867d79
--- /dev/null
+++ b/http/api/NOTICE
@@ -0,0 +1,23 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/api/src/main/java/org/apache/felix/http/api/WebContext.java b/http/api/src/main/java/org/apache/felix/http/api/WebContext.java
new file mode 100644
index 0000000..0bf9d5e
--- /dev/null
+++ b/http/api/src/main/java/org/apache/felix/http/api/WebContext.java
@@ -0,0 +1,30 @@
+package org.apache.felix.http.api;
+
+import javax.servlet.ServletContext;
+import javax.servlet.Servlet;
+import javax.servlet.Filter;
+import java.util.EventListener;
+import java.util.Collection;
+
+public interface WebContext
+{
+    public ServletContext getServletContext();
+
+    public void addListener(EventListener listener);
+
+    public void removeListener(EventListener listener);
+
+    public Collection<EventListener> getListeners();
+
+    public void removeServlet(Servlet servlet);
+
+    public void removeFilter(Filter filter);
+
+    public void addFilter(Filter filter);
+
+    public void addServlet(Servlet servlet);
+
+    public void addParam(String name, String value);
+
+    public void setSessionTimeout(int timeout);
+}
diff --git a/http/api/src/main/java/org/apache/felix/http/api/WebContextManager.java b/http/api/src/main/java/org/apache/felix/http/api/WebContextManager.java
new file mode 100644
index 0000000..3f8ad94
--- /dev/null
+++ b/http/api/src/main/java/org/apache/felix/http/api/WebContextManager.java
@@ -0,0 +1,10 @@
+package org.apache.felix.http.api;
+
+public interface WebContextManager
+{
+    public WebContext getDefaultContext();
+
+    public WebContext createContext(String contextName);
+
+    public void removeContext(String contextName);
+}
diff --git a/http/api/src/main/java/org/apache/felix/http/api/servlet/HttpContextServlet.java b/http/api/src/main/java/org/apache/felix/http/api/servlet/HttpContextServlet.java
new file mode 100644
index 0000000..030c9cd
--- /dev/null
+++ b/http/api/src/main/java/org/apache/felix/http/api/servlet/HttpContextServlet.java
@@ -0,0 +1,4 @@
+package org.apache.felix.http.api.servlet;
+
+public class HttpContextServlet {
+}
diff --git a/http/api/src/main/java/org/apache/felix/http/api/servlet/ResourceServlet.java b/http/api/src/main/java/org/apache/felix/http/api/servlet/ResourceServlet.java
new file mode 100644
index 0000000..12caf57
--- /dev/null
+++ b/http/api/src/main/java/org/apache/felix/http/api/servlet/ResourceServlet.java
@@ -0,0 +1,4 @@
+package org.apache.felix.http.api.servlet;
+
+public class ResourceServlet {
+}
diff --git a/http/base/NOTICE b/http/base/NOTICE
new file mode 100644
index 0000000..a867d79
--- /dev/null
+++ b/http/base/NOTICE
@@ -0,0 +1,23 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/bridge/NOTICE b/http/bridge/NOTICE
new file mode 100644
index 0000000..a867d79
--- /dev/null
+++ b/http/bridge/NOTICE
@@ -0,0 +1,23 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/bundle/NOTICE b/http/bundle/NOTICE
new file mode 100644
index 0000000..d3f3543
--- /dev/null
+++ b/http/bundle/NOTICE
@@ -0,0 +1,27 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed by
+Mortbay (http://mortbay.org)
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/jetty/NOTICE b/http/jetty/NOTICE
new file mode 100644
index 0000000..d3f3543
--- /dev/null
+++ b/http/jetty/NOTICE
@@ -0,0 +1,27 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed by
+Mortbay (http://mortbay.org)
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/proxy/NOTICE b/http/proxy/NOTICE
new file mode 100644
index 0000000..a867d79
--- /dev/null
+++ b/http/proxy/NOTICE
@@ -0,0 +1,23 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
diff --git a/http/whiteboard/NOTICE b/http/whiteboard/NOTICE
new file mode 100644
index 0000000..a867d79
--- /dev/null
+++ b/http/whiteboard/NOTICE
@@ -0,0 +1,23 @@
+Apache Felix Http Service
+Copyright 2009 The Apache Software Foundation
+
+I. Included Software
+
+This product includes software developed at
+The Apache Software Foundation (http://www.apache.org/).
+Licensed under the Apache License 2.0.
+
+This product includes software developed at
+The OSGi Alliance (http://www.osgi.org/).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+II. Used Software
+
+This product uses software developed at
+The OSGi Alliance (http://www.osgi.org).
+Copyright (c) OSGi Alliance (2000, 2007).
+Licensed under the Apache License 2.0.
+
+III. License Summary
+- Apache License 2.0
