Author: limpbizkit
Date: Mon Dec  1 22:16:53 2008
New Revision: 715

Removed:
    trunk/latest-javadoc/
Modified:
     
trunk/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
    trunk/guice.iml
    trunk/guice.ipr
    trunk/servlet/test/com/google/inject/servlet/ServletTest.java
    trunk/test/com/google/inject/ScopesTest.java

Log:
Removed old Javadocs.

Modified:  
trunk/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
==============================================================================
---  
trunk/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
        
(original)
+++  
trunk/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
        
Mon Dec  1 22:16:53 2008
@@ -68,8 +68,8 @@
   *     FactoryProvider.newFactory(PaymentFactory.class,  
RealPayment.class));</code></pre>
   *
   * <p>Now you can [EMAIL PROTECTED] @[EMAIL PROTECTED] Inject} your factory 
interface into  
your
- * Guice-injected classes. When you invoke the create method on that  
factory, the
- * [EMAIL PROTECTED] FactoryProvider} will instantiate the implementation 
class using
+ * Guice-injected classes. When you invoke the create method on that  
factory,
+ * the [EMAIL PROTECTED] FactoryProvider} will instantiate the implementation 
class  
using
   * parameters from the injector and the factory method.
   *
   * <pre><code>public class PaymentAction {
@@ -80,10 +80,10 @@
   *       payment.apply();
   *    }
   * }</code></pre>
- *
+ *
   * @param <F> The factory interface
   * @param <R> The concrete class to be created.
- *
+ *
   * @author [EMAIL PROTECTED] (Jerome Mourits)
   * @author [EMAIL PROTECTED] (Jesse Wilson)
   */
@@ -99,16 +99,15 @@
        Class<X> factoryType, Class<Y> implementationType){
      return new FactoryProvider<X, Y>(factoryType,implementationType);
    }
-
+
    private FactoryProvider(Class<F> factoryType, Class<R>  
implementationType) {
      this.factoryType = factoryType;
      this.implementationType = implementationType;
      this.factoryMethodToConstructor = createMethodMapping();
      checkDeclaredExceptionsMatch();
    }
-
+
    @Inject
-  @SuppressWarnings({"unchecked", "unused"})
    void setInjectorAndCheckUnboundParametersAreInjectable(Injector  
injector) {
      this.injector = injector;
      for (AssistedConstructor<?> c : factoryMethodToConstructor.values()) {
@@ -135,7 +134,7 @@
        }
      }
    }
-
+
    private boolean isConstructorExceptionCompatibleWithFactoryExeception(
        Class<?> constructorException, Class<?>[] factoryExceptions) {
      for (Class<?> factoryException : factoryExceptions) {
@@ -145,8 +144,7 @@
      }
      return false;
    }
-
-  @SuppressWarnings("unchecked")
+
    private boolean paramCanBeInjected(Parameter parameter, Injector  
injector) {
      return parameter.isBound(injector);
    }
@@ -155,7 +153,7 @@
    private Map<Method, AssistedConstructor<?>> createMethodMapping() {
      List<AssistedConstructor<?>> constructors = Lists.newArrayList();

-    for (Constructor c : implementationType.getDeclaredConstructors()) {
+    for (Constructor<?> c : implementationType.getDeclaredConstructors()) {
        if (c.getAnnotation(AssistedInject.class) != null) {
          constructors.add(new AssistedConstructor(c));
        }
@@ -197,7 +195,6 @@
      return result;
    }

-  @SuppressWarnings({"unchecked"})
    public F get() {
      InvocationHandler invocationHandler = new InvocationHandler() {
        public Object invoke(Object proxy, Method method, Object[]  
creationArgs) throws Throwable {
@@ -205,7 +202,7 @@
          if (method.getDeclaringClass().equals(Object.class)) {
            return method.invoke(this, creationArgs);
          }
-
+
          AssistedConstructor<?> constructor =  
factoryMethodToConstructor.get(method);
          Object[] constructorArgs = gatherArgsForConstructor(
              constructor, creationArgs);
@@ -220,7 +217,7 @@
          int numParams = constructor.getAllParameters().size();
          int argPosition = 0;
          Object[] result = new Object[numParams];
-
+
          for (int i = 0; i < numParams; i++) {
            Parameter parameter = constructor.getAllParameters().get(i);
            if (parameter.isProvidedByFactory()) {
@@ -234,8 +231,8 @@
        }
      };

-    return (F) Proxy.newProxyInstance(factoryType.getClassLoader(),
-        new Class[] {factoryType}, invocationHandler);
+    return  
factoryType.cast(Proxy.newProxyInstance(factoryType.getClassLoader(),
+        new Class[] {factoryType}, invocationHandler));
    }

    private ConfigurationException newConfigurationException(String format,  
Object... args) {

Modified: trunk/guice.iml
==============================================================================
--- trunk/guice.iml     (original)
+++ trunk/guice.iml     Mon Dec  1 22:16:53 2008
@@ -66,7 +66,7 @@
          <SOURCES />
        </library>
      </orderEntry>
-    <orderEntry type="module-library">
+    <orderEntry type="module-library" exported="">
        <library>
          <CLASSES>
            <root url="file://$MODULE_DIR$/lib/build" />

Modified: trunk/guice.ipr
==============================================================================
--- trunk/guice.ipr     (original)
+++ trunk/guice.ipr     Mon Dec  1 22:16:53 2008
@@ -339,6 +339,7 @@
          <inspection_tool class="ThrowableInstanceNeverThrown"  
level="WARNING" enabled="false" />
          <inspection_tool class="InjectOfNonPublicMember" level="WARNING"  
enabled="false" />
          <inspection_tool class="ThrowableResultOfMethodCallIgnored"  
level="WARNING" enabled="false" />
+        <inspection_tool class="BindingAnnotationWithoutInject"  
level="WARNING" enabled="false" />
        </profile>
      </profiles>
      <list size="4">
@@ -517,7 +518,6 @@
        <module  
fileurl="file://$PROJECT_DIR$/extensions/commands/commands.iml"  
filepath="$PROJECT_DIR$/extensions/commands/commands.iml" />
        <module fileurl="file://$PROJECT_DIR$/guice.iml"  
filepath="$PROJECT_DIR$/guice.iml" />
        <module  
fileurl="file://$PROJECT_DIR$/extensions/multibindings/multibindings.iml"  
filepath="$PROJECT_DIR$/extensions/multibindings/multibindings.iml" />
-      <module  
fileurl="file://$PROJECT_DIR$/extensions/privatemodules/privatemodules.iml"  
filepath="$PROJECT_DIR$/extensions/privatemodules/privatemodules.iml" />
        <module fileurl="file://$PROJECT_DIR$/servlet/servlet.iml"  
filepath="$PROJECT_DIR$/servlet/servlet.iml" />
        <module fileurl="file://$PROJECT_DIR$/spring/spring.iml"  
filepath="$PROJECT_DIR$/spring/spring.iml" />
        <module  
fileurl="file://$PROJECT_DIR$/struts2/example/struts2-example.iml"  
filepath="$PROJECT_DIR$/struts2/example/struts2-example.iml" />
@@ -577,7 +577,7 @@
    <component name="libraryTable">
      <library name="collect">
        <CLASSES>
-        <root  
url="jar://$PROJECT_DIR$/lib/build/google-collect-snapshot-20080530.jar!/"  
/>
+        <root  
url="jar://$PROJECT_DIR$/lib/build/google-collect-snapshot-20081129.jar!/"  
/>
        </CLASSES>
        <JAVADOC />
        <SOURCES />

Modified: trunk/servlet/test/com/google/inject/servlet/ServletTest.java
==============================================================================
--- trunk/servlet/test/com/google/inject/servlet/ServletTest.java       
(original)
+++ trunk/servlet/test/com/google/inject/servlet/ServletTest.java       Mon Dec 
  
1 22:16:53 2008
@@ -21,7 +21,11 @@
  import com.google.inject.Guice;
  import com.google.inject.Injector;
  import com.google.inject.Key;
+import com.google.inject.Provider;
+import com.google.inject.name.Names;
  import java.io.IOException;
+import java.util.Arrays;
+import java.util.Iterator;
  import javax.servlet.FilterChain;
  import javax.servlet.ServletException;
  import javax.servlet.ServletRequest;
@@ -33,6 +37,7 @@
  import static org.easymock.EasyMock.eq;
  import static org.easymock.EasyMock.expect;
  import static org.easymock.EasyMock.isA;
+import static org.easymock.EasyMock.isNull;
  import static org.easymock.EasyMock.replay;
  import static org.easymock.EasyMock.verify;

@@ -41,133 +46,102 @@
   */
  public class ServletTest extends TestCase {

-  public void testNewRequestObject()
-      throws CreationException, IOException, ServletException {
-    final Injector injector = createInjector();
-
-    GuiceFilter filter = new GuiceFilter();
-
-    final HttpServletRequest request =  
createMock(HttpServletRequest.class);
-
-    String name = Key.get(InRequest.class).toString();
-    expect(request.getAttribute(name)).andReturn(null);
-    request.setAttribute(eq(name), isA(InRequest.class));
-
-    final boolean[] invoked = new boolean[1];
-    FilterChain filterChain = new FilterChain() {
-      public void doFilter(ServletRequest servletRequest,
-          ServletResponse servletResponse) {
-        invoked[0] = true;
+  final Key<InSession> sessionKey = Key.get(InSession.class);
+  final Key<InRequest> requestKey = Key.get(InRequest.class);
+  final Key<String> nullSessionKey = Key.get(String.class,  
Names.named("null session"));
+  final Key<String> nullRequestKey = Key.get(String.class,  
Names.named("null request"));
+  final Injector injector = createInjector();
+  final GuiceFilter filter = new GuiceFilter();
+  final HttpServletRequest request = createMock(HttpServletRequest.class);
+  final HttpSession session = createMock(HttpSession.class);
+
+  FilterChain filterChain;
+  boolean invoked;
+
+  public void testNewRequestObject() throws Exception {
+    expect(request.getAttribute(requestKey.toString())).andReturn(null);
+    request.setAttribute(eq(requestKey.toString()), isA(InRequest.class));
+
+    filterChain = new FilterChain() {
+      public void doFilter(ServletRequest servletRequest, ServletResponse  
servletResponse) {
+        invoked = true;
          assertSame(request, servletRequest);
          assertNotNull(injector.getInstance(InRequest.class));
        }
      };

-    replay(request);
-
-    filter.doFilter(request, null, filterChain);
-
-    verify(request);
-    assertTrue(invoked[0]);
+    replayFilterAndVerify();
    }

-  public void testExistingRequestObject()
-      throws CreationException, IOException, ServletException {
-    final Injector injector = createInjector();
+  public void testNullRequestObject() throws Exception {
+     
expect(request.getAttribute(nullRequestKey.toString())).andReturn(null).times(2);
+    request.setAttribute(eq(nullRequestKey.toString()), isNull());

-    GuiceFilter filter = new GuiceFilter();
+    expect(request.getSession()).andReturn(session);
+     
expect(session.getAttribute(nullSessionKey.toString())).andReturn(null);
+    session.setAttribute(eq(nullSessionKey.toString()), isNull());
+
+    filterChain = new FilterChain() {
+      public void doFilter(ServletRequest servletRequest, ServletResponse  
servletResponse) {
+        invoked = true;
+        assertSame(request, servletRequest);
+        assertNull(injector.getInstance(nullRequestKey));
+        assertNull(injector.getInstance(nullRequestKey));
+        assertNull(injector.getInstance(nullSessionKey));
+        assertNull(injector.getInstance(nullSessionKey));
+      }
+    };

-    final HttpServletRequest request =  
createMock(HttpServletRequest.class);
+    replayFilterAndVerify();
+  }

+  public void testExistingRequestObject() throws Exception {
      final InRequest inRequest = new InRequest();
-    String name = Key.get(InRequest.class).toString();
-    expect(request.getAttribute(name)).andReturn(inRequest).times(2);
+     
expect(request.getAttribute(requestKey.toString())).andReturn(inRequest).times(2);

-    final boolean[] invoked = new boolean[1];
-    FilterChain filterChain = new FilterChain() {
-      public void doFilter(ServletRequest servletRequest,
-          ServletResponse servletResponse) {
-        invoked[0] = true;
+    filterChain = new FilterChain() {
+      public void doFilter(ServletRequest servletRequest, ServletResponse  
servletResponse) {
+        invoked = true;
          assertSame(request, servletRequest);
          assertSame(inRequest, injector.getInstance(InRequest.class));
          assertSame(inRequest, injector.getInstance(InRequest.class));
        }
      };

-    replay(request);
-
-    filter.doFilter(request, null, filterChain);
-
-    verify(request);
-    assertTrue(invoked[0]);
+    replayFilterAndVerify();
    }

-  public void testNewSessionObject()
-      throws CreationException, IOException, ServletException {
-    final Injector injector = createInjector();
-
-    GuiceFilter filter = new GuiceFilter();
-
-    final HttpServletRequest request =  
createMock(HttpServletRequest.class);
-    final HttpSession session = createMock(HttpSession.class);
-
-    String name = Key.get(InSession.class).toString();
-
+  public void testNewSessionObject() throws Exception {
      expect(request.getSession()).andReturn(session);
-    expect(session.getAttribute(name)).andReturn(null);
-    session.setAttribute(eq(name), isA(InSession.class));
+    expect(session.getAttribute(sessionKey.toString())).andReturn(null);
+    session.setAttribute(eq(sessionKey.toString()), isA(InSession.class));

-    final boolean[] invoked = new boolean[1];
-    FilterChain filterChain = new FilterChain() {
-      public void doFilter(ServletRequest servletRequest,
-          ServletResponse servletResponse) {
-        invoked[0] = true;
+    filterChain = new FilterChain() {
+      public void doFilter(ServletRequest servletRequest, ServletResponse  
servletResponse) {
+        invoked = true;
          assertSame(request, servletRequest);
          assertNotNull(injector.getInstance(InSession.class));
        }
      };

-    replay(request, session);
-
-    filter.doFilter(request, null, filterChain);
-
-    verify(request, session);
-    assertTrue(invoked[0]);
+    replayFilterAndVerify();
    }

-  public void testExistingSessionObject()
-      throws CreationException, IOException, ServletException {
-    final Injector injector = createInjector();
-
-    GuiceFilter filter = new GuiceFilter();
-
-    final HttpServletRequest request =  
createMock(HttpServletRequest.class);
-    final HttpSession session = createMock(HttpSession.class);
-
-    String name = Key.get(InSession.class).toString();
-
+  public void testExistingSessionObject() throws Exception {
      final InSession inSession = new InSession();
      expect(request.getSession()).andReturn(session).times(2);
-    expect(session.getAttribute(name)).andReturn(inSession).times(2);
+     
expect(session.getAttribute(sessionKey.toString())).andReturn(inSession).times(2);

-    final boolean[] invoked = new boolean[1];
-    FilterChain filterChain = new FilterChain() {
-      public void doFilter(ServletRequest servletRequest,
-          ServletResponse servletResponse) {
-        invoked[0] = true;
+    filterChain = new FilterChain() {
+      public void doFilter(ServletRequest servletRequest, ServletResponse  
servletResponse) {
+        invoked = true;
          assertSame(request, servletRequest);
-
          assertSame(inSession, injector.getInstance(InSession.class));
          assertSame(inSession, injector.getInstance(InSession.class));
        }
      };

-    replay(request, session);
-
-    filter.doFilter(request, null, filterChain);
-
-    verify(request, session);
-    assertTrue(invoked[0]);
+    replayFilterAndVerify();
    }

    private Injector createInjector() throws CreationException {
@@ -176,13 +150,33 @@
          install(new ServletModule());
          bind(InSession.class);
          bind(InRequest.class);
+        bind(nullRequestKey).toProvider(new  
NullThenNonNullProvider()).in(RequestScoped.class);
+        bind(nullSessionKey).toProvider(new  
NullThenNonNullProvider()).in(SessionScoped.class);
        }
      });
    }

+  private void replayFilterAndVerify() throws IOException,  
ServletException {
+    replay(request);
+    replay(session);
+
+    filter.doFilter(request, null, filterChain);
+
+    verify(request);
+    verify(session);
+    assertTrue(invoked);
+  }
+
    @SessionScoped
    static class InSession {}

    @RequestScoped
    static class InRequest {}
+
+  static class NullThenNonNullProvider implements Provider<String> {
+    final Iterator<String> iterator = Arrays.asList(null, "A").iterator();
+    public String get() {
+      return iterator.next();
+    }
+  }
  }

Modified: trunk/test/com/google/inject/ScopesTest.java
==============================================================================
--- trunk/test/com/google/inject/ScopesTest.java        (original)
+++ trunk/test/com/google/inject/ScopesTest.java        Mon Dec  1 22:16:53 2008
@@ -24,6 +24,8 @@
  import static java.lang.annotation.RetentionPolicy.RUNTIME;
  import java.lang.annotation.Target;
  import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
  import java.util.List;
  import java.util.Map;
  import junit.framework.TestCase;
@@ -308,6 +310,20 @@
            "1) More than one scope annotation was found: ",
            "while locating " + SingletonAndCustomScoped.class.getName());
      }
+  }
+
+  public void testNullScopedAsASingleton() {
+    Provider<String> unscoped = new Provider<String>() {
+      final Iterator<String> values = Arrays.asList(null, "A").iterator();
+      public String get() {
+        return values.next();
+      }
+    };
+
+    Provider<String> scoped =  
Scopes.SINGLETON.scope(Key.get(String.class), unscoped);
+    assertNull(scoped.get());
+    assertNull(scoped.get());
+    assertNull(scoped.get());
    }

    class RememberProviderScope implements Scope {

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"google-guice-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/google-guice-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to