diff --git a/factory/compiler/pom.xml b/factory/compiler/pom.xml
new file mode 100644
index 0000000000..f2be5fa2a2
--- /dev/null
+++ b/factory/compiler/pom.xml
@@ -0,0 +1,133 @@
+
+
+
+ 4.0.0
+
+
+ com.google.auto.factory
+ auto-factory-parent
+ 3
+
+
+ com.google.auto.factory
+ auto-factory-compiler
+ 1.0-SNAPSHOT
+ AutoFactory Compiler
+
+ JSR-330-compatible factories.
+
+
+
+ http://github.com/google/auto
+ scm:git:git://github.com/google/auto.git
+ scm:git:ssh://git@github.com/google/auto.git
+ HEAD
+
+
+
+
+ com.google.auto.factory
+ auto-factory
+ 1.0-SNAPSHOT
+
+
+ com.google.auto
+ auto-common
+ 0.5
+
+
+ com.google.auto.value
+ auto-value
+ 1.1
+
+
+ com.google.auto.service
+ auto-service
+ 1.0-rc2
+ provided
+
+
+ com.google.guava
+ guava
+ 19.0
+
+
+ com.squareup
+ javapoet
+ 1.7.0
+
+
+ javax.inject
+ javax.inject
+ 1
+
+
+
+ com.google.testing.compile
+ compile-testing
+ 0.8
+ test
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ com.google.truth
+ truth
+ 0.25
+ test
+
+
+
+
+
+
+ maven-jar-plugin
+ 2.5
+
+
+ org.apache.maven.plugins
+ maven-invoker-plugin
+
+ true
+ ${project.build.directory}/it
+
+ ${project.version}
+
+
+ */pom.xml
+
+ true
+
+
+
+ integration-test
+
+ install
+ run
+
+
+
+
+
+
+
diff --git a/factory/src/it/functional/pom.xml b/factory/compiler/src/it/functional/pom.xml
similarity index 93%
rename from factory/src/it/functional/pom.xml
rename to factory/compiler/src/it/functional/pom.xml
index 30cfce2ddf..6801552af9 100644
--- a/factory/src/it/functional/pom.xml
+++ b/factory/compiler/src/it/functional/pom.xml
@@ -28,6 +28,12 @@
auto-factory
@auto.version@
+
+ com.google.auto.factory
+ auto-factory-compiler
+ @auto.version@
+ true
+
com.google.code.findbugs
jsr305
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/DaggerModule.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/DaggerModule.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/DaggerModule.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/DaggerModule.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/Dependency.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/Dependency.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/Dependency.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/Dependency.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/DependencyImpl.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/DependencyImpl.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/DependencyImpl.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/DependencyImpl.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/FactoryComponent.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/FactoryComponent.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/FactoryComponent.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/FactoryComponent.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/FactoryGenerated.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/FactoryGenerated.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/FactoryGenerated.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/FactoryGenerated.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/FactoryInterface.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/FactoryInterface.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/FactoryInterface.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/FactoryInterface.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/GuiceModule.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/GuiceModule.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/GuiceModule.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/GuiceModule.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/QualifiedDependencyImpl.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/QualifiedDependencyImpl.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/QualifiedDependencyImpl.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/QualifiedDependencyImpl.java
diff --git a/factory/src/it/functional/src/main/java/com/google/auto/factory/Qualifier.java b/factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/Qualifier.java
similarity index 100%
rename from factory/src/it/functional/src/main/java/com/google/auto/factory/Qualifier.java
rename to factory/compiler/src/it/functional/src/main/java/com/google/auto/factory/Qualifier.java
diff --git a/factory/src/it/functional/src/test/java/com/google/auto/factory/DependencyInjectionIntegrationTest.java b/factory/compiler/src/it/functional/src/test/java/com/google/auto/factory/DependencyInjectionIntegrationTest.java
similarity index 100%
rename from factory/src/it/functional/src/test/java/com/google/auto/factory/DependencyInjectionIntegrationTest.java
rename to factory/compiler/src/it/functional/src/test/java/com/google/auto/factory/DependencyInjectionIntegrationTest.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/AnnotationValues.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/AnnotationValues.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/AnnotationValues.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/AnnotationValues.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/AutoFactoryDeclaration.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/AutoFactoryDeclaration.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/AutoFactoryDeclaration.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/AutoFactoryDeclaration.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/AutoFactoryProcessor.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/AutoFactoryProcessor.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/AutoFactoryProcessor.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/AutoFactoryProcessor.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/Elements2.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/Elements2.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/Elements2.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/Elements2.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/FactoryDescriptor.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryDescriptor.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/FactoryDescriptor.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryDescriptor.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/FactoryDescriptorGenerator.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryDescriptorGenerator.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/FactoryDescriptorGenerator.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryDescriptorGenerator.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/FactoryMethodDescriptor.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryMethodDescriptor.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/FactoryMethodDescriptor.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryMethodDescriptor.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/FactoryWriter.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryWriter.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/FactoryWriter.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/FactoryWriter.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/ImplementationMethodDescriptor.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/ImplementationMethodDescriptor.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/ImplementationMethodDescriptor.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/ImplementationMethodDescriptor.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/Key.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/Key.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/Key.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/Key.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/Mirrors.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/Mirrors.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/Mirrors.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/Mirrors.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/Parameter.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/Parameter.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/Parameter.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/Parameter.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/ProvidedChecker.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/ProvidedChecker.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/ProvidedChecker.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/ProvidedChecker.java
diff --git a/factory/src/main/java/com/google/auto/factory/processor/package-info.java b/factory/compiler/src/main/java/com/google/auto/factory/processor/package-info.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/processor/package-info.java
rename to factory/compiler/src/main/java/com/google/auto/factory/processor/package-info.java
diff --git a/factory/src/test/java/com/google/auto/factory/processor/AutoFactoryDeclarationTest.java b/factory/compiler/src/test/java/com/google/auto/factory/processor/AutoFactoryDeclarationTest.java
similarity index 100%
rename from factory/src/test/java/com/google/auto/factory/processor/AutoFactoryDeclarationTest.java
rename to factory/compiler/src/test/java/com/google/auto/factory/processor/AutoFactoryDeclarationTest.java
diff --git a/factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java b/factory/compiler/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java
similarity index 100%
rename from factory/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java
rename to factory/compiler/src/test/java/com/google/auto/factory/processor/AutoFactoryProcessorTest.java
diff --git a/factory/src/test/resources/bad/EnumSupertype.java b/factory/compiler/src/test/resources/bad/EnumSupertype.java
similarity index 100%
rename from factory/src/test/resources/bad/EnumSupertype.java
rename to factory/compiler/src/test/resources/bad/EnumSupertype.java
diff --git a/factory/src/test/resources/bad/FinalSupertype.java b/factory/compiler/src/test/resources/bad/FinalSupertype.java
similarity index 100%
rename from factory/src/test/resources/bad/FinalSupertype.java
rename to factory/compiler/src/test/resources/bad/FinalSupertype.java
diff --git a/factory/src/test/resources/bad/GenericClass.java b/factory/compiler/src/test/resources/bad/GenericClass.java
similarity index 100%
rename from factory/src/test/resources/bad/GenericClass.java
rename to factory/compiler/src/test/resources/bad/GenericClass.java
diff --git a/factory/src/test/resources/bad/InterfaceSupertype.java b/factory/compiler/src/test/resources/bad/InterfaceSupertype.java
similarity index 100%
rename from factory/src/test/resources/bad/InterfaceSupertype.java
rename to factory/compiler/src/test/resources/bad/InterfaceSupertype.java
diff --git a/factory/src/test/resources/bad/InvalidCustomName.java b/factory/compiler/src/test/resources/bad/InvalidCustomName.java
similarity index 100%
rename from factory/src/test/resources/bad/InvalidCustomName.java
rename to factory/compiler/src/test/resources/bad/InvalidCustomName.java
diff --git a/factory/src/test/resources/bad/MixedFinals.java b/factory/compiler/src/test/resources/bad/MixedFinals.java
similarity index 100%
rename from factory/src/test/resources/bad/MixedFinals.java
rename to factory/compiler/src/test/resources/bad/MixedFinals.java
diff --git a/factory/src/test/resources/bad/ProvidedButNoAutoFactory.java b/factory/compiler/src/test/resources/bad/ProvidedButNoAutoFactory.java
similarity index 100%
rename from factory/src/test/resources/bad/ProvidedButNoAutoFactory.java
rename to factory/compiler/src/test/resources/bad/ProvidedButNoAutoFactory.java
diff --git a/factory/src/test/resources/bad/ProvidedOnMethodParameter.java b/factory/compiler/src/test/resources/bad/ProvidedOnMethodParameter.java
similarity index 100%
rename from factory/src/test/resources/bad/ProvidedOnMethodParameter.java
rename to factory/compiler/src/test/resources/bad/ProvidedOnMethodParameter.java
diff --git a/factory/src/test/resources/expected/ClassUsingQualifierWithArgsFactory.java b/factory/compiler/src/test/resources/expected/ClassUsingQualifierWithArgsFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/ClassUsingQualifierWithArgsFactory.java
rename to factory/compiler/src/test/resources/expected/ClassUsingQualifierWithArgsFactory.java
diff --git a/factory/src/test/resources/expected/ConstructorAnnotatedFactory.java b/factory/compiler/src/test/resources/expected/ConstructorAnnotatedFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/ConstructorAnnotatedFactory.java
rename to factory/compiler/src/test/resources/expected/ConstructorAnnotatedFactory.java
diff --git a/factory/src/test/resources/expected/ConstructorAnnotatedNonFinalFactory.java b/factory/compiler/src/test/resources/expected/ConstructorAnnotatedNonFinalFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/ConstructorAnnotatedNonFinalFactory.java
rename to factory/compiler/src/test/resources/expected/ConstructorAnnotatedNonFinalFactory.java
diff --git a/factory/src/test/resources/expected/CustomNamedFactory.java b/factory/compiler/src/test/resources/expected/CustomNamedFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/CustomNamedFactory.java
rename to factory/compiler/src/test/resources/expected/CustomNamedFactory.java
diff --git a/factory/src/test/resources/expected/FactoryExtendingAbstractClassFactory.java b/factory/compiler/src/test/resources/expected/FactoryExtendingAbstractClassFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/FactoryExtendingAbstractClassFactory.java
rename to factory/compiler/src/test/resources/expected/FactoryExtendingAbstractClassFactory.java
diff --git a/factory/src/test/resources/expected/FactoryImplementingCreateMethod_ConcreteClassFactory.java b/factory/compiler/src/test/resources/expected/FactoryImplementingCreateMethod_ConcreteClassFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/FactoryImplementingCreateMethod_ConcreteClassFactory.java
rename to factory/compiler/src/test/resources/expected/FactoryImplementingCreateMethod_ConcreteClassFactory.java
diff --git a/factory/src/test/resources/expected/FactoryImplementingGenericInterfaceExtension.java b/factory/compiler/src/test/resources/expected/FactoryImplementingGenericInterfaceExtension.java
similarity index 100%
rename from factory/src/test/resources/expected/FactoryImplementingGenericInterfaceExtension.java
rename to factory/compiler/src/test/resources/expected/FactoryImplementingGenericInterfaceExtension.java
diff --git a/factory/src/test/resources/expected/MixedDepsImplementingInterfacesFactory.java b/factory/compiler/src/test/resources/expected/MixedDepsImplementingInterfacesFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/MixedDepsImplementingInterfacesFactory.java
rename to factory/compiler/src/test/resources/expected/MixedDepsImplementingInterfacesFactory.java
diff --git a/factory/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassAFactory.java b/factory/compiler/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassAFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassAFactory.java
rename to factory/compiler/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassAFactory.java
diff --git a/factory/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassBFactory.java b/factory/compiler/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassBFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassBFactory.java
rename to factory/compiler/src/test/resources/expected/MultipleFactoriesImplementingInterface_ClassBFactory.java
diff --git a/factory/src/test/resources/expected/NestedClasses_CustomNamedFactory.java b/factory/compiler/src/test/resources/expected/NestedClasses_CustomNamedFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/NestedClasses_CustomNamedFactory.java
rename to factory/compiler/src/test/resources/expected/NestedClasses_CustomNamedFactory.java
diff --git a/factory/src/test/resources/expected/NestedClasses_SimpleNestedClassFactory.java b/factory/compiler/src/test/resources/expected/NestedClasses_SimpleNestedClassFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/NestedClasses_SimpleNestedClassFactory.java
rename to factory/compiler/src/test/resources/expected/NestedClasses_SimpleNestedClassFactory.java
diff --git a/factory/src/test/resources/expected/PublicClassFactory.java b/factory/compiler/src/test/resources/expected/PublicClassFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/PublicClassFactory.java
rename to factory/compiler/src/test/resources/expected/PublicClassFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassImplementingMarkerFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassImplementingMarkerFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassImplementingMarkerFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassImplementingMarkerFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassImplementingSimpleInterfaceFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassImplementingSimpleInterfaceFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassImplementingSimpleInterfaceFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassImplementingSimpleInterfaceFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassMixedDepsFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassMixedDepsFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassMixedDepsFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassMixedDepsFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassNonFinalFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassNonFinalFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassNonFinalFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassNonFinalFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassPassedDepsFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassPassedDepsFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassPassedDepsFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassPassedDepsFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassProvidedDepsFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassProvidedDepsFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassProvidedDepsFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassProvidedDepsFactory.java
diff --git a/factory/src/test/resources/expected/SimpleClassProvidedProviderDepsFactory.java b/factory/compiler/src/test/resources/expected/SimpleClassProvidedProviderDepsFactory.java
similarity index 100%
rename from factory/src/test/resources/expected/SimpleClassProvidedProviderDepsFactory.java
rename to factory/compiler/src/test/resources/expected/SimpleClassProvidedProviderDepsFactory.java
diff --git a/factory/src/test/resources/good/ClassUsingQualifierWithArgs.java b/factory/compiler/src/test/resources/good/ClassUsingQualifierWithArgs.java
similarity index 100%
rename from factory/src/test/resources/good/ClassUsingQualifierWithArgs.java
rename to factory/compiler/src/test/resources/good/ClassUsingQualifierWithArgs.java
diff --git a/factory/src/test/resources/good/ConstructorAnnotated.java b/factory/compiler/src/test/resources/good/ConstructorAnnotated.java
similarity index 100%
rename from factory/src/test/resources/good/ConstructorAnnotated.java
rename to factory/compiler/src/test/resources/good/ConstructorAnnotated.java
diff --git a/factory/src/test/resources/good/ConstructorAnnotatedNonFinal.java b/factory/compiler/src/test/resources/good/ConstructorAnnotatedNonFinal.java
similarity index 100%
rename from factory/src/test/resources/good/ConstructorAnnotatedNonFinal.java
rename to factory/compiler/src/test/resources/good/ConstructorAnnotatedNonFinal.java
diff --git a/factory/src/test/resources/good/FactoryExtendingAbstractClass.java b/factory/compiler/src/test/resources/good/FactoryExtendingAbstractClass.java
similarity index 100%
rename from factory/src/test/resources/good/FactoryExtendingAbstractClass.java
rename to factory/compiler/src/test/resources/good/FactoryExtendingAbstractClass.java
diff --git a/factory/src/test/resources/good/FactoryExtendingAbstractClassWithConstructorParams.java b/factory/compiler/src/test/resources/good/FactoryExtendingAbstractClassWithConstructorParams.java
similarity index 100%
rename from factory/src/test/resources/good/FactoryExtendingAbstractClassWithConstructorParams.java
rename to factory/compiler/src/test/resources/good/FactoryExtendingAbstractClassWithConstructorParams.java
diff --git a/factory/src/test/resources/good/FactoryExtendingAbstractClassWithMultipleConstructors.java b/factory/compiler/src/test/resources/good/FactoryExtendingAbstractClassWithMultipleConstructors.java
similarity index 100%
rename from factory/src/test/resources/good/FactoryExtendingAbstractClassWithMultipleConstructors.java
rename to factory/compiler/src/test/resources/good/FactoryExtendingAbstractClassWithMultipleConstructors.java
diff --git a/factory/src/test/resources/good/FactoryImplementingCreateMethod.java b/factory/compiler/src/test/resources/good/FactoryImplementingCreateMethod.java
similarity index 100%
rename from factory/src/test/resources/good/FactoryImplementingCreateMethod.java
rename to factory/compiler/src/test/resources/good/FactoryImplementingCreateMethod.java
diff --git a/factory/src/test/resources/good/FactoryImplementingGenericInterfaceExtension.java b/factory/compiler/src/test/resources/good/FactoryImplementingGenericInterfaceExtension.java
similarity index 100%
rename from factory/src/test/resources/good/FactoryImplementingGenericInterfaceExtension.java
rename to factory/compiler/src/test/resources/good/FactoryImplementingGenericInterfaceExtension.java
diff --git a/factory/src/test/resources/good/MixedDepsImplementingInterfaces.java b/factory/compiler/src/test/resources/good/MixedDepsImplementingInterfaces.java
similarity index 100%
rename from factory/src/test/resources/good/MixedDepsImplementingInterfaces.java
rename to factory/compiler/src/test/resources/good/MixedDepsImplementingInterfaces.java
diff --git a/factory/src/test/resources/good/MultipleFactoriesImplementingInterface.java b/factory/compiler/src/test/resources/good/MultipleFactoriesImplementingInterface.java
similarity index 100%
rename from factory/src/test/resources/good/MultipleFactoriesImplementingInterface.java
rename to factory/compiler/src/test/resources/good/MultipleFactoriesImplementingInterface.java
diff --git a/factory/src/test/resources/good/NestedClasses.java b/factory/compiler/src/test/resources/good/NestedClasses.java
similarity index 100%
rename from factory/src/test/resources/good/NestedClasses.java
rename to factory/compiler/src/test/resources/good/NestedClasses.java
diff --git a/factory/src/test/resources/good/PublicClass.java b/factory/compiler/src/test/resources/good/PublicClass.java
similarity index 100%
rename from factory/src/test/resources/good/PublicClass.java
rename to factory/compiler/src/test/resources/good/PublicClass.java
diff --git a/factory/src/test/resources/good/SimpleClass.java b/factory/compiler/src/test/resources/good/SimpleClass.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClass.java
rename to factory/compiler/src/test/resources/good/SimpleClass.java
diff --git a/factory/src/test/resources/good/SimpleClassCustomName.java b/factory/compiler/src/test/resources/good/SimpleClassCustomName.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassCustomName.java
rename to factory/compiler/src/test/resources/good/SimpleClassCustomName.java
diff --git a/factory/src/test/resources/good/SimpleClassImplementingMarker.java b/factory/compiler/src/test/resources/good/SimpleClassImplementingMarker.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassImplementingMarker.java
rename to factory/compiler/src/test/resources/good/SimpleClassImplementingMarker.java
diff --git a/factory/src/test/resources/good/SimpleClassImplementingSimpleInterface.java b/factory/compiler/src/test/resources/good/SimpleClassImplementingSimpleInterface.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassImplementingSimpleInterface.java
rename to factory/compiler/src/test/resources/good/SimpleClassImplementingSimpleInterface.java
diff --git a/factory/src/test/resources/good/SimpleClassMixedDeps.java b/factory/compiler/src/test/resources/good/SimpleClassMixedDeps.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassMixedDeps.java
rename to factory/compiler/src/test/resources/good/SimpleClassMixedDeps.java
diff --git a/factory/src/test/resources/good/SimpleClassNonFinal.java b/factory/compiler/src/test/resources/good/SimpleClassNonFinal.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassNonFinal.java
rename to factory/compiler/src/test/resources/good/SimpleClassNonFinal.java
diff --git a/factory/src/test/resources/good/SimpleClassPassedDeps.java b/factory/compiler/src/test/resources/good/SimpleClassPassedDeps.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassPassedDeps.java
rename to factory/compiler/src/test/resources/good/SimpleClassPassedDeps.java
diff --git a/factory/src/test/resources/good/SimpleClassProvidedDeps.java b/factory/compiler/src/test/resources/good/SimpleClassProvidedDeps.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassProvidedDeps.java
rename to factory/compiler/src/test/resources/good/SimpleClassProvidedDeps.java
diff --git a/factory/src/test/resources/good/SimpleClassProvidedProviderDeps.java b/factory/compiler/src/test/resources/good/SimpleClassProvidedProviderDeps.java
similarity index 100%
rename from factory/src/test/resources/good/SimpleClassProvidedProviderDeps.java
rename to factory/compiler/src/test/resources/good/SimpleClassProvidedProviderDeps.java
diff --git a/factory/src/test/resources/support/AQualifier.java b/factory/compiler/src/test/resources/support/AQualifier.java
similarity index 100%
rename from factory/src/test/resources/support/AQualifier.java
rename to factory/compiler/src/test/resources/support/AQualifier.java
diff --git a/factory/src/test/resources/support/BQualifier.java b/factory/compiler/src/test/resources/support/BQualifier.java
similarity index 100%
rename from factory/src/test/resources/support/BQualifier.java
rename to factory/compiler/src/test/resources/support/BQualifier.java
diff --git a/factory/src/test/resources/support/QualifierWithArgs.java b/factory/compiler/src/test/resources/support/QualifierWithArgs.java
similarity index 100%
rename from factory/src/test/resources/support/QualifierWithArgs.java
rename to factory/compiler/src/test/resources/support/QualifierWithArgs.java
diff --git a/factory/core/pom.xml b/factory/core/pom.xml
new file mode 100644
index 0000000000..104655e5f9
--- /dev/null
+++ b/factory/core/pom.xml
@@ -0,0 +1,66 @@
+
+
+
+ 4.0.0
+
+
+ com.google.auto.factory
+ auto-factory-parent
+ 3
+
+
+ com.google.auto.factory
+ auto-factory
+ 1.0-SNAPSHOT
+ AutoFactory
+
+ JSR-330-compatible factories.
+
+
+
+ http://github.com/google/auto
+ scm:git:git://github.com/google/auto.git
+ scm:git:ssh://git@github.com/google/auto.git
+ HEAD
+
+
+
+
+
+ maven-jar-plugin
+ 2.5
+
+
+ org.apache.maven.plugins
+ maven-invoker-plugin
+
+ true
+ ${project.build.directory}/it
+
+ ${project.version}
+
+
+ */pom.xml
+
+ true
+
+
+
+
+
diff --git a/factory/src/main/java/com/google/auto/factory/AutoFactory.java b/factory/core/src/main/java/com/google/auto/factory/AutoFactory.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/AutoFactory.java
rename to factory/core/src/main/java/com/google/auto/factory/AutoFactory.java
diff --git a/factory/src/main/java/com/google/auto/factory/Provided.java b/factory/core/src/main/java/com/google/auto/factory/Provided.java
similarity index 100%
rename from factory/src/main/java/com/google/auto/factory/Provided.java
rename to factory/core/src/main/java/com/google/auto/factory/Provided.java
diff --git a/factory/pom.xml b/factory/pom.xml
index 28a8d54508..c334ae2276 100644
--- a/factory/pom.xml
+++ b/factory/pom.xml
@@ -1,7 +1,6 @@
-
- com.google.testing.compile
- compile-testing
- 0.8
- test
-
-
- junit
- junit
- 4.12
- test
-
-
- com.google.truth
- truth
- 0.25
- test
-
-
+
+ GitHub Issues
+ http://github.com/google/auto/issues
+
+
+
+
+ Apache 2.0
+ http://www.apache.org/licenses/LICENSE-2.0.txt
+
+
+
+
+ Google, Inc.
+ http://www.google.com
+
-
-
-
- maven-jar-plugin
- 2.5
-
-
- org.apache.maven.plugins
- maven-invoker-plugin
-
- true
- ${project.build.directory}/it
-
- ${project.version}
-
-
- */pom.xml
-
- true
-
-
-
- integration-test
-
- install
- run
-
-
-
-
-
-