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 {
+}
