Moved servlet package into its own module.

git-svn-id: https://google-guice.googlecode.com/svn/trunk@220 d779f126-a31b-0410-b53b-1d3aecad763e
diff --git a/guice.iml b/guice.iml
index fb162db..d3b16e5 100644
--- a/guice.iml
+++ b/guice.iml
@@ -73,15 +73,6 @@
     <orderEntry type="module-library">
       <library>
         <CLASSES>
-          <root url="jar://$MODULE_DIR$/lib/build/servlet-api-2.5.jar!/" />
-        </CLASSES>
-        <JAVADOC />
-        <SOURCES />
-      </library>
-    </orderEntry>
-    <orderEntry type="module-library">
-      <library>
-        <CLASSES>
           <root url="jar://$MODULE_DIR$/lib/build/easymock.jar!/" />
         </CLASSES>
         <JAVADOC />
diff --git a/guice.ipr b/guice.ipr
index 0430031..a911ed0 100644
--- a/guice.ipr
+++ b/guice.ipr
@@ -346,6 +346,7 @@
   <component name="ProjectModuleManager">
     <modules>
       <module fileurl="file://$PROJECT_DIR$/guice.iml" filepath="$PROJECT_DIR$/guice.iml" />
+      <module fileurl="file://$PROJECT_DIR$/servlet/servlet.iml" filepath="$PROJECT_DIR$/servlet/servlet.iml" />
       <module fileurl="file://$PROJECT_DIR$/struts2/example/struts2-example.iml" filepath="$PROJECT_DIR$/struts2/example/struts2-example.iml" />
       <module fileurl="file://$PROJECT_DIR$/struts2/plugin/struts2-plugin.iml" filepath="$PROJECT_DIR$/struts2/plugin/struts2-plugin.iml" />
     </modules>
diff --git a/servlet/servlet.iml b/servlet/servlet.iml
new file mode 100644
index 0000000..b12a6db
--- /dev/null
+++ b/servlet/servlet.iml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module version="4" relativePaths="true" type="JAVA_MODULE">
+  <component name="ModuleRootManager" />
+  <component name="NewModuleRootManager" inherit-compiler-output="true">
+    <exclude-output />
+    <content url="file://$MODULE_DIR$">
+      <sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
+    </content>
+    <orderEntry type="inheritedJdk" />
+    <orderEntry type="sourceFolder" forTests="false" />
+    <orderEntry type="module" module-name="guice" />
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/build/servlet-api-2.5.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/build/junit.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntry type="module-library">
+      <library>
+        <CLASSES>
+          <root url="jar://$MODULE_DIR$/../lib/build/easymock.jar!/" />
+        </CLASSES>
+        <JAVADOC />
+        <SOURCES />
+      </library>
+    </orderEntry>
+    <orderEntryProperties />
+  </component>
+</module>
+
diff --git a/src/com/google/inject/servlet/GuiceFilter.java b/servlet/src/com/google/inject/servlet/GuiceFilter.java
similarity index 100%
rename from src/com/google/inject/servlet/GuiceFilter.java
rename to servlet/src/com/google/inject/servlet/GuiceFilter.java
diff --git a/src/com/google/inject/servlet/RequestParameters.java b/servlet/src/com/google/inject/servlet/RequestParameters.java
similarity index 100%
rename from src/com/google/inject/servlet/RequestParameters.java
rename to servlet/src/com/google/inject/servlet/RequestParameters.java
diff --git a/src/com/google/inject/servlet/RequestScoped.java b/servlet/src/com/google/inject/servlet/RequestScoped.java
similarity index 100%
rename from src/com/google/inject/servlet/RequestScoped.java
rename to servlet/src/com/google/inject/servlet/RequestScoped.java
diff --git a/src/com/google/inject/servlet/ServletModule.java b/servlet/src/com/google/inject/servlet/ServletModule.java
similarity index 100%
rename from src/com/google/inject/servlet/ServletModule.java
rename to servlet/src/com/google/inject/servlet/ServletModule.java
diff --git a/src/com/google/inject/servlet/ServletScopes.java b/servlet/src/com/google/inject/servlet/ServletScopes.java
similarity index 100%
rename from src/com/google/inject/servlet/ServletScopes.java
rename to servlet/src/com/google/inject/servlet/ServletScopes.java
diff --git a/test/com/google/inject/servlet/ServletTest.java b/servlet/src/com/google/inject/servlet/ServletTest.java
similarity index 100%
rename from test/com/google/inject/servlet/ServletTest.java
rename to servlet/src/com/google/inject/servlet/ServletTest.java
diff --git a/src/com/google/inject/servlet/SessionScoped.java b/servlet/src/com/google/inject/servlet/SessionScoped.java
similarity index 100%
rename from src/com/google/inject/servlet/SessionScoped.java
rename to servlet/src/com/google/inject/servlet/SessionScoped.java
diff --git a/src/com/google/inject/servlet/package-info.java b/servlet/src/com/google/inject/servlet/package-info.java
similarity index 100%
rename from src/com/google/inject/servlet/package-info.java
rename to servlet/src/com/google/inject/servlet/package-info.java
diff --git a/struts2/example/struts2-example.iml b/struts2/example/struts2-example.iml
index 28a7e96..23242c6 100644
--- a/struts2/example/struts2-example.iml
+++ b/struts2/example/struts2-example.iml
@@ -136,6 +136,7 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="servlet" />
     <orderEntryProperties />
   </component>
 </module>
diff --git a/struts2/plugin/struts2-plugin.iml b/struts2/plugin/struts2-plugin.iml
index f3c4849..b318a07 100644
--- a/struts2/plugin/struts2-plugin.iml
+++ b/struts2/plugin/struts2-plugin.iml
@@ -135,6 +135,7 @@
         <SOURCES />
       </library>
     </orderEntry>
+    <orderEntry type="module" module-name="servlet" />
     <orderEntryProperties />
   </component>
 </module>
diff --git a/test/com/google/inject/AllTests.java b/test/com/google/inject/AllTests.java
index 9c2a7dd..e1c6fc9 100644
--- a/test/com/google/inject/AllTests.java
+++ b/test/com/google/inject/AllTests.java
@@ -17,7 +17,6 @@
 package com.google.inject;
 
 import com.google.inject.matcher.MatcherTest;
-import com.google.inject.servlet.ServletTest;
 import com.google.inject.util.FinalizableReferenceQueueTest;
 import com.google.inject.util.ReferenceCacheTest;
 import com.google.inject.util.ReferenceMapTest;
@@ -55,8 +54,6 @@
 
     suite.addTestSuite(MatcherTest.class);
 
-    suite.addTestSuite(ServletTest.class);
-
     suite.addTestSuite(FinalizableReferenceQueueTest.class);
     suite.addTestSuite(ReferenceCacheTest.class);
     suite.addTestSuite(ReferenceMapTest.class);
diff --git a/test/com/google/inject/ErrorHandlingTest.java b/test/com/google/inject/ErrorHandlingTest.java
index a622c14..436e942 100644
--- a/test/com/google/inject/ErrorHandlingTest.java
+++ b/test/com/google/inject/ErrorHandlingTest.java
@@ -18,9 +18,11 @@
 
 import com.google.inject.name.Named;
 import com.google.inject.name.Names;
-import com.google.inject.servlet.ServletModule;
-import com.google.inject.servlet.SessionScoped;
 import java.util.List;
+import java.lang.annotation.Target;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
  * @author crazybob@google.com (Bob Lee)
@@ -63,15 +65,19 @@
   }
 
   @ContainerScoped
-  @SessionScoped
+  @GoodScope
   static class TooManyScopes {
   }
 
+  @Target(ElementType.TYPE)
+  @Retention(RUNTIME)
+  @ScopeAnnotation
+  @interface GoodScope {}
+
   @interface BadScope {}
 
   static class MyModule extends AbstractModule {
     protected void configure() {
-      install(new ServletModule());
       bind(Runnable.class);
       bind(Foo.class);
       bind(Bar.class);
diff --git a/test/com/google/inject/ScopesTest.java b/test/com/google/inject/ScopesTest.java
index 04590ee..024f7a8 100644
--- a/test/com/google/inject/ScopesTest.java
+++ b/test/com/google/inject/ScopesTest.java
@@ -17,7 +17,6 @@
 package com.google.inject;
 
 import junit.framework.TestCase;
-import com.google.inject.servlet.ServletScopes;
 
 /**
  * @author crazybob@google.com (Bob Lee)
@@ -36,13 +35,19 @@
   @ContainerScoped
   static class Singleton {}
 
+  Scope scope = new Scope() {
+    public <T> Provider<T> scope(Key<T> key, Provider<T> unscoped) {
+      return unscoped;
+    }
+  };
+
   public void testOverriddingAnnotation()
       throws CreationException {
     BinderImpl builder = new BinderImpl();
     BindingBuilderImpl<Singleton> bindingBuilder
         = builder.bind(Singleton.class);
-    bindingBuilder.in(ServletScopes.REQUEST);
+    bindingBuilder.in(scope);
     builder.createContainer();
-    assertSame(ServletScopes.REQUEST, bindingBuilder.scope);
+    assertSame(scope, bindingBuilder.scope);
   }
 }
diff --git a/test/com/google/inject/tools/jmx/JmxTest.java b/test/com/google/inject/tools/jmx/JmxTest.java
index 6bbb049..65d0279 100644
--- a/test/com/google/inject/tools/jmx/JmxTest.java
+++ b/test/com/google/inject/tools/jmx/JmxTest.java
@@ -21,7 +21,6 @@
 import com.google.inject.ContainerScoped;
 import com.google.inject.Key;
 import com.google.inject.name.Names;
-import com.google.inject.servlet.ServletModule;
 import java.lang.annotation.Retention;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
@@ -56,7 +55,7 @@
           .to(FooImpl.class);
       bindConstant(Names.named("port")).to(8080);
       link(Key.get(Object.class)).to(Key.get(Bar.class));
-      install(new ServletModule());
+//      install(new ServletModule());
     }
   }
 }