aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlimpbizkit@gmail.com <limpbizkit@gmail.com@d779f126-a31b-0410-b53b-1d3aecad763e>2010-07-03 15:51:31 +0000
committerlimpbizkit@gmail.com <limpbizkit@gmail.com@d779f126-a31b-0410-b53b-1d3aecad763e>2010-07-03 15:51:31 +0000
commit9a227bef3b82a045323ef2cf38ec60b2e42cf0fe (patch)
tree1c94c31d0b26d643e74d3b142a131a10cae3d6bd
parentf29b5a8d3f444403c516a8e60a3e0119770bccb4 (diff)
downloadguice-9a227bef3b82a045323ef2cf38ec60b2e42cf0fe.tar.gz
Move internal utility code to separate package.
These files have moved from c.g.i.internal to c.g.i.internal.util. Visibility has been increased when necessary. AbstractIterator.java AbstractMapEntry.java AsynchronousComputationException.java Classes.java Collections2.java ComputationException.java CustomConcurrentHashMap.java ExpirationTimer.java FinalizablePhantomReference.java FinalizableReference.java FinalizableReferenceQueue.java FinalizableSoftReference.java FinalizableWeakReference.java Finalizer.java Function.java Hashing.java ImmutableCollection.java ImmutableEntry.java ImmutableList.java ImmutableMap.java ImmutableSet.java Iterables.java Iterators.java Join.java LineNumbers.java Lists.java MapMaker.java Maps.java NullOutputException.java ObjectArrays.java Objects.java Preconditions.java Sets.java SourceProvider.java StackTraceElements.java Stopwatch.java Strings.java ToStringBuilder.java UnmodifiableIterator.java The rest of this change is just imports changes. Thanks to Max Bowsher for the idea. git-svn-id: https://google-guice.googlecode.com/svn/trunk@1185 d779f126-a31b-0410-b53b-1d3aecad763e
-rwxr-xr-xextensions/assistedinject/src/com/google/inject/assistedinject/AssistedConstructor.java2
-rw-r--r--extensions/assistedinject/src/com/google/inject/assistedinject/BindingCollector.java4
-rwxr-xr-xextensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java8
-rw-r--r--extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider2.java16
-rwxr-xr-xextensions/assistedinject/src/com/google/inject/assistedinject/Parameter.java2
-rw-r--r--extensions/assistedinject/test/com/google/inject/assistedinject/FactoryModuleBuilderTest.java2
-rwxr-xr-xextensions/assistedinject/test/com/google/inject/assistedinject/FactoryProviderTest.java2
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/GraphingVisitor.java2
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/InjectorGrapher.java2
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/ShortNameFactory.java6
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/TransitiveDependencyVisitor.java4
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/graphviz/BindingEdgeFactory.java2
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/graphviz/DependencyEdgeFactory.java2
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizEdge.java2
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizNode.java6
-rw-r--r--extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizRenderer.java6
-rw-r--r--extensions/grapher/test/com/google/inject/grapher/GraphingVisitorTest.java4
-rw-r--r--extensions/grapher/test/com/google/inject/grapher/ShortNameFactoryTest.java2
-rw-r--r--extensions/grapher/test/com/google/inject/grapher/TransitiveDependencyVisitorTest.java2
-rw-r--r--extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java4
-rw-r--r--extensions/multibindings/src/com/google/inject/multibindings/Multibinder.java7
-rw-r--r--extensions/multibindings/test/com/google/inject/multibindings/MapBinderTest.java4
-rw-r--r--extensions/multibindings/test/com/google/inject/multibindings/MultibinderTest.java7
-rw-r--r--extensions/persist/src/com/google/inject/persist/PersistModule.java2
-rw-r--r--extensions/persist/src/com/google/inject/persist/jpa/EntityManagerFactoryProvider.java2
-rw-r--r--extensions/persist/src/com/google/inject/persist/jpa/EntityManagerProvider.java2
-rw-r--r--extensions/throwingproviders/src/com/google/inject/throwingproviders/ThrowingProviderBinder.java2
-rw-r--r--lifecycle/src/com/google/inject/lifecycle/BroadcastingLifecycle.java6
-rw-r--r--lifecycle/src/com/google/inject/lifecycle/LifecycleModule.java4
-rwxr-xr-xservlet/src/com/google/inject/servlet/FilterDefinition.java2
-rwxr-xr-xservlet/src/com/google/inject/servlet/FiltersModuleBuilder.java2
-rwxr-xr-xservlet/src/com/google/inject/servlet/ManagedFilterPipeline.java6
-rwxr-xr-xservlet/src/com/google/inject/servlet/ManagedServletPipeline.java8
-rwxr-xr-xservlet/src/com/google/inject/servlet/ServletDefinition.java2
-rw-r--r--servlet/src/com/google/inject/servlet/ServletModule.java2
-rwxr-xr-xservlet/src/com/google/inject/servlet/ServletsModuleBuilder.java4
-rw-r--r--servlet/test/com/google/inject/servlet/FilterDefinitionTest.java4
-rw-r--r--servlet/test/com/google/inject/servlet/ServletDefinitionPathsTest.java4
-rw-r--r--servlet/test/com/google/inject/servlet/ServletDefinitionTest.java4
-rw-r--r--servlet/test/com/google/inject/servlet/ServletPipelineRequestDispatcherTest.java6
-rw-r--r--servlet/test/com/google/inject/servlet/ServletTest.java2
-rw-r--r--spring/src/com/google/inject/spring/SpringIntegration.java2
-rw-r--r--src/com/google/inject/AbstractModule.java4
-rw-r--r--src/com/google/inject/ConfigurationException.java4
-rw-r--r--src/com/google/inject/CreationException.java4
-rw-r--r--src/com/google/inject/InjectorBuilder.java3
-rw-r--r--src/com/google/inject/Key.java5
-rw-r--r--src/com/google/inject/PrivateModule.java2
-rw-r--r--src/com/google/inject/ProvisionException.java6
-rw-r--r--src/com/google/inject/Scopes.java3
-rw-r--r--src/com/google/inject/TypeLiteral.java6
-rw-r--r--src/com/google/inject/internal/AbstractBindingBuilder.java2
-rw-r--r--src/com/google/inject/internal/Annotations.java2
-rw-r--r--src/com/google/inject/internal/BindingBuilder.java3
-rw-r--r--src/com/google/inject/internal/BindingImpl.java1
-rw-r--r--src/com/google/inject/internal/BindingProcessor.java2
-rw-r--r--src/com/google/inject/internal/BytecodeGen.java2
-rw-r--r--src/com/google/inject/internal/ConstantBindingBuilderImpl.java1
-rw-r--r--src/com/google/inject/internal/ConstantFactory.java1
-rw-r--r--src/com/google/inject/internal/ConstructionProxy.java4
-rw-r--r--src/com/google/inject/internal/ConstructorBindingImpl.java6
-rw-r--r--src/com/google/inject/internal/ConstructorInjector.java1
-rw-r--r--src/com/google/inject/internal/ConstructorInjectorStore.java3
-rw-r--r--src/com/google/inject/internal/DefaultConstructionProxyFactory.java4
-rw-r--r--src/com/google/inject/internal/DeferredLookups.java1
-rw-r--r--src/com/google/inject/internal/DelegatingInvocationHandler.java2
-rw-r--r--src/com/google/inject/internal/EncounterImpl.java4
-rw-r--r--src/com/google/inject/internal/Errors.java5
-rw-r--r--src/com/google/inject/internal/ExposedBindingImpl.java2
-rw-r--r--src/com/google/inject/internal/ExposureBuilder.java7
-rw-r--r--src/com/google/inject/internal/FactoryProxy.java1
-rw-r--r--src/com/google/inject/internal/FailableCache.java1
-rw-r--r--src/com/google/inject/internal/InheritingState.java5
-rw-r--r--src/com/google/inject/internal/Initializer.java4
-rw-r--r--src/com/google/inject/internal/InjectionRequestProcessor.java2
-rw-r--r--src/com/google/inject/internal/InjectorImpl.java10
-rw-r--r--src/com/google/inject/internal/InjectorShell.java9
-rw-r--r--src/com/google/inject/internal/InstanceBindingImpl.java3
-rw-r--r--src/com/google/inject/internal/InternalContext.java1
-rw-r--r--src/com/google/inject/internal/InternalFactoryToProviderAdapter.java2
-rw-r--r--src/com/google/inject/internal/InternalInjectorCreator.java8
-rw-r--r--src/com/google/inject/internal/LinkedBindingImpl.java6
-rw-r--r--src/com/google/inject/internal/LinkedProviderBindingImpl.java6
-rw-r--r--src/com/google/inject/internal/Lookups.java2
-rw-r--r--src/com/google/inject/internal/MatcherAndConverter.java2
-rw-r--r--src/com/google/inject/internal/MembersInjectorImpl.java3
-rw-r--r--src/com/google/inject/internal/MembersInjectorStore.java2
-rw-r--r--src/com/google/inject/internal/MethodAspect.java2
-rw-r--r--src/com/google/inject/internal/MoreTypes.java7
-rw-r--r--src/com/google/inject/internal/PrivateElementProcessor.java1
-rw-r--r--src/com/google/inject/internal/PrivateElementsImpl.java11
-rw-r--r--src/com/google/inject/internal/ProviderInstanceBindingImpl.java3
-rw-r--r--src/com/google/inject/internal/ProviderMethod.java2
-rw-r--r--src/com/google/inject/internal/ProviderMethodsModule.java4
-rw-r--r--src/com/google/inject/internal/ProxyFactory.java7
-rw-r--r--src/com/google/inject/internal/ScopeBindingProcessor.java2
-rw-r--r--src/com/google/inject/internal/Scoping.java5
-rw-r--r--src/com/google/inject/internal/State.java3
-rw-r--r--src/com/google/inject/internal/TypeConverterBindingProcessor.java2
-rw-r--r--src/com/google/inject/internal/UniqueAnnotations.java1
-rw-r--r--src/com/google/inject/internal/UntargettedBindingImpl.java2
-rw-r--r--src/com/google/inject/internal/WeakKeySet.java1
-rw-r--r--src/com/google/inject/internal/util/AbstractIterator.java (renamed from src/com/google/inject/internal/AbstractIterator.java)2
-rw-r--r--src/com/google/inject/internal/util/AbstractMapEntry.java (renamed from src/com/google/inject/internal/AbstractMapEntry.java)3
-rw-r--r--src/com/google/inject/internal/util/AsynchronousComputationException.java (renamed from src/com/google/inject/internal/AsynchronousComputationException.java)2
-rw-r--r--src/com/google/inject/internal/util/Classes.java (renamed from src/com/google/inject/internal/Classes.java)4
-rw-r--r--src/com/google/inject/internal/util/Collections2.java (renamed from src/com/google/inject/internal/Collections2.java)3
-rw-r--r--src/com/google/inject/internal/util/ComputationException.java (renamed from src/com/google/inject/internal/ComputationException.java)2
-rw-r--r--src/com/google/inject/internal/util/CustomConcurrentHashMap.java (renamed from src/com/google/inject/internal/CustomConcurrentHashMap.java)6
-rw-r--r--src/com/google/inject/internal/util/ExpirationTimer.java (renamed from src/com/google/inject/internal/ExpirationTimer.java)2
-rw-r--r--src/com/google/inject/internal/util/FinalizablePhantomReference.java (renamed from src/com/google/inject/internal/FinalizablePhantomReference.java)2
-rw-r--r--src/com/google/inject/internal/util/FinalizableReference.java (renamed from src/com/google/inject/internal/FinalizableReference.java)2
-rw-r--r--src/com/google/inject/internal/util/FinalizableReferenceQueue.java (renamed from src/com/google/inject/internal/FinalizableReferenceQueue.java)4
-rw-r--r--src/com/google/inject/internal/util/FinalizableSoftReference.java (renamed from src/com/google/inject/internal/FinalizableSoftReference.java)2
-rw-r--r--src/com/google/inject/internal/util/FinalizableWeakReference.java (renamed from src/com/google/inject/internal/FinalizableWeakReference.java)4
-rw-r--r--src/com/google/inject/internal/util/Finalizer.java (renamed from src/com/google/inject/internal/Finalizer.java)12
-rw-r--r--src/com/google/inject/internal/util/Hashing.java (renamed from src/com/google/inject/internal/Hashing.java)2
-rw-r--r--src/com/google/inject/internal/util/ImmutableCollection.java (renamed from src/com/google/inject/internal/ImmutableCollection.java)3
-rw-r--r--src/com/google/inject/internal/util/ImmutableEntry.java (renamed from src/com/google/inject/internal/ImmutableEntry.java)3
-rw-r--r--src/com/google/inject/internal/util/ImmutableList.java (renamed from src/com/google/inject/internal/ImmutableList.java)3
-rw-r--r--src/com/google/inject/internal/util/ImmutableMap.java (renamed from src/com/google/inject/internal/ImmutableMap.java)3
-rw-r--r--src/com/google/inject/internal/util/ImmutableSet.java (renamed from src/com/google/inject/internal/ImmutableSet.java)3
-rw-r--r--src/com/google/inject/internal/util/Iterables.java (renamed from src/com/google/inject/internal/Iterables.java)3
-rw-r--r--src/com/google/inject/internal/util/Iterators.java (renamed from src/com/google/inject/internal/Iterators.java)4
-rw-r--r--src/com/google/inject/internal/util/Join.java (renamed from src/com/google/inject/internal/Join.java)18
-rw-r--r--src/com/google/inject/internal/util/LineNumbers.java (renamed from src/com/google/inject/internal/LineNumbers.java)8
-rw-r--r--src/com/google/inject/internal/util/Lists.java (renamed from src/com/google/inject/internal/Lists.java)3
-rw-r--r--src/com/google/inject/internal/util/MapMaker.java (renamed from src/com/google/inject/internal/MapMaker.java)7
-rw-r--r--src/com/google/inject/internal/util/Maps.java (renamed from src/com/google/inject/internal/Maps.java)3
-rw-r--r--src/com/google/inject/internal/util/NullOutputException.java (renamed from src/com/google/inject/internal/NullOutputException.java)2
-rw-r--r--src/com/google/inject/internal/util/ObjectArrays.java (renamed from src/com/google/inject/internal/ObjectArrays.java)2
-rw-r--r--src/com/google/inject/internal/util/Objects.java (renamed from src/com/google/inject/internal/Objects.java)3
-rw-r--r--src/com/google/inject/internal/util/Preconditions.java (renamed from src/com/google/inject/internal/Preconditions.java)4
-rw-r--r--src/com/google/inject/internal/util/Sets.java (renamed from src/com/google/inject/internal/Sets.java)3
-rw-r--r--src/com/google/inject/internal/util/SourceProvider.java (renamed from src/com/google/inject/internal/SourceProvider.java)4
-rw-r--r--src/com/google/inject/internal/util/StackTraceElements.java (renamed from src/com/google/inject/internal/StackTraceElements.java)4
-rw-r--r--src/com/google/inject/internal/util/Stopwatch.java (renamed from src/com/google/inject/internal/Stopwatch.java)4
-rw-r--r--src/com/google/inject/internal/util/Strings.java (renamed from src/com/google/inject/internal/Strings.java)2
-rw-r--r--src/com/google/inject/internal/util/ToStringBuilder.java (renamed from src/com/google/inject/internal/ToStringBuilder.java)2
-rw-r--r--src/com/google/inject/internal/util/UnmodifiableIterator.java (renamed from src/com/google/inject/internal/UnmodifiableIterator.java)2
-rw-r--r--src/com/google/inject/matcher/Matchers.java4
-rw-r--r--src/com/google/inject/name/NamedImpl.java2
-rw-r--r--src/com/google/inject/spi/Dependency.java8
-rw-r--r--src/com/google/inject/spi/Elements.java12
-rw-r--r--src/com/google/inject/spi/ExposedBinding.java2
-rw-r--r--src/com/google/inject/spi/InjectionPoint.java8
-rw-r--r--src/com/google/inject/spi/InjectionRequest.java2
-rw-r--r--src/com/google/inject/spi/InterceptorBinding.java4
-rw-r--r--src/com/google/inject/spi/MembersInjectorLookup.java4
-rw-r--r--src/com/google/inject/spi/Message.java8
-rw-r--r--src/com/google/inject/spi/ProviderLookup.java6
-rw-r--r--src/com/google/inject/spi/ScopeBinding.java4
-rw-r--r--src/com/google/inject/spi/StaticInjectionRequest.java4
-rw-r--r--src/com/google/inject/spi/Toolable.java11
-rw-r--r--src/com/google/inject/spi/TypeConverterBinding.java4
-rw-r--r--src/com/google/inject/spi/TypeEncounter.java2
-rw-r--r--src/com/google/inject/util/Jsr330.java2
-rw-r--r--src/com/google/inject/util/Modules.java12
-rw-r--r--src/com/google/inject/util/Node.java4
-rw-r--r--test/com/google/inject/AllTests.java10
-rw-r--r--test/com/google/inject/BinderTest.java6
-rw-r--r--test/com/google/inject/BinderTestSuite.java4
-rw-r--r--test/com/google/inject/BindingTest.java4
-rw-r--r--test/com/google/inject/DuplicateBindingsTest.java2
-rw-r--r--test/com/google/inject/GenericInjectionTest.java4
-rw-r--r--test/com/google/inject/ImplicitBindingTest.java2
-rw-r--r--test/com/google/inject/MethodInterceptionTest.java4
-rw-r--r--test/com/google/inject/ParentInjectorTest.java2
-rw-r--r--test/com/google/inject/PrivateModuleTest.java2
-rw-r--r--test/com/google/inject/ScopesTest.java4
-rw-r--r--test/com/google/inject/TypeConversionTest.java2
-rw-r--r--test/com/google/inject/TypeListenerTest.java4
-rw-r--r--test/com/google/inject/TypeLiteralTest.java2
-rw-r--r--test/com/google/inject/TypeLiteralTypeResolutionTest.java2
-rw-r--r--test/com/google/inject/internal/ProxyFactoryTest.java2
-rw-r--r--test/com/google/inject/internal/util/FinalizableReferenceQueueTest.java (renamed from test/com/google/inject/internal/FinalizableReferenceQueueTest.java)5
-rw-r--r--test/com/google/inject/internal/util/ForwardingCollection.java (renamed from test/com/google/inject/internal/ForwardingCollection.java)4
-rw-r--r--test/com/google/inject/internal/util/ForwardingConcurrentMap.java (renamed from test/com/google/inject/internal/ForwardingConcurrentMap.java)2
-rw-r--r--test/com/google/inject/internal/util/ForwardingMap.java (renamed from test/com/google/inject/internal/ForwardingMap.java)2
-rw-r--r--test/com/google/inject/internal/util/ForwardingObject.java (renamed from test/com/google/inject/internal/ForwardingObject.java)2
-rw-r--r--test/com/google/inject/internal/util/ForwardingSet.java (renamed from test/com/google/inject/internal/ForwardingSet.java)2
-rw-r--r--test/com/google/inject/internal/util/Jsr166HashMap.java (renamed from test/com/google/inject/internal/Jsr166HashMap.java)6
-rw-r--r--test/com/google/inject/internal/util/Jsr166HashMapTest.java (renamed from test/com/google/inject/internal/Jsr166HashMapTest.java)3
-rw-r--r--test/com/google/inject/internal/util/LineNumbersTest.java (renamed from test/com/google/inject/internal/LineNumbersTest.java)3
-rw-r--r--test/com/google/inject/internal/util/MapMakerTestSuite.java (renamed from test/com/google/inject/internal/MapMakerTestSuite.java)12
-rw-r--r--test/com/google/inject/name/NamesTest.java2
-rw-r--r--test/com/google/inject/spi/ElementsTest.java7
-rw-r--r--test/com/google/inject/spi/HasDependenciesTest.java4
-rw-r--r--test/com/google/inject/spi/InjectionPointTest.java7
-rw-r--r--test/com/google/inject/spi/ModuleRewriterTest.java2
-rw-r--r--test/com/google/inject/spi/ProviderMethodsTest.java5
-rw-r--r--test/com/google/inject/spi/SpiBindingsTest.java4
-rw-r--r--test/com/googlecode/guice/StrictContainerTestSuite.java8
193 files changed, 435 insertions, 323 deletions
diff --git a/extensions/assistedinject/src/com/google/inject/assistedinject/AssistedConstructor.java b/extensions/assistedinject/src/com/google/inject/assistedinject/AssistedConstructor.java
index b6024e25..78b79af2 100755
--- a/extensions/assistedinject/src/com/google/inject/assistedinject/AssistedConstructor.java
+++ b/extensions/assistedinject/src/com/google/inject/assistedinject/AssistedConstructor.java
@@ -18,7 +18,7 @@ package com.google.inject.assistedinject;
import com.google.inject.Inject;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.Lists;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
diff --git a/extensions/assistedinject/src/com/google/inject/assistedinject/BindingCollector.java b/extensions/assistedinject/src/com/google/inject/assistedinject/BindingCollector.java
index e33e6dba..3f8dedbd 100644
--- a/extensions/assistedinject/src/com/google/inject/assistedinject/BindingCollector.java
+++ b/extensions/assistedinject/src/com/google/inject/assistedinject/BindingCollector.java
@@ -18,8 +18,8 @@ package com.google.inject.assistedinject;
import com.google.inject.ConfigurationException;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Maps;
import com.google.inject.spi.Message;
import java.util.Collections;
import java.util.Map;
diff --git a/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java b/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
index deab85ff..8b336eed 100755
--- a/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
+++ b/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider.java
@@ -26,10 +26,10 @@ import static com.google.inject.internal.Annotations.getKey;
import com.google.inject.internal.BytecodeGen;
import com.google.inject.internal.Errors;
import com.google.inject.internal.ErrorsException;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
import com.google.inject.spi.Message;
diff --git a/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider2.java b/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider2.java
index 282c9ca9..101f7987 100644
--- a/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider2.java
+++ b/extensions/assistedinject/src/com/google/inject/assistedinject/FactoryProvider2.java
@@ -31,14 +31,14 @@ import static com.google.inject.internal.Annotations.getKey;
import com.google.inject.internal.BytecodeGen;
import com.google.inject.internal.Errors;
import com.google.inject.internal.ErrorsException;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.Iterables;
-import com.google.inject.internal.ToStringBuilder;
-
-import static com.google.inject.internal.Iterables.getOnlyElement;
-import com.google.inject.internal.Lists;
-import static com.google.inject.internal.Preconditions.checkState;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.Iterables;
+import com.google.inject.internal.util.ToStringBuilder;
+
+import static com.google.inject.internal.util.Iterables.getOnlyElement;
+import com.google.inject.internal.util.Lists;
+import static com.google.inject.internal.util.Preconditions.checkState;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.InjectionPoint;
diff --git a/extensions/assistedinject/src/com/google/inject/assistedinject/Parameter.java b/extensions/assistedinject/src/com/google/inject/assistedinject/Parameter.java
index 42626154..dfb830d2 100755
--- a/extensions/assistedinject/src/com/google/inject/assistedinject/Parameter.java
+++ b/extensions/assistedinject/src/com/google/inject/assistedinject/Parameter.java
@@ -21,7 +21,7 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Provider;
import com.google.inject.internal.Annotations;
-import static com.google.inject.internal.Preconditions.checkArgument;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
import java.lang.annotation.Annotation;
import java.lang.reflect.ParameterizedType;
import java.lang.reflect.Type;
diff --git a/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryModuleBuilderTest.java b/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryModuleBuilderTest.java
index 2227b0f7..27abb789 100644
--- a/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryModuleBuilderTest.java
+++ b/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryModuleBuilderTest.java
@@ -24,7 +24,7 @@ import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Iterables;
+import com.google.inject.internal.util.Iterables;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
import com.google.inject.spi.Message;
diff --git a/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryProviderTest.java b/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryProviderTest.java
index cc770013..e3abf7c5 100755
--- a/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryProviderTest.java
+++ b/extensions/assistedinject/test/com/google/inject/assistedinject/FactoryProviderTest.java
@@ -27,7 +27,7 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableSet;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
import com.google.inject.spi.Dependency;
diff --git a/extensions/grapher/src/com/google/inject/grapher/GraphingVisitor.java b/extensions/grapher/src/com/google/inject/grapher/GraphingVisitor.java
index 85bb0adf..73098cb2 100644
--- a/extensions/grapher/src/com/google/inject/grapher/GraphingVisitor.java
+++ b/extensions/grapher/src/com/google/inject/grapher/GraphingVisitor.java
@@ -20,7 +20,7 @@ import com.google.inject.Binding;
import com.google.inject.Inject;
import com.google.inject.Key;
import com.google.inject.Provider;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.Lists;
import com.google.inject.internal.Nullable;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.ConstructorBinding;
diff --git a/extensions/grapher/src/com/google/inject/grapher/InjectorGrapher.java b/extensions/grapher/src/com/google/inject/grapher/InjectorGrapher.java
index 6782f2af..c6a8fb01 100644
--- a/extensions/grapher/src/com/google/inject/grapher/InjectorGrapher.java
+++ b/extensions/grapher/src/com/google/inject/grapher/InjectorGrapher.java
@@ -21,7 +21,7 @@ import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Key;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Sets;
import com.google.inject.spi.BindingTargetVisitor;
import java.io.IOException;
import java.util.Collection;
diff --git a/extensions/grapher/src/com/google/inject/grapher/ShortNameFactory.java b/extensions/grapher/src/com/google/inject/grapher/ShortNameFactory.java
index 396691eb..83c145a9 100644
--- a/extensions/grapher/src/com/google/inject/grapher/ShortNameFactory.java
+++ b/extensions/grapher/src/com/google/inject/grapher/ShortNameFactory.java
@@ -18,10 +18,10 @@ package com.google.inject.grapher;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Join;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.Join;
+import com.google.inject.internal.util.Lists;
import com.google.inject.internal.ProviderMethod;
-import com.google.inject.internal.StackTraceElements;
+import com.google.inject.internal.util.StackTraceElements;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
diff --git a/extensions/grapher/src/com/google/inject/grapher/TransitiveDependencyVisitor.java b/extensions/grapher/src/com/google/inject/grapher/TransitiveDependencyVisitor.java
index f7badaee..62dcdd20 100644
--- a/extensions/grapher/src/com/google/inject/grapher/TransitiveDependencyVisitor.java
+++ b/extensions/grapher/src/com/google/inject/grapher/TransitiveDependencyVisitor.java
@@ -17,8 +17,8 @@
package com.google.inject.grapher;
import com.google.inject.Key;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Sets;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.ConstructorBinding;
import com.google.inject.spi.ConvertedConstantBinding;
diff --git a/extensions/grapher/src/com/google/inject/grapher/graphviz/BindingEdgeFactory.java b/extensions/grapher/src/com/google/inject/grapher/graphviz/BindingEdgeFactory.java
index 4c065099..68d61e7e 100644
--- a/extensions/grapher/src/com/google/inject/grapher/graphviz/BindingEdgeFactory.java
+++ b/extensions/grapher/src/com/google/inject/grapher/graphviz/BindingEdgeFactory.java
@@ -18,7 +18,7 @@ package com.google.inject.grapher.graphviz;
import com.google.inject.Inject;
import com.google.inject.grapher.BindingEdge;
-import com.google.inject.internal.ImmutableList;
+import com.google.inject.internal.util.ImmutableList;
/**
* Graphviz-specific implementation of {@link BindingEdge.Factory}. Uses a
diff --git a/extensions/grapher/src/com/google/inject/grapher/graphviz/DependencyEdgeFactory.java b/extensions/grapher/src/com/google/inject/grapher/graphviz/DependencyEdgeFactory.java
index 008cea88..ca82c92f 100644
--- a/extensions/grapher/src/com/google/inject/grapher/graphviz/DependencyEdgeFactory.java
+++ b/extensions/grapher/src/com/google/inject/grapher/graphviz/DependencyEdgeFactory.java
@@ -18,7 +18,7 @@ package com.google.inject.grapher.graphviz;
import com.google.inject.Inject;
import com.google.inject.grapher.DependencyEdge;
-import com.google.inject.internal.ImmutableList;
+import com.google.inject.internal.util.ImmutableList;
import com.google.inject.spi.InjectionPoint;
/**
diff --git a/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizEdge.java b/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizEdge.java
index 0692e34d..aab1cb84 100644
--- a/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizEdge.java
+++ b/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizEdge.java
@@ -16,7 +16,7 @@
package com.google.inject.grapher.graphviz;
-import com.google.inject.internal.ImmutableList;
+import com.google.inject.internal.util.ImmutableList;
import java.util.List;
/**
diff --git a/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizNode.java b/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizNode.java
index a8c0d869..9b06ba69 100644
--- a/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizNode.java
+++ b/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizNode.java
@@ -16,9 +16,9 @@
package com.google.inject.grapher.graphviz;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.Maps;
import java.util.List;
import java.util.Map;
diff --git a/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizRenderer.java b/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizRenderer.java
index 09185276..7d01f5fb 100644
--- a/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizRenderer.java
+++ b/extensions/grapher/src/com/google/inject/grapher/graphviz/GraphvizRenderer.java
@@ -19,9 +19,9 @@ package com.google.inject.grapher.graphviz;
import com.google.inject.grapher.ImplementationNode;
import com.google.inject.grapher.NodeAliasFactory;
import com.google.inject.grapher.Renderer;
-import com.google.inject.internal.Join;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.Join;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
import java.io.PrintWriter;
import java.util.List;
import java.util.Map;
diff --git a/extensions/grapher/test/com/google/inject/grapher/GraphingVisitorTest.java b/extensions/grapher/test/com/google/inject/grapher/GraphingVisitorTest.java
index 8450a383..8b4ce452 100644
--- a/extensions/grapher/test/com/google/inject/grapher/GraphingVisitorTest.java
+++ b/extensions/grapher/test/com/google/inject/grapher/GraphingVisitorTest.java
@@ -21,8 +21,8 @@ import com.google.inject.Guice;
import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Key;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.ConstructorBinding;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
diff --git a/extensions/grapher/test/com/google/inject/grapher/ShortNameFactoryTest.java b/extensions/grapher/test/com/google/inject/grapher/ShortNameFactoryTest.java
index 8907ee3b..97772d27 100644
--- a/extensions/grapher/test/com/google/inject/grapher/ShortNameFactoryTest.java
+++ b/extensions/grapher/test/com/google/inject/grapher/ShortNameFactoryTest.java
@@ -27,7 +27,7 @@ import com.google.inject.Provider;
import com.google.inject.Provides;
import com.google.inject.TypeLiteral;
import com.google.inject.internal.ProviderMethod;
-import com.google.inject.internal.StackTraceElements;
+import com.google.inject.internal.util.StackTraceElements;
import com.google.inject.name.Names;
import com.google.inject.spi.DefaultBindingTargetVisitor;
import com.google.inject.spi.ProviderInstanceBinding;
diff --git a/extensions/grapher/test/com/google/inject/grapher/TransitiveDependencyVisitorTest.java b/extensions/grapher/test/com/google/inject/grapher/TransitiveDependencyVisitorTest.java
index e124e628..8e896f7e 100644
--- a/extensions/grapher/test/com/google/inject/grapher/TransitiveDependencyVisitorTest.java
+++ b/extensions/grapher/test/com/google/inject/grapher/TransitiveDependencyVisitorTest.java
@@ -24,7 +24,7 @@ import com.google.inject.Key;
import com.google.inject.Module;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableSet;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.name.Names;
import com.google.inject.spi.ConstructorBinding;
import com.google.inject.spi.ConvertedConstantBinding;
diff --git a/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java b/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java
index 6c9993f1..072996a1 100644
--- a/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java
+++ b/extensions/multibindings/src/com/google/inject/multibindings/MapBinder.java
@@ -24,8 +24,8 @@ import com.google.inject.Module;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
import com.google.inject.binder.LinkedBindingBuilder;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.ImmutableSet;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.multibindings.Multibinder.RealMultibinder;
import static com.google.inject.multibindings.Multibinder.checkConfiguration;
import static com.google.inject.multibindings.Multibinder.checkNotNull;
diff --git a/extensions/multibindings/src/com/google/inject/multibindings/Multibinder.java b/extensions/multibindings/src/com/google/inject/multibindings/Multibinder.java
index b846e042..bc011343 100644
--- a/extensions/multibindings/src/com/google/inject/multibindings/Multibinder.java
+++ b/extensions/multibindings/src/com/google/inject/multibindings/Multibinder.java
@@ -29,10 +29,11 @@ import com.google.inject.TypeLiteral;
import com.google.inject.binder.LinkedBindingBuilder;
import com.google.inject.internal.Annotations;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
import static com.google.inject.name.Names.named;
+
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
import com.google.inject.spi.Message;
diff --git a/extensions/multibindings/test/com/google/inject/multibindings/MapBinderTest.java b/extensions/multibindings/test/com/google/inject/multibindings/MapBinderTest.java
index 3ba12521..36acb199 100644
--- a/extensions/multibindings/test/com/google/inject/multibindings/MapBinderTest.java
+++ b/extensions/multibindings/test/com/google/inject/multibindings/MapBinderTest.java
@@ -34,8 +34,8 @@ import com.google.inject.Provider;
import com.google.inject.ProvisionException;
import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Maps;
import com.google.inject.name.Names;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
diff --git a/extensions/multibindings/test/com/google/inject/multibindings/MultibinderTest.java b/extensions/multibindings/test/com/google/inject/multibindings/MultibinderTest.java
index 0cab9266..47a6ead7 100644
--- a/extensions/multibindings/test/com/google/inject/multibindings/MultibinderTest.java
+++ b/extensions/multibindings/test/com/google/inject/multibindings/MultibinderTest.java
@@ -19,7 +19,6 @@ package com.google.inject.multibindings;
import com.google.inject.AbstractModule;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.Binder;
import com.google.inject.Binding;
import com.google.inject.BindingAnnotation;
import com.google.inject.CreationException;
@@ -32,9 +31,9 @@ import com.google.inject.Provider;
import com.google.inject.ProvisionException;
import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Sets;
import com.google.inject.name.Names;
import static com.google.inject.name.Names.named;
import com.google.inject.spi.Dependency;
diff --git a/extensions/persist/src/com/google/inject/persist/PersistModule.java b/extensions/persist/src/com/google/inject/persist/PersistModule.java
index d8d5956b..409d3b60 100644
--- a/extensions/persist/src/com/google/inject/persist/PersistModule.java
+++ b/extensions/persist/src/com/google/inject/persist/PersistModule.java
@@ -2,7 +2,7 @@ package com.google.inject.persist;
import com.google.inject.AbstractModule;
import com.google.inject.BindingAnnotation;
-import com.google.inject.internal.Preconditions;
+import com.google.inject.internal.util.Preconditions;
import com.google.inject.persist.jpa.InternalJpaModule;
import com.google.inject.servlet.ServletModule;
import java.lang.annotation.Retention;
diff --git a/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerFactoryProvider.java b/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerFactoryProvider.java
index 8aed0f27..738ad9f2 100644
--- a/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerFactoryProvider.java
+++ b/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerFactoryProvider.java
@@ -20,7 +20,7 @@ import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.google.inject.internal.Nullable;
-import com.google.inject.internal.Preconditions;
+import com.google.inject.internal.util.Preconditions;
import com.google.inject.persist.PersistModule;
import com.google.inject.persist.PersistenceService;
import java.util.Properties;
diff --git a/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerProvider.java b/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerProvider.java
index 7644a3ac..82f71f4d 100644
--- a/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerProvider.java
+++ b/extensions/persist/src/com/google/inject/persist/jpa/EntityManagerProvider.java
@@ -19,7 +19,7 @@ package com.google.inject.persist.jpa;
import com.google.inject.Inject;
import com.google.inject.Provider;
import com.google.inject.Singleton;
-import com.google.inject.internal.Preconditions;
+import com.google.inject.internal.util.Preconditions;
import com.google.inject.persist.WorkManager;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
diff --git a/extensions/throwingproviders/src/com/google/inject/throwingproviders/ThrowingProviderBinder.java b/extensions/throwingproviders/src/com/google/inject/throwingproviders/ThrowingProviderBinder.java
index c23d7677..4eadf1eb 100644
--- a/extensions/throwingproviders/src/com/google/inject/throwingproviders/ThrowingProviderBinder.java
+++ b/extensions/throwingproviders/src/com/google/inject/throwingproviders/ThrowingProviderBinder.java
@@ -23,7 +23,7 @@ import com.google.inject.Key;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
import com.google.inject.binder.ScopedBindingBuilder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.internal.UniqueAnnotations;
import com.google.inject.util.Types;
import java.lang.annotation.Annotation;
diff --git a/lifecycle/src/com/google/inject/lifecycle/BroadcastingLifecycle.java b/lifecycle/src/com/google/inject/lifecycle/BroadcastingLifecycle.java
index 03681858..fe4479d7 100644
--- a/lifecycle/src/com/google/inject/lifecycle/BroadcastingLifecycle.java
+++ b/lifecycle/src/com/google/inject/lifecycle/BroadcastingLifecycle.java
@@ -6,9 +6,9 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Preconditions;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Preconditions;
import com.google.inject.matcher.Matcher;
import static com.google.inject.matcher.Matchers.any;
import java.lang.reflect.Method;
diff --git a/lifecycle/src/com/google/inject/lifecycle/LifecycleModule.java b/lifecycle/src/com/google/inject/lifecycle/LifecycleModule.java
index 7c780bfe..f6b8e986 100644
--- a/lifecycle/src/com/google/inject/lifecycle/LifecycleModule.java
+++ b/lifecycle/src/com/google/inject/lifecycle/LifecycleModule.java
@@ -2,8 +2,8 @@ package com.google.inject.lifecycle;
import com.google.inject.AbstractModule;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
import java.util.List;
/**
diff --git a/servlet/src/com/google/inject/servlet/FilterDefinition.java b/servlet/src/com/google/inject/servlet/FilterDefinition.java
index 80977130..b7e185ae 100755
--- a/servlet/src/com/google/inject/servlet/FilterDefinition.java
+++ b/servlet/src/com/google/inject/servlet/FilterDefinition.java
@@ -18,7 +18,7 @@ package com.google.inject.servlet;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Scopes;
-import com.google.inject.internal.Iterators;
+import com.google.inject.internal.util.Iterators;
import java.io.IOException;
import java.util.Collections;
import java.util.Enumeration;
diff --git a/servlet/src/com/google/inject/servlet/FiltersModuleBuilder.java b/servlet/src/com/google/inject/servlet/FiltersModuleBuilder.java
index 68797efe..afc471f4 100755
--- a/servlet/src/com/google/inject/servlet/FiltersModuleBuilder.java
+++ b/servlet/src/com/google/inject/servlet/FiltersModuleBuilder.java
@@ -18,7 +18,7 @@ package com.google.inject.servlet;
import com.google.inject.AbstractModule;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.Lists;
import com.google.inject.internal.UniqueAnnotations;
import java.util.HashMap;
import java.util.List;
diff --git a/servlet/src/com/google/inject/servlet/ManagedFilterPipeline.java b/servlet/src/com/google/inject/servlet/ManagedFilterPipeline.java
index 56df5602..2cf573d1 100755
--- a/servlet/src/com/google/inject/servlet/ManagedFilterPipeline.java
+++ b/servlet/src/com/google/inject/servlet/ManagedFilterPipeline.java
@@ -22,9 +22,9 @@ import com.google.inject.Key;
import com.google.inject.Provider;
import com.google.inject.Singleton;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Sets;
import java.io.IOException;
import java.util.List;
import java.util.Set;
diff --git a/servlet/src/com/google/inject/servlet/ManagedServletPipeline.java b/servlet/src/com/google/inject/servlet/ManagedServletPipeline.java
index 650e7b18..d3cb0ab5 100755
--- a/servlet/src/com/google/inject/servlet/ManagedServletPipeline.java
+++ b/servlet/src/com/google/inject/servlet/ManagedServletPipeline.java
@@ -21,10 +21,10 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Singleton;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Preconditions;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Preconditions;
+import com.google.inject.internal.util.Sets;
import java.io.IOException;
import java.util.List;
import java.util.Set;
diff --git a/servlet/src/com/google/inject/servlet/ServletDefinition.java b/servlet/src/com/google/inject/servlet/ServletDefinition.java
index a4ef7e29..941b8ad3 100755
--- a/servlet/src/com/google/inject/servlet/ServletDefinition.java
+++ b/servlet/src/com/google/inject/servlet/ServletDefinition.java
@@ -18,7 +18,7 @@ package com.google.inject.servlet;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Scopes;
-import com.google.inject.internal.Iterators;
+import com.google.inject.internal.util.Iterators;
import java.io.IOException;
import java.util.Collections;
import java.util.Enumeration;
diff --git a/servlet/src/com/google/inject/servlet/ServletModule.java b/servlet/src/com/google/inject/servlet/ServletModule.java
index bd846f62..f75659fd 100644
--- a/servlet/src/com/google/inject/servlet/ServletModule.java
+++ b/servlet/src/com/google/inject/servlet/ServletModule.java
@@ -18,7 +18,7 @@ package com.google.inject.servlet;
import com.google.inject.AbstractModule;
import com.google.inject.Key;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.Lists;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.ServletContext;
diff --git a/servlet/src/com/google/inject/servlet/ServletsModuleBuilder.java b/servlet/src/com/google/inject/servlet/ServletsModuleBuilder.java
index 47af60e6..bf9f4079 100755
--- a/servlet/src/com/google/inject/servlet/ServletsModuleBuilder.java
+++ b/servlet/src/com/google/inject/servlet/ServletsModuleBuilder.java
@@ -18,8 +18,8 @@ package com.google.inject.servlet;
import com.google.inject.AbstractModule;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Sets;
import com.google.inject.internal.UniqueAnnotations;
import java.util.HashMap;
import java.util.List;
diff --git a/servlet/test/com/google/inject/servlet/FilterDefinitionTest.java b/servlet/test/com/google/inject/servlet/FilterDefinitionTest.java
index 8436737b..4729972d 100644
--- a/servlet/test/com/google/inject/servlet/FilterDefinitionTest.java
+++ b/servlet/test/com/google/inject/servlet/FilterDefinitionTest.java
@@ -3,8 +3,8 @@ package com.google.inject.servlet;
import com.google.inject.Binding;
import com.google.inject.Injector;
import com.google.inject.Key;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Sets;
import com.google.inject.spi.BindingScopingVisitor;
import java.io.IOException;
import java.util.Enumeration;
diff --git a/servlet/test/com/google/inject/servlet/ServletDefinitionPathsTest.java b/servlet/test/com/google/inject/servlet/ServletDefinitionPathsTest.java
index 0c7d50f9..bdc69c4a 100644
--- a/servlet/test/com/google/inject/servlet/ServletDefinitionPathsTest.java
+++ b/servlet/test/com/google/inject/servlet/ServletDefinitionPathsTest.java
@@ -19,8 +19,8 @@ package com.google.inject.servlet;
import com.google.inject.Binding;
import com.google.inject.Injector;
import com.google.inject.Key;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Sets;
import com.google.inject.spi.BindingScopingVisitor;
import java.io.IOException;
import java.util.HashMap;
diff --git a/servlet/test/com/google/inject/servlet/ServletDefinitionTest.java b/servlet/test/com/google/inject/servlet/ServletDefinitionTest.java
index 7219e773..0c6af1cd 100644
--- a/servlet/test/com/google/inject/servlet/ServletDefinitionTest.java
+++ b/servlet/test/com/google/inject/servlet/ServletDefinitionTest.java
@@ -20,8 +20,8 @@ import com.google.inject.Binding;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.spi.BindingScopingVisitor;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Sets;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
diff --git a/servlet/test/com/google/inject/servlet/ServletPipelineRequestDispatcherTest.java b/servlet/test/com/google/inject/servlet/ServletPipelineRequestDispatcherTest.java
index c35391cb..e8d3be82 100644
--- a/servlet/test/com/google/inject/servlet/ServletPipelineRequestDispatcherTest.java
+++ b/servlet/test/com/google/inject/servlet/ServletPipelineRequestDispatcherTest.java
@@ -20,9 +20,9 @@ import com.google.inject.Binding;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Sets;
import com.google.inject.spi.BindingScopingVisitor;
import java.io.IOException;
import java.util.ArrayList;
diff --git a/servlet/test/com/google/inject/servlet/ServletTest.java b/servlet/test/com/google/inject/servlet/ServletTest.java
index cb6ebfac..ce4ef29b 100644
--- a/servlet/test/com/google/inject/servlet/ServletTest.java
+++ b/servlet/test/com/google/inject/servlet/ServletTest.java
@@ -23,7 +23,7 @@ import com.google.inject.CreationException;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.Maps;
import static com.google.inject.servlet.ServletScopes.NullObject;
import com.google.inject.util.Providers;
import java.io.IOException;
diff --git a/spring/src/com/google/inject/spring/SpringIntegration.java b/spring/src/com/google/inject/spring/SpringIntegration.java
index 6319b95c..7e23cb89 100644
--- a/spring/src/com/google/inject/spring/SpringIntegration.java
+++ b/spring/src/com/google/inject/spring/SpringIntegration.java
@@ -19,7 +19,7 @@ package com.google.inject.spring;
import com.google.inject.Binder;
import com.google.inject.Inject;
import com.google.inject.Provider;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.name.Names;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.ListableBeanFactory;
diff --git a/src/com/google/inject/AbstractModule.java b/src/com/google/inject/AbstractModule.java
index 08d89b7c..44085890 100644
--- a/src/com/google/inject/AbstractModule.java
+++ b/src/com/google/inject/AbstractModule.java
@@ -19,8 +19,8 @@ package com.google.inject;
import com.google.inject.binder.AnnotatedBindingBuilder;
import com.google.inject.binder.AnnotatedConstantBindingBuilder;
import com.google.inject.binder.LinkedBindingBuilder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import static com.google.inject.internal.Preconditions.checkState;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkState;
import com.google.inject.matcher.Matcher;
import com.google.inject.spi.Message;
import com.google.inject.spi.TypeConverter;
diff --git a/src/com/google/inject/ConfigurationException.java b/src/com/google/inject/ConfigurationException.java
index 458b2e1e..4b94a50f 100644
--- a/src/com/google/inject/ConfigurationException.java
+++ b/src/com/google/inject/ConfigurationException.java
@@ -17,8 +17,8 @@
package com.google.inject;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableSet;
-import static com.google.inject.internal.Preconditions.checkState;
+import com.google.inject.internal.util.ImmutableSet;
+import static com.google.inject.internal.util.Preconditions.checkState;
import com.google.inject.spi.Message;
import java.util.Collection;
diff --git a/src/com/google/inject/CreationException.java b/src/com/google/inject/CreationException.java
index a3b19b41..e031a617 100644
--- a/src/com/google/inject/CreationException.java
+++ b/src/com/google/inject/CreationException.java
@@ -17,8 +17,8 @@
package com.google.inject;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableSet;
-import static com.google.inject.internal.Preconditions.checkArgument;
+import com.google.inject.internal.util.ImmutableSet;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
import com.google.inject.spi.Message;
import java.util.Collection;
diff --git a/src/com/google/inject/InjectorBuilder.java b/src/com/google/inject/InjectorBuilder.java
index faeb99e1..41753a00 100644
--- a/src/com/google/inject/InjectorBuilder.java
+++ b/src/com/google/inject/InjectorBuilder.java
@@ -1,10 +1,9 @@
package com.google.inject;
+import com.google.inject.internal.InternalInjectorCreator;
import java.lang.reflect.Proxy;
import java.util.Arrays;
-import com.google.inject.internal.InternalInjectorCreator;
-
/**
* The advanced entry point to the Guice framework. Creates {@link Injector}s from
* {@link Module}s, allowing many options to be configured for the Injector.
diff --git a/src/com/google/inject/Key.java b/src/com/google/inject/Key.java
index 05787432..6ee15531 100644
--- a/src/com/google/inject/Key.java
+++ b/src/com/google/inject/Key.java
@@ -18,9 +18,8 @@ package com.google.inject;
import com.google.inject.internal.Annotations;
import com.google.inject.internal.MoreTypes;
-
-import static com.google.inject.internal.Preconditions.checkArgument;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.lang.annotation.Annotation;
import java.lang.reflect.Type;
diff --git a/src/com/google/inject/PrivateModule.java b/src/com/google/inject/PrivateModule.java
index 40a80cd8..26aae842 100644
--- a/src/com/google/inject/PrivateModule.java
+++ b/src/com/google/inject/PrivateModule.java
@@ -20,7 +20,7 @@ import com.google.inject.binder.AnnotatedBindingBuilder;
import com.google.inject.binder.AnnotatedConstantBindingBuilder;
import com.google.inject.binder.AnnotatedElementBuilder;
import com.google.inject.binder.LinkedBindingBuilder;
-import static com.google.inject.internal.Preconditions.checkState;
+import static com.google.inject.internal.util.Preconditions.checkState;
import com.google.inject.matcher.Matcher;
import com.google.inject.spi.Message;
import com.google.inject.spi.TypeConverter;
diff --git a/src/com/google/inject/ProvisionException.java b/src/com/google/inject/ProvisionException.java
index 8f529d81..e3ce9e1b 100644
--- a/src/com/google/inject/ProvisionException.java
+++ b/src/com/google/inject/ProvisionException.java
@@ -17,9 +17,9 @@
package com.google.inject;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableSet;
-import static com.google.inject.internal.Preconditions.checkArgument;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
import com.google.inject.spi.Message;
import java.util.Collection;
diff --git a/src/com/google/inject/Scopes.java b/src/com/google/inject/Scopes.java
index c96a5770..d10a657a 100644
--- a/src/com/google/inject/Scopes.java
+++ b/src/com/google/inject/Scopes.java
@@ -16,12 +16,11 @@
package com.google.inject;
-import java.lang.annotation.Annotation;
-
import com.google.inject.internal.CircularDependencyProxy;
import com.google.inject.internal.InternalInjectorCreator;
import com.google.inject.internal.LinkedBindingImpl;
import com.google.inject.spi.BindingScopingVisitor;
+import java.lang.annotation.Annotation;
/**
* Built-in scope implementations.
diff --git a/src/com/google/inject/TypeLiteral.java b/src/com/google/inject/TypeLiteral.java
index 27dc48b8..75008bd1 100644
--- a/src/com/google/inject/TypeLiteral.java
+++ b/src/com/google/inject/TypeLiteral.java
@@ -16,11 +16,11 @@
package com.google.inject;
-import com.google.inject.internal.ImmutableList;
import com.google.inject.internal.MoreTypes;
import static com.google.inject.internal.MoreTypes.canonicalize;
-import static com.google.inject.internal.Preconditions.checkArgument;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.ImmutableList;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.util.Types;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
diff --git a/src/com/google/inject/internal/AbstractBindingBuilder.java b/src/com/google/inject/internal/AbstractBindingBuilder.java
index 278fc216..e6c997fe 100644
--- a/src/com/google/inject/internal/AbstractBindingBuilder.java
+++ b/src/com/google/inject/internal/AbstractBindingBuilder.java
@@ -19,7 +19,7 @@ package com.google.inject.internal;
import com.google.inject.Binder;
import com.google.inject.Key;
import com.google.inject.Scope;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.Element;
import com.google.inject.spi.InstanceBinding;
import java.lang.annotation.Annotation;
diff --git a/src/com/google/inject/internal/Annotations.java b/src/com/google/inject/internal/Annotations.java
index d76d32a3..9b939831 100644
--- a/src/com/google/inject/internal/Annotations.java
+++ b/src/com/google/inject/internal/Annotations.java
@@ -20,9 +20,9 @@ import com.google.inject.BindingAnnotation;
import com.google.inject.Key;
import com.google.inject.ScopeAnnotation;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.Classes;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
-
import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/src/com/google/inject/internal/BindingBuilder.java b/src/com/google/inject/internal/BindingBuilder.java
index 692982f6..fa273e46 100644
--- a/src/com/google/inject/internal/BindingBuilder.java
+++ b/src/com/google/inject/internal/BindingBuilder.java
@@ -23,7 +23,8 @@ import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
import com.google.inject.binder.AnnotatedBindingBuilder;
import com.google.inject.binder.ScopedBindingBuilder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.ImmutableSet;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.Element;
import com.google.inject.spi.InjectionPoint;
import com.google.inject.spi.Message;
diff --git a/src/com/google/inject/internal/BindingImpl.java b/src/com/google/inject/internal/BindingImpl.java
index 72d4ec23..8ae7586e 100644
--- a/src/com/google/inject/internal/BindingImpl.java
+++ b/src/com/google/inject/internal/BindingImpl.java
@@ -19,6 +19,7 @@ package com.google.inject.internal;
import com.google.inject.Binding;
import com.google.inject.Key;
import com.google.inject.Provider;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingScopingVisitor;
import com.google.inject.spi.ElementVisitor;
import com.google.inject.spi.InstanceBinding;
diff --git a/src/com/google/inject/internal/BindingProcessor.java b/src/com/google/inject/internal/BindingProcessor.java
index dfeb499d..38af5c03 100644
--- a/src/com/google/inject/internal/BindingProcessor.java
+++ b/src/com/google/inject/internal/BindingProcessor.java
@@ -26,6 +26,8 @@ import com.google.inject.Module;
import com.google.inject.Provider;
import com.google.inject.Scope;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.ConstructorBinding;
import com.google.inject.spi.ConvertedConstantBinding;
diff --git a/src/com/google/inject/internal/BytecodeGen.java b/src/com/google/inject/internal/BytecodeGen.java
index 7f961d89..2c612326 100644
--- a/src/com/google/inject/internal/BytecodeGen.java
+++ b/src/com/google/inject/internal/BytecodeGen.java
@@ -16,6 +16,8 @@
package com.google.inject.internal;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.MapMaker;
import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
import java.lang.reflect.Method;
diff --git a/src/com/google/inject/internal/ConstantBindingBuilderImpl.java b/src/com/google/inject/internal/ConstantBindingBuilderImpl.java
index 5b2dd006..11b237e4 100644
--- a/src/com/google/inject/internal/ConstantBindingBuilderImpl.java
+++ b/src/com/google/inject/internal/ConstantBindingBuilderImpl.java
@@ -20,6 +20,7 @@ import com.google.inject.Binder;
import com.google.inject.Key;
import com.google.inject.binder.AnnotatedConstantBindingBuilder;
import com.google.inject.binder.ConstantBindingBuilder;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.spi.Element;
import com.google.inject.spi.InjectionPoint;
import java.lang.annotation.Annotation;
diff --git a/src/com/google/inject/internal/ConstantFactory.java b/src/com/google/inject/internal/ConstantFactory.java
index 9787569a..5e15b889 100644
--- a/src/com/google/inject/internal/ConstantFactory.java
+++ b/src/com/google/inject/internal/ConstantFactory.java
@@ -16,6 +16,7 @@
package com.google.inject.internal;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.Dependency;
/**
diff --git a/src/com/google/inject/internal/ConstructionProxy.java b/src/com/google/inject/internal/ConstructionProxy.java
index fe3eb224..930d660e 100644
--- a/src/com/google/inject/internal/ConstructionProxy.java
+++ b/src/com/google/inject/internal/ConstructionProxy.java
@@ -16,11 +16,13 @@
package com.google.inject.internal;
+import com.google.inject.internal.util.ImmutableMap;
import com.google.inject.spi.InjectionPoint;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.List;
+import org.aopalliance.intercept.MethodInterceptor;
/**
* Proxies calls to a {@link java.lang.reflect.Constructor} for a class
@@ -50,6 +52,6 @@ interface ConstructionProxy<T> {
/**
* Returns the interceptors applied to each method, in order of invocation.
*/
- ImmutableMap<Method, List<org.aopalliance.intercept.MethodInterceptor>> getMethodInterceptors();
+ ImmutableMap<Method, List<MethodInterceptor>> getMethodInterceptors();
/*end[AOP]*/
}
diff --git a/src/com/google/inject/internal/ConstructorBindingImpl.java b/src/com/google/inject/internal/ConstructorBindingImpl.java
index f01a95de..03c47c6d 100644
--- a/src/com/google/inject/internal/ConstructorBindingImpl.java
+++ b/src/com/google/inject/internal/ConstructorBindingImpl.java
@@ -21,7 +21,11 @@ import com.google.inject.ConfigurationException;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import static com.google.inject.internal.Annotations.findScopeAnnotation;
-import static com.google.inject.internal.Preconditions.checkState;
+import com.google.inject.internal.util.Classes;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Objects;
+import static com.google.inject.internal.util.Preconditions.checkState;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.ConstructorBinding;
import com.google.inject.spi.Dependency;
diff --git a/src/com/google/inject/internal/ConstructorInjector.java b/src/com/google/inject/internal/ConstructorInjector.java
index 1f8d65dc..5cf61759 100644
--- a/src/com/google/inject/internal/ConstructorInjector.java
+++ b/src/com/google/inject/internal/ConstructorInjector.java
@@ -16,6 +16,7 @@
package com.google.inject.internal;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.spi.InjectionPoint;
import java.lang.reflect.InvocationTargetException;
import java.util.Set;
diff --git a/src/com/google/inject/internal/ConstructorInjectorStore.java b/src/com/google/inject/internal/ConstructorInjectorStore.java
index 7ea52fa5..77cdbdca 100644
--- a/src/com/google/inject/internal/ConstructorInjectorStore.java
+++ b/src/com/google/inject/internal/ConstructorInjectorStore.java
@@ -16,7 +16,8 @@
package com.google.inject.internal;
-import static com.google.inject.internal.Iterables.concat;
+import com.google.inject.internal.util.ImmutableList;
+import static com.google.inject.internal.util.Iterables.concat;
import com.google.inject.spi.InjectionPoint;
/**
diff --git a/src/com/google/inject/internal/DefaultConstructionProxyFactory.java b/src/com/google/inject/internal/DefaultConstructionProxyFactory.java
index 505ffa80..c654bbce 100644
--- a/src/com/google/inject/internal/DefaultConstructionProxyFactory.java
+++ b/src/com/google/inject/internal/DefaultConstructionProxyFactory.java
@@ -17,12 +17,14 @@
package com.google.inject.internal;
import com.google.inject.internal.BytecodeGen.Visibility;
+import com.google.inject.internal.util.ImmutableMap;
import com.google.inject.spi.InjectionPoint;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.List;
+import org.aopalliance.intercept.MethodInterceptor;
/**
* Produces construction proxies that invoke the class constructor.
@@ -95,7 +97,7 @@ final class DefaultConstructionProxyFactory<T> implements ConstructionProxyFacto
return constructor;
}
/*if[AOP]*/
- public ImmutableMap<Method, List<org.aopalliance.intercept.MethodInterceptor>>
+ public ImmutableMap<Method, List<MethodInterceptor>>
getMethodInterceptors() {
return ImmutableMap.of();
}
diff --git a/src/com/google/inject/internal/DeferredLookups.java b/src/com/google/inject/internal/DeferredLookups.java
index ee545075..a4047cfa 100644
--- a/src/com/google/inject/internal/DeferredLookups.java
+++ b/src/com/google/inject/internal/DeferredLookups.java
@@ -20,6 +20,7 @@ import com.google.inject.Key;
import com.google.inject.MembersInjector;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.Element;
import com.google.inject.spi.MembersInjectorLookup;
import com.google.inject.spi.ProviderLookup;
diff --git a/src/com/google/inject/internal/DelegatingInvocationHandler.java b/src/com/google/inject/internal/DelegatingInvocationHandler.java
index 435c8fb5..3c9201f8 100644
--- a/src/com/google/inject/internal/DelegatingInvocationHandler.java
+++ b/src/com/google/inject/internal/DelegatingInvocationHandler.java
@@ -17,8 +17,8 @@
package com.google.inject.internal;
import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
class DelegatingInvocationHandler<T> implements InvocationHandler {
diff --git a/src/com/google/inject/internal/EncounterImpl.java b/src/com/google/inject/internal/EncounterImpl.java
index 8fce6965..16441f95 100644
--- a/src/com/google/inject/internal/EncounterImpl.java
+++ b/src/com/google/inject/internal/EncounterImpl.java
@@ -20,7 +20,9 @@ import com.google.inject.Key;
import com.google.inject.MembersInjector;
import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkState;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
+import static com.google.inject.internal.util.Preconditions.checkState;
import com.google.inject.matcher.Matcher;
import com.google.inject.matcher.Matchers;
import com.google.inject.spi.InjectionListener;
diff --git a/src/com/google/inject/internal/Errors.java b/src/com/google/inject/internal/Errors.java
index 40f23de5..b85a9dfd 100644
--- a/src/com/google/inject/internal/Errors.java
+++ b/src/com/google/inject/internal/Errors.java
@@ -24,6 +24,11 @@ import com.google.inject.Provider;
import com.google.inject.ProvisionException;
import com.google.inject.Scope;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.SourceProvider;
+import com.google.inject.internal.util.StackTraceElements;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.InjectionListener;
import com.google.inject.spi.InjectionPoint;
diff --git a/src/com/google/inject/internal/ExposedBindingImpl.java b/src/com/google/inject/internal/ExposedBindingImpl.java
index d11fe000..92c1c239 100644
--- a/src/com/google/inject/internal/ExposedBindingImpl.java
+++ b/src/com/google/inject/internal/ExposedBindingImpl.java
@@ -19,6 +19,8 @@ package com.google.inject.internal;
import com.google.inject.Binder;
import com.google.inject.Injector;
import com.google.inject.Key;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.ExposedBinding;
diff --git a/src/com/google/inject/internal/ExposureBuilder.java b/src/com/google/inject/internal/ExposureBuilder.java
index 61b000aa..f5c943c7 100644
--- a/src/com/google/inject/internal/ExposureBuilder.java
+++ b/src/com/google/inject/internal/ExposureBuilder.java
@@ -16,9 +16,10 @@
package com.google.inject.internal;
-import com.google.inject.binder.AnnotatedElementBuilder;
import com.google.inject.Binder;
import com.google.inject.Key;
+import com.google.inject.binder.AnnotatedElementBuilder;
+import com.google.inject.internal.util.Preconditions;
import java.lang.annotation.Annotation;
/**
@@ -42,13 +43,13 @@ public class ExposureBuilder<T> implements AnnotatedElementBuilder {
}
public void annotatedWith(Class<? extends Annotation> annotationType) {
- com.google.inject.internal.Preconditions.checkNotNull(annotationType, "annotationType");
+ Preconditions.checkNotNull(annotationType, "annotationType");
checkNotAnnotated();
key = Key.get(key.getTypeLiteral(), annotationType);
}
public void annotatedWith(Annotation annotation) {
- com.google.inject.internal.Preconditions.checkNotNull(annotation, "annotation");
+ Preconditions.checkNotNull(annotation, "annotation");
checkNotAnnotated();
key = Key.get(key.getTypeLiteral(), annotation);
}
diff --git a/src/com/google/inject/internal/FactoryProxy.java b/src/com/google/inject/internal/FactoryProxy.java
index ab73b492..ca9a33c8 100644
--- a/src/com/google/inject/internal/FactoryProxy.java
+++ b/src/com/google/inject/internal/FactoryProxy.java
@@ -18,6 +18,7 @@ package com.google.inject.internal;
import com.google.inject.Key;
import com.google.inject.internal.InjectorImpl.JitLimitation;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.Dependency;
/**
diff --git a/src/com/google/inject/internal/FailableCache.java b/src/com/google/inject/internal/FailableCache.java
index fea8cdaa..eca27e47 100644
--- a/src/com/google/inject/internal/FailableCache.java
+++ b/src/com/google/inject/internal/FailableCache.java
@@ -16,6 +16,7 @@
package com.google.inject.internal;
+import com.google.inject.internal.util.MapMaker;
import java.util.Map;
/**
diff --git a/src/com/google/inject/internal/InheritingState.java b/src/com/google/inject/internal/InheritingState.java
index 8bca3e42..4050b1e6 100644
--- a/src/com/google/inject/internal/InheritingState.java
+++ b/src/com/google/inject/internal/InheritingState.java
@@ -20,7 +20,10 @@ import com.google.inject.Binding;
import com.google.inject.Key;
import com.google.inject.Scope;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.TypeListenerBinding;
import java.lang.annotation.Annotation;
import java.util.ArrayList;
diff --git a/src/com/google/inject/internal/Initializer.java b/src/com/google/inject/internal/Initializer.java
index ee15fc40..e78f6658 100644
--- a/src/com/google/inject/internal/Initializer.java
+++ b/src/com/google/inject/internal/Initializer.java
@@ -18,7 +18,9 @@ package com.google.inject.internal;
import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.InjectionPoint;
import java.util.Map;
import java.util.Set;
diff --git a/src/com/google/inject/internal/InjectionRequestProcessor.java b/src/com/google/inject/internal/InjectionRequestProcessor.java
index aff4f6fd..d0b5a7c2 100644
--- a/src/com/google/inject/internal/InjectionRequestProcessor.java
+++ b/src/com/google/inject/internal/InjectionRequestProcessor.java
@@ -18,6 +18,8 @@ package com.google.inject.internal;
import com.google.inject.ConfigurationException;
import com.google.inject.Stage;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.InjectionPoint;
import com.google.inject.spi.InjectionRequest;
import com.google.inject.spi.StaticInjectionRequest;
diff --git a/src/com/google/inject/internal/InjectorImpl.java b/src/com/google/inject/internal/InjectorImpl.java
index 34a00af9..b9a78eb1 100644
--- a/src/com/google/inject/internal/InjectorImpl.java
+++ b/src/com/google/inject/internal/InjectorImpl.java
@@ -31,6 +31,14 @@ import com.google.inject.ProvisionException;
import com.google.inject.Scope;
import com.google.inject.TypeLiteral;
import com.google.inject.internal.InternalInjectorCreator.InjectorOptions;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Objects;
+import com.google.inject.internal.util.SourceProvider;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.ConvertedConstantBinding;
import com.google.inject.spi.Dependency;
@@ -268,7 +276,7 @@ final class InjectorImpl implements Injector, Lookups {
Initializables.of(membersInjector));
- return new InstanceBindingImpl<MembersInjector<T>>(this, key, SourceProvider.UNKNOWN_SOURCE,
+ return new InstanceBindingImpl<MembersInjector<T>>(this, key, SourceProvider.UNKNOWN_SOURCE,
factory, ImmutableSet.<InjectionPoint>of(), membersInjector);
}
diff --git a/src/com/google/inject/internal/InjectorShell.java b/src/com/google/inject/internal/InjectorShell.java
index 172a170f..87c6a9a1 100644
--- a/src/com/google/inject/internal/InjectorShell.java
+++ b/src/com/google/inject/internal/InjectorShell.java
@@ -24,10 +24,13 @@ import com.google.inject.Provider;
import static com.google.inject.Scopes.SINGLETON;
import com.google.inject.Singleton;
import com.google.inject.Stage;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import static com.google.inject.internal.Preconditions.checkState;
-
import com.google.inject.internal.InternalInjectorCreator.InjectorOptions;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkState;
+import com.google.inject.internal.util.SourceProvider;
+import com.google.inject.internal.util.Stopwatch;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.Element;
import com.google.inject.spi.Elements;
diff --git a/src/com/google/inject/internal/InstanceBindingImpl.java b/src/com/google/inject/internal/InstanceBindingImpl.java
index e9fd26ac..77b8e8d8 100644
--- a/src/com/google/inject/internal/InstanceBindingImpl.java
+++ b/src/com/google/inject/internal/InstanceBindingImpl.java
@@ -19,6 +19,9 @@ package com.google.inject.internal;
import com.google.inject.Binder;
import com.google.inject.Key;
import com.google.inject.Provider;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Objects;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
diff --git a/src/com/google/inject/internal/InternalContext.java b/src/com/google/inject/internal/InternalContext.java
index c7729109..36bc41a2 100644
--- a/src/com/google/inject/internal/InternalContext.java
+++ b/src/com/google/inject/internal/InternalContext.java
@@ -16,6 +16,7 @@
package com.google.inject.internal;
+import com.google.inject.internal.util.Maps;
import com.google.inject.spi.Dependency;
import java.util.Map;
diff --git a/src/com/google/inject/internal/InternalFactoryToProviderAdapter.java b/src/com/google/inject/internal/InternalFactoryToProviderAdapter.java
index c5d41cfb..87d68624 100644
--- a/src/com/google/inject/internal/InternalFactoryToProviderAdapter.java
+++ b/src/com/google/inject/internal/InternalFactoryToProviderAdapter.java
@@ -17,7 +17,7 @@
package com.google.inject.internal;
import com.google.inject.Provider;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.Dependency;
/**
diff --git a/src/com/google/inject/internal/InternalInjectorCreator.java b/src/com/google/inject/internal/InternalInjectorCreator.java
index 3e491c0b..44f00655 100644
--- a/src/com/google/inject/internal/InternalInjectorCreator.java
+++ b/src/com/google/inject/internal/InternalInjectorCreator.java
@@ -22,16 +22,18 @@ import com.google.inject.Key;
import com.google.inject.MembersInjector;
import com.google.inject.Module;
import com.google.inject.Provider;
+import com.google.inject.Scope;
import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
-import com.google.inject.Scope;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Iterables;
+import com.google.inject.internal.util.Stopwatch;
import com.google.inject.spi.Dependency;
-
+import java.lang.annotation.Annotation;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.lang.annotation.Annotation;
/**
* Builds a tree of injectors. This is a primary injector, plus child injectors needed for each
diff --git a/src/com/google/inject/internal/LinkedBindingImpl.java b/src/com/google/inject/internal/LinkedBindingImpl.java
index efeb7230..e306c846 100644
--- a/src/com/google/inject/internal/LinkedBindingImpl.java
+++ b/src/com/google/inject/internal/LinkedBindingImpl.java
@@ -16,14 +16,16 @@
package com.google.inject.internal;
-import java.util.Set;
-
import com.google.inject.Binder;
import com.google.inject.Key;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Objects;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
import com.google.inject.spi.LinkedKeyBinding;
+import java.util.Set;
public final class LinkedBindingImpl<T> extends BindingImpl<T> implements LinkedKeyBinding<T>, HasDependencies {
diff --git a/src/com/google/inject/internal/LinkedProviderBindingImpl.java b/src/com/google/inject/internal/LinkedProviderBindingImpl.java
index 6f8c5162..ccbdf9e9 100644
--- a/src/com/google/inject/internal/LinkedProviderBindingImpl.java
+++ b/src/com/google/inject/internal/LinkedProviderBindingImpl.java
@@ -16,14 +16,16 @@
package com.google.inject.internal;
-import java.util.Set;
-
import com.google.inject.Binder;
import com.google.inject.Key;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Objects;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
import com.google.inject.spi.ProviderKeyBinding;
+import java.util.Set;
final class LinkedProviderBindingImpl<T>
extends BindingImpl<T> implements ProviderKeyBinding<T>, HasDependencies {
diff --git a/src/com/google/inject/internal/Lookups.java b/src/com/google/inject/internal/Lookups.java
index f2cedbf2..2b32c7af 100644
--- a/src/com/google/inject/internal/Lookups.java
+++ b/src/com/google/inject/internal/Lookups.java
@@ -16,9 +16,9 @@
package com.google.inject.internal;
-import com.google.inject.Provider;
import com.google.inject.Key;
import com.google.inject.MembersInjector;
+import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
/**
diff --git a/src/com/google/inject/internal/MatcherAndConverter.java b/src/com/google/inject/internal/MatcherAndConverter.java
index c31d1c3c..b618b3fe 100644
--- a/src/com/google/inject/internal/MatcherAndConverter.java
+++ b/src/com/google/inject/internal/MatcherAndConverter.java
@@ -17,7 +17,7 @@
package com.google.inject.internal;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.matcher.Matcher;
import com.google.inject.spi.TypeConverter;
diff --git a/src/com/google/inject/internal/MembersInjectorImpl.java b/src/com/google/inject/internal/MembersInjectorImpl.java
index 3b4df0aa..9230def4 100644
--- a/src/com/google/inject/internal/MembersInjectorImpl.java
+++ b/src/com/google/inject/internal/MembersInjectorImpl.java
@@ -17,8 +17,9 @@
package com.google.inject.internal;
import com.google.inject.MembersInjector;
-import com.google.inject.Stage;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.spi.InjectionListener;
import com.google.inject.spi.InjectionPoint;
diff --git a/src/com/google/inject/internal/MembersInjectorStore.java b/src/com/google/inject/internal/MembersInjectorStore.java
index 7b7f2661..a8eb427b 100644
--- a/src/com/google/inject/internal/MembersInjectorStore.java
+++ b/src/com/google/inject/internal/MembersInjectorStore.java
@@ -18,6 +18,8 @@ package com.google.inject.internal;
import com.google.inject.ConfigurationException;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.InjectionPoint;
import com.google.inject.spi.TypeListenerBinding;
import java.lang.reflect.Field;
diff --git a/src/com/google/inject/internal/MethodAspect.java b/src/com/google/inject/internal/MethodAspect.java
index f9377a3c..439491e8 100644
--- a/src/com/google/inject/internal/MethodAspect.java
+++ b/src/com/google/inject/internal/MethodAspect.java
@@ -16,7 +16,7 @@
package com.google.inject.internal;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.matcher.Matcher;
import java.lang.reflect.Method;
import java.util.Arrays;
diff --git a/src/com/google/inject/internal/MoreTypes.java b/src/com/google/inject/internal/MoreTypes.java
index a33abe9c..bb3a2eb6 100644
--- a/src/com/google/inject/internal/MoreTypes.java
+++ b/src/com/google/inject/internal/MoreTypes.java
@@ -19,9 +19,10 @@ package com.google.inject.internal;
import com.google.inject.ConfigurationException;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkArgument;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import com.google.inject.spi.Message;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.Objects;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.util.Types;
import java.io.Serializable;
import java.lang.reflect.Array;
diff --git a/src/com/google/inject/internal/PrivateElementProcessor.java b/src/com/google/inject/internal/PrivateElementProcessor.java
index 21883fb4..086488e2 100644
--- a/src/com/google/inject/internal/PrivateElementProcessor.java
+++ b/src/com/google/inject/internal/PrivateElementProcessor.java
@@ -17,6 +17,7 @@
package com.google.inject.internal;
import com.google.inject.internal.InternalInjectorCreator.InjectorOptions;
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.PrivateElements;
import java.util.List;
diff --git a/src/com/google/inject/internal/PrivateElementsImpl.java b/src/com/google/inject/internal/PrivateElementsImpl.java
index 28900ae9..1a05ab13 100644
--- a/src/com/google/inject/internal/PrivateElementsImpl.java
+++ b/src/com/google/inject/internal/PrivateElementsImpl.java
@@ -20,9 +20,14 @@ import com.google.inject.Binder;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.PrivateBinder;
-import static com.google.inject.internal.Preconditions.checkArgument;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import static com.google.inject.internal.Preconditions.checkState;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkState;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.Element;
import com.google.inject.spi.ElementVisitor;
import com.google.inject.spi.PrivateElements;
diff --git a/src/com/google/inject/internal/ProviderInstanceBindingImpl.java b/src/com/google/inject/internal/ProviderInstanceBindingImpl.java
index d861d75b..ff4c311f 100644
--- a/src/com/google/inject/internal/ProviderInstanceBindingImpl.java
+++ b/src/com/google/inject/internal/ProviderInstanceBindingImpl.java
@@ -19,6 +19,9 @@ package com.google.inject.internal;
import com.google.inject.Binder;
import com.google.inject.Key;
import com.google.inject.Provider;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Objects;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.HasDependencies;
diff --git a/src/com/google/inject/internal/ProviderMethod.java b/src/com/google/inject/internal/ProviderMethod.java
index 10ae83d2..4e0c607d 100644
--- a/src/com/google/inject/internal/ProviderMethod.java
+++ b/src/com/google/inject/internal/ProviderMethod.java
@@ -21,6 +21,8 @@ import com.google.inject.Exposed;
import com.google.inject.Key;
import com.google.inject.PrivateBinder;
import com.google.inject.Provider;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.StackTraceElements;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.ProviderWithDependencies;
import java.lang.annotation.Annotation;
diff --git a/src/com/google/inject/internal/ProviderMethodsModule.java b/src/com/google/inject/internal/ProviderMethodsModule.java
index b3082605..dd30d921 100644
--- a/src/com/google/inject/internal/ProviderMethodsModule.java
+++ b/src/com/google/inject/internal/ProviderMethodsModule.java
@@ -22,7 +22,9 @@ import com.google.inject.Module;
import com.google.inject.Provider;
import com.google.inject.Provides;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.Message;
import com.google.inject.util.Modules;
diff --git a/src/com/google/inject/internal/ProxyFactory.java b/src/com/google/inject/internal/ProxyFactory.java
index 42b634c8..d3d8aaa4 100644
--- a/src/com/google/inject/internal/ProxyFactory.java
+++ b/src/com/google/inject/internal/ProxyFactory.java
@@ -16,9 +16,12 @@
package com.google.inject.internal;
-import static com.google.inject.internal.BytecodeGen.newFastClass;
-
import com.google.inject.ProvisionException;
+import static com.google.inject.internal.BytecodeGen.newFastClass;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
import com.google.inject.spi.InjectionPoint;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
diff --git a/src/com/google/inject/internal/ScopeBindingProcessor.java b/src/com/google/inject/internal/ScopeBindingProcessor.java
index e107c705..7c2ac618 100644
--- a/src/com/google/inject/internal/ScopeBindingProcessor.java
+++ b/src/com/google/inject/internal/ScopeBindingProcessor.java
@@ -17,7 +17,7 @@
package com.google.inject.internal;
import com.google.inject.Scope;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.spi.ScopeBinding;
import java.lang.annotation.Annotation;
diff --git a/src/com/google/inject/internal/Scoping.java b/src/com/google/inject/internal/Scoping.java
index 60c3708f..bcbb174a 100644
--- a/src/com/google/inject/internal/Scoping.java
+++ b/src/com/google/inject/internal/Scoping.java
@@ -16,13 +16,14 @@
package com.google.inject.internal;
+import com.google.inject.Key;
+import com.google.inject.Provider;
import com.google.inject.Scope;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
import com.google.inject.Stage;
-import com.google.inject.Key;
-import com.google.inject.Provider;
import com.google.inject.binder.ScopedBindingBuilder;
+import com.google.inject.internal.util.Objects;
import com.google.inject.spi.BindingScopingVisitor;
import java.lang.annotation.Annotation;
diff --git a/src/com/google/inject/internal/State.java b/src/com/google/inject/internal/State.java
index 24699af2..4bf80257 100644
--- a/src/com/google/inject/internal/State.java
+++ b/src/com/google/inject/internal/State.java
@@ -20,6 +20,9 @@ import com.google.inject.Binding;
import com.google.inject.Key;
import com.google.inject.Scope;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.spi.TypeListenerBinding;
import java.lang.annotation.Annotation;
import java.util.List;
diff --git a/src/com/google/inject/internal/TypeConverterBindingProcessor.java b/src/com/google/inject/internal/TypeConverterBindingProcessor.java
index d7ca03c2..1f103494 100644
--- a/src/com/google/inject/internal/TypeConverterBindingProcessor.java
+++ b/src/com/google/inject/internal/TypeConverterBindingProcessor.java
@@ -17,6 +17,8 @@
package com.google.inject.internal;
import com.google.inject.TypeLiteral;
+import com.google.inject.internal.util.SourceProvider;
+import com.google.inject.internal.util.Strings;
import com.google.inject.matcher.AbstractMatcher;
import com.google.inject.matcher.Matcher;
import com.google.inject.matcher.Matchers;
diff --git a/src/com/google/inject/internal/UniqueAnnotations.java b/src/com/google/inject/internal/UniqueAnnotations.java
index 8fdab6e3..0754f3ce 100644
--- a/src/com/google/inject/internal/UniqueAnnotations.java
+++ b/src/com/google/inject/internal/UniqueAnnotations.java
@@ -17,7 +17,6 @@
package com.google.inject.internal;
import com.google.inject.BindingAnnotation;
-
import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
diff --git a/src/com/google/inject/internal/UntargettedBindingImpl.java b/src/com/google/inject/internal/UntargettedBindingImpl.java
index b666c1f7..19bd2f06 100644
--- a/src/com/google/inject/internal/UntargettedBindingImpl.java
+++ b/src/com/google/inject/internal/UntargettedBindingImpl.java
@@ -18,6 +18,8 @@ package com.google.inject.internal;
import com.google.inject.Binder;
import com.google.inject.Key;
+import com.google.inject.internal.util.Objects;
+import com.google.inject.internal.util.ToStringBuilder;
import com.google.inject.spi.BindingTargetVisitor;
import com.google.inject.spi.Dependency;
import com.google.inject.spi.UntargettedBinding;
diff --git a/src/com/google/inject/internal/WeakKeySet.java b/src/com/google/inject/internal/WeakKeySet.java
index 58a9c2c0..8154bf5f 100644
--- a/src/com/google/inject/internal/WeakKeySet.java
+++ b/src/com/google/inject/internal/WeakKeySet.java
@@ -17,6 +17,7 @@
package com.google.inject.internal;
import com.google.inject.Key;
+import com.google.inject.internal.util.Sets;
import java.util.Set;
/**
diff --git a/src/com/google/inject/internal/AbstractIterator.java b/src/com/google/inject/internal/util/AbstractIterator.java
index 8dfe134f..0686b237 100644
--- a/src/com/google/inject/internal/AbstractIterator.java
+++ b/src/com/google/inject/internal/util/AbstractIterator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.Iterator;
import java.util.NoSuchElementException;
diff --git a/src/com/google/inject/internal/AbstractMapEntry.java b/src/com/google/inject/internal/util/AbstractMapEntry.java
index 57332117..1ec9f792 100644
--- a/src/com/google/inject/internal/AbstractMapEntry.java
+++ b/src/com/google/inject/internal/util/AbstractMapEntry.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.util.Map.Entry;
/**
diff --git a/src/com/google/inject/internal/AsynchronousComputationException.java b/src/com/google/inject/internal/util/AsynchronousComputationException.java
index e22ec2d3..4b5797ad 100644
--- a/src/com/google/inject/internal/AsynchronousComputationException.java
+++ b/src/com/google/inject/internal/util/AsynchronousComputationException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
/**
* Wraps an exception that occured during a computation in a different thread.
diff --git a/src/com/google/inject/internal/Classes.java b/src/com/google/inject/internal/util/Classes.java
index 8c587ca2..d8ec6e12 100644
--- a/src/com/google/inject/internal/Classes.java
+++ b/src/com/google/inject/internal/util/Classes.java
@@ -14,14 +14,14 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.lang.reflect.Modifier;
/**
* Class utilities.
*/
-final class Classes {
+public final class Classes {
public static boolean isInnerClass(Class<?> clazz) {
return !Modifier.isStatic(clazz.getModifiers())
diff --git a/src/com/google/inject/internal/Collections2.java b/src/com/google/inject/internal/util/Collections2.java
index ca47faa9..47efa343 100644
--- a/src/com/google/inject/internal/Collections2.java
+++ b/src/com/google/inject/internal/util/Collections2.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.util.Collection;
import java.util.Set;
diff --git a/src/com/google/inject/internal/ComputationException.java b/src/com/google/inject/internal/util/ComputationException.java
index a41700bf..52058286 100644
--- a/src/com/google/inject/internal/ComputationException.java
+++ b/src/com/google/inject/internal/util/ComputationException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
/**
* Wraps an exception that occured during a computation.
diff --git a/src/com/google/inject/internal/CustomConcurrentHashMap.java b/src/com/google/inject/internal/util/CustomConcurrentHashMap.java
index 37b2d598..cb65dc0d 100644
--- a/src/com/google/inject/internal/CustomConcurrentHashMap.java
+++ b/src/com/google/inject/internal/util/CustomConcurrentHashMap.java
@@ -14,8 +14,10 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Function;
+import com.google.inject.internal.Nullable;
import java.io.IOException;
import java.io.Serializable;
import java.lang.reflect.Array;
@@ -41,7 +43,7 @@ import java.util.concurrent.locks.ReentrantLock;
* provides the surrounding concurrent data structure which implements {@link
* ConcurrentMap}. Additionally supports implementing maps where {@link
* Map#get} atomically computes values on demand (see {@link
- * Builder#buildComputingMap(ComputingStrategy, Function)}).
+ * Builder#buildComputingMap(ComputingStrategy, com.google.inject.internal.Function)}).
*
* <p>The resulting hash table supports full concurrency of retrievals and
* adjustable expected concurrency for updates. Even though all operations are
diff --git a/src/com/google/inject/internal/ExpirationTimer.java b/src/com/google/inject/internal/util/ExpirationTimer.java
index 1a4b33f9..0d545a8c 100644
--- a/src/com/google/inject/internal/ExpirationTimer.java
+++ b/src/com/google/inject/internal/util/ExpirationTimer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.Timer;
diff --git a/src/com/google/inject/internal/FinalizablePhantomReference.java b/src/com/google/inject/internal/util/FinalizablePhantomReference.java
index 74058af4..386e9a8c 100644
--- a/src/com/google/inject/internal/FinalizablePhantomReference.java
+++ b/src/com/google/inject/internal/util/FinalizablePhantomReference.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.lang.ref.PhantomReference;
diff --git a/src/com/google/inject/internal/FinalizableReference.java b/src/com/google/inject/internal/util/FinalizableReference.java
index 05c6771f..ef6654aa 100644
--- a/src/com/google/inject/internal/FinalizableReference.java
+++ b/src/com/google/inject/internal/util/FinalizableReference.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
/**
* Implemented by references that have code to run after garbage collection of
diff --git a/src/com/google/inject/internal/FinalizableReferenceQueue.java b/src/com/google/inject/internal/util/FinalizableReferenceQueue.java
index 88b206e4..4eebdbcc 100644
--- a/src/com/google/inject/internal/FinalizableReferenceQueue.java
+++ b/src/com/google/inject/internal/util/FinalizableReferenceQueue.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.io.FileNotFoundException;
import java.io.IOException;
@@ -92,7 +92,7 @@ public class FinalizableReferenceQueue {
= Logger.getLogger(FinalizableReferenceQueue.class.getName());
private static final String FINALIZER_CLASS_NAME
- = "com.google.inject.internal.Finalizer";
+ = "com.google.inject.internal.util.Finalizer";
/** Reference to Finalizer.startFinalizer(). */
private static final Method startFinalizer;
diff --git a/src/com/google/inject/internal/FinalizableSoftReference.java b/src/com/google/inject/internal/util/FinalizableSoftReference.java
index 66dcabdf..39d3570b 100644
--- a/src/com/google/inject/internal/FinalizableSoftReference.java
+++ b/src/com/google/inject/internal/util/FinalizableSoftReference.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.lang.ref.SoftReference;
diff --git a/src/com/google/inject/internal/FinalizableWeakReference.java b/src/com/google/inject/internal/util/FinalizableWeakReference.java
index b4454d04..0b8cd8ef 100644
--- a/src/com/google/inject/internal/FinalizableWeakReference.java
+++ b/src/com/google/inject/internal/util/FinalizableWeakReference.java
@@ -14,10 +14,8 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
-import com.google.inject.internal.FinalizableReference;
-import com.google.inject.internal.FinalizableReferenceQueue;
import java.lang.ref.WeakReference;
/**
diff --git a/src/com/google/inject/internal/Finalizer.java b/src/com/google/inject/internal/util/Finalizer.java
index 0355894c..67551967 100644
--- a/src/com/google/inject/internal/Finalizer.java
+++ b/src/com/google/inject/internal/util/Finalizer.java
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
-import java.util.logging.Logger;
-import java.util.logging.Level;
-import java.lang.ref.ReferenceQueue;
+import java.lang.ref.PhantomReference;
import java.lang.ref.Reference;
+import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
-import java.lang.ref.PhantomReference;
import java.lang.reflect.Method;
+import java.util.logging.Level;
+import java.util.logging.Logger;
/**
* Thread that finalizes referents. All references should implement
@@ -52,7 +52,7 @@ public class Finalizer extends Thread {
/** Name of FinalizableReference.class. */
private static final String FINALIZABLE_REFERENCE
- = "com.google.inject.internal.FinalizableReference";
+ = "com.google.inject.internal.util.FinalizableReference";
/**
* Starts the Finalizer thread. FinalizableReferenceQueue calls this method
diff --git a/src/com/google/inject/internal/Hashing.java b/src/com/google/inject/internal/util/Hashing.java
index fa16e1e4..b0fb1653 100644
--- a/src/com/google/inject/internal/Hashing.java
+++ b/src/com/google/inject/internal/util/Hashing.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
/**
* Static methods for implementing hash-based collections.
diff --git a/src/com/google/inject/internal/ImmutableCollection.java b/src/com/google/inject/internal/util/ImmutableCollection.java
index 88b2bad9..402b9058 100644
--- a/src/com/google/inject/internal/ImmutableCollection.java
+++ b/src/com/google/inject/internal/util/ImmutableCollection.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.io.Serializable;
import java.util.Collection;
import java.util.Iterator;
diff --git a/src/com/google/inject/internal/ImmutableEntry.java b/src/com/google/inject/internal/util/ImmutableEntry.java
index 8828ecd9..73318c7c 100644
--- a/src/com/google/inject/internal/ImmutableEntry.java
+++ b/src/com/google/inject/internal/util/ImmutableEntry.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.io.Serializable;
/**
diff --git a/src/com/google/inject/internal/ImmutableList.java b/src/com/google/inject/internal/util/ImmutableList.java
index c412fd9f..c5831d92 100644
--- a/src/com/google/inject/internal/ImmutableList.java
+++ b/src/com/google/inject/internal/util/ImmutableList.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.io.InvalidObjectException;
import java.io.ObjectInputStream;
import java.io.Serializable;
diff --git a/src/com/google/inject/internal/ImmutableMap.java b/src/com/google/inject/internal/util/ImmutableMap.java
index dafe5fd7..871024c7 100644
--- a/src/com/google/inject/internal/ImmutableMap.java
+++ b/src/com/google/inject/internal/util/ImmutableMap.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.io.Serializable;
import java.util.Collections;
import java.util.Iterator;
diff --git a/src/com/google/inject/internal/ImmutableSet.java b/src/com/google/inject/internal/util/ImmutableSet.java
index 68f36670..c1807f39 100644
--- a/src/com/google/inject/internal/ImmutableSet.java
+++ b/src/com/google/inject/internal/util/ImmutableSet.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/src/com/google/inject/internal/Iterables.java b/src/com/google/inject/internal/util/Iterables.java
index 15d05db2..5af74133 100644
--- a/src/com/google/inject/internal/Iterables.java
+++ b/src/com/google/inject/internal/util/Iterables.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Function;
import java.util.Arrays;
import java.util.Iterator;
import java.util.NoSuchElementException;
diff --git a/src/com/google/inject/internal/Iterators.java b/src/com/google/inject/internal/util/Iterators.java
index c9891c43..993c1ea6 100644
--- a/src/com/google/inject/internal/Iterators.java
+++ b/src/com/google/inject/internal/util/Iterators.java
@@ -14,8 +14,10 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Function;
+import com.google.inject.internal.Nullable;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
diff --git a/src/com/google/inject/internal/Join.java b/src/com/google/inject/internal/util/Join.java
index ad186d6a..6e979300 100644
--- a/src/com/google/inject/internal/Join.java
+++ b/src/com/google/inject/internal/util/Join.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.Nullable;
import java.io.IOException;
import java.util.Arrays;
import java.util.Iterator;
@@ -93,7 +93,7 @@ public final class Join {
*/
public static String join(
String delimiter, @Nullable Object firstToken, Object... otherTokens) {
- checkNotNull(otherTokens);
+ Preconditions.checkNotNull(otherTokens);
return join(delimiter, Lists.newArrayList(firstToken, otherTokens));
}
@@ -203,7 +203,7 @@ public final class Join {
*/
public static <T extends Appendable> T join(T appendable, String delimiter,
@Nullable Object firstToken, Object... otherTokens) {
- checkNotNull(otherTokens);
+ Preconditions.checkNotNull(otherTokens);
return join(appendable, delimiter, Lists.newArrayList(firstToken, otherTokens));
}
@@ -228,8 +228,8 @@ public final class Join {
/* This method is the workhorse of the class */
- checkNotNull(appendable);
- checkNotNull(delimiter);
+ Preconditions.checkNotNull(appendable);
+ Preconditions.checkNotNull(delimiter);
if (tokens.hasNext()) {
try {
appendOneToken(appendable, tokens.next());
@@ -264,9 +264,9 @@ public final class Join {
*/
public static <T extends Appendable> T join(T appendable,
String keyValueSeparator, String entryDelimiter, Map<?, ?> map) {
- checkNotNull(appendable);
- checkNotNull(keyValueSeparator);
- checkNotNull(entryDelimiter);
+ Preconditions.checkNotNull(appendable);
+ Preconditions.checkNotNull(keyValueSeparator);
+ Preconditions.checkNotNull(entryDelimiter);
Iterator<? extends Map.Entry<?, ?>> entries = map.entrySet().iterator();
if (entries.hasNext()) {
try {
diff --git a/src/com/google/inject/internal/LineNumbers.java b/src/com/google/inject/internal/util/LineNumbers.java
index 05d1c29a..992281e7 100644
--- a/src/com/google/inject/internal/LineNumbers.java
+++ b/src/com/google/inject/internal/util/LineNumbers.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
-import static com.google.inject.internal.Preconditions.checkArgument;
+import com.google.inject.internal.MoreTypes;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Member;
@@ -54,7 +54,7 @@ final class LineNumbers {
if (!type.isArray()) {
InputStream in = type.getResourceAsStream("/" + type.getName().replace('.', '/') + ".class");
- checkArgument(in != null, "Cannot find bytecode for %s", type);
+ Preconditions.checkArgument(in != null, "Cannot find bytecode for %s", type);
new ClassReader(in).accept(new LineNumberReader(), ClassReader.SKIP_FRAMES);
}
}
@@ -77,7 +77,7 @@ final class LineNumbers {
* construction
*/
public Integer getLineNumber(Member member) {
- checkArgument(type == member.getDeclaringClass(),
+ Preconditions.checkArgument(type == member.getDeclaringClass(),
"Member %s belongs to %s, not %s", member, member.getDeclaringClass(), type);
return lines.get(MoreTypes.memberKey(member));
}
diff --git a/src/com/google/inject/internal/Lists.java b/src/com/google/inject/internal/util/Lists.java
index 4840c22f..b32a430c 100644
--- a/src/com/google/inject/internal/Lists.java
+++ b/src/com/google/inject/internal/util/Lists.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
diff --git a/src/com/google/inject/internal/MapMaker.java b/src/com/google/inject/internal/util/MapMaker.java
index 56b96623..9ea17b3d 100644
--- a/src/com/google/inject/internal/MapMaker.java
+++ b/src/com/google/inject/internal/util/MapMaker.java
@@ -14,8 +14,11 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Function;
+import com.google.inject.internal.util.CustomConcurrentHashMap.ComputingStrategy;
+import com.google.inject.internal.util.CustomConcurrentHashMap.Internals;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -26,8 +29,6 @@ import java.lang.reflect.Field;
import java.util.Map;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
-import com.google.inject.internal.CustomConcurrentHashMap.Internals;
-import com.google.inject.internal.CustomConcurrentHashMap.ComputingStrategy;
import java.util.concurrent.ConcurrentMap;
import java.util.concurrent.TimeUnit;
diff --git a/src/com/google/inject/internal/Maps.java b/src/com/google/inject/internal/util/Maps.java
index 74597265..7a652436 100644
--- a/src/com/google/inject/internal/Maps.java
+++ b/src/com/google/inject/internal/util/Maps.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.util.Collections;
import java.util.HashMap;
import java.util.IdentityHashMap;
diff --git a/src/com/google/inject/internal/NullOutputException.java b/src/com/google/inject/internal/util/NullOutputException.java
index d6733321..0a559b57 100644
--- a/src/com/google/inject/internal/NullOutputException.java
+++ b/src/com/google/inject/internal/util/NullOutputException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
/**
* Thrown when a computer function returns null. This subclass exists so
diff --git a/src/com/google/inject/internal/ObjectArrays.java b/src/com/google/inject/internal/util/ObjectArrays.java
index a098563b..db69b02a 100644
--- a/src/com/google/inject/internal/ObjectArrays.java
+++ b/src/com/google/inject/internal/util/ObjectArrays.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.lang.reflect.Array;
diff --git a/src/com/google/inject/internal/Objects.java b/src/com/google/inject/internal/util/Objects.java
index 92897fd5..c93409da 100644
--- a/src/com/google/inject/internal/Objects.java
+++ b/src/com/google/inject/internal/util/Objects.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.util.Arrays;
/**
diff --git a/src/com/google/inject/internal/Preconditions.java b/src/com/google/inject/internal/util/Preconditions.java
index c7d67b3b..2dd1335d 100644
--- a/src/com/google/inject/internal/Preconditions.java
+++ b/src/com/google/inject/internal/util/Preconditions.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.Collection;
import java.util.NoSuchElementException;
@@ -50,7 +50,7 @@ import java.util.NoSuchElementException;
* in their specifications to do so even when given perfectly valid input. That
* is, {@code null} is a valid parameter to the method {@link
* #checkNotNull(Object)} -- and technically this parameter could be even marked
- * as {@link Nullable} -- yet the method will still throw an exception anyway,
+ * as {@link com.google.inject.internal.Nullable} -- yet the method will still throw an exception anyway,
* because that's what its contract says to do.
*
* <p>This class may be used with the Google Web Toolkit (GWT).
diff --git a/src/com/google/inject/internal/Sets.java b/src/com/google/inject/internal/util/Sets.java
index b22f535f..1aa3f84c 100644
--- a/src/com/google/inject/internal/Sets.java
+++ b/src/com/google/inject/internal/util/Sets.java
@@ -14,8 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Nullable;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.Serializable;
diff --git a/src/com/google/inject/internal/SourceProvider.java b/src/com/google/inject/internal/util/SourceProvider.java
index 75dcc9d9..17deedad 100644
--- a/src/com/google/inject/internal/SourceProvider.java
+++ b/src/com/google/inject/internal/util/SourceProvider.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
-import static com.google.inject.internal.Iterables.concat;
+import static com.google.inject.internal.util.Iterables.concat;
import java.util.List;
/**
diff --git a/src/com/google/inject/internal/StackTraceElements.java b/src/com/google/inject/internal/util/StackTraceElements.java
index d89bbbd9..f121a089 100644
--- a/src/com/google/inject/internal/StackTraceElements.java
+++ b/src/com/google/inject/internal/util/StackTraceElements.java
@@ -14,8 +14,10 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.Function;
+import com.google.inject.internal.MoreTypes;
import java.io.IOException;
import java.lang.reflect.Constructor;
import java.lang.reflect.Member;
diff --git a/src/com/google/inject/internal/Stopwatch.java b/src/com/google/inject/internal/util/Stopwatch.java
index 22ab4409..92c73fba 100644
--- a/src/com/google/inject/internal/Stopwatch.java
+++ b/src/com/google/inject/internal/util/Stopwatch.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.logging.Logger;
@@ -23,7 +23,7 @@ import java.util.logging.Logger;
*
* @author crazybob@google.com (Bob Lee)
*/
-final class Stopwatch {
+public final class Stopwatch {
private static final Logger logger = Logger.getLogger(Stopwatch.class.getName());
private long start = System.currentTimeMillis();
diff --git a/src/com/google/inject/internal/Strings.java b/src/com/google/inject/internal/util/Strings.java
index 5b9167bf..3021f7a9 100644
--- a/src/com/google/inject/internal/Strings.java
+++ b/src/com/google/inject/internal/util/Strings.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
/**
* String utilities.
diff --git a/src/com/google/inject/internal/ToStringBuilder.java b/src/com/google/inject/internal/util/ToStringBuilder.java
index 6221eae7..9e75fa87 100644
--- a/src/com/google/inject/internal/ToStringBuilder.java
+++ b/src/com/google/inject/internal/util/ToStringBuilder.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.LinkedHashMap;
import java.util.Map;
diff --git a/src/com/google/inject/internal/UnmodifiableIterator.java b/src/com/google/inject/internal/util/UnmodifiableIterator.java
index 17621922..d19a49b7 100644
--- a/src/com/google/inject/internal/UnmodifiableIterator.java
+++ b/src/com/google/inject/internal/util/UnmodifiableIterator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.Iterator;
diff --git a/src/com/google/inject/matcher/Matchers.java b/src/com/google/inject/matcher/Matchers.java
index 44d938bc..e6a0bf55 100644
--- a/src/com/google/inject/matcher/Matchers.java
+++ b/src/com/google/inject/matcher/Matchers.java
@@ -16,8 +16,8 @@
package com.google.inject.matcher;
-import static com.google.inject.internal.Preconditions.checkArgument;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.annotation.Retention;
diff --git a/src/com/google/inject/name/NamedImpl.java b/src/com/google/inject/name/NamedImpl.java
index 509b528b..8690c511 100644
--- a/src/com/google/inject/name/NamedImpl.java
+++ b/src/com/google/inject/name/NamedImpl.java
@@ -16,7 +16,7 @@
package com.google.inject.name;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.io.Serializable;
import java.lang.annotation.Annotation;
diff --git a/src/com/google/inject/spi/Dependency.java b/src/com/google/inject/spi/Dependency.java
index e9d56507..913f2032 100644
--- a/src/com/google/inject/spi/Dependency.java
+++ b/src/com/google/inject/spi/Dependency.java
@@ -17,10 +17,10 @@
package com.google.inject.spi;
import com.google.inject.Key;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Objects;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Objects;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.util.List;
import java.util.Set;
diff --git a/src/com/google/inject/spi/Elements.java b/src/com/google/inject/spi/Elements.java
index 03871a79..75795b41 100644
--- a/src/com/google/inject/spi/Elements.java
+++ b/src/com/google/inject/spi/Elements.java
@@ -35,14 +35,14 @@ import com.google.inject.internal.AbstractBindingBuilder;
import com.google.inject.internal.BindingBuilder;
import com.google.inject.internal.ConstantBindingBuilderImpl;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Lists;
-import static com.google.inject.internal.Preconditions.checkArgument;
+import com.google.inject.internal.ExposureBuilder;
import com.google.inject.internal.PrivateElementsImpl;
import com.google.inject.internal.ProviderMethodsModule;
-import com.google.inject.internal.Sets;
-import com.google.inject.internal.SourceProvider;
-import com.google.inject.internal.ExposureBuilder;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
+import static com.google.inject.internal.util.Preconditions.checkArgument;
+import com.google.inject.internal.util.Sets;
+import com.google.inject.internal.util.SourceProvider;
import com.google.inject.matcher.Matcher;
import java.lang.annotation.Annotation;
import java.lang.reflect.Method;
diff --git a/src/com/google/inject/spi/ExposedBinding.java b/src/com/google/inject/spi/ExposedBinding.java
index 66f05365..16a569eb 100644
--- a/src/com/google/inject/spi/ExposedBinding.java
+++ b/src/com/google/inject/spi/ExposedBinding.java
@@ -16,8 +16,8 @@
package com.google.inject.spi;
-import com.google.inject.Binding;
import com.google.inject.Binder;
+import com.google.inject.Binding;
/**
* A binding to a key exposed from an enclosed private environment.
diff --git a/src/com/google/inject/spi/InjectionPoint.java b/src/com/google/inject/spi/InjectionPoint.java
index 918668ff..b147a3bf 100644
--- a/src/com/google/inject/spi/InjectionPoint.java
+++ b/src/com/google/inject/spi/InjectionPoint.java
@@ -23,12 +23,12 @@ import com.google.inject.TypeLiteral;
import com.google.inject.internal.Annotations;
import com.google.inject.internal.Errors;
import com.google.inject.internal.ErrorsException;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
import com.google.inject.internal.MoreTypes;
import static com.google.inject.internal.MoreTypes.getRawType;
import com.google.inject.internal.Nullability;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
import java.lang.annotation.Annotation;
import java.lang.reflect.AnnotatedElement;
import java.lang.reflect.Constructor;
@@ -39,11 +39,11 @@ import java.lang.reflect.Modifier;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
+import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.util.HashMap;
import java.util.logging.Level;
import java.util.logging.Logger;
diff --git a/src/com/google/inject/spi/InjectionRequest.java b/src/com/google/inject/spi/InjectionRequest.java
index d058ddae..f3807bde 100644
--- a/src/com/google/inject/spi/InjectionRequest.java
+++ b/src/com/google/inject/spi/InjectionRequest.java
@@ -19,7 +19,7 @@ package com.google.inject.spi;
import com.google.inject.Binder;
import com.google.inject.ConfigurationException;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.util.Set;
/**
diff --git a/src/com/google/inject/spi/InterceptorBinding.java b/src/com/google/inject/spi/InterceptorBinding.java
index 23737863..03c3903c 100644
--- a/src/com/google/inject/spi/InterceptorBinding.java
+++ b/src/com/google/inject/spi/InterceptorBinding.java
@@ -17,8 +17,8 @@
package com.google.inject.spi;
import com.google.inject.Binder;
-import com.google.inject.internal.ImmutableList;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.internal.util.ImmutableList;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.matcher.Matcher;
import java.lang.reflect.Method;
import java.util.List;
diff --git a/src/com/google/inject/spi/MembersInjectorLookup.java b/src/com/google/inject/spi/MembersInjectorLookup.java
index c3ab792e..f4bb165f 100644
--- a/src/com/google/inject/spi/MembersInjectorLookup.java
+++ b/src/com/google/inject/spi/MembersInjectorLookup.java
@@ -19,8 +19,8 @@ package com.google.inject.spi;
import com.google.inject.Binder;
import com.google.inject.MembersInjector;
import com.google.inject.TypeLiteral;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import static com.google.inject.internal.Preconditions.checkState;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkState;
/**
* A lookup of the members injector for a type. Lookups are created explicitly in a module using
diff --git a/src/com/google/inject/spi/Message.java b/src/com/google/inject/spi/Message.java
index 602555eb..7b864b5f 100644
--- a/src/com/google/inject/spi/Message.java
+++ b/src/com/google/inject/spi/Message.java
@@ -18,10 +18,10 @@ package com.google.inject.spi;
import com.google.inject.Binder;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Objects;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import com.google.inject.internal.SourceProvider;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Objects;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+import com.google.inject.internal.util.SourceProvider;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.util.List;
diff --git a/src/com/google/inject/spi/ProviderLookup.java b/src/com/google/inject/spi/ProviderLookup.java
index a5a3162e..74bc5f07 100644
--- a/src/com/google/inject/spi/ProviderLookup.java
+++ b/src/com/google/inject/spi/ProviderLookup.java
@@ -16,11 +16,11 @@
package com.google.inject.spi;
+import com.google.inject.Binder;
import com.google.inject.Key;
import com.google.inject.Provider;
-import com.google.inject.Binder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
-import static com.google.inject.internal.Preconditions.checkState;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkState;
/**
* A lookup of the provider for a type. Lookups are created explicitly in a module using
diff --git a/src/com/google/inject/spi/ScopeBinding.java b/src/com/google/inject/spi/ScopeBinding.java
index 5f7b6753..f4e62717 100644
--- a/src/com/google/inject/spi/ScopeBinding.java
+++ b/src/com/google/inject/spi/ScopeBinding.java
@@ -16,9 +16,9 @@
package com.google.inject.spi;
-import com.google.inject.Scope;
import com.google.inject.Binder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.Scope;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.lang.annotation.Annotation;
/**
diff --git a/src/com/google/inject/spi/StaticInjectionRequest.java b/src/com/google/inject/spi/StaticInjectionRequest.java
index 94e4a0ee..56b58238 100644
--- a/src/com/google/inject/spi/StaticInjectionRequest.java
+++ b/src/com/google/inject/spi/StaticInjectionRequest.java
@@ -16,9 +16,9 @@
package com.google.inject.spi;
-import com.google.inject.ConfigurationException;
import com.google.inject.Binder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.ConfigurationException;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.util.Set;
/**
diff --git a/src/com/google/inject/spi/Toolable.java b/src/com/google/inject/spi/Toolable.java
index e1d278e6..42897ad6 100644
--- a/src/com/google/inject/spi/Toolable.java
+++ b/src/com/google/inject/spi/Toolable.java
@@ -1,16 +1,13 @@
package com.google.inject.spi;
-import static java.lang.annotation.ElementType.METHOD;
-import static java.lang.annotation.RetentionPolicy.RUNTIME;
-
+import com.google.inject.Injector;
+import com.google.inject.Stage;
import java.lang.annotation.Documented;
+import static java.lang.annotation.ElementType.METHOD;
import java.lang.annotation.Retention;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
import java.lang.annotation.Target;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.Stage;
-
/**
* Instructs an {@link Injector} running in {@link Stage#TOOL} that a method should be injected.
diff --git a/src/com/google/inject/spi/TypeConverterBinding.java b/src/com/google/inject/spi/TypeConverterBinding.java
index b3826aba..74f7c73a 100644
--- a/src/com/google/inject/spi/TypeConverterBinding.java
+++ b/src/com/google/inject/spi/TypeConverterBinding.java
@@ -16,9 +16,9 @@
package com.google.inject.spi;
-import com.google.inject.TypeLiteral;
import com.google.inject.Binder;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import com.google.inject.TypeLiteral;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import com.google.inject.matcher.Matcher;
/**
diff --git a/src/com/google/inject/spi/TypeEncounter.java b/src/com/google/inject/spi/TypeEncounter.java
index 82d42e51..ca2e2b4f 100644
--- a/src/com/google/inject/spi/TypeEncounter.java
+++ b/src/com/google/inject/spi/TypeEncounter.java
@@ -16,9 +16,9 @@
package com.google.inject.spi;
-import com.google.inject.Provider;
import com.google.inject.Key;
import com.google.inject.MembersInjector;
+import com.google.inject.Provider;
import com.google.inject.TypeLiteral;
import com.google.inject.matcher.Matcher;
import java.lang.reflect.Method;
diff --git a/src/com/google/inject/util/Jsr330.java b/src/com/google/inject/util/Jsr330.java
index a1891e1a..5e32a93c 100644
--- a/src/com/google/inject/util/Jsr330.java
+++ b/src/com/google/inject/util/Jsr330.java
@@ -16,7 +16,7 @@
package com.google.inject.util;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import javax.inject.Provider;
/**
diff --git a/src/com/google/inject/util/Modules.java b/src/com/google/inject/util/Modules.java
index 0bc1a2e8..fd19f01f 100644
--- a/src/com/google/inject/util/Modules.java
+++ b/src/com/google/inject/util/Modules.java
@@ -21,18 +21,18 @@ import com.google.inject.Binder;
import com.google.inject.Binding;
import com.google.inject.Key;
import com.google.inject.Module;
-import com.google.inject.Scope;
import com.google.inject.PrivateBinder;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
-import com.google.inject.internal.Maps;
-import com.google.inject.internal.Sets;
+import com.google.inject.Scope;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
+import com.google.inject.internal.util.Maps;
+import com.google.inject.internal.util.Sets;
import com.google.inject.spi.DefaultBindingScopingVisitor;
import com.google.inject.spi.DefaultElementVisitor;
import com.google.inject.spi.Element;
import com.google.inject.spi.Elements;
-import com.google.inject.spi.ScopeBinding;
import com.google.inject.spi.PrivateElements;
+import com.google.inject.spi.ScopeBinding;
import java.lang.annotation.Annotation;
import java.util.Arrays;
import java.util.LinkedHashSet;
diff --git a/src/com/google/inject/util/Node.java b/src/com/google/inject/util/Node.java
index df6f11ec..938c5d45 100644
--- a/src/com/google/inject/util/Node.java
+++ b/src/com/google/inject/util/Node.java
@@ -18,8 +18,8 @@ package com.google.inject.util;
import com.google.inject.Key;
import com.google.inject.internal.Errors;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Sets;
import java.lang.annotation.Annotation;
import java.util.Set;
diff --git a/test/com/google/inject/AllTests.java b/test/com/google/inject/AllTests.java
index fc6de45a..bcb2f142 100644
--- a/test/com/google/inject/AllTests.java
+++ b/test/com/google/inject/AllTests.java
@@ -16,11 +16,11 @@
package com.google.inject;
-import com.google.inject.internal.FinalizableReferenceQueueTest;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Jsr166HashMapTest;
-import com.google.inject.internal.LineNumbersTest;
-import com.google.inject.internal.MapMakerTestSuite;
+import com.google.inject.internal.util.FinalizableReferenceQueueTest;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Jsr166HashMapTest;
+import com.google.inject.internal.util.LineNumbersTest;
+import com.google.inject.internal.util.MapMakerTestSuite;
import com.google.inject.internal.MoreTypesTest;
import com.google.inject.internal.ProxyFactoryTest;
import com.google.inject.internal.UniqueAnnotationsTest;
diff --git a/test/com/google/inject/BinderTest.java b/test/com/google/inject/BinderTest.java
index bd78b7c5..6f97a033 100644
--- a/test/com/google/inject/BinderTest.java
+++ b/test/com/google/inject/BinderTest.java
@@ -18,9 +18,9 @@ package com.google.inject;
import static com.google.inject.Asserts.assertContains;
import static com.google.inject.Asserts.assertNotSerializable;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Iterables;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Iterables;
+import com.google.inject.internal.util.Lists;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
import com.google.inject.spi.Message;
diff --git a/test/com/google/inject/BinderTestSuite.java b/test/com/google/inject/BinderTestSuite.java
index e4e68442..9e00d5b5 100644
--- a/test/com/google/inject/BinderTestSuite.java
+++ b/test/com/google/inject/BinderTestSuite.java
@@ -19,8 +19,8 @@ package com.google.inject;
import static com.google.inject.Asserts.assertContains;
import com.google.inject.binder.AnnotatedBindingBuilder;
import com.google.inject.binder.ScopedBindingBuilder;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
import com.google.inject.name.Named;
import static com.google.inject.name.Names.named;
import com.google.inject.util.Providers;
diff --git a/test/com/google/inject/BindingTest.java b/test/com/google/inject/BindingTest.java
index f2c20398..acaec62f 100644
--- a/test/com/google/inject/BindingTest.java
+++ b/test/com/google/inject/BindingTest.java
@@ -17,8 +17,8 @@
package com.google.inject;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Sets;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Sets;
import com.google.inject.matcher.Matchers;
import static com.google.inject.name.Names.named;
diff --git a/test/com/google/inject/DuplicateBindingsTest.java b/test/com/google/inject/DuplicateBindingsTest.java
index 36230f26..32324b68 100644
--- a/test/com/google/inject/DuplicateBindingsTest.java
+++ b/test/com/google/inject/DuplicateBindingsTest.java
@@ -19,6 +19,7 @@ package com.google.inject;
import static com.google.inject.Asserts.assertContains;
import static com.google.inject.name.Names.named;
+import com.google.inject.internal.util.Lists;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
import java.util.Arrays;
@@ -29,7 +30,6 @@ import java.util.logging.Logger;
import junit.framework.TestCase;
-import com.google.inject.internal.Lists;
import com.google.inject.spi.Element;
import com.google.inject.spi.Elements;
import com.google.inject.util.Providers;
diff --git a/test/com/google/inject/GenericInjectionTest.java b/test/com/google/inject/GenericInjectionTest.java
index 9c9d1e67..211a8dd6 100644
--- a/test/com/google/inject/GenericInjectionTest.java
+++ b/test/com/google/inject/GenericInjectionTest.java
@@ -16,8 +16,8 @@
package com.google.inject;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.ImmutableSet;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.util.Modules;
import java.util.Arrays;
import java.util.Collection;
diff --git a/test/com/google/inject/ImplicitBindingTest.java b/test/com/google/inject/ImplicitBindingTest.java
index de2f4093..515635fa 100644
--- a/test/com/google/inject/ImplicitBindingTest.java
+++ b/test/com/google/inject/ImplicitBindingTest.java
@@ -16,9 +16,9 @@
package com.google.inject;
+import com.google.inject.internal.util.Iterables;
import java.util.List;
-import com.google.inject.internal.Iterables;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
import junit.framework.TestCase;
diff --git a/test/com/google/inject/MethodInterceptionTest.java b/test/com/google/inject/MethodInterceptionTest.java
index 9bffde65..a10ebf04 100644
--- a/test/com/google/inject/MethodInterceptionTest.java
+++ b/test/com/google/inject/MethodInterceptionTest.java
@@ -16,8 +16,8 @@
package com.google.inject;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableMap;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableMap;
import com.google.inject.matcher.Matchers;
import static com.google.inject.matcher.Matchers.only;
import com.google.inject.spi.ConstructorBinding;
diff --git a/test/com/google/inject/ParentInjectorTest.java b/test/com/google/inject/ParentInjectorTest.java
index f21e49c6..7eea191d 100644
--- a/test/com/google/inject/ParentInjectorTest.java
+++ b/test/com/google/inject/ParentInjectorTest.java
@@ -17,7 +17,7 @@ limitations under the License.
package com.google.inject;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.internal.ImmutableList;
+import com.google.inject.internal.util.ImmutableList;
import com.google.inject.matcher.Matchers;
import com.google.inject.name.Names;
import com.google.inject.spi.TypeConverter;
diff --git a/test/com/google/inject/PrivateModuleTest.java b/test/com/google/inject/PrivateModuleTest.java
index 3c8fd4d7..f93e34fa 100644
--- a/test/com/google/inject/PrivateModuleTest.java
+++ b/test/com/google/inject/PrivateModuleTest.java
@@ -17,7 +17,7 @@
package com.google.inject;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.internal.ImmutableSet;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.name.Named;
import com.google.inject.name.Names;
import static com.google.inject.name.Names.named;
diff --git a/test/com/google/inject/ScopesTest.java b/test/com/google/inject/ScopesTest.java
index 4af83983..a714d610 100644
--- a/test/com/google/inject/ScopesTest.java
+++ b/test/com/google/inject/ScopesTest.java
@@ -17,8 +17,8 @@
package com.google.inject;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.Maps;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.Maps;
import com.google.inject.name.Named;
import static com.google.inject.name.Names.named;
import com.google.inject.spi.Element;
diff --git a/test/com/google/inject/TypeConversionTest.java b/test/com/google/inject/TypeConversionTest.java
index 142e3fd0..ead3c99d 100644
--- a/test/com/google/inject/TypeConversionTest.java
+++ b/test/com/google/inject/TypeConversionTest.java
@@ -17,7 +17,7 @@
package com.google.inject;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.internal.Iterables;
+import com.google.inject.internal.util.Iterables;
import com.google.inject.matcher.Matchers;
import com.google.inject.spi.TypeConverter;
import java.lang.annotation.Retention;
diff --git a/test/com/google/inject/TypeListenerTest.java b/test/com/google/inject/TypeListenerTest.java
index a23dcdf8..aafd2489 100644
--- a/test/com/google/inject/TypeListenerTest.java
+++ b/test/com/google/inject/TypeListenerTest.java
@@ -17,8 +17,8 @@
package com.google.inject;
import static com.google.inject.Asserts.assertContains;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.Lists;
import com.google.inject.matcher.Matcher;
import com.google.inject.matcher.Matchers;
import static com.google.inject.matcher.Matchers.any;
diff --git a/test/com/google/inject/TypeLiteralTest.java b/test/com/google/inject/TypeLiteralTest.java
index 2584c2d8..a0f2976d 100644
--- a/test/com/google/inject/TypeLiteralTest.java
+++ b/test/com/google/inject/TypeLiteralTest.java
@@ -18,7 +18,7 @@ package com.google.inject;
import static com.google.inject.Asserts.assertEqualsBothWays;
import static com.google.inject.Asserts.assertNotSerializable;
-import com.google.inject.internal.ImmutableList;
+import com.google.inject.internal.util.ImmutableList;
import com.google.inject.util.Types;
import java.io.IOException;
import java.lang.reflect.Type;
diff --git a/test/com/google/inject/TypeLiteralTypeResolutionTest.java b/test/com/google/inject/TypeLiteralTypeResolutionTest.java
index 5e8db2b3..74037094 100644
--- a/test/com/google/inject/TypeLiteralTypeResolutionTest.java
+++ b/test/com/google/inject/TypeLiteralTypeResolutionTest.java
@@ -18,7 +18,7 @@ package com.google.inject;
import static com.google.inject.Asserts.assertEqualsBothWays;
import static com.google.inject.Asserts.assertNotSerializable;
-import com.google.inject.internal.ImmutableList;
+import com.google.inject.internal.util.ImmutableList;
import com.google.inject.util.Types;
import static com.google.inject.util.Types.arrayOf;
import static com.google.inject.util.Types.listOf;
diff --git a/test/com/google/inject/internal/ProxyFactoryTest.java b/test/com/google/inject/internal/ProxyFactoryTest.java
index c516d660..bcfa6106 100644
--- a/test/com/google/inject/internal/ProxyFactoryTest.java
+++ b/test/com/google/inject/internal/ProxyFactoryTest.java
@@ -21,6 +21,8 @@ import static com.google.inject.matcher.Matchers.annotatedWith;
import static com.google.inject.matcher.Matchers.any;
import static com.google.inject.matcher.Matchers.not;
import static com.google.inject.matcher.Matchers.only;
+
+import com.google.inject.internal.util.Lists;
import com.google.inject.spi.InjectionPoint;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
diff --git a/test/com/google/inject/internal/FinalizableReferenceQueueTest.java b/test/com/google/inject/internal/util/FinalizableReferenceQueueTest.java
index eb66ea61..779f3b42 100644
--- a/test/com/google/inject/internal/FinalizableReferenceQueueTest.java
+++ b/test/com/google/inject/internal/util/FinalizableReferenceQueueTest.java
@@ -1,5 +1,8 @@
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.util.FinalizableReferenceQueue;
+import com.google.inject.internal.util.FinalizableWeakReference;
+import com.google.inject.internal.util.Finalizer;
import java.lang.ref.ReferenceQueue;
import java.lang.ref.WeakReference;
import java.net.URL;
diff --git a/test/com/google/inject/internal/ForwardingCollection.java b/test/com/google/inject/internal/util/ForwardingCollection.java
index 56d7d2f9..7e1e0198 100644
--- a/test/com/google/inject/internal/ForwardingCollection.java
+++ b/test/com/google/inject/internal/util/ForwardingCollection.java
@@ -14,9 +14,9 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
-import static com.google.inject.internal.Preconditions.checkNotNull;
+import static com.google.inject.internal.util.Preconditions.checkNotNull;
import java.util.Collection;
import java.util.Iterator;
diff --git a/test/com/google/inject/internal/ForwardingConcurrentMap.java b/test/com/google/inject/internal/util/ForwardingConcurrentMap.java
index 91db495e..f179af6e 100644
--- a/test/com/google/inject/internal/ForwardingConcurrentMap.java
+++ b/test/com/google/inject/internal/util/ForwardingConcurrentMap.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.util.concurrent.ConcurrentMap;
diff --git a/test/com/google/inject/internal/ForwardingMap.java b/test/com/google/inject/internal/util/ForwardingMap.java
index c73d6343..b4f79d49 100644
--- a/test/com/google/inject/internal/ForwardingMap.java
+++ b/test/com/google/inject/internal/util/ForwardingMap.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import com.google.inject.internal.Nullable;
diff --git a/test/com/google/inject/internal/ForwardingObject.java b/test/com/google/inject/internal/util/ForwardingObject.java
index f41898ae..74c6399d 100644
--- a/test/com/google/inject/internal/ForwardingObject.java
+++ b/test/com/google/inject/internal/util/ForwardingObject.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import java.io.Serializable;
diff --git a/test/com/google/inject/internal/ForwardingSet.java b/test/com/google/inject/internal/util/ForwardingSet.java
index 0e352c30..f9bfd479 100644
--- a/test/com/google/inject/internal/ForwardingSet.java
+++ b/test/com/google/inject/internal/util/ForwardingSet.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import com.google.inject.internal.Nullable;
diff --git a/test/com/google/inject/internal/Jsr166HashMap.java b/test/com/google/inject/internal/util/Jsr166HashMap.java
index a1767204..b65e62f6 100644
--- a/test/com/google/inject/internal/Jsr166HashMap.java
+++ b/test/com/google/inject/internal/util/Jsr166HashMap.java
@@ -6,15 +6,17 @@
* Pat Fisher, Mike Judd.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.util.ForwardingConcurrentMap;
+import com.google.inject.internal.util.CustomConcurrentHashMap;
import java.io.Serializable;
import java.util.Map;
import java.util.concurrent.ConcurrentMap;
/**
* A copy of {@link java.util.concurrent.ConcurrentHashMap} used to test {@link
- * com.google.inject.internal.CustomConcurrentHashMap}. This also serves
+ * com.google.inject.internal.util.CustomConcurrentHashMap}. This also serves
* as the examples in the CustomConcurrentHashMap Javadocs.
*/
public class Jsr166HashMap<K, V> extends ForwardingConcurrentMap<K, V>
diff --git a/test/com/google/inject/internal/Jsr166HashMapTest.java b/test/com/google/inject/internal/util/Jsr166HashMapTest.java
index a337fdd2..6e6ed4f1 100644
--- a/test/com/google/inject/internal/Jsr166HashMapTest.java
+++ b/test/com/google/inject/internal/util/Jsr166HashMapTest.java
@@ -6,8 +6,9 @@
* Pat Fisher, Mike Judd.
*/
-package com.google.inject.internal;
+package com.google.inject.internal.util;
+import com.google.inject.internal.util.Jsr166HashMap;
import junit.framework.TestCase;
import java.io.BufferedInputStream;
diff --git a/test/com/google/inject/internal/LineNumbersTest.java b/test/com/google/inject/internal/util/LineNumbersTest.java
index 70fa0364..8931cabb 100644
--- a/test/com/google/inject/internal/LineNumbersTest.java
+++ b/test/com/google/inject/internal/util/LineNumbersTest.java
@@ -14,8 +14,7 @@
* limitations under the License.
*/
-
-package com.google.inject.internal;
+package com.google.inject.internal.util;
import com.google.inject.AbstractModule;
import static com.google.inject.Asserts.assertContains;
diff --git a/test/com/google/inject/internal/MapMakerTestSuite.java b/test/com/google/inject/internal/util/MapMakerTestSuite.java
index fda27fff..2f14af20 100644
--- a/test/com/google/inject/internal/MapMakerTestSuite.java
+++ b/test/com/google/inject/internal/util/MapMakerTestSuite.java
@@ -14,9 +14,15 @@
* limitations under the License.
*/
-package com.google.inject.internal;
-
-import com.google.inject.internal.CustomConcurrentHashMap.Impl;
+package com.google.inject.internal.util;
+
+import com.google.inject.internal.Function;
+import com.google.inject.internal.Nullable;
+import com.google.inject.internal.util.ComputationException;
+import com.google.inject.internal.util.CustomConcurrentHashMap.Impl;
+import com.google.inject.internal.util.ExpirationTimer;
+import com.google.inject.internal.util.MapMaker;
+import com.google.inject.internal.util.Maps;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.ArrayList;
diff --git a/test/com/google/inject/name/NamesTest.java b/test/com/google/inject/name/NamesTest.java
index 9e001905..6812b7ba 100644
--- a/test/com/google/inject/name/NamesTest.java
+++ b/test/com/google/inject/name/NamesTest.java
@@ -23,7 +23,7 @@ import static com.google.inject.Asserts.assertEqualsBothWays;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
-import com.google.inject.internal.ImmutableMap;
+import com.google.inject.internal.util.ImmutableMap;
import java.io.IOException;
import java.util.Map;
import java.util.Properties;
diff --git a/test/com/google/inject/spi/ElementsTest.java b/test/com/google/inject/spi/ElementsTest.java
index 56a401b4..aa1777df 100644
--- a/test/com/google/inject/spi/ElementsTest.java
+++ b/test/com/google/inject/spi/ElementsTest.java
@@ -35,9 +35,10 @@ import com.google.inject.binder.AnnotatedBindingBuilder;
import com.google.inject.binder.AnnotatedConstantBindingBuilder;
import com.google.inject.binder.ConstantBindingBuilder;
import com.google.inject.binder.ScopedBindingBuilder;
-import com.google.inject.internal.ImmutableMap;
-import com.google.inject.internal.ImmutableSet;
-import static com.google.inject.internal.Iterables.getOnlyElement;
+import com.google.inject.internal.util.ImmutableMap;
+import com.google.inject.internal.util.ImmutableSet;
+import static com.google.inject.internal.util.Iterables.getOnlyElement;
+
import com.google.inject.matcher.Matcher;
import com.google.inject.matcher.Matchers;
import com.google.inject.name.Named;
diff --git a/test/com/google/inject/spi/HasDependenciesTest.java b/test/com/google/inject/spi/HasDependenciesTest.java
index 9bd30d20..b164a855 100644
--- a/test/com/google/inject/spi/HasDependenciesTest.java
+++ b/test/com/google/inject/spi/HasDependenciesTest.java
@@ -22,8 +22,8 @@ import com.google.inject.Inject;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Provider;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Iterables;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Iterables;
import java.util.Set;
import junit.framework.TestCase;
diff --git a/test/com/google/inject/spi/InjectionPointTest.java b/test/com/google/inject/spi/InjectionPointTest.java
index d3362e68..2e5262fb 100644
--- a/test/com/google/inject/spi/InjectionPointTest.java
+++ b/test/com/google/inject/spi/InjectionPointTest.java
@@ -24,9 +24,10 @@ import com.google.inject.Inject;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
import com.google.inject.internal.ErrorsException;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableSet;
-import static com.google.inject.internal.Iterables.getOnlyElement;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
+import static com.google.inject.internal.util.Iterables.getOnlyElement;
+
import com.google.inject.name.Named;
import static com.google.inject.name.Names.named;
import java.io.IOException;
diff --git a/test/com/google/inject/spi/ModuleRewriterTest.java b/test/com/google/inject/spi/ModuleRewriterTest.java
index 8984729c..0baff333 100644
--- a/test/com/google/inject/spi/ModuleRewriterTest.java
+++ b/test/com/google/inject/spi/ModuleRewriterTest.java
@@ -25,7 +25,7 @@ import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.Module;
import com.google.inject.Provider;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.Lists;
import com.google.inject.name.Names;
import java.util.List;
import junit.framework.TestCase;
diff --git a/test/com/google/inject/spi/ProviderMethodsTest.java b/test/com/google/inject/spi/ProviderMethodsTest.java
index 77e7bd0e..8d2bad40 100644
--- a/test/com/google/inject/spi/ProviderMethodsTest.java
+++ b/test/com/google/inject/spi/ProviderMethodsTest.java
@@ -19,7 +19,6 @@ package com.google.inject.spi;
import com.google.inject.AbstractModule;
import static com.google.inject.Asserts.assertContains;
import com.google.inject.Binder;
-import com.google.inject.Binding;
import com.google.inject.BindingAnnotation;
import com.google.inject.CreationException;
import com.google.inject.Guice;
@@ -30,8 +29,8 @@ import com.google.inject.Module;
import com.google.inject.Provider;
import com.google.inject.Provides;
import com.google.inject.Singleton;
-import com.google.inject.internal.ImmutableList;
-import com.google.inject.internal.ImmutableSet;
+import com.google.inject.internal.util.ImmutableList;
+import com.google.inject.internal.util.ImmutableSet;
import com.google.inject.internal.ProviderMethod;
import com.google.inject.internal.ProviderMethodsModule;
import com.google.inject.name.Named;
diff --git a/test/com/google/inject/spi/SpiBindingsTest.java b/test/com/google/inject/spi/SpiBindingsTest.java
index ae62f02f..7367cee5 100644
--- a/test/com/google/inject/spi/SpiBindingsTest.java
+++ b/test/com/google/inject/spi/SpiBindingsTest.java
@@ -29,8 +29,8 @@ import com.google.inject.Scope;
import com.google.inject.Scopes;
import com.google.inject.Singleton;
import com.google.inject.Stage;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.Lists;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.Lists;
import com.google.inject.name.Names;
import java.lang.reflect.Constructor;
import java.util.Collections;
diff --git a/test/com/googlecode/guice/StrictContainerTestSuite.java b/test/com/googlecode/guice/StrictContainerTestSuite.java
index e40c2609..906609c5 100644
--- a/test/com/googlecode/guice/StrictContainerTestSuite.java
+++ b/test/com/googlecode/guice/StrictContainerTestSuite.java
@@ -17,10 +17,10 @@
package com.googlecode.guice;
import com.google.inject.AllTests;
-import com.google.inject.internal.ImmutableSet;
-import com.google.inject.internal.MapMakerTestSuite;
-import com.google.inject.internal.MapMakerTestSuite.ReferenceMapTest;
-import com.google.inject.internal.MapMakerTestSuite.ComputingTest;
+import com.google.inject.internal.util.ImmutableSet;
+import com.google.inject.internal.util.MapMakerTestSuite;
+import com.google.inject.internal.util.MapMakerTestSuite.ReferenceMapTest;
+import com.google.inject.internal.util.MapMakerTestSuite.ComputingTest;
import java.io.FilePermission;
import java.security.AccessControlException;
import java.security.Permission;