This commit was manufactured by cvs2svn to create tag 'v_626'.

Sprout from master 2005-12-06 16:24:43 UTC Jerome Lanneluc <jeromel> '*** empty log message ***'
Cherrypick from master 2005-11-25 16:12:25 UTC Olivier Thomann <oliviert> 'HEAD - Enable test027':
    org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
Delete:
    org.eclipse.jdt.apt.core/.classpath
    org.eclipse.jdt.apt.core/.cvsignore
    org.eclipse.jdt.apt.core/.options
    org.eclipse.jdt.apt.core/.project
    org.eclipse.jdt.apt.core/.settings/org.eclipse.core.resources.prefs
    org.eclipse.jdt.apt.core/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.jdt.apt.core/META-INF/MANIFEST.MF
    org.eclipse.jdt.apt.core/about.html
    org.eclipse.jdt.apt.core/build.properties
    org.eclipse.jdt.apt.core/howtobuildme.txt
    org.eclipse.jdt.apt.core/plugin.properties
    org.eclipse.jdt.apt.core/plugin.xml
    org.eclipse.jdt.apt.core/schema/annotationProcessorFactory.exsd
    org.eclipse.jdt.apt.core/scripts/build-sdk-prime.cmd
    org.eclipse.jdt.apt.core/scripts/exportplugin.xml
    org.eclipse.jdt.apt.core/scripts/make_set_date_suffix_cmd.sh
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/AptPlugin.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/Messages.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/AptBuilder.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/JdtApt.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/Messages.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/messages.properties
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorEnvironment.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseMirrorObject.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EnvironmentFactory.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/Phase.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatch.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatchRunnable.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AnnotationProcessorFactoryLoader.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AptCompilationParticipant.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/EclipseMirrorImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/ExtJarFactoryContainer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarClassLoader.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarFactoryContainer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/Messages.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/NonEclipseImplementationException.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/PluginFactoryContainer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/VarJarFactoryContainer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/WkspJarFactoryContainer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedAnnotationElementDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedFieldDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMemberDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMethodDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationElementDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationMirrorImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationValueImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/BinaryParameterDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ClassDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ConstructorDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/DeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EclipseDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumConstantDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/FieldDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/InterfaceDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MemberDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MethodDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImplNoBinding.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/SourceParameterDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeParameterDeclarationImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/APTProblem.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/AnnotationInvocationHandler.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BinaryFileOutputStream.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/EclipseRoundCompleteEvent.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FileRefreshJob.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FilerImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ITypeConstants.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/JavaSourceFilePrintWriter.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MarkerInfo.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MessagerImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpOutputStream.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpPrintWriter.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ProcessorEnvImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/ElementChangedListener.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/FileGenerationResult.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedFileManager.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedResourceChangeListener.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/messages.properties
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ArrayTypeImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ErrorType.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/PrimitiveTypeImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/VoidTypeImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/WildcardTypeImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/AptCorePreferenceInitializer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/DeclarationsUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Factory.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryContainer.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPath.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPathUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FileSystemUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Messages.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/PackageUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/SourcePositionImpl.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/TypesUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Visitors.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/messages.properties
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/messages.properties
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AnnotationScanner.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptConfig.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptPreferenceConstants.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptUtil.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/CharArrayAnnotationScanner.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/EclipseMessager.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/IFactoryPath.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/InputStreamAnnotationScanner.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ReaderAnnotationScanner.java
    org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ScannerUtil.java
    org.eclipse.jdt.apt.tests/.classpath
    org.eclipse.jdt.apt.tests/.cvsignore
    org.eclipse.jdt.apt.tests/.project
    org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.jdt.apt.tests/build.properties
    org.eclipse.jdt.apt.tests/perf-test-project.zip
    org.eclipse.jdt.apt.tests/plugin.xml
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APITests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APTTestBase.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AnnotationValueConversionTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptBuilderTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptReconcileTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FactoryLoaderTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FileGenerationTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/JavaVersionTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorDeclarationTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorUtilTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MixedModeTesting.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PreferencesTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/RegressionTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestAll.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestUtil.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/ProcessorTestStatus.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean2.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldWildcardAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerCodeExample.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/CodeExample.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantAnnotationFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationCodeExample.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestCodeExample.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/AnnotationReader.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/SimpleAnnotation.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/CodeExample.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/lib/question.jar
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessor.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessorFactory.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/jdtcoretests/AllJdtCoreTests.java
    org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/plugin/AptTestsPlugin.java
    org.eclipse.jdt.apt.tests/srcext/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/Batch.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchAnnotationFactory.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGen.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGenAnnotationFactory.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchProcessor.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/Color.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotation.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorTestCodeExample.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorWrapper.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotation.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessor.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessorFactory.java
    org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestCodeExample.java
    org.eclipse.jdt.apt.tests/test.xml
    org.eclipse.jdt.apt.ui/.classpath
    org.eclipse.jdt.apt.ui/.cvsignore
    org.eclipse.jdt.apt.ui/.project
    org.eclipse.jdt.apt.ui/.settings/org.eclipse.core.resources.prefs
    org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.jdt.apt.ui/META-INF/MANIFEST.MF
    org.eclipse.jdt.apt.ui/about.html
    org.eclipse.jdt.apt.ui/build.properties
    org.eclipse.jdt.apt.ui/docs/Building_with_apt.html
    org.eclipse.jdt.apt.ui/docs/Getting_started.html
    org.eclipse.jdt.apt.ui/docs/Quick_fix_with_apt.html
    org.eclipse.jdt.apt.ui/docs/annotation_processing.gif
    org.eclipse.jdt.apt.ui/docs/compiler_dialog.png
    org.eclipse.jdt.apt.ui/docs/contexts_APT.xml
    org.eclipse.jdt.apt.ui/docs/factory_path.gif
    org.eclipse.jdt.apt.ui/docs/reference/apt_config.html
    org.eclipse.jdt.apt.ui/docs/reference/automatic_processor_options.html
    org.eclipse.jdt.apt.ui/docs/reference/factorypath.html
    org.eclipse.jdt.apt.ui/docs/reference/factorypathoptions.html
    org.eclipse.jdt.apt.ui/docs/reference/processor_options_input.html
    org.eclipse.jdt.apt.ui/plugin.xml
    org.eclipse.jdt.apt.ui/schema/aptQuickFixProvider.exsd
    org.eclipse.jdt.apt.ui/scripts/exportplugin.xml
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/AptUIPlugin.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/Messages.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AdvancedFactoryPathOptionsDialog.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptPreferencePage.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BaseConfigurationBlock.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BasePreferencePage.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathConfigurationBlock.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathPreferencePage.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/Messages.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/ProcessorOptionInputDialog.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/messages.properties
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/APTQuickFixProcessor.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/Messages.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/messages.properties
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/ExceptionHandler.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/IAptHelpContextIds.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/Messages.java
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/messages.properties
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/messages.properties
    org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/quickfix/IAPTQuickFixProvider.java
    org.eclipse.jdt.apt.ui/toc.xml
diff --git a/org.eclipse.jdt.apt.core/.classpath b/org.eclipse.jdt.apt.core/.classpath
deleted file mode 100644
index 819c742..0000000
--- a/org.eclipse.jdt.apt.core/.classpath
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src">
-		<attributes>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<attributes>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JRE 1.5.0">
-		<attributes>
-		</attributes>
-	</classpathentry>
-	<classpathentry exported="true" kind="lib" path="tools.jar">
-		<attributes>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.jdt.apt.core/.cvsignore b/org.eclipse.jdt.apt.core/.cvsignore
deleted file mode 100755
index 1fe7c80..0000000
--- a/org.eclipse.jdt.apt.core/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-tools.jar
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.core/.options b/org.eclipse.jdt.apt.core/.options
deleted file mode 100644
index 763e5b0..0000000
--- a/org.eclipse.jdt.apt.core/.options
+++ /dev/null
@@ -1,2 +0,0 @@
-# Turn on debug tracing for org.eclipse.jdt.core plugin
-org.eclipse.jdt.apt.core/debug=false
diff --git a/org.eclipse.jdt.apt.core/.project b/org.eclipse.jdt.apt.core/.project
deleted file mode 100644
index e57b7ab..0000000
--- a/org.eclipse.jdt.apt.core/.project
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt.apt.core</name>
-	<comment></comment>
-	<projects>
-		<project>cvs.org.eclipse.jdt.core</project>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.jdt.apt.core/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jdt.apt.core/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index e1e45ea..0000000
--- a/org.eclipse.jdt.apt.core/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Thu Aug 18 15:38:15 PDT 2005
-eclipse.preferences.version=1
-encoding//src/org/eclipse/jdt/apt/core/build/messages.properties=8859_1
-encoding//src/org/eclipse/jdt/apt/core/internal/messages.properties=8859_1
-encoding//src/org/eclipse/jdt/apt/core/internal/util/messages.properties=8859_1
-encoding//src/org/eclipse/jdt/apt/core/messages.properties=8859_1
diff --git a/org.eclipse.jdt.apt.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jdt.apt.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1ad208e..0000000
--- a/org.eclipse.jdt.apt.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,53 +0,0 @@
-#Fri Jul 15 16:31:48 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.jdt.apt.core/META-INF/MANIFEST.MF b/org.eclipse.jdt.apt.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 6d1f21e..0000000
--- a/org.eclipse.jdt.apt.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,29 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JDT APT Core
-Bundle-SymbolicName: org.eclipse.jdt.apt.core; singleton:=true
-Bundle-Version: 3.1.1.apt02
-Bundle-ClassPath: aptcore.jar,
- tools.jar
-Bundle-Localization: plugin
-Export-Package:  com.sun.mirror.apt,
- com.sun.mirror.declaration,
- com.sun.mirror.type,
- com.sun.mirror.util,
- org.eclipse.jdt.apt.core,
- org.eclipse.jdt.apt.core.build,
- org.eclipse.jdt.apt.core.env,
- org.eclipse.jdt.apt.core.internal;x-friends:="org.eclipse.jdt.apt.tests",
- org.eclipse.jdt.apt.core.internal.declaration;x-friends:="org.eclipse.jdt.apt.tests",
- org.eclipse.jdt.apt.core.internal.env;x-friends:="org.eclipse.jdt.apt.tests",
- org.eclipse.jdt.apt.core.internal.generatedfile;x-friends:="org.eclipse.jdt.apt.tests",
- org.eclipse.jdt.apt.core.internal.type;x-friends:="org.eclipse.jdt.apt.tests",
- org.eclipse.jdt.apt.core.internal.util;x-friends:="org.eclipse.jdt.apt.tests",
- org.eclipse.jdt.apt.core.util
-Require-Bundle: org.eclipse.jdt.core,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.apache.ant
-Bundle-Activator: org.eclipse.jdt.apt.core.AptPlugin
-Eclipse-AutoStart: true
-Bundle-Vendor: Eclipse.org
diff --git a/org.eclipse.jdt.apt.core/about.html b/org.eclipse.jdt.apt.core/about.html
deleted file mode 100644
index 5f888df..0000000
--- a/org.eclipse.jdt.apt.core/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html><head><title>About</title>
-
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head>
-
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided
-to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is
-available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse
-Foundation, the Content is being redistributed by another party
-("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the
-Redistributor's license that was provided with the Content. If no such
-license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any
-source code in the Content.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.core/build.properties b/org.eclipse.jdt.apt.core/build.properties
deleted file mode 100644
index f70db49..0000000
--- a/org.eclipse.jdt.apt.core/build.properties
+++ /dev/null
@@ -1,9 +0,0 @@
-jars.compile.order = aptcore.jar
-source.aptcore.jar = src/
-output.aptcore.jar = bin/
-bin.includes = plugin.xml,\
-               aptcore.jar,\
-               tools.jar,\
-               META-INF/
-src.includes = tools.jar,\
-               plugin.xml
diff --git a/org.eclipse.jdt.apt.core/howtobuildme.txt b/org.eclipse.jdt.apt.core/howtobuildme.txt
deleted file mode 100644
index d00d470..0000000
--- a/org.eclipse.jdt.apt.core/howtobuildme.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-
-Eclipse APT Project - Developer Setup Instructions
-==================================================
-
-1.  Install Eclipse SDK 3.1.
-
-2.  Launch eclipse, creating a new Workspace.  Say "C:\AptWorkspace". 
-
-3.  Install a 1.5 JRE for eclipse.  To add it to Eclipse:
-
-    a. go to the "Window" menu, and then choose "Preferences | Java | Installed JREs".
-    b. click the add button and install the 1.5 JRE.  You will need to name this "JRE 1.5.0".
-       Make this the default JRE.
-
-4.  Now you need to check out the various CVS projects from the eclipse CVS server.
-
-    a.  Configure your eclipse to point to the eclipse CVS repository:
-        Open the "CVS Repository Exploring" Perspective. 
-        Then right-click in the CVS Repositories frame and select New->Repository Location.
-        Fill in the following values:
-    
-        Host:             dev.eclipse.org
-        Repository path:  /home/eclipse
-        User:             anonymous
-        Password:         <leave blank>
-        Connection type:   pserver         
-
-    b.  Check out HEAD revisions of the following projects:
-    
-        org.eclipse.jdt.apt.core
-        org.eclipse.jdt.apt.tests
-        org.eclipse.jdt.apt.ui
-        org.eclipse.test.performance
-        
-        To do this, open the :pserver:anonymous... node, and then 
-        the HEAD node. Right-click on the folders as named above, and select
-        "Check out". This will copy all the files to your local machine.
-
-    c.  Refresh the branches.  Right-click the top-level "Branches" node 
-        (adjacent to "HEAD"), and then select "Refresh Branches..."
-        Select the following projects to be scanned for tags:
-
-        org.eclipse.jdt.core
-        org.eclipse.jdt.core.tests.builder
-        org.eclipse.jdt.core.tests.compiler
-        org.eclipse.jdt.core.tests.model
-        org.eclipse.jdt.core.tests.performance
-
-    d.  Check out APT branch revisions of the following projects :
-        Under Branches, there will now be an "APT" branch. 
-        Open that and select the following nodes:
-
-        org.eclipse.jdt.core.tests.builder
-        org.eclipse.jdt.core.tests.compiler
-        org.eclipse.jdt.core.tests.model
-        org.eclipse.jdt.core.tests.performance
-        org.eclipse.jdt.core
-        
-        Then right-click each of them and select "Check out". This will take
-        some time as all the files are copied to your local machine.
-        
-        You can now switch back to the "Java" Perspective.
-
-5.  Copy the file tools.jar from the 1.5 JDK (%JDK_1.5_HOME%/lib/tools.jar) 
-    into the root of the org.eclipse.jdt.apt.core project, 
-    and then right-click that project and choose "Refresh". 
-
-6.  Ensure that the workspace builds with no problems that are error level.
-    You will see a few warnings depending on the strictness of your warning
-    settins.
-
-7.  If you want to export the plugin, then you can run the ant script at 
-    org.eclipse.jdt.apt.core/scripts/exportplugin.xml
-    
diff --git a/org.eclipse.jdt.apt.core/plugin.properties b/org.eclipse.jdt.apt.core/plugin.properties
deleted file mode 100644
index bfc7ede..0000000
--- a/org.eclipse.jdt.apt.core/plugin.properties
+++ /dev/null
@@ -1,12 +0,0 @@
-###############################################################################
-# Copyright (c) 2005 BEA Systems Inc. and others.
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Eclipse Public License v1.0
-# which accompanies this distribution, and is available at
-# http://www.eclipse.org/legal/epl-v10.html
-#
-# Contributors:
-#     BEA Systems Inc. - initial implementation
-###############################################################################
-providerName=Eclipse.org
-pluginName=Java Annotation Processing Core
diff --git a/org.eclipse.jdt.apt.core/plugin.xml b/org.eclipse.jdt.apt.core/plugin.xml
deleted file mode 100644
index b69a82a..0000000
--- a/org.eclipse.jdt.apt.core/plugin.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-
-    
-<!-- =================================================================================== -->
-<!-- Extension Point: Annotation Processor Factories                                     -->
-<!-- =================================================================================== -->
-
-<extension-point 
-	id="annotationProcessorFactory" 
-	name="Annotation Processor Factories" 
-	schema="schema/annotationProcessorFactory.exsd"/>
-
-<!-- =================================================================================== -->
-<!-- Extension: Compilation Participant                                                  -->
-<!-- =================================================================================== -->
-<extension
-      id="apt"
-      name="Annotation Processing"
-      point="org.eclipse.jdt.core.compilationParticipant">
-   <compilationParticipant
-         class="org.eclipse.jdt.apt.core.internal.AptCompilationParticipant"
-         eventMask="0xff"/>
-</extension>
-
-<!-- =================================================================================== -->
-<!-- Extension: APT Problem                                                             -->
-<!-- =================================================================================== -->
-<extension id="marker" point="org.eclipse.core.resources.markers" name="APT Batch Marker">
-	<super type="org.eclipse.core.resources.problemmarker"/>
-	<super type="org.eclipse.core.resources.textmarker"/>
-	<persistent value="true"/>
-</extension>  
-
-<extension id="buildproblem" point="org.eclipse.core.resources.markers" name="APT Build Marker">
-	<super type="org.eclipse.core.resources.problemmarker"/>
-	<super type="org.eclipse.core.resources.textmarker"/>
-	<persistent value="true"/>
-</extension>  
-
-<!-- =================================================================================== -->
-<!-- Extension: Headless Build                                                           -->
-<!-- =================================================================================== -->
-<extension
-      id="aptBuild"
-      point="org.eclipse.core.runtime.applications">
-   <application>
-      <run class="org.eclipse.jdt.apt.core.build.AptBuilder"/>
-   </application>
-</extension>
-
-<extension
-      point="org.eclipse.core.runtime.preferences">
-   <initializer class="org.eclipse.jdt.apt.core.internal.util.AptCorePreferenceInitializer"/>
-</extension>
-</plugin>
diff --git a/org.eclipse.jdt.apt.core/schema/annotationProcessorFactory.exsd b/org.eclipse.jdt.apt.core/schema/annotationProcessorFactory.exsd
deleted file mode 100644
index 2b26473..0000000
--- a/org.eclipse.jdt.apt.core/schema/annotationProcessorFactory.exsd
+++ /dev/null
@@ -1,126 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jdt.apt.core">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jdt.apt.core" id="annotationProcessorFactory" name="Annotation Processor Factories"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="factories"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factories">
-      <complexType>
-         <sequence>
-            <element ref="factory" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="enableDefault" type="boolean">
-            <annotation>
-               <documentation>
-                  true if this processor should be enabled by default.  This value
-may be overridden via the annotation processing configuration settings.  If not
-present this value defaults to true.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="factory">
-      <complexType>
-         <attribute name="class" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="implements" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         3.2
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         Annotation processors must implement com.sun.mirror.apt.AnnotationProcessorFactory, or a subclass thereof.
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.jdt.apt.core/scripts/build-sdk-prime.cmd b/org.eclipse.jdt.apt.core/scripts/build-sdk-prime.cmd
deleted file mode 100644
index 36b4485..0000000
--- a/org.eclipse.jdt.apt.core/scripts/build-sdk-prime.cmd
+++ /dev/null
@@ -1,161 +0,0 @@
-@echo off
-
-SETLOCAL
-
-pushd .
-
-
-REM
-REM  TODO -  Depending on how long this is supposed to live, convert this to ant.   It was supposed to be a one-off hacky script, but it grew...
-REM 
-
-if "%1"=="help" (
-	@echo USAGE:  build-sdk-prime.cmd [workspace-root] [original-eclipse-sdk.zip]
-	GOTO :END_SCRIPT
-)
-
-if "%1"==""  (
-	@echo you must specify a "workspace-root"
-	@echo USAGE:  build-sdk-prime.cmd [workspace-root] [original-eclipse-sdk.zip]
-	GOTO :END_SCRIPT
-)
-
-if "%2"==""  (
-	@echo you must specify a "original-eclipse-sdk.zip"
-	@echo USAGE:  build-sdk-prime.cmd [workspace-root] [original-eclipse-sdk.zip]
-	GOTO :END_SCRIPT
-)
-
-
-if NOT EXIST "%1" (
-	@echo workspace-root %1 does not exist
-	@echo USAGE:  build-sdk-prime.cmd [workspace-root] [original-eclipse-sdk.zip]
-	GOTO :END_SCRIPT
-)
-
-if NOT EXIST "%2" (
-	@echo eclipse sdk zip file %2 does not exist
-	@echo USAGE:  build-sdk-prime.cmd [workspace-root] [original-eclipse-sdk.zip]
-	GOTO :END_SCRIPT
-)
-
-
-@set ROOT=%1
-@set FULL_SDK_ZIP=%2
-
-@set APT_VERSION=3.1.1.apt02
-@set JDT_VERSION=3.1.1
-
-@set TEMPDIR=\temp\eclipse_sdk_mod
-
-@echo Creating working directory %TEMPDIR%
-if exist %TEMPDIR% rm -rf %TEMPDIR%
-mkdir %TEMPDIR%
-cd %TEMPDIR%
-@echo ...done.
-
-REM
-REM  HACKHACK:  the sh scripts generates a .cmd script which will set the variable DATE_SUFFIX
-REM  to the output of the sh command `date  +%Y%m%d-%H%M`.  Yeah, yeah.  I should have 
-REM  used ant for consistency.
-REM
-cd %TEMPDIR%
-sh %ROOT%\org.eclipse.jdt.apt.core\scripts\make_set_date_suffix_cmd.sh
-call set_date_suffix.cmd
-
-@set SDK_APT_ZIP=eclipse-SDK-APT-%DATE_SUFFIX%.zip
-@set FULL_SDK_APT_ZIP=%TEMPDIR%\%SDK_APT_ZIP%
-
-
-REM
-REM  build plugins
-REM
-
-@echo Building jdt.apt.core, jdt.apt.ui and jdt.core plugins...
-
-cd %ROOT%\org.eclipse.jdt.apt.core
-cmd /c ant -f scripts\exportplugin.xml
-
-cd %ROOT%\org.eclipse.jdt.apt.ui
-cmd /c ant -f scripts\exportplugin.xml
-
-cd %ROOT%\org.eclipse.jdt.core
-cmd /c ant -f scripts\exportplugin.xml
-
-@echo ...finished building plugins.
-
-
-REM
-REM  explode existing zip 
-REM
-
-cd %TEMPDIR%
-
-@echo Exploding existing SDK zip file %FULL_SDK_ZIP%...
-jar xf %FULL_SDK_ZIP%
-@echo ... Done.
-
-REM
-REM  update SDK with apt.ui plugin
-REM
-
-@echo Copying org.eclipse.jdt.apt.ui plugin jar and source zip...
-copy /Y %ROOT%\..\plugin-export\org.eclipse.jdt.apt.ui_%APT_VERSION%\org.eclipse.jdt.apt.ui_%APT_VERSION%.jar %TEMPDIR%\eclipse\plugins\
-mkdir %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.source_%JDT_VERSION%\src\org.eclipse.jdt.apt.ui_%APT_VERSION%\
-copy /Y %ROOT%\..\plugin-export\org.eclipse.jdt.apt.ui_%APT_VERSION%\src.zip %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.source_%JDT_VERSION%\src\org.eclipse.jdt.apt.ui_%APT_VERSION%\
-@echo ...Done
-
-REM
-REM update SDK with jdt core
-REM
-
-@echo Copying org.eclipse.jdt.core plugin jar and source zip...
-copy /Y %ROOT%\..\plugin-export\org.eclipse.jdt.core_%APT_VERSION%\org.eclipse.jdt.core_%APT_VERSION%.jar %TEMPDIR%\eclipse\plugins\
-mkdir %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.source_%JDT_VERSION%\src\org.eclipse.jdt.core_%APT_VERSION%\
-copy /Y %ROOT%\..\plugin-export\org.eclipse.jdt.core_%APT_VERSION%\src.zip %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.source_%JDT_VERSION%\src\org.eclipse.jdt.core_%APT_VERSION%\
-@echo ...Done
-
-REM
-REM copy apt-core src.zip to SDK's directory
-REM
-
-@echo Copying aptcore_src.zip...
-mkdir %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.source_%JDT_VERSION%\src\org.eclipse.jdt.apt.core_%APT_VERSION%\
-copy /Y %ROOT%\..\plugin-export\org.eclipse.jdt.apt.core_%APT_VERSION%\aptcoresrc.zip %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.source_%JDT_VERSION%\src\org.eclipse.jdt.apt.core_%APT_VERSION%\
-@echo ...done.
-
-REM
-REM explode the apt-core .zip file into the SDK directory
-REM
-
-@echo Exploding org.eclipse.jdt.apt.core_%APT_VERSION%.jar into SDK...
-mkdir %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.apt.core_%APT_VERSION%
-cd  %TEMPDIR%\eclipse\plugins\org.eclipse.jdt.apt.core_%APT_VERSION%
-jar xf %ROOT%\..\plugin-export\org.eclipse.jdt.apt.core_%APT_VERSION%\org.eclipse.jdt.apt.core_%APT_VERSION%.jar
-@echo ...Done.
-
-
-
-REM
-REM now zip up the new SDK 
-REM
-
-@echo Zipping up %SDK_APT_ZIP%...
-cd %TEMPDIR%
-jar cf %FULL_SDK_APT_ZIP% eclipse
-@echo ...done.
-
-
-@echo ******************************************************************************
-@echo  Modified Eclipse SDK.zip file is at:
-@echo         %FULL_SDK_APT_ZIP%
-@echo ******************************************************************************
-
-
-:END_SCRIPT
-popd
-
-ENDLOCAL
-
-
-
diff --git a/org.eclipse.jdt.apt.core/scripts/exportplugin.xml b/org.eclipse.jdt.apt.core/scripts/exportplugin.xml
deleted file mode 100644
index 423d9e0..0000000
--- a/org.eclipse.jdt.apt.core/scripts/exportplugin.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- 
- Build script to create the apt.core plugin. 
- This script assumes that the classes have already been compiled,
- and exist in the 'bin' subdirectory of the plugin project.
- The directory structure assumed by this script is as follows:
-    [dev root]/
-        [workspace]/
-            [plugins]/
-                org.eclipse.jdt.apt.core/
-                    bin/
-                    src/
-                    scripts/          // contains this script
-            plugin-export/            // will be created if necessary
-                org.eclipse.jdt.apt.core_[version]/
-            org.eclipse.jdt.apt.core_[version].zip  // will be created
-        
--->
-
-<project name="${plugin}" default="export plug-in [_1.0.0]" basedir="..">
-
-<target name="export plug-in [_1.0.0]">
-	<antcall target="zz_internal_export">
-		<param name="plugin_version" value="3.1.1.apt02"/>
-	</antcall>
-</target>
-
-<target name="zz_internal_export">
-
-	<tstamp/>
-	<property name="export-dir" value="../../plugin-export" />
-	<property name="plugin" value="org.eclipse.jdt.apt.core" />
-	<property name="plugin-dir" value="${export-dir}/${plugin}_${plugin_version}"/>
-
-	<echo message="TARGET: ${export-dir}" />
-	<mkdir dir="${export-dir}" />
-	<delete dir="${plugin-dir}" />
-	<mkdir dir="${plugin-dir}" />
-
-	<zip zipfile="${plugin-dir}/aptcore.jar">
-		        <fileset dir="bin" />
-	</zip>
-
-	<echo message="UPDATE ${plugin}_${plugin_version}.jar" />
-	<zip zipfile="${plugin-dir}/${plugin}_${plugin_version}.jar">
-		<fileset dir=".">
-		  <include name="tools.jar" /> 
-		  <include name="plugin.xml" />
-		  <include name="plugin.properties" />
-		  <include name="META-INF/**" />
-		  <include name=".options"/>
-        </fileset>
-	    <fileset dir="${plugin-dir}">
-		  <include name="aptcore.jar"/>
-	    </fileset>
-	</zip>
-
-	<echo message="UPDATE ${plugin}_${plugin_version}.jar with aptcore.jar" />
-	<zip zipfile="${plugin-dir}/aptcoresrc.zip">
-	    <fileset dir="src" />
-	</zip>		
-
-		
-
-	<echo message="UPDATE aptcoresrc.zip" />
-	<zip zipfile="${plugin-dir}/aptcoresrc.zip">
-	    <fileset dir="src" />
-	</zip>		
-
-	<echo message="UPDATE ${export-dir}/../${plugin}_${plugin_version}.zip" />
-	<zip zipfile="${export-dir}/../${plugin}_${plugin_version}.zip"
-	    basedir="${export-dir}" 
-	    includes="${plugin}_${plugin_version}/**"	/>		
-</target>
-
-</project>
diff --git a/org.eclipse.jdt.apt.core/scripts/make_set_date_suffix_cmd.sh b/org.eclipse.jdt.apt.core/scripts/make_set_date_suffix_cmd.sh
deleted file mode 100644
index 73cffb7..0000000
--- a/org.eclipse.jdt.apt.core/scripts/make_set_date_suffix_cmd.sh
+++ /dev/null
@@ -1,2 +0,0 @@
-
-echo set DATE_SUFFIX=`date  +%Y%m%d-%H%M` > set_date_suffix.cmd
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/AptPlugin.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/AptPlugin.java
deleted file mode 100644
index 2c3f311..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/AptPlugin.java
+++ /dev/null
@@ -1,168 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.*;
-import org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedResourceChangeListener;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.osgi.framework.BundleContext;
-
-public class AptPlugin extends Plugin {
-	public static final String PLUGIN_ID = "org.eclipse.jdt.apt.core"; //$NON-NLS-1$
-	
-	private static final String TOOLSJARNAME = "./tools.jar"; //$NON-NLS-1$
-	
-	/**
-	 * Status IDs for system log entries.  Must be unique per plugin.
-	 */
-	public static final int STATUS_EXCEPTION = 1;
-	public static final int STATUS_NOTOOLSJAR = 2;
-	public static final int STATUS_CANTLOADPLUGINFACTORY = 3;
-	public static final String ERRTXT_NOTOOLSJAR = Messages.AptPlugin_couldNotFindToolsDotJar;
-	
-	/** Marker ID used for build problem, e.g., missing factory jar */
-	public static final String APT_BUILD_PROBLEM_MARKER = PLUGIN_ID + ".buildproblem"; //$NON-NLS-1$
-	
-	private static AptPlugin thePlugin = null; // singleton object
-	
-	public void start(BundleContext context) throws Exception {
-		thePlugin = this;
-		super.start(context);
-		initDebugTracing();
-		checkToolsJar();
-		AptConfig.initialize();
-		AnnotationProcessorFactoryLoader.getLoader();
-		// register resource-changed listener
-		int mask = IResourceChangeEvent.PRE_BUILD | IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE;
-		final IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		workspace.addResourceChangeListener( new GeneratedResourceChangeListener(), mask );
-	
-		final IWorkspaceRoot root = workspace.getRoot();
-		if(root != null){
-			final IProject[] projects = root.getProjects();
-			try{
-				for( IProject proj : projects ){
-					if(DEBUG)
-						trace("updating project " + proj.getName() ); //$NON-NLS-1$
-					if( proj.hasNature(JavaCore.NATURE_ID) && proj.exists() && 
-						proj.isOpen() && AptConfig.isEnabled(JavaCore.create( proj ))){
-						final GeneratedFileManager mgr = GeneratedFileManager.getGeneratedFileManager(proj);
-						mgr.ensureGeneratedSourceFolder(null);
-					}
-				}
-			}
-			catch( JavaModelException e) { e.printStackTrace(); }
-		}
-		if( DEBUG )
-			trace("addded listener"); //$NON-NLS-1$
-	}
-
-	/**
-	 * Check for the Sun mirror interfaces.  If they aren't found,
-	 * log an error.
-	 */
-	private void checkToolsJar() {
-		boolean foundToolsJar = true;
-		InputStream is = null;
-		try {
-			is = thePlugin.openStream(new Path(TOOLSJARNAME));
-		}
-		catch (IOException e) {
-			foundToolsJar = false;
-		}
-		finally {
-			try {if (is != null) is.close();} catch (IOException ioe) {}
-		}
-		if (!foundToolsJar) {
-			log(new Status(IStatus.ERROR, PLUGIN_ID, STATUS_NOTOOLSJAR, ERRTXT_NOTOOLSJAR, null));
-		}
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-	}
-	
-	public static AptPlugin getPlugin() {
-		return thePlugin;
-	}
-
-	/**
-	 * Log a status message to the platform log.  Use this for reporting exceptions.
-	 * @param status
-	 */
-	public static void log(IStatus status) {
-		thePlugin.getLog().log(status);
-	}
-	
-	/**
-	 * Convenience wrapper around log(IStatus), to log an exception
-	 * with severity of ERROR.
-	 */
-	public static void log(Throwable e, String message) {
-		// TODO: before ship, remove this printing. Instead just log
-		System.err.println(message);
-		if (e != null) {
-			e.printStackTrace();
-		}
-		
-		log(new Status(IStatus.ERROR, PLUGIN_ID, STATUS_EXCEPTION, message, e)); 
-	}
-	
-	/**
-	 * Convenience wrapper for rethrowing exceptions as CoreExceptions,
-	 * with severity of ERROR.
-	 */
-	public static Status createStatus(Throwable e, String message) {
-		return new Status(IStatus.ERROR, PLUGIN_ID, STATUS_EXCEPTION, message, e);
-	}
-	
-	/**
-	 * Convenience wrapper for rethrowing exceptions as CoreExceptions,
-	 * with severity of WARNING.
-	 */
-	public static Status createWarningStatus(Throwable e, String message) {
-		return new Status(IStatus.WARNING, PLUGIN_ID, STATUS_EXCEPTION, message, e);
-	}
-	
-	/**
-	 * Convenience wrapper for rethrowing exceptions as CoreExceptions,
-	 * with severity of INFO.
-	 */
-	public static Status createInfoStatus(Throwable e, String message) {
-		return new Status(IStatus.INFO, PLUGIN_ID, STATUS_EXCEPTION, message, e);
-	}
-	
-	private void initDebugTracing() {		
-		String option = Platform.getDebugOption(APT_DEBUG_OPTION);
-		if(option != null) DEBUG = option.equalsIgnoreCase("true") ; //$NON-NLS-1$		
-	}
-	
-	public static void trace(final String msg){
-		if(DEBUG)
-			System.err.println("[ " + Thread.currentThread().getName() + " ] " + msg );  //$NON-NLS-1$ //$NON-NLS-2$
-	}
-	
-	public static boolean DEBUG = false;
-	public final static String APT_DEBUG_OPTION = AptPlugin.PLUGIN_ID + "/debug"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/Messages.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/Messages.java
deleted file mode 100644
index f82c96a..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/Messages.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.core.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String AptPlugin_couldNotFindToolsDotJar;
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/AptBuilder.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/AptBuilder.java
deleted file mode 100644
index 272b81d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/AptBuilder.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.build;
-
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPlatformRunnable;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.NullProgressMonitor;
-
-/**
- * Commandline entry point for building a workspace using APT.
- * Currently cleans and then builds the entire workspace.<P>
- * 
- * Sample commandline invocation:
- * 
- * java -cp %ECLIPSE_HOME%/startup.jar org.eclipse.core.launcher.Main 
- * 	-noupdate -application org.eclipse.jdt.apt.core.aptBuild -data %WORKSPACE%
- */
-public class AptBuilder implements IPlatformRunnable {
-
-	public Object run(Object args) throws Exception {
-		IWorkspace workspace = ResourcesPlugin.getWorkspace();
-		IProgressMonitor progressMonitor = new SystemOutProgressMonitor();
-		workspace.build(IncrementalProjectBuilder.CLEAN_BUILD, progressMonitor);
-		workspace.build(IncrementalProjectBuilder.FULL_BUILD, progressMonitor);
-		
-		return IPlatformRunnable.EXIT_OK;
-	}
-	
-	/**
-	 * Sends all progress to StdOut
-	 */
-	private static class SystemOutProgressMonitor extends NullProgressMonitor {
-
-		public void beginTask(String name, int totalWork) {
-			if (name != null && name.length() > 0)
-				System.out.println(name);
-		}
-
-		public void subTask(String name) {
-			if (name != null && name.length() > 0)
-				System.out.println(name);
-		}
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/JdtApt.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/JdtApt.java
deleted file mode 100644
index b3372d3..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/JdtApt.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.build;
-
-import java.io.File;
-
-import org.apache.tools.ant.BuildException;
-import org.apache.tools.ant.taskdefs.Java;
-import org.apache.tools.ant.types.Path;
-
-/**
- * Ant task for invoking the commandline apt builder
- *
- * Sample build.xml:
- * 
- * <project name="test_eclipse" default="build" basedir=".">
- * 
- *    <taskdef name="apt" classname="org.eclipse.jdt.apt.core.build.JdtApt"/>
- *
- *    <target name="build">
- *        <apt workspace="C:\my_workspace" eclipseHome="C:\eclipse"/>
- *    </target>
- * </project>
- */
-public class JdtApt extends Java {
-
-	private static final String APP_CLASSNAME = "org.eclipse.core.launcher.Main"; //$NON-NLS-1$
-    private static final String APP_PLUGIN = "org.eclipse.jdt.apt.core.aptBuild"; //$NON-NLS-1$
-    
-    private File workspace;
-    private File startupJar;
-    
-    public void setWorkspace(File file) {
-        if(!file.exists()) {
-            throw new BuildException(Messages.JdtApt_noWorkspace + file);
-        }
-        workspace = file;
-    }
-
-    public void setEclipseHome(File file) {
-        if(!file.exists()) {
-            throw new BuildException(Messages.JdtApt_noEclipse + file);
-        }
-        startupJar = new File(file, "startup.jar"); //$NON-NLS-1$
-        if(!startupJar.exists()) {
-            throw new BuildException(Messages.JdtApt_noStartupJar + file);
-        }
-    }
-    
-    public void execute() throws BuildException {
-	    if(workspace == null) {
-	        throw new BuildException("Must set a workspace"); //$NON-NLS-1$
-	    }
-	    if(startupJar == null) {
-	        throw new BuildException("Must set eclipse home"); //$NON-NLS-1$
-	    }
-	    
-        setFork(true);
-        setLogError(true);
-        setClasspath(new Path(null, startupJar.getAbsolutePath()));
-        setClassname(APP_CLASSNAME);
-        createArg().setValue("-noupdate"); //$NON-NLS-1$
-        createArg().setValue("-application"); //$NON-NLS-1$
-        createArg().setValue(APP_PLUGIN);
-        createArg().setValue("-data"); //$NON-NLS-1$
-        createArg().setValue(workspace.getAbsolutePath());
-        super.execute();
-	}
-
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/Messages.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/Messages.java
deleted file mode 100644
index 33b1e39..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/Messages.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.build;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.core.build.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String JdtApt_noWorkspace;
-
-	public static String JdtApt_noEclipse;
-
-	public static String JdtApt_noStartupJar;
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/messages.properties b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/messages.properties
deleted file mode 100644
index fa340a0..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/build/messages.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-JdtApt_noWorkspace=Workspace does not exist: 
-JdtApt_noEclipse=Eclipse not found in eclipse home: 
-JdtApt_noStartupJar=Could not find startup.jar in the eclipse directory: 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorEnvironment.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorEnvironment.java
deleted file mode 100644
index b57335c..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorEnvironment.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.env;
-
-import org.eclipse.jdt.apt.core.util.EclipseMessager;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-
-/**
- * Extended the APT {@link AnnotationProcessorEnvironment} to expose
- * extra API.
- */
-public interface EclipseAnnotationProcessorEnvironment extends
-		AnnotationProcessorEnvironment 
-{	
-	/**
-	 * @return the root of the fully flushed out DOM/AST of the file that is currently being processed.	 
-	 *         This AST will not contain any binding information. 
-	 */	
-	CompilationUnit getAST();
-	
-	/**
-	 * @return a messager for registering diagnostics.
-	 */
-	EclipseMessager getMessager();
-	
-	/**	
-	 * @return the current processing phase. Either
-	 * @link{Phase.RECONCILE} or @link{Phase.BUILD}
-	 */
-	Phase getPhase();
-	
-	/**
-	 * Add a type dependency on the type named <code>fullyQualifiedTypeName</code>
-	 * @param fullyQualifiedTypeName the fully qualified (dot-separated) name of a type.
-	 * @throws IllegalArgumentException if <code>fullyQualifiedTypeName</code> cannot be resolved to a type.
-	 */
-	void addTypeDependency(final String fullyQualifiedTypeName);
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorFactory.java
deleted file mode 100644
index 2b8d476..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.env;
-
-import java.util.Set;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-/**
- * Extend the APT annotation processor factory API to provide extra features.  
- * Implementation of this annotation processor is treated just like 
- * the regular annotation processor during build and reconcile.
- * @author tyeung
- *
- */
-public interface EclipseAnnotationProcessorFactory extends
-		AnnotationProcessorFactory 
-{
-	/**
-	 * Returns an annotation processor for a set of annotation types.
-	 * Implementation of this API is guaranteed to be invoked with an 
-	 * extended annotation processor environment for both 
-	 * {@link #getProcessorFor} version of the method.
-	 *  
-	 * @param atds the set of annotation types
-	 * @param env the environment for processing.
-	 * @return an annotation processor or null if the processor cannot be created.
-	 */
-	AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds, 
-										EclipseAnnotationProcessorEnvironment env);	
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseMirrorObject.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseMirrorObject.java
deleted file mode 100644
index dd8b428..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EclipseMirrorObject.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.env;
-
-/**
- * The base of all eclipse type system object
- * @author tyeung
- *
- */
-public interface EclipseMirrorObject {
-	
-	public enum MirrorKind
-    {
-        CONSTRUCTOR{
-            public boolean isType(){ return false; }
-        },
-        METHOD{
-            public boolean isType(){ return false; }
-        },
-        ANNOTATION_ELEMENT{
-            public boolean isType(){ return false; }
-        },
-        FIELD{
-            public boolean isType(){ return false; }
-        },
-        ENUM_CONSTANT{
-            public boolean isType(){ return false; }
-        },
-        ANNOTATION_VALUE{
-            public boolean isType(){ return false; }
-        },
-        ANNOTATION_MIRROR{
-            public boolean isType(){ return false; }
-        },
-        TYPE_ANNOTATION{
-            public boolean isType(){ return true; }
-        },
-        TYPE_INTERFACE{
-            public boolean isType(){ return true; }
-        },
-        TYPE_CLASS{
-            public boolean isType(){ return true; }
-        },
-        TYPE_ENUM{
-            public boolean isType(){ return true; }
-        },
-        TYPE_ARRAY{
-            public boolean isType(){ return true; }
-        },
-        TYPE_WILDCARD{
-            public boolean isType(){ return true; }
-        },
-        TYPE_VOID{
-            public boolean isType(){ return true; }
-        },
-        TYPE_PRIMITIVE{
-            public boolean isType(){ return true; }
-        },
-        TYPE_PARAMETER_VARIABLE{
-            public boolean isType(){ return true; }
-        },
-        TYPE_ERROR{
-            public boolean isType(){ return true; }
-        },
-        FORMAL_PARAMETER{
-            public boolean isType(){ return false; }
-        },
-        PACKAGE{
-            public boolean isType(){ return false; }
-        };
-
-        public abstract boolean isType();
-    }
-
-    public MirrorKind kind();
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EnvironmentFactory.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EnvironmentFactory.java
deleted file mode 100644
index ec5cffc..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/EnvironmentFactory.java
+++ /dev/null
@@ -1,48 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.env;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-
-public class EnvironmentFactory {
-
-	/**
-	 * Return a processor environment for use outside of building or reconciling.
-	 * Note that this environment does <b>NOT</b> support the Filer or Messager API,
-	 * as it is to be used to perform type system navigation, not building.<p>
-	 * 
-	 * If either getFiler() or getMessager() are called, this environment
-	 * will throw an UnsupportedOperationException.
-	 * 
-	 * @param compilationUnit the working copy for which the Environment object is to be created
-	 * @param javaProject the java project that the working copy is in. 
-	 * @return the created environment.
-	 */
-	public static AnnotationProcessorEnvironment getEnvironment(ICompilationUnit compilationUnit, IJavaProject javaProject )
-	{	
-		CompilationUnit node = BaseProcessorEnv.createDietAST( javaProject, compilationUnit);
-       	BaseProcessorEnv env = new BaseProcessorEnv(
-       			node,
-       			(IFile)compilationUnit.getResource(),
-       			javaProject,
-       			Phase.OTHER
-       			);
-       	return env;
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/Phase.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/Phase.java
deleted file mode 100644
index f40c221..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/env/Phase.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.env;
-
-/**
- * Enum for APT related operation phase.
- */
-public enum Phase { 
-	
-	/** During Reconcile phase */
-	RECONCILE, 
-	/** During Build phase */    
-	BUILD, 
-	/** 
-	 * Neither reconcile or build. Completion would be an example.  
-	 */ 
-	OTHER 
-};
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatch.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatch.java
deleted file mode 100644
index 58ecee2..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatch.java
+++ /dev/null
@@ -1,223 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *    mkaufman@bea.com
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.jobs.ISchedulingRule;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.compiler.IProblem;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * Dispatch APT. 
- * @author tyeung
- *
- */
-public class APTDispatch 
-{	
-	public static APTResult runAPTDuringBuild(
-			final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			final Set<AnnotationProcessorFactory> previousRoundsBatchFactories,
-			final IFile[] files,
-			final IJavaProject javaProj,
-			final boolean isFullBuild)
-	{	
-		return runAPT( factories, previousRoundsBatchFactories, javaProj, files, null, isFullBuild );
-	}
-	
-	/**
-	 * Run annnotation processing.
-	 * @param factories the list of annotation processor factories to be run.
-	 * @return the set of files that need to be compiled.
-	 */
-	public static APTResult runAPTDuringReconcile(
-			final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			final ICompilationUnit compilationUnit, 
-			final IJavaProject javaProj) 
-	{
-		return runAPT( factories, Collections.<AnnotationProcessorFactory>emptySet(), javaProj, null, compilationUnit, false /* does not matter*/ );
-	}
-		
-	/**
-	 * If files is null, we are reconciling. If compilation unit is null, we are building
-	 */
-	private static APTResult runAPT(
-			Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			Set<AnnotationProcessorFactory> previousRoundsFactories,
-			IJavaProject javaProj,
-			IFile[] files,
-			ICompilationUnit compilationUnit,
-			boolean isFullBuild)
-	{	
-
-		assert ( files != null && compilationUnit == null ) ||
-		       ( files == null && compilationUnit != null ) :
-	    	"either compilation unit is null or set of files is, but not both"; //$NON-NLS-1$
-		       
-		boolean building = files != null;
-	    
-		APTDispatchRunnable runnable;
-		ISchedulingRule schedulingRule;
-		if ( building )
-		{
-			// If we're building, types can be generated, so we
-			// want to run this as an atomic workspace operation
-			 runnable = new APTDispatchRunnable( files, javaProj, factories, previousRoundsFactories, isFullBuild );
-			 schedulingRule = javaProj.getResource();
-			 IWorkspace workspace = ResourcesPlugin.getWorkspace();
-			 try {
-				 workspace.run(runnable, schedulingRule, IWorkspace.AVOID_UPDATE, null);
-			 }
-			 catch (CoreException ce) {
-				 AptPlugin.log(ce, "Could not run APT"); //$NON-NLS-1$
-			 }
-		}
-		else
-		{
-			// Reconciling, so we do not want to run this as an atomic workspace
-			// operation. If we do, it is easy to have locking issues when someone
-			// calls a reconcile from within a workspace lock
-			runnable = new APTDispatchRunnable( compilationUnit, javaProj, factories );
-			runnable.run(null);
-		}
-			
-		return runnable.getResult();
-	}
-
-
-	public static class APTResult
-	{
-		/**
-		 * For creating an empty result. i.e. no file changes, no new dependencies and not
-		 * new problems.
-		 */
-		APTResult()
-		{
-			_newFiles = Collections.emptySet();
-			_deletedFiles = Collections.emptySet();
-			_newDependencies = Collections.emptyMap();
-			_newProblems = Collections.emptyMap();
-			_dispatchedBatchFactories = Collections.emptySet();
-			_sourcePathChanged = false;
-			_hasGeneratedTypes = false;
-		}
-		APTResult( 
-				Set<IFile> newFiles, 
-				Set<IFile> deletedFiles,
-				Set<AnnotationProcessorFactory> dispatchedBatchFactories,
-				Map<IFile, Set<String>> deps, 
-				Map<IFile, List<IProblem>> problems, 
-				boolean sourcePathChanged,
-				boolean hasGeneratedTypes)
-		{
-			_newFiles = newFiles;
-			_newDependencies = deps;
-			_deletedFiles = deletedFiles;
-			_newProblems = problems;
-			_dispatchedBatchFactories = dispatchedBatchFactories;
-			_sourcePathChanged = sourcePathChanged;
-			_hasGeneratedTypes = hasGeneratedTypes;
-		}
-		
-		private final Set<IFile> _newFiles;
-		private final Set<IFile> _deletedFiles;
-		private final Map<IFile, Set<String>> _newDependencies;
-		private final Map<IFile, List<IProblem>> _newProblems;
-		private final Set<AnnotationProcessorFactory> _dispatchedBatchFactories;
-		private boolean _sourcePathChanged;
-		private boolean _hasGeneratedTypes;
-		private boolean _mutable = true;
-		
-		Set<IFile> getNewFiles() { return Collections.unmodifiableSet(_newFiles); }
-		Set<IFile> getDeletedFiles() { return Collections.unmodifiableSet(_deletedFiles); }
-		Set<AnnotationProcessorFactory> getDispatchedBatchFactory(){ return Collections.unmodifiableSet(_dispatchedBatchFactories); }
-		Map<IFile, Set<String>> getNewDependencies() { return Collections.unmodifiableMap(_newDependencies); }
-		void removeDependenciesFrom(IFile file){
-			mutate();
-			_newDependencies.remove(file);
-		}
-		
-		Map<IFile, List<IProblem>> getProblems(){return Collections.unmodifiableMap(_newProblems);}
-		void removeProblemsFrom(IFile file){
-			mutate();
-			_newProblems.remove(file);
-		}
-		
-		boolean getSourcePathChanged() { return _sourcePathChanged; }
-		boolean hasGeneratedTypes(){ return _hasGeneratedTypes; }
-		
-		void setReadOnly(){
-			_mutable = true;
-		}
-		
-		private void mutate(){ 
-			if( !_mutable )
-				throw new IllegalStateException("modifications not allowed"); //$NON-NLS-1$
-		}
-		
-		void merge(APTResult otherResult){
-			mutate();
-			_newFiles.addAll(otherResult._newFiles);
-			_deletedFiles.addAll(otherResult._deletedFiles);
-			_dispatchedBatchFactories.addAll(otherResult._dispatchedBatchFactories);
-			mergeMaps(_newDependencies, otherResult._newDependencies);
-			mergeMaps(_newProblems, otherResult._newProblems);
-			_sourcePathChanged |= otherResult._sourcePathChanged;
-			_hasGeneratedTypes |= otherResult._hasGeneratedTypes;
-		}
-		
-		/**
-		 * This method assumes that the values of the two maps are of compatible type. 
-		 * If not, {@link ClassCastException} will be thrown. If the values of the maps are not collections 
-		 * and the keys collide, then {@link IllegalStateException} will be thrown.
-		 * @param destination 
-		 * @param source moving everything into <code>destination</code
-		 *
-		 */
-		private void mergeMaps(final Map destination, final Map source )
-		{		
-			for( Object o : source.entrySet() )
-			{
-				final Map.Entry entry = (Map.Entry)o;
-				final Object destValue = destination.get(entry.getKey());
-				if( destValue == null )
-					destination.put( entry.getKey(), entry.getValue() );
-				else{
-					if( destValue instanceof Collection )
-					{
-						final Collection destCollection = (Collection)destination;
-						// A ClassCastException would occur if entry.getValue() doesn't return
-						// a collection. 
-						final Collection sourceCollection = (Collection)entry.getValue();
-						destCollection.addAll(sourceCollection);
-					}
-					else
-						throw new IllegalStateException("keys collided"); //$NON-NLS-1$
-				}
-			}
-		}		
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatchRunnable.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatchRunnable.java
deleted file mode 100644
index a62fa7c..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/APTDispatchRunnable.java
+++ /dev/null
@@ -1,788 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.env.Phase;
-import org.eclipse.jdt.apt.core.internal.APTDispatch.APTResult;
-import org.eclipse.jdt.apt.core.internal.env.EclipseRoundCompleteEvent;
-import org.eclipse.jdt.apt.core.internal.env.ProcessorEnvImpl;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.util.ScannerUtil;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.apt.AnnotationProcessorListener;
-import com.sun.mirror.apt.RoundCompleteListener;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-/*package*/ class APTDispatchRunnable implements IWorkspaceRunnable
-{	
-	public static final APTResult EMPTY_APT_RESULT = new APTResult();
-	public static final IFile[] NO_FILES = new IFile[0];
-	// The files that requires processing.
-	private IFile[] /*final*/ _allFilesRequireProcessing = null;
-	// The original set of files - <code>_allFilesRequireProcessing</code> 
-	private /*final*/ IFile[] _remainingFiles = null;
-	private final ICompilationUnit _compilationUnit;
-	private final IJavaProject _javaProject;
-	private final Map<AnnotationProcessorFactory, FactoryPath.Attributes> _factories;
-	private final Set<AnnotationProcessorFactory> _dispatchedBatchFactories;
-	private  APTResult _result;
-	private final boolean _isFullBuild;
-	
-	/*package*/ APTDispatchRunnable( 
-			IFile[] files, 
-			IJavaProject javaProject, 
-			Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			Set<AnnotationProcessorFactory> dispatchedBatchFactories,
-			boolean isFullBuild)
-	{
-		assert files != null : "missing files"; //$NON-NLS-1$
-		_compilationUnit = null;
-		filterFilesForProcessing(files);
-		_javaProject = javaProject;
-		_factories = factories;
-		_dispatchedBatchFactories = dispatchedBatchFactories;
-		_isFullBuild = isFullBuild;
-	}	
-	/*package*/ APTDispatchRunnable( 
-			ICompilationUnit cu, 
-			IJavaProject javaProject, 
-			Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories)
-	{
-		_compilationUnit = cu;
-		final IFile file = (IFile)cu.getResource();
-		final boolean hasAnnotation = ScannerUtil.hasAnnotationInstance(file);
-		_allFilesRequireProcessing = hasAnnotation ?
-				new IFile[]{file} : NO_FILES;
-		_remainingFiles = hasAnnotation ? NO_FILES : new IFile[]{file};
-		_javaProject = javaProject;
-		_factories = factories;
-		_isFullBuild = false;
-		// does not apply in reconcile case. we don't generate file during
-		// reconcile and no apt rounding ever occur as a result.
-		_dispatchedBatchFactories = Collections.emptySet();
-	}
-	
-	public APTResult getResult() { return _result; }
-	
-	private void filterFilesForProcessing(final IFile[] orig)
-	{			
-		int numFiles = orig.length;
-		if( numFiles == 0 ){
-			_allFilesRequireProcessing = NO_FILES;
-			_remainingFiles = orig;
-			return;
-		}
-		int count = 0;
-		boolean[] needProcess = new boolean[numFiles];
-		for( int i=0; i<numFiles; i++ ){
-			if( ScannerUtil.hasAnnotationInstance(orig[i]) ){
-				count ++;
-				needProcess[i] = true;
-			}
-			else{
-				needProcess[i] = false;
-			}
-		}
-		if( count == 0 ){
-			_allFilesRequireProcessing = NO_FILES;
-			_remainingFiles = orig;
-			return;
-		}
-		
-		_allFilesRequireProcessing = new IFile[count];
-		_remainingFiles = count == numFiles ? NO_FILES : new IFile[numFiles-count];
-		int pIndex = 0;
-		int rIndex = 0;
-		for( int i=0; i<numFiles; i++ ){
-			if( needProcess[i] )
-				_allFilesRequireProcessing[pIndex++] = orig[i];
-			else
-				_remainingFiles[rIndex++] = orig[i];
-		}
-	}
-	
-	/**
-	 * Determine whether there are files to be processed.
-	 * @return <code>true</code> iff APT processing should occur, return <code>false</code>
-	 * otherwise.
-	 * 
-	 * APT should should run one of the following is true
-	 * 1) There are files with annotations 
-	 * 2) There are factories dispatched in an earlier round
-	 */
-	private boolean shouldProcess()
-	{
-		if( (_factories == null || _factories.size() == 0) && _dispatchedBatchFactories.isEmpty() )
-			return false;
-		return _allFilesRequireProcessing.length > 0 || !_dispatchedBatchFactories.isEmpty() ;
-	}
-	
-	public void run(IProgressMonitor monitor) 
-	{	
-		if ( !shouldProcess() )
-		{
-			// tracing
-			if ( AptPlugin.DEBUG ) 
-			{			
-				String msg;
-				if ( (_factories == null || _factories.size() == 0) && _dispatchedBatchFactories.isEmpty() )
-					msg = "no AnnotationProcessoryFactory instances registered."; //$NON-NLS-1$
-				else
-					msg = "no files to dispatch to."; //$NON-NLS-1$
-				trace( "run():  leaving early because there are " + msg, //$NON-NLS-1$
-					   null);
-			}
-
-			Set<IFile> allDeletedFiles = new HashSet<IFile>();
-			if( !_isFullBuild ){
-				for( int i=0, len = _allFilesRequireProcessing.length; i<len; i++ ){
-					IFile f = _allFilesRequireProcessing[i];
-					final Set<IFile> deletedFiles = 
-						cleanupAllGeneratedFilesForParent( f, _compilationUnit, null );
-					if( deletedFiles != null )
-						allDeletedFiles.addAll(deletedFiles);
-				}
-				for( int i=0, len=_remainingFiles.length; i<len; i++ ){
-					IFile f = _remainingFiles[i];
-					final Set<IFile> deletedFiles = 
-						cleanupAllGeneratedFilesForParent( f, _compilationUnit, null );
-					if( deletedFiles != null )
-						allDeletedFiles.addAll(deletedFiles);
-				}
-			}
-			
-			if ( allDeletedFiles.size() == 0 )
-				_result =  EMPTY_APT_RESULT;
-			else
-				_result = new APTResult( Collections.<IFile>emptySet(), 
-										 allDeletedFiles,
-										 Collections.<AnnotationProcessorFactory>emptySet(),
-										 Collections.<IFile, Set<String>>emptyMap(),
-										 Collections.<IFile, List<IProblem>>emptyMap(), 
-										 false,
-										 false );
-		}
-		else
-		{
-			ProcessorEnvImpl processorEnv;
-			
-			if ( _compilationUnit != null )
-			{
-				processorEnv = ProcessorEnvImpl
-					.newReconcileEnv(_compilationUnit, _javaProject);
-			}
-			else
-			{
-				processorEnv = ProcessorEnvImpl
-					.newBuildEnv( _allFilesRequireProcessing, _remainingFiles, _javaProject);
-			}			
-			_result = runAPT(_factories, processorEnv);
-		}
-	}
-	
-	/**
-	 * @param factories
-	 * @return <code>true</code> iff there are factories that can only be run in batch mode.
-	 */
-	public static boolean hasBatchFactory(final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories)
-	{
-		for( FactoryPath.Attributes attr : factories.values() ){
-			if( attr.runInBatchMode() )
-				return true;
-		}
-		return false;
-		
-	}
-	
-	private static void addFileWithMissingTypeError(
-			final IFile file, 
-			final List<IFile> filesWithMissingType,
-			final List<ICompilationUnit> unitsForFilesWithMissingType,
-			final ProcessorEnvImpl processorEnv)
-	{
-		if( processorEnv.getPhase() != Phase.BUILD )
-			return;
-		final CompilationUnit domUnit = processorEnv.getAstCompilationUnit(file);
-		assert domUnit != null : "cannot locate compilation unit for " + file.getName(); //$NON-NLS-1$
-		final IProblem[] problems = domUnit.getProblems();
-		if(problems == null)
-			return;
-		for( IProblem problem : problems ){
-			if( problem.getID() == IProblem.UndefinedType ){						
-				filesWithMissingType.add(file);
-				final ICompilationUnit unit = processorEnv.getICompilationUnitForFile(file);
-				assert unit != null : "cannot locate ICompilationUnit for file " + file.getName(); //$NON-NLS-1$
-				unitsForFilesWithMissingType.add(unit);
-				if( AptPlugin.DEBUG )
-					AptPlugin.trace(unit.getElementName() + " has missing type " + problem.getMessage() ); //$NON-NLS-1$
-				break;
-			}
-		}	
-	}
-	
-	private static void addAllFilesWithMissingTypeError(
-			final List<IFile> filesWithMissingType,
-			final List<ICompilationUnit> unitsForFilesWithMissingType,
-			final ProcessorEnvImpl processorEnv)
-	{
-		if( processorEnv.getPhase() != Phase.BUILD )
-			return;
-		final IFile[] files = processorEnv.getFiles();
-		for( int i=0, len=files.length; i<len; i++ ){
-			final IFile file = files[i];
-			addFileWithMissingTypeError(file, filesWithMissingType, unitsForFilesWithMissingType, processorEnv);
-		}
-	}
-	
-	/**
-	 * Batch processor should only be invoked during a clean build.
-	 * @param factories
-	 * @param processorEnv
-	 * @return <code>true</code> iff batch processors should be dispatched.
-	 * Return <code>false</code> otherwise. Return <code>false</code> if
-	 * there are no batch processors.
-	 */
-	private boolean shouldDispatchToBatchProcessor(final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-										 		   final ProcessorEnvImpl processorEnv )
-	{	
-		return ( _isFullBuild && processorEnv.getPhase() == Phase.BUILD && hasBatchFactory(factories) );
-	}
-	
-	private void runAPTInFileBasedMode(
-			final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			final ProcessorEnvImpl processorEnv,
-			final List<IFile> filesWithMissingType,
-			final List<ICompilationUnit> unitsForFilesWithMissingType)
-	{
-		final IFile[] files = processorEnv.getFiles();
-		for (IFile curFile : files ) {
-			processorEnv.setFileProcessing(curFile);
-			Map<String, AnnotationTypeDeclaration> annotationDecls = processorEnv.getAnnotationTypesInFile();
-			for( Map.Entry<AnnotationProcessorFactory, FactoryPath.Attributes> entry : factories.entrySet() ){
-				if( entry.getValue().runInBatchMode() ) continue;
-				AnnotationProcessorFactory factory = entry.getKey();
-				Set<AnnotationTypeDeclaration> factoryDecls = getFactorySupportedAnnotations(factory, annotationDecls);
-				if( factoryDecls != null ){
-					if(factoryDecls.size() == 0 ){
-						factoryDecls = new HashSet(annotationDecls.values());
-						annotationDecls.clear();
-					}
-				}
-				if (factoryDecls != null && factoryDecls.size() > 0) {
-					final AnnotationProcessor processor = factory
-							.getProcessorFor(factoryDecls, processorEnv);
-					if (processor != null)
-					{
-						if ( AptPlugin.DEBUG ) {
-							trace( "runAPT: invoking file-based processor " + processor.getClass().getName() + " on " + curFile, //$NON-NLS-1$ //$NON-NLS-2$ 
-									processorEnv); 
-						}
-						processor.process();						
-					}
-				}
-	
-				if (annotationDecls.isEmpty())
-					break;
-			}
-			addFileWithMissingTypeError(curFile, filesWithMissingType, unitsForFilesWithMissingType, processorEnv);
-			
-			if( ! annotationDecls.isEmpty() )
-				; // TODO: (theodora) log unclaimed annotations.
-		}	
-	}
-	
-	/**
-	 * mixed mode - allow batch processor to be run as well as filed based ones.
-	 * @param factories
-	 * @param processorEnv
-	 * @param filesWithMissingType at return contains files (<code>IFile</code>) that has 
-	 * missing types.
-	 * @param currentRoundDispatchedBatchFactories output parameter. At return contains the 
-	 * set of batch factories that has been dispatched.
-	 * @param sourceForFilesWithMissingType at return contains source (<code>char[]</code>)
-	 * for files that has missing types. Parallel to entries in <code>filesWithMissingType</code> 
-	 * @param internalRound the current round number, 0-based.
-	 */
-	private void runAPTInMixedMode(
-			final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			final Set<AnnotationProcessorFactory> currentRoundDispatchedBatchFactories,
-			final ProcessorEnvImpl processorEnv,
-			final List<IFile> filesWithMissingType,
-			final List<ICompilationUnit> unitsForFilesWithMissingType,
-			final int internalRound)
-	{
-		final IFile[] files = processorEnv.getFiles();
-		final Map<IFile, Set<AnnotationTypeDeclaration>> file2AnnotationDecls = 
-			new HashMap<IFile, Set<AnnotationTypeDeclaration>>(files.length * 4/3 + 1);
-		final Map<String, AnnotationTypeDeclaration> annotationDecls = 
-			processorEnv.getAllAnnotationTypes(file2AnnotationDecls);
-		
-		if (annotationDecls.isEmpty() && _dispatchedBatchFactories.isEmpty() )
-		{
-			if ( AptPlugin.DEBUG ) 
-				trace( "runAPT:  leaving early because annotationDecls is empty", //$NON-NLS-1$
-					   processorEnv); 
-			return;
-		}
-		
-		if( AptPlugin.DEBUG )
-			trace( "annotations found " + annotationDecls.keySet(), processorEnv); //$NON-NLS-1$
-
-		// file based processing factory to the set of annotations that it 'claims'
-		final Map<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>> fileFactory2Annos =
-			new HashMap<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>>( factories.size() * 4/3 + 1 );
-		
-		// batch processing factory to the set of annotations that it 'claims'
-		final Map<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>> batchFactory2Annos =
-			new HashMap<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration>>( factories.size() * 4/3 + 1 );		
-		
-		for( Map.Entry<AnnotationProcessorFactory, FactoryPath.Attributes> entry : factories.entrySet() ){
-			AnnotationProcessorFactory factory = entry.getKey();
-			Set<AnnotationTypeDeclaration> annotationTypes = getFactorySupportedAnnotations(factory, annotationDecls);
-			if( annotationTypes != null ){
-				
-				boolean batch = entry.getValue().runInBatchMode();
-				Map<AnnotationProcessorFactory, Set<AnnotationTypeDeclaration> > factory2Annos = 
-					batch ? batchFactory2Annos : fileFactory2Annos;
-				if( annotationTypes.size() == 0 ){
-					// this factory is claiming all (remaining) annotations. 
-					annotationTypes = new HashSet<AnnotationTypeDeclaration>(annotationDecls.values());
-					factory2Annos.put(factory, annotationTypes);
-					annotationDecls.clear();
-					break;
-				}
-				else{
-					factory2Annos.put(factory, annotationTypes);
-				}
-			}
-			if( annotationDecls.isEmpty() )
-				break;
-		}
-		
-		if( ! annotationDecls.isEmpty() )
-			; // TODO: (theodora) log unclaimed annotations.
-		
-		addAllFilesWithMissingTypeError(filesWithMissingType, unitsForFilesWithMissingType, processorEnv);
-		
-		// Dispatch to the batch process factories first.
-		// Batch processors only get executed on a full/clean build and only get called once
-		// within one round APT dispatch.		
-		if( internalRound == 0 ){
-			if( !batchFactory2Annos.isEmpty()){
-				processorEnv.setBatchProcessing();
-				// Once we figure out which factory claims what annotation,
-				// the order of the factory doesn't matter.
-				// But in order to make things consists between runs, will 
-				// dispatch base on factory order.
-				for(AnnotationProcessorFactory factory : factories.keySet() ){			
-					final Set<AnnotationTypeDeclaration> annotationTypes = batchFactory2Annos.get(factory);
-					if( annotationTypes == null ) continue;
-					final AnnotationProcessor processor = 
-						factory.getProcessorFor(annotationTypes, processorEnv);
-					if( processor != null ){
-						if ( AptPlugin.DEBUG ) 
-							trace( "runAPT: invoking batch processor " + processor.getClass().getName(), //$NON-NLS-1$
-									processorEnv);
-						currentRoundDispatchedBatchFactories.add(factory);
-						processor.process();
-					}
-				}			
-			}
-			processorEnv.setBatchProcessing();
-			for( AnnotationProcessorFactory prevRoundFactory : _dispatchedBatchFactories ){
-				if(currentRoundDispatchedBatchFactories.contains(prevRoundFactory))
-					continue;
-				final AnnotationProcessor processor = 
-					prevRoundFactory.getProcessorFor(Collections.<AnnotationTypeDeclaration>emptySet(), processorEnv);
-				if( processor != null ){
-					if ( AptPlugin.DEBUG ) 
-						trace( "runAPT: invoking batch processor " + processor.getClass().getName(), //$NON-NLS-1$
-								processorEnv);
-					processor.process();
-				}
-			}
-		}
-		
-		// Now, do the file based dispatch
-		if( !fileFactory2Annos.isEmpty() ){
-			for( int fileIndex=0, numFiles=files.length; fileIndex<numFiles; fileIndex ++ ){
-				final Set<AnnotationTypeDeclaration> annotationTypesInFile = file2AnnotationDecls.get(files[fileIndex]);
-				if( annotationTypesInFile == null || annotationTypesInFile.isEmpty() )
-					continue;
-				for(AnnotationProcessorFactory factory : factories.keySet() ){
-					final Set<AnnotationTypeDeclaration> annotationTypesForFactory = fileFactory2Annos.get(factory);
-					if( annotationTypesForFactory == null || annotationTypesForFactory.isEmpty() ) 
-						continue;
-					final Set<AnnotationTypeDeclaration> intersect = setIntersect(annotationTypesInFile, annotationTypesForFactory);
-					if( intersect != null && !intersect.isEmpty() ){
-						processorEnv.setFileProcessing(files[fileIndex]);
-						final AnnotationProcessor processor = 
-							factory.getProcessorFor(intersect, processorEnv);
-						if( processor != null ){
-							if ( AptPlugin.DEBUG ) 
-								trace( "runAPT: invoking file-based processor " + processor.getClass().getName(), //$NON-NLS-1$
-										processorEnv );
-							processor.process();
-						}
-					}
-				}
-			}
-		}
-	}
-	
-	private APTResult runAPT(
-			final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			final ProcessorEnvImpl processorEnv) 
-	{
-		final List<IFile> filesWithMissingType = new ArrayList<IFile>();
-		final List<ICompilationUnit> unitsForFiles = new ArrayList<ICompilationUnit>();
-		final APTResult result = runAPT(factories, processorEnv, filesWithMissingType, unitsForFiles, 0);
-	
-		if( processorEnv.getPhase() == Phase.BUILD )
-		{	
-			boolean generatedTypes = result.hasGeneratedTypes();
-			int internalRound = 1;
-			while( generatedTypes && !filesWithMissingType.isEmpty() ){
-				// compile all generated files and try to satisfy the missing generated types.
-							
-				final int numFiles = filesWithMissingType.size();
-				assert numFiles == unitsForFiles.size() :
-					"size mismatch"; //$NON-NLS-1$			
-				// we are about to re-process the file, wipe out the problems and
-				// type dependencies recorded from the previous run.
-				for( IFile file :  filesWithMissingType ){
-					result.removeDependenciesFrom(file);
-					result.removeProblemsFrom(file);
-				}
-				
-				final IFile[] files = new IFile[numFiles];
-				final ICompilationUnit[] units = new ICompilationUnit[numFiles];
-				for(int i=0; i<numFiles; i++ ){
-					files[i] = filesWithMissingType.get(i);
-					units[i] = unitsForFiles.get(i);
-				}
-				ProcessorEnvImpl newEnv = ProcessorEnvImpl.newBuildEnvInternalRounding(
-						files, units, processorEnv.getJavaProject() );
-
-				filesWithMissingType.clear();
-				unitsForFiles.clear();
-				APTResult newResult = runAPT(factories, newEnv, filesWithMissingType, unitsForFiles, internalRound++);
-				// Only have generated types if there are *new* generated files
-				generatedTypes = hasNewFiles(result, newResult);
-				
-				result.merge(newResult);
-				newEnv.close();
-			}
-		}
-	
-		return result;
-	}
-	
-	/**
-	 * Diff the sets of files -- if the new result has
-	 * files that the old one does not, we have new files.
-	 */
-	private boolean hasNewFiles(APTResult oldResult, APTResult newResult) {
-		Set<IFile> oldFiles = oldResult.getNewFiles();
-		Set<IFile> newFiles = newResult.getNewFiles();
-		for (IFile file : newFiles) {
-			if (!oldFiles.contains(file)) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	private APTResult runAPT(
-			final Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories,
-			final ProcessorEnvImpl processorEnv,
-			final List<IFile> filesWithMissingType,
-			final List<ICompilationUnit> unitsForFiles,
-			final int internalRound) 
-	{
-		try {
-			if (factories.size() == 0)
-			{
-				if ( AptPlugin.DEBUG ) 
-					trace( "runAPT: leaving early because there are no factories", //$NON-NLS-1$ 
-							processorEnv );
-				return EMPTY_APT_RESULT;
-			}
-		
-			final IFile[] files = processorEnv.getFiles();
-			GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( processorEnv.getJavaProject().getProject() );
-			final Map<IFile,Set<IFile>> lastGeneratedFiles = new HashMap<IFile,Set<IFile>>();
-			for( IFile parentIFile : files ){
-				lastGeneratedFiles.put(parentIFile, gfm.getGeneratedFilesForParent(parentIFile));
-			}
-			
-			boolean mixedModeDispatch = shouldDispatchToBatchProcessor(factories, processorEnv);
-			final Set<AnnotationProcessorFactory> currentRoundDispatchedBatchFactories;
-			if( mixedModeDispatch ){
-				currentRoundDispatchedBatchFactories = new LinkedHashSet<AnnotationProcessorFactory>();
-				runAPTInMixedMode(factories, currentRoundDispatchedBatchFactories, processorEnv, filesWithMissingType, unitsForFiles, internalRound);
-			}
-			else{
-				currentRoundDispatchedBatchFactories = Collections.emptySet();
-				runAPTInFileBasedMode(factories, processorEnv, filesWithMissingType, unitsForFiles);
-			}
-			
-
-			// notify the processor listeners
-			final Set<AnnotationProcessorListener> listeners = processorEnv
-					.getProcessorListeners();
-			for (AnnotationProcessorListener listener : listeners) {
-				EclipseRoundCompleteEvent event = null;
-				if (listener instanceof RoundCompleteListener) {
-					if (event == null)
-						event = new EclipseRoundCompleteEvent(processorEnv);
-					final RoundCompleteListener rcListener = (RoundCompleteListener) listener;
-					rcListener.roundComplete(event);
-				}
-			}
-
-			final Map<IFile, Set<IFile>> allGeneratedFiles = processorEnv.getAllGeneratedFiles();
-			final Set<IFile> modifiedGeneratedFiles = processorEnv.getModifiedGeneratedFiles();
-			
-			// any files that were generated for this parent on the last
-			// run, but are no longer generated should be removed
-			
-			// BUGZILLA 103183 - reconcile-path disabled until type-generation in reconcile is turned on
-			Set<IFile> allDeletedFiles = new HashSet<IFile>();
-			for( IFile file : files ){
-				Set<IFile> generatedFiles = allGeneratedFiles.get(file);
-				if (generatedFiles == null)
-					generatedFiles = Collections.emptySet();
-				final Set<IFile> deletedFiles = cleanupNoLongerGeneratedFiles( 
-							file, 
-							processorEnv.getCompilationUnit(), 
-							lastGeneratedFiles.get(file), 
-							generatedFiles, 
-							gfm,
-							processorEnv);
-				if(deletedFiles != null )
-					allDeletedFiles.addAll(deletedFiles);		
-			}		
-			
-			APTResult result = new APTResult( modifiedGeneratedFiles, 
-											  allDeletedFiles, 
-											  currentRoundDispatchedBatchFactories,
-											  processorEnv.getTypeDependencies(), 
-											  processorEnv.getProblems(), 
-											  processorEnv.getSourcePathChanged(),
-											  processorEnv.hasGeneratedClassFiles() || processorEnv.hasGeneratedSourceFiles());
-			processorEnv.close();
-			return result;
-
-			// log unclaimed annotations.
-		} catch (Throwable t) {
-			AptPlugin.log(t, "Unexpected failure running APT on the file(s): " + getFileNamesForPrinting(processorEnv)); //$NON-NLS-1$
-		}
-		return EMPTY_APT_RESULT;
-	}
-	
-	/**
-	 * @param one
-	 * @param two
-	 * @return the set intersect of the two given sets
-	 */
-	private Set<AnnotationTypeDeclaration> setIntersect(Set<AnnotationTypeDeclaration> one, Set<AnnotationTypeDeclaration> two ){
-		Set<AnnotationTypeDeclaration> intersect = null;	
-		for( AnnotationTypeDeclaration obj : one ){
-			if( two.contains(obj) ){
-				if( intersect == null )
-					intersect = new HashSet<AnnotationTypeDeclaration>();
-				intersect.add(obj);
-			}
-		}
-		return intersect;
-	}
-
-	private Set<IFile> cleanupAllGeneratedFilesForParent( 
-			IFile parent, 
-			ICompilationUnit parentCompilationUnit,
-			ProcessorEnvImpl processorEnv)
-	{
-		GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( parent.getProject() );
-		Set<IFile> lastGeneratedFiles = gfm.getGeneratedFilesForParent( parent );
-		return cleanupNoLongerGeneratedFiles( 
-				parent, 
-				parentCompilationUnit, 
-				lastGeneratedFiles, 
-				Collections.<IFile>emptySet(), 
-				gfm,
-				processorEnv);
-	}
-	
-	private Set<IFile> cleanupNoLongerGeneratedFiles( 
-		IFile parentFile, 
-		ICompilationUnit parentCompilationUnit, 
-		Set<IFile> lastGeneratedFiles, Set<IFile> newGeneratedFiles,
-		GeneratedFileManager gfm,		
-		ProcessorEnvImpl processorEnv)
-	{
-		HashSet<IFile> deletedFiles = new HashSet<IFile>();
-			
-		// make a copy into an array to avoid concurrent modification exceptions
-		IFile[] files = lastGeneratedFiles.toArray( new IFile[ lastGeneratedFiles.size() ] );
-		for ( IFile f : files )
-		{
-			if ( ! newGeneratedFiles.contains( f ) )
-			{
-				if ( AptPlugin.DEBUG ) 
-					trace( "runAPT:  File " + f + " is no longer a generated file for " + parentFile,  //$NON-NLS-1$ //$NON-NLS-2$
-							processorEnv );
-				try
-				{
-					// _compialtionUnit == null means we are in a build phase. 
-					if ( (processorEnv != null && processorEnv.getPhase() == Phase.BUILD) || 
-						  _compilationUnit == null )
-					{
-						if ( gfm.deleteGeneratedFile( f, parentFile, null ) )
-							deletedFiles.add( f );
-					}
-					else 
-					{  
-						assert parentCompilationUnit != null : "missing compilation unit"; //$NON-NLS-1$
-						if ( gfm.deleteGeneratedTypeInMemory( f, parentCompilationUnit, null ) )
-							deletedFiles.add( f );
-					}
-				}
-				catch ( CoreException ce )
-				{
-					AptPlugin.log(ce, "Could not clean up generated files"); //$NON-NLS-1$
-				}
-			}
-		}
-		return deletedFiles;
-	}
-
-	/**
-	 * @return the set of {@link AnnotationTypeDeclaration} that {@link #factory} supports or null
-	 *         if the factory doesn't support any of the declarations.
-	 *         If the factory supports "*", then the empty set will be returned
-	 *
-	 * This method will destructively modify {@link #declarations}. Entries will be removed from
-	 * {@link #declarations} as the declarations are being added into the returned set.
-	 */
-	private static Set<AnnotationTypeDeclaration> getFactorySupportedAnnotations(
-			final AnnotationProcessorFactory factory,
-			final Map<String, AnnotationTypeDeclaration> declarations)
-
-	{
-		final Collection<String> supportedTypes = factory
-				.supportedAnnotationTypes();
-
-		if (supportedTypes == null || supportedTypes.size() == 0)
-			return Collections.emptySet();
-
-		final Set<AnnotationTypeDeclaration> fDecls = new HashSet<AnnotationTypeDeclaration>();
-
-		for (Iterator<String> it = supportedTypes.iterator(); it.hasNext();) {
-			final String typeName = it.next();
-			if (typeName.equals("*")) { //$NON-NLS-1$
-				declarations.clear();
-				return Collections.emptySet();
-			} else if (typeName.endsWith("*")) { //$NON-NLS-1$
-				final String prefix = typeName.substring(0,
-						typeName.length() - 2);
-				for (Iterator<Map.Entry<String, AnnotationTypeDeclaration>> entries = declarations
-						.entrySet().iterator(); entries.hasNext();) {
-					final Map.Entry<String, AnnotationTypeDeclaration> entry = entries
-							.next();
-					final String key = entry.getKey();
-					if (key.startsWith(prefix)) {
-						fDecls.add(entry.getValue());
-						entries.remove();
-					}
-				}
-			} else {
-				final AnnotationTypeDeclaration decl = declarations
-						.get(typeName);
-				if (decl != null) {
-					fDecls.add(decl);
-					declarations.remove(typeName);
-				}
-			}
-		}
-		return fDecls.isEmpty() ? null : fDecls;
-	}
-	
-	private static void trace( String s, ProcessorEnvImpl processorEnv )
-	{
-		if (AptPlugin.DEBUG)
-		{
-			if (processorEnv != null) {
-				s = "[ phase = " + processorEnv.getPhase() + ", file = " + getFileNamesForPrinting(processorEnv) +" ]  " + s; //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-			}
-			System.out.println( "[" + APTDispatch.class.getName() + "][ thread= " + Thread.currentThread().getName() + " ]"+ s ); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		}
-	}
-	
-	/**
-	 * For debugging statements only!!
-	 * @return the names of the files that we are currently processing. 
-	 */
-	private static String getFileNamesForPrinting(final ProcessorEnvImpl processorEnv){
-		if( processorEnv != null ){
-			final IFile file = processorEnv.getFile();
-			if( file != null )
-				return file.getName();
-		}
-		final IFile[] files = processorEnv.getFiles();
-		final int len = files.length;
-		switch( len )
-		{
-		case 0:
-			return "no file(s)"; //$NON-NLS-1$
-		case 1:
-			return files[0].getName();
-		default:
-			StringBuilder sb = new StringBuilder();
-			boolean firstItem = true;
-			for (IFile file : files) {
-				if (firstItem) {
-					firstItem = false;
-				}
-				else {
-					sb.append(", "); //$NON-NLS-1$
-				}
-				sb.append(file.getName());
-			}
-			return sb.toString();
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AnnotationProcessorFactoryLoader.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AnnotationProcessorFactoryLoader.java
deleted file mode 100644
index bab9a53..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AnnotationProcessorFactoryLoader.java
+++ /dev/null
@@ -1,765 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLClassLoader;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.Map.Entry;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPathUtil;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer.FactoryType;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath.Attributes;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * Stores annotation processor factories, and handles mapping from projects
- * to them.  This is a singleton object, created by the first call to getLoader().
- * <p>
- * Factories contained in plugins are loaded at APT initialization time.  
- * Factories contained in jar files are loaded for a given project the first time 
- * getFactoriesForProject() is called, and cached thereafter.  Factories are loaded 
- * from one of two custom classloaders depending on whether the factory container 
- * is to be run in batch processing mode or normal (iterative) mode; the batch
- * classloader for a project is parented by the iterative classloader for that
- * project.
- * <p>
- * <strong>Caches</strong>
- * <p>
- * Factory classes and iterative-mode classloaders are cached for each project,
- * the first time that the classes are needed (e.g., during a build or reconcile).  
- * The cache is cleared when the project's factory path changes, when a resource
- * listed on the factory path is changed, or when the project is deleted.  
- * If a project contains batch-mode processors, the cache is also cleared at
- * the beginning of every full build (batch-mode processors do not run at all 
- * during reconcile).
- * <p>
- * If a project's factory path includes containers which cannot be located on
- * disk, problem markers will be added to the project.  This validation process
- * occurs when the cache for a project is first loaded, and whenever the cache
- * is invalidated.  We do not validate the workspace-level factory path as such; 
- * it is only used to construct a project-specific factory path for projects 
- * that do not have their own factory path.
- * <p>
- * In order to efficiently perform re-validation when resources change, we keep 
- * track of which projects' factory paths mention which containers.  This is
- * stored as a map from canonicalized resource path to project.  Entries are
- * created and updated during factory path validation, and removed upon project 
- * deletion.
- * <p>
- * Resource changes are presented as delta trees which may contain more than
- * one change.  When a change arrives, we build up a list of all potentially
- * affected projects, and then perform re-validation after the list is complete.
- * That way we avoid redundant validations if a project is affected by more 
- * than one change.   
- * <p>
- * Note that markers and factory classes have different lifetimes: they are
- * discarded at the same time (when something changes), but markers are recreated
- * immediately (as a result of validation) while factory classes are not reloaded
- * until the next time a build or reconcile occurs.
- * <p>
- * <strong>Synchronization</strong>
- * <p>
- * The loader is often accessed on multiple threads, e.g., a build thread, a
- * reconcile thread, and a change notification thread all at once.  It is
- * important to maintain consistency across the various cache objects. 
- */
-public class AnnotationProcessorFactoryLoader {
-	
-	/** Loader instance -- holds all workspace and project data */
-	private static AnnotationProcessorFactoryLoader LOADER;
-	
-	private static boolean VERBOSE_LOAD = false;
-	
-	private static final String JAR_EXTENSION = "jar"; //$NON-NLS-1$
-	
-	// Caches the factory classes associated with each project.
-	// See class comments for lifecycle of items in this cache.
-	private final Map<IJavaProject, Map<AnnotationProcessorFactory, FactoryPath.Attributes>> _project2Factories = 
-		new HashMap<IJavaProject, Map<AnnotationProcessorFactory, FactoryPath.Attributes>>();
-    
-	// Caches the iterative classloaders so that iterative processors
-	// are not reloaded on every batch build, unlike batch processors 
-	// which are.
-	// See class comments for lifecycle of items in this cache.
-	private final Map<IJavaProject, ClassLoader> _project2IterativeClassloaders = 
-		new HashMap<IJavaProject, ClassLoader>();
-	
-	// Caches information about which resources affect which projects'
-	// factory paths.
-	// See class comments for lifecycle of items in this cache.
-	private final Map<String, Set<IJavaProject>> _container2Project =
-		new HashMap<String, Set<IJavaProject>>();
-	
-	private ClassLoader _batchClassLoader;
-    
-	/**
-	 * Listen for changes that would affect the factory caches or
-	 * build markers.
-	 */
-	private class ResourceListener implements IResourceChangeListener {
-
-		public void resourceChanged(IResourceChangeEvent event) {
-			synchronized (AnnotationProcessorFactoryLoader.this) {
-				switch (event.getType()) {
-				
-				// Project deletion
-				case (IResourceChangeEvent.PRE_DELETE) :
-					IResource project = event.getResource();
-					if (project != null && project instanceof IProject) {
-						IJavaProject jproj = JavaCore.create((IProject)project);
-						if (jproj != null) {
-							uncacheProject(jproj);
-						}
-					}
-					break;
-					
-				// Changes to jar files or .factorypath files
-				case (IResourceChangeEvent.PRE_BUILD) :
-					IResourceDelta rootDelta = event.getDelta();
-					FactoryPathDeltaVisitor visitor = new FactoryPathDeltaVisitor();
-					try {
-						rootDelta.accept(visitor);
-					} catch (CoreException e) {
-						AptPlugin.log(e, "Unable to determine whether resource change affects annotation processor factory path"); //$NON-NLS-1$
-					}
-					Set<IJavaProject> affected = visitor.getAffectedProjects();
-					if (affected != null) {
-						processChanges(affected);
-					}
-					break;
-	
-				}
-			}
-		}
-		
-	}
-	
-	/**
-	 * Walk the delta tree to see if there have been changes to
-	 * a factory path or the containers it references.  If so,
-	 * re-validate the affected projects' factory paths.
-	 */
-	private class FactoryPathDeltaVisitor implements IResourceDeltaVisitor {
-		
-		// List of projects affected by this change.
-		// Lazy construction because we assume most changes won't affect any projects.
-		private Set<IJavaProject> _affected = null;
-		
-		private void addAffected(Set<IJavaProject> projects) {
-			if (_affected == null) {
-				 _affected = new HashSet<IJavaProject>(5);
-			}
-			_affected.addAll(projects);
-		}
-		
-		/**
-		 * Get the list of IJavaProject affected by the delta we visited.
-		 * Not valid until done visiting.
-		 * @return null if there were no affected projects, or a non-empty
-		 * set of IJavaProject otherwise. 
-		 */
-		public Set<IJavaProject> getAffectedProjects() {
-			return _affected;
-		}
-		
-		/**
-		 * @return true to visit children
-		 */
-		public boolean visit(IResourceDelta delta) {
-			switch (delta.getKind()) {
-			default:
-				return true;
-			case IResourceDelta.ADDED :
-			case IResourceDelta.REMOVED :
-			case IResourceDelta.CHANGED :
-				break;
-			}
-			// If the resource is a factory path file, then the project it
-			// belongs to is affected.
-			IResource res = delta.getResource();
-			if (res == null) {
-				return true;
-			}
-			IProject proj = res.getProject();
-			if (FactoryPathUtil.isFactoryPathFile(res)) {
-				addAffected(Collections.singleton(JavaCore.create(proj)));
-				return true;
-			}
-			// If the resource is a jar file named in at least one factory
-			// path, then the projects owning those factorypaths are affected.
-			if (res.getType() != IResource.FILE) {
-				return true;
-			}
-			IPath relativePath = res.getFullPath();
-			String ext = relativePath.getFileExtension();
-			try {
-				if (JAR_EXTENSION.equals(ext)) {
-					IPath absolutePath = res.getLocation();
-					if (absolutePath == null) {
-						// Jar file within a deleted project.  In this case getLocation() 
-						// returns null, so we can't get a canonical path.  Bounce every
-						// factory path that contains anything resembling this jar.
-						for (Entry<String, Set<IJavaProject>> entry : _container2Project.entrySet()) {
-							IPath jarPath = new Path(entry.getKey());
-							if (relativePath.lastSegment().equals(jarPath.lastSegment())) {
-								addAffected(entry.getValue());
-							}
-						}
-					}
-					else {
-						// Lookup key is the canonical path of the resource
-						String key = null;
-						key = absolutePath.toFile().getCanonicalPath();
-						Set<IJavaProject> projects = _container2Project.get(key);
-						if (projects != null) {
-							addAffected(projects);
-						}
-					}
-				}
-			} catch (Exception e) {
-				AptPlugin.log(e, 
-					"Couldn't determine whether any factory paths were affected by change to resource " + res.getName()); //$NON-NLS-1$
-			}
-			return true;
-		}
-		
-	}
-	
-	/** 
-	 * Singleton
-	 */
-    public static synchronized AnnotationProcessorFactoryLoader getLoader() {
-    	if ( LOADER == null ) {
-    		LOADER = new AnnotationProcessorFactoryLoader();
-    		LOADER.registerListener();
-    	}
-    	return LOADER;
-    }
-    
-	private void registerListener() {
-		ResourcesPlugin.getWorkspace().addResourceChangeListener(
-			new ResourceListener(),
-			IResourceChangeEvent.PRE_DELETE
-			| IResourceChangeEvent.PRE_BUILD);
-	}
-
-	private AnnotationProcessorFactoryLoader() {
-    	FactoryPathUtil.loadPluginFactories();
-    }
-    
-    /**
-     * Called when workspace preferences change.  Resource changes, including
-     * changes to project-specific factory paths, are picked up through the
-     * ResourceChangedListener mechanism instead.
-     */
-    public synchronized void resetAll() {
-    	removeAptBuildProblemMarkers( null );
-    	_project2Factories.clear();
-    	// Need to close the iterative classloaders
-    	for (ClassLoader cl : _project2IterativeClassloaders.values()) {
-    		if (cl instanceof JarClassLoader) {
-    			((JarClassLoader)cl).close();
-    		}
-    	}
-    	_project2IterativeClassloaders.clear();
-    	_container2Project.clear();
-    	
-    	// Validate all projects
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		for (IProject proj : root.getProjects()) {
-			verifyFactoryPath(JavaCore.create(proj));
-		}
-    }
-    
-    public synchronized void closeBatchClassLoader() {
-    	if (_batchClassLoader == null)
-    		return;
-    	if (_batchClassLoader instanceof JarClassLoader) {
-    		((JarClassLoader)_batchClassLoader).close();
-    	}
-    	_batchClassLoader = null;
-    }
-    
-    /**
-     * Called when doing a clean build -- resets
-     * the classloaders for the batch processors
-     */
-    public synchronized void resetBatchProcessors(IJavaProject javaProj) {
-    	// Only need to do a reset if we have batch processors
-    	Map<AnnotationProcessorFactory, Attributes> factories = _project2Factories.get(javaProj);
-    	if (factories == null) {
-    		// Already empty
-    		return;
-    	}
-    	boolean batchProcsFound = false;
-    	for (Attributes attr : factories.values()) {
-    		if (attr.runInBatchMode()) {
-    			batchProcsFound = true;
-    			break;
-    		}
-    	}
-    	if (batchProcsFound) {
-    		_project2Factories.remove(javaProj);
-    	}
-    }
-    
-    /**
-     * @param jproj must not be null
-     * @return order preserving map of annotation processor factories to their attributes.
-     * The order the annotation processor factories respect the order of factory containers in 
-     * <code>jproj</code>
-     */
-    public synchronized Map<AnnotationProcessorFactory, FactoryPath.Attributes> 
-    	getFactoriesAndAttributesForProject(IJavaProject jproj){
-    	
-    	Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories = _project2Factories.get(jproj);
-    	if( factories != null )
-    		return Collections.unmodifiableMap(factories);
-    	
-    	// Load the project
-		FactoryPath fp = FactoryPathUtil.getFactoryPath(jproj);
-		Map<FactoryContainer, FactoryPath.Attributes> containers = fp.getEnabledContainers();
-		factories = loadFactories(containers, jproj);
-		_project2Factories.put(jproj, factories);
-		return Collections.unmodifiableMap(factories);
-    	
-    }
-    
-    /**
-     * @param javaProj
-     * @return <code>true</code> iff there are Annotation Processor Factories associated with 
-     * the given project
-     */
-    public synchronized boolean hasFactoriesForProject(IJavaProject javaProj){
-    	Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories = 
-    		getFactoriesAndAttributesForProject(javaProj);
-		return factories != null && !factories.isEmpty();
-    }
-    
-    /**
-     * Convenience method: get the key set of the map returned by
-     * @see #getFactoriesAndAttributesForProject(IJavaProject), as a List.
-     */
-    public synchronized List<AnnotationProcessorFactory> getFactoriesForProject( IJavaProject jproj ) {
-    	
-    	Map<AnnotationProcessorFactory, FactoryPath.Attributes> factoriesAndAttrs = 
-    		getFactoriesAndAttributesForProject(jproj);
-    	final List<AnnotationProcessorFactory> factories = 
-    		new ArrayList<AnnotationProcessorFactory>(factoriesAndAttrs.keySet());
-    	return Collections.unmodifiableList(factories);
-    }
-    
-    /**
-     * Add the resource/project pair 'key' -> 'jproj' to the 
-     * _container2Project map.
-     * @param key the canonicalized pathname of the resource
-     * @param jproj must not be null
-     */
-	private void addToResourcesMap(String key, IJavaProject jproj) {
-		Set<IJavaProject> s = _container2Project.get(key);
-		if (s == null) {
-			s = new HashSet<IJavaProject>();
-			_container2Project.put(key, s);
-		}
-		s.add(jproj);
-	}
-
-	/**
-	 * @param containers an ordered map.
-	 * @return order preserving map of annotation processor factories to their attributes. 
-	 * The order of the factories respect the order of the containers.
-	 */
-	private Map<AnnotationProcessorFactory, FactoryPath.Attributes> loadFactories( 
-			Map<FactoryContainer, FactoryPath.Attributes> containers, IJavaProject project )
-	{
-		Map<AnnotationProcessorFactory, FactoryPath.Attributes> factoriesAndAttrs = 
-			new LinkedHashMap<AnnotationProcessorFactory, FactoryPath.Attributes>(containers.size() * 4 / 3 + 1);
-		
-		removeAptBuildProblemMarkers(project);
-		Set<FactoryContainer> badContainers = verifyFactoryPath(project);
-		if (badContainers != null) {
-			reportMissingFactoryContainers(badContainers, project);
-			for (FactoryContainer badFC : badContainers) {
-				containers.remove(badFC);
-			}
-		}
-		
-		// Need to use the cached classloader if we have one
-		ClassLoader iterativeClassLoader = _project2IterativeClassloaders.get(project);
-		if (iterativeClassLoader == null) {
-			iterativeClassLoader = _createIterativeClassLoader(containers);
-			_project2IterativeClassloaders.put(project, iterativeClassLoader);
-		}
-		
-		_createBatchClassLoader(containers, iterativeClassLoader);
-		
-		for ( Map.Entry<FactoryContainer, FactoryPath.Attributes> entry : containers.entrySet() )
-		{
-			try {
-				final FactoryContainer fc = entry.getKey();
-				final FactoryPath.Attributes attr = entry.getValue();
-				List<AnnotationProcessorFactory> factories;
-				if (attr.runInBatchMode()) {
-					factories = loadFactoryClasses(fc, _batchClassLoader, project);
-				}
-				else {
-					factories = loadFactoryClasses(fc, iterativeClassLoader, project);
-				}
-				for ( AnnotationProcessorFactory apf : factories )
-					factoriesAndAttrs.put( apf, entry.getValue() );
-			}
-			catch (FileNotFoundException fnfe) {
-				// it would be bizarre to get this, given that we already checked for file existence up above.
-				AptPlugin.log(fnfe, Messages.AnnotationProcessorFactoryLoader_jarNotFound + fnfe.getLocalizedMessage());
-			}
-			catch (IOException ioe) {
-				AptPlugin.log(ioe, Messages.AnnotationProcessorFactoryLoader_ioError + ioe.getLocalizedMessage());
-			}
-		}
-		return factoriesAndAttrs;
-	}
-
-	private List<AnnotationProcessorFactory> loadFactoryClasses( 
-			FactoryContainer fc, ClassLoader classLoader, IJavaProject jproj )
-			throws IOException
-	{
-		List<String> factoryNames = fc.getFactoryNames();
-		List<AnnotationProcessorFactory> factories = new ArrayList<AnnotationProcessorFactory>( factoryNames.size() ); 
-		for ( String factoryName : factoryNames )
-		{
-			AnnotationProcessorFactory factory;
-			if ( fc.getType() == FactoryType.PLUGIN )
-				factory = FactoryPathUtil.getFactoryFromPlugin( factoryName );
-			else
-				factory = loadFactoryFromClassLoader( factoryName, classLoader, jproj );
-			
-			if ( factory != null )
-				factories.add( factory );
-		}
-		return factories;
-	}
-	
-	private AnnotationProcessorFactory loadFactoryFromClassLoader( String factoryName, ClassLoader cl, IJavaProject jproj )
-	{
-		AnnotationProcessorFactory f = null;
-		try
-		{
-			Class c = cl.loadClass( factoryName );
-			f = (AnnotationProcessorFactory)c.newInstance();
-		}
-		catch( Exception e )
-		{
-			reportFailureToLoadFactory(factoryName, jproj);
-		}
-		catch ( NoClassDefFoundError ncdfe )
-		{
-			reportFailureToLoadFactory(factoryName, jproj);
-		}
-		return f;
-	}
-	
-	/**
-	 * Re-validate projects whose factory paths may have been affected
-	 * by a resource change (e.g., adding a previously absent jar file).
-	 * This will cause build problem markers to be removed and regenerated,
-	 * and factory class caches to be cleared.
-	 */
-	private void processChanges(Set<IJavaProject> affected) {
-		for (IJavaProject jproj : affected) {
-			removeAptBuildProblemMarkers(jproj);
-			uncacheProject(jproj);
-		}
-		// We will do another clear and re-verify when loadFactories() 
-		// is called.  But we have to do it then, because things might
-		// have changed in the interim; and if we don't do it here, then
-		// we'll have an empty _resources2Project cache, so we'll ignore
-		// all resource changes until the next build.  Is that a problem?   
-		for (IJavaProject jproj : affected) {
-			if (jproj.exists()) {
-				Set<FactoryContainer> badContainers = verifyFactoryPath(jproj);
-				if (badContainers != null) {
-					reportMissingFactoryContainers(badContainers, jproj);
-				}
-			}
-		}
-	
-		// TODO: flag the affected projects for rebuild.
-	}
-
-	/**
-	 * When a project is deleted, remove its factory path information from the loader.
-	 * @param jproj
-	 */
-    private void uncacheProject(IJavaProject jproj) {
-		_project2Factories.remove(jproj);
-		_project2IterativeClassloaders.remove(jproj);
-		removeProjectFromResourceMap(jproj);
-	}
-
-	/**
-	 * Remove APT build problem markers, e.g., "missing factory jar".
-	 * @param jproj if null, remove markers from all projects that have
-	 * factory paths associated with them.
-	 */
-	private void removeAptBuildProblemMarkers( IJavaProject jproj ) {
-		Set<IJavaProject> jprojects = (jproj == null) ? _project2Factories.keySet() : Collections.singleton(jproj);
-		try {
-			for (IJavaProject jp : jprojects) {
-				if (jp.exists()) {
-					IProject p = jp.getProject();
-					IMarker[] markers = p.findMarkers(AptPlugin.APT_BUILD_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
-					if( markers != null ){
-						for( IMarker marker : markers )
-							marker.delete();
-					}
-				}
-			}
-		}
-		catch(CoreException e){
-			AptPlugin.log(e, "Unable to delete APT build problem marker"); //$NON-NLS-1$
-		}
-	}
-
-	/**
-	 * Remove references to the project from _container2Project.  This is done
-	 * when a project is deleted, or before re-verifying the project's
-	 * factory path.
-	 */
-	private void removeProjectFromResourceMap(IJavaProject jproj) {
-		Iterator<Entry<String, Set<IJavaProject>>> i = _container2Project.entrySet().iterator();
-		while (i.hasNext()) {
-			Entry<String, Set<IJavaProject>> e = i.next();
-			Set<IJavaProject> s = e.getValue();
-			s.remove(jproj);
-			// Remove any resulting orphaned resources.
-			if (s.isEmpty()) {
-				i.remove();
-			}
-		}
-	}
-
-	/** 
-	 * Enter problem markers for factory containers that could not be found on 
-	 * disk.  This routine does not check whether markers already exist.
-	 * See class comments for information about the lifecycle of these markers.
-	 * @param jarName the name of the jar file.  This string is used only in
-	 * the text of the message, so it doesn't matter whether it's a relative
-	 * path, absolute path, or complete garbage.
-	 * @param jproj must not be null.  
-	 */
-	private void reportMissingFactoryContainers(Set<FactoryContainer> badContainers, IJavaProject jproj) {
-		IProject project = jproj.getProject();
-		for (FactoryContainer fc : badContainers) {
-			try {
-				String message = Messages.bind(
-						Messages.AnnotationProcessorFactoryLoader_factorypath_missingLibrary, 
-						new String[] {fc.getId(), project.getName()});
-				IMarker marker = project.createMarker(AptPlugin.APT_BUILD_PROBLEM_MARKER);
-				marker.setAttributes(
-						new String[] {
-							IMarker.MESSAGE, 
-							IMarker.SEVERITY,
-							IMarker.LOCATION
-						},
-						new Object[] {
-							message,
-							IMarker.SEVERITY_ERROR,
-							Messages.AnnotationProcessorFactoryLoader_factorypath
-						}
-					);
-			} catch (CoreException e) {
-				AptPlugin.log(e, "Unable to create APT build problem marker on project " + project.getName()); //$NON-NLS-1$
-			}
-		}
-	}
-	
-	/** 
-	 * Enter a marker for a factory class that could not be loaded.
-	 * Note that if a jar is missing, we won't be able to load its factory
-	 * names, and thus we won't even try loading its factory classes; but
-	 * we can still fail to load a factory class if, for instance, the
-	 * jar is corrupted or the factory constructor throws an exception.  
-	 * See class comments for information about the lifecycle of these markers.
-	 * @param factoryName the fully qualified class name of the factory
-	 * @param jproj must not be null
-	 */
-	private void reportFailureToLoadFactory(String factoryName, IJavaProject jproj) {
-		IProject project = jproj.getProject();
-		try {
-			String message = Messages.bind(
-					Messages.AnnotationProcessorFactoryLoader_unableToLoadFactoryClass, 
-					new String[] {factoryName, project.getName()});
-			IMarker marker = project.createMarker(AptPlugin.APT_BUILD_PROBLEM_MARKER);
-			marker.setAttributes(
-					new String[] {
-						IMarker.MESSAGE, 
-						IMarker.SEVERITY,
-						IMarker.LOCATION
-					},
-					new Object[] {
-						message,
-						IStatus.ERROR,
-						Messages.AnnotationProcessorFactoryLoader_factorypath
-					}
-				);
-		} catch (CoreException e) {
-			AptPlugin.log(e, "Unable to create build problem marker"); //$NON-NLS-1$
-		}
-	}
-	
-    /**
-     * Check the factory path for a project and ensure that all the
-     * containers it lists are available.  Adds jar factory container
-     * resources to the _container2Project cache, whether or not the
-     * resource can actually be found.
-     * 
-     * @param jproj the project, or null to check all projects that
-     * are in the cache.
-     * @return a Set of all invalid containers, or null if all containers
-     * on the path were valid.
-     */
-    private Set<FactoryContainer> verifyFactoryPath(IJavaProject jproj) {
-    	Set<FactoryContainer> badContainers = null;
-		FactoryPath fp = FactoryPathUtil.getFactoryPath(jproj);
-		Map<FactoryContainer, FactoryPath.Attributes> containers = fp.getEnabledContainers();
-		for (FactoryContainer fc : containers.keySet()) {
-			if (fc instanceof JarFactoryContainer) {
-				try {
-					String key = ((JarFactoryContainer)fc).getJarFile().getCanonicalPath();
-					addToResourcesMap(key, jproj);
-				} catch (IOException e) {
-					// If there's something this malformed on the factory path,
-					// don't bother putting it on the resources map; we'll never
-					// get notified about a change to it anyway.  It should get
-					// reported either as a bad container (below) or as a failure
-					// to load (later on).
-				}
-			}
-			if (!fc.exists()) {
-				if (badContainers == null) {
-					badContainers = new HashSet<FactoryContainer>();
-				}
-				badContainers.add(fc);
-			}
-		}
-		return badContainers;
-    }
-    
-	/**
-	 * @param containers an ordered map.
-	 */
-	private ClassLoader _createIterativeClassLoader( Map<FactoryContainer, FactoryPath.Attributes> containers )
-	{
-		ArrayList<File> fileList = new ArrayList<File>( containers.size() );
-		for (Map.Entry<FactoryContainer, FactoryPath.Attributes> entry : containers.entrySet()) {
-			FactoryPath.Attributes attr = entry.getValue();
-			FactoryContainer fc = entry.getKey();
-			if (!attr.runInBatchMode() && fc instanceof JarFactoryContainer) {
-				JarFactoryContainer jfc = (JarFactoryContainer)fc;
-				fileList.add( jfc.getJarFile() );
-			}
-		}
-		
-		ClassLoader cl;
-		if ( fileList.size() > 0 ) {
-			//cl = new JarClassLoader( fileList, AnnotationProcessorFactoryLoader.class.getClassLoader() );
-			// Temporary revert to URLClassLoader, as the JarClassLoader doesn't properly define packages
-			List<URL> urls = new ArrayList<URL>(fileList.size());
-			for (File f : fileList) {
-				try {
-					urls.add(f.toURL());
-				}
-				catch (MalformedURLException mue) {
-					mue.printStackTrace();
-				}
-			}
-			URL[] urlArray = urls.toArray(new URL[urls.size()]);
-			cl = new URLClassLoader( urlArray, AnnotationProcessorFactoryLoader.class.getClassLoader() );
-		}
-		else {
-			cl = AnnotationProcessorFactoryLoader.class.getClassLoader();
-		}
-		return cl;
-	}
-	
-	private void _createBatchClassLoader( 
-			Map<FactoryContainer, FactoryPath.Attributes> containers, 
-			ClassLoader iterativeClassLoader) {
-		
-		assert _batchClassLoader == null : "Previous batch classloader was non-null -- it was not closed"; //$NON-NLS-1$
-		
-		ArrayList<File> fileList = new ArrayList<File>( containers.size() );
-		for (Map.Entry<FactoryContainer, FactoryPath.Attributes> entry : containers.entrySet()) {
-			FactoryPath.Attributes attr = entry.getValue();
-			FactoryContainer fc = entry.getKey();
-			if (attr.runInBatchMode() && fc instanceof JarFactoryContainer) {
-				
-				JarFactoryContainer jfc = (JarFactoryContainer)fc;
-				File f = jfc.getJarFile();
-				fileList.add( f );
-				
-			}
-		}
-		
-		if ( fileList.size() > 0 ) {
-			//_batchClassLoader = new JarClassLoader( fileList, iterativeClassLoader );
-//			 Temporary revert to URLClassLoader, as the JarClassLoader doesn't properly define packages
-			List<URL> urls = new ArrayList<URL>(fileList.size());
-			for (File f : fileList) {
-				try {
-					urls.add(f.toURL());
-				}
-				catch (MalformedURLException mue) {
-					mue.printStackTrace();
-				}
-			}
-			URL[] urlArray = urls.toArray(new URL[urls.size()]);
-			_batchClassLoader = new URLClassLoader( urlArray, AnnotationProcessorFactoryLoader.class.getClassLoader() );
-		}
-		else {
-			// No batch classloader
-			_batchClassLoader = null;
-		}		
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AptCompilationParticipant.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AptCompilationParticipant.java
deleted file mode 100644
index fcbbf61..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/AptCompilationParticipant.java
+++ /dev/null
@@ -1,292 +0,0 @@
- /*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.APTDispatch.APTResult;
-import org.eclipse.jdt.apt.core.internal.env.ProcessorEnvImpl;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.compiler.BrokenClasspathBuildFailureEvent;
-import org.eclipse.jdt.core.compiler.BrokenClasspathBuildFailureResult;
-import org.eclipse.jdt.core.compiler.CompilationParticipantEvent;
-import org.eclipse.jdt.core.compiler.CompilationParticipantResult;
-import org.eclipse.jdt.core.compiler.ICompilationParticipant;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.compiler.PreReconcileCompilationEvent;
-import org.eclipse.jdt.core.compiler.PreReconcileCompilationResult;
-import org.eclipse.jdt.core.compiler.PreBuildCompilationEvent;
-import org.eclipse.jdt.core.compiler.PreBuildCompilationResult;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * A singleton object, created by callback through the
- * org.eclipse.jdt.core.compilationParticipants extension point.
- */
-public class AptCompilationParticipant implements ICompilationParticipant
-{
-	/** 
-	 * Batch factories that claimed some annotation in a previous round of APT processing.
-	 * This currently only apply to the build case since are only generating types during build
-	 * and hence cause APT rounding.
-	 * The set is an order preserving. The order is determined by their first invocation.
-	 */
-	private Set<AnnotationProcessorFactory> _previousRoundsBatchFactories = new LinkedHashSet<AnnotationProcessorFactory>();
-	private static AptCompilationParticipant INSTANCE;
-	
-	public static AptCompilationParticipant getInstance() {
-		return INSTANCE;
-	}
-	
-	/**
-	 * This class is constructed indirectly, by registering an extension to the 
-	 * org.eclipse.jdt.core.compilationParticipants extension point.  Other
-	 * clients should NOT construct this object.
-	 */
-	public AptCompilationParticipant()
-	{
-		INSTANCE = this;
-	}
-
-	public CompilationParticipantResult notify( CompilationParticipantEvent cpe )
-	{	
-        // We need to clean even if we have been disabled. This allows
-		// us to remove our generated source files if we get disabled
-        if ( cpe.getKind() == ICompilationParticipant.CLEAN_EVENT ) {
-            return cleanNotify( cpe );
-        }
-        else if (!AptConfig.isEnabled(cpe.getJavaProject())) {
-			return GENERIC_COMPILATION_RESULT;
-        }
-        else if ( cpe == null ) {
-			return GENERIC_COMPILATION_RESULT;
-		}
-		else if ( cpe.getKind() == ICompilationParticipant.PRE_BUILD_EVENT ) {
-			return preBuildNotify( (PreBuildCompilationEvent) cpe );
-		}
-		else if ( cpe.getKind() == ICompilationParticipant.PRE_RECONCILE_EVENT ) {
-			return preReconcileNotify( (PreReconcileCompilationEvent) cpe );
-		}
-		else if ( cpe.getKind() == ICompilationParticipant.BROKEN_CLASSPATH_BUILD_FAILURE_EVENT) {
-			return brokenClasspathBuildFailureNotify( (BrokenClasspathBuildFailureEvent) cpe );
-		}
-		else {
-			return GENERIC_COMPILATION_RESULT;
-		}
-	}
-		
-	private CompilationParticipantResult preBuildNotify( PreBuildCompilationEvent pbce )
-	{		
-		if ( pbce == null )
-			return EMPTY_PRE_BUILD_COMPILATION_RESULT;
-
-		IFile[] buildFiles = pbce.getFiles();
-		IJavaProject javaProject = pbce.getJavaProject();
-		
-		if ( buildFiles == null || buildFiles.length == 0 )
-			return EMPTY_PRE_BUILD_COMPILATION_RESULT;
-		
-		// Don't dispatch on pre-1.5 project. They cannot legally have annotations
-		String javaVersion = javaProject.getOption("org.eclipse.jdt.core.compiler.source", true); //$NON-NLS-1$
-		
-		// Check for 1.3 or 1.4, as we don't want this to break in the future when 1.6
-		// is a possibility
-		if ("1.3".equals(javaVersion) || "1.4".equals(javaVersion)) { //$NON-NLS-1$ //$NON-NLS-2$
-			return EMPTY_PRE_BUILD_COMPILATION_RESULT;
-		}			
-	
-		// If we're in batch mode, we need to reset the classloaders
-		// for the batch processors before we begin
-		boolean isFullBuild = pbce.isFullBuild();
-		try {
-			if (isFullBuild && pbce.getRound() == 0) {
-				AnnotationProcessorFactoryLoader.getLoader().resetBatchProcessors(pbce.getJavaProject());
-				_previousRoundsBatchFactories.clear();
-			}
-			
-			Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories =
-				AnnotationProcessorFactoryLoader.getLoader().getFactoriesAndAttributesForProject(javaProject);
-			
-			APTResult result = APTDispatch.runAPTDuringBuild(factories, _previousRoundsBatchFactories, buildFiles, javaProject, isFullBuild);
-			Set<IFile> newFiles = result.getNewFiles();			
-			Set<IFile> deletedFiles = new HashSet<IFile>();
-			_previousRoundsBatchFactories.addAll(result.getDispatchedBatchFactory());
-			
-			// see if APT updated a project's source path
-			boolean sourcePathChanged = result.getSourcePathChanged();
-			
-			// for apt, new files will always trump deleted files
-			for ( IFile df : result.getDeletedFiles() ){
-				if ( !newFiles.contains( df ) ){
-					deletedFiles.add(df);
-				}
-			}
-	
-			return new PreBuildCompilationResult( 
-					newFiles.toArray( new IFile[ newFiles.size() ] ), 
-					deletedFiles.toArray( new IFile[ deletedFiles.size() ] ), 
-					result.getNewDependencies(), 
-					result.getProblems(), 
-					sourcePathChanged );
-		}
-		finally {
-			if (isFullBuild) {
-				// In order to keep from locking jars, we explicitly close any batch-based
-				// classloaders we opened
-				AnnotationProcessorFactoryLoader.getLoader().closeBatchClassLoader();
-			}
-		}
-	}
-	
-	/** 
-	 *   Given a Map which maps from a key to a value, where key is an arbitrary 
-	 *   type, and where value is a Collection, mergeMaps will ensure that for a key 
-	 *   k with value v in source, all of the elements in the Collection v will be 
-	 *   moved into the Collection v' corresponding to key k in the destination Map. 
-	 * 
-	 * @param source - The source map from some key to a Collection.
-	 * @param destination - The destination map from some key to a Collection
-	 */
-	private static void mergeMaps( Map source, Map destination ) {
-		if( source == null || destination == null ) return;
-		Iterator keys = source.keySet().iterator();
-		while( keys.hasNext() ) {
-			Object key = keys.next();
-			Object val = destination.get( key );
-			if ( val != null ) {
-				Collection c = (Collection) val;
-				c.addAll( (Collection)source.get( key ) );
-			}
-			else {
-				destination.put( key, source.get( key ) );
-			}
-		}
-	}
-	
-	private CompilationParticipantResult preReconcileNotify( PreReconcileCompilationEvent prce )
-	{
-		IProblem[] problems = null;
-		
-		try
-		{
-			org.eclipse.jdt.core.ICompilationUnit cu = prce.getCompilationUnit();
-			IJavaProject javaProject = prce.getJavaProject();
-			
-			// these are null sometimes.  Not sure why...
-			if ( cu == null || javaProject == null  )
-				return GENERIC_COMPILATION_RESULT;
-			
-			Map<AnnotationProcessorFactory, FactoryPath.Attributes> factories = 
-				AnnotationProcessorFactoryLoader.getLoader().getFactoriesAndAttributesForProject( javaProject );
-			APTResult result = APTDispatch.runAPTDuringReconcile( factories, cu, javaProject );
-			Map<IFile, List<IProblem>> allproblems = result.getProblems();			
-			
-			final List<IProblem> problemList = allproblems.get(cu.getResource());
-			if( problemList != null && !problemList.isEmpty())
-				problems = problemList.toArray(new IProblem[problemList.size()]);	
-		}
-		catch ( Throwable t )
-		{
-			AptPlugin.log(t, "Failure processing"); //$NON-NLS-1$
-		}	
-		return new PreReconcileCompilationResult(problems);
-	}
-
-	private CompilationParticipantResult cleanNotify( CompilationParticipantEvent cpe )
-	{
-		IProject p = cpe.getJavaProject().getProject();
-		
-		GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( p );
-		gfm.projectClean( true );
-		try{
-			// clear out all markers during a clean.
-			IMarker[] markers = p.findMarkers(ProcessorEnvImpl.BUILD_MARKER, true, IResource.DEPTH_INFINITE);
-			if( markers != null ){
-				for( IMarker marker : markers )
-					marker.delete();
-			}
-		}
-		catch(CoreException e){
-			AptPlugin.log(e, "Unable to delete annotation processor problem markers"); //$NON-NLS-1$
-		}
-		
-		return GENERIC_COMPILATION_RESULT;
-	}
-	
-	
-	private BrokenClasspathBuildFailureResult brokenClasspathBuildFailureNotify( BrokenClasspathBuildFailureEvent event )
-	{
-		try
-		{
-			IJavaProject jp = event.getJavaProject();
-			IProject p = jp.getProject();
-			GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( p );
-			IFolder folder = gfm.getGeneratedSourceFolder();
-			
-			folder.refreshLocal( IResource.DEPTH_INFINITE, null );
-			IClasspathEntry classpathEntry = GeneratedFileManager.findProjectSourcePath( jp, folder );
-			if ( classpathEntry != null && !folder.exists() )
-			{
-				// the generated source folder is part of the classpath, but it doesn't exist on disk
-				// try to fix this by creating the generated source folder. 
-				GeneratedFileManager.removeFromProjectClasspath( jp, folder, null );
-				gfm.ensureGeneratedSourceFolder( null );
-			}
-		}
-		catch ( CoreException ce )
-		{
-			AptPlugin.log( ce, "Failure trying to fix catastrophic build failure"); //$NON-NLS-1$
-		}
-		
-		return new BrokenClasspathBuildFailureResult();
-	}
-	
-	
-	
-	public boolean doesParticipateInProject(IJavaProject project) {
-		if (!AptConfig.isEnabled(project)) {
-			return false;
-		}		
-		return AnnotationProcessorFactoryLoader.getLoader().hasFactoriesForProject(project);				
-		//TODO: use config to decide which projects we support
-	}
-
-    
-    private final static String DOT_JAVA = ".java"; //$NON-NLS-1$
-	
-	private final static PreBuildCompilationResult EMPTY_PRE_BUILD_COMPILATION_RESULT = 
-		new PreBuildCompilationResult( new IFile[0], new IFile[0], Collections.emptyMap(), Collections.emptyMap(), false );
-		
-	private final static CompilationParticipantResult GENERIC_COMPILATION_RESULT = 
-		new CompilationParticipantResult();
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/EclipseMirrorImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/EclipseMirrorImpl.java
deleted file mode 100644
index 9d6f734..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/EclipseMirrorImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import org.eclipse.jdt.apt.core.env.EclipseMirrorObject;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-
-public interface EclipseMirrorImpl extends EclipseMirrorObject
-{	
-	/**
-	 * @return the processor environment associated with the object.
-	 * return null for primitive, void and error type. 
-	 */
-	public BaseProcessorEnv getEnvironment();
-
-} 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/ExtJarFactoryContainer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/ExtJarFactoryContainer.java
deleted file mode 100644
index 8ea927e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/ExtJarFactoryContainer.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.File;
-
-/**
- * Annotation processor factory container based on a jar file
- * outside the workspace, referenced by absolute path.
- */
-public class ExtJarFactoryContainer extends JarFactoryContainer {
-	private String _id;
-	private File _jarFile;
-	
-	/**
-	 * @param jarPath
-	 */
-	public ExtJarFactoryContainer(File jar) {
-		_jarFile = jar.getAbsoluteFile();
-		_id = _jarFile.getPath(); // id of ExtJar is the absolute path
-	}
-
-	@Override
-	public FactoryType getType() {
-		return FactoryType.EXTJAR;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.internal.JarFactoryContainer#getJarFile()
-	 */
-	@Override
-	public File getJarFile() {
-		return _jarFile;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.FactoryContainer#getId()
-	 */
-	@Override
-	public String getId() {
-		return _id;
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarClassLoader.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarClassLoader.java
deleted file mode 100644
index 3006564..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarClassLoader.java
+++ /dev/null
@@ -1,254 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.jdt.apt.core.AptPlugin;
-
-/**
- * This classloader allows us to close out underlying jars,
- * so that projects can be deleted even if they contain
- * factory jars that are in use.<P>
- * 
- * This classloader caches open jars while it is in use,
- * and once closed it will close those jars. It can still be used
- * after that point, but it will open and close on each classloader
- * operation.
- */
-public class JarClassLoader extends ClassLoader {
-	
-	private final List<File> _files;
-	
-	// This can be nulled out periodically when the classloader is closed
-	private List<JarFile> _jars;
-	
-	private int _openCounter = 0;
-	
-	public JarClassLoader(List<File> jarFiles, final ClassLoader parent) {
-		super(parent);
-		_files = jarFiles;
-		open();
-	}
-	
-	public synchronized void open() {
-		_openCounter++;
-		if (_openCounter == 1) {
-			// Create all jar files
-			_jars = new ArrayList<JarFile>(_files.size());
-			for (File f : _files) {
-				try {
-					JarFile jar = new JarFile(f);
-					_jars.add(jar);
-				}
-				catch (IOException ioe) {
-					AptPlugin.log(ioe, "Unable to create JarFile for file: " + f); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-	
-	public synchronized void close() {
-		if (_openCounter < 1) {
-			throw new IllegalStateException("Attempt to close an already closed JarClassLoader"); //$NON-NLS-1$
-		}
-		_openCounter--;
-		if (_openCounter == 0) {
-			for (JarFile jar : _jars) {
-				try {
-					jar.close();
-				}
-				catch (IOException ioe) {
-					AptPlugin.log(ioe, "Failed to close jar: " + jar); //$NON-NLS-1$
-				}
-			}
-			_jars = null;
-		}
-	}
-	
-	@Override
-	protected synchronized Class<?> findClass(String name) throws ClassNotFoundException {
-		open();
-		try {
-			byte[] b = loadClassData(name);
-			if (b == null) {
-				throw new ClassNotFoundException("Could not find class " + name); //$NON-NLS-1$
-			}
-			Class<?> clazz = defineClass(name, b, 0, b.length);
-			// Define the package if necessary
-			String pkgName = getPackageName(name);
-			if (pkgName != null) {
-				Package pkg = getPackage(pkgName);
-				if (pkg == null) {
-					definePackage(pkgName, null, null, null, null, null, null, null);
-				}
-			}
-			return clazz;
-		}
-		finally {
-			close();
-		}
-	}
-	
-	private String getPackageName(String fullyQualifiedName) {
-		int index = fullyQualifiedName.lastIndexOf('.');
-		if (index != -1) {
-			return fullyQualifiedName.substring(0, index);
-		}
-		return null;
-	}
-	
-	// returns null if no class found
-	private byte[] loadClassData(String name) {
-		name = name.replace('.','/');
-		InputStream input = getResourceAsStream(name + ".class"); //$NON-NLS-1$
-		if (input == null)
-			return null;
-		try {
-			ByteArrayOutputStream baos = new ByteArrayOutputStream();
-			byte[] buf = new byte[1024];
-	        int len;
-	        while ((len = input.read(buf)) > 0) {
-	            baos.write(buf, 0, len);
-	        }
-	        baos.close();
-	        return baos.toByteArray();
-		}
-		catch (IOException ioe) {
-			return null;
-		}
-		finally {
-			try {input.close();} catch (IOException ioe) {}
-		}		
-	}
-	
-	@Override
-	public synchronized InputStream getResourceAsStream(String name) {
-		InputStream input = getParent().getResourceAsStream(name);
-		if (input != null)
-			return input;
-		open();
-		try {
-			for (JarFile j : _jars) {
-				try {
-					ZipEntry entry = j.getEntry(name);
-					if (entry != null) {
-						InputStream zipInput = j.getInputStream(entry);
-						return new JarCLInputStream(zipInput);
-					}
-				}
-				catch (IOException ioe) {
-					AptPlugin.log(ioe, "Unable to get entry from jar: " + j); //$NON-NLS-1$
-				}
-			}
-			return null;
-		}
-		finally {
-			close();
-		}
-	}
-	
-	/**
-	 * This is difficult to implement and close out resources underneath.
-	 * Delaying until someone actually requests this.
-	 */
-	@Override
-	public URL getResource(String name) {
-		throw new UnsupportedOperationException("getResource() not implemented"); //$NON-NLS-1$
-	}
-
-	/**
-	 * This is difficult to implement and close out resources underneath.
-	 * Delaying until someone actually requests this.
-	 */
-	@Override
-	public Enumeration<URL> getResources(String name) throws IOException {
-		throw new UnsupportedOperationException("getResources() not implemented"); //$NON-NLS-1$
-	}
-	
-	private class JarCLInputStream extends InputStream {
-		
-		private boolean _closed = false;
-		
-		private final InputStream _input;
-		
-		public JarCLInputStream(InputStream origInput) {
-			_input = origInput;
-			open();
-		}
-
-		@Override
-		public void close() throws IOException {
- 			if (_closed) {
-				// NOOP
-				return;
-			}
-			try {
-				super.close();
-				_input.close();
-				_closed = true;
-			}
-			finally {
-				JarClassLoader.this.close();
-			}
-		}
-
-		@Override
-		public int read() throws IOException {
-			return _input.read();
-		}
-
-		@Override
-		public int available() throws IOException {
-			return _input.available();
-		}
-
-		@Override
-		public synchronized void mark(int readlimit) {
-			_input.mark(readlimit);
-		}
-
-		@Override
-		public boolean markSupported() {
-			return _input.markSupported();
-		}
-
-		@Override
-		public int read(byte[] b, int off, int len) throws IOException {
-			return _input.read(b, off, len);
-		}
-
-		@Override
-		public int read(byte[] b) throws IOException {
-			return _input.read(b);
-		}
-
-		@Override
-		public synchronized void reset() throws IOException {
-			_input.reset();
-		}
-
-		@Override
-		public long skip(long n) throws IOException {
-			return _input.skip(n);
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarFactoryContainer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarFactoryContainer.java
deleted file mode 100644
index 001c86e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/JarFactoryContainer.java
+++ /dev/null
@@ -1,126 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-
-/**
- * Represents a jar file that contains annotation processor factories.
- * The factories are listed in the jar's META-INF/services folder, in
- * a file named com.sun.mirror.apt.AnnotationProcessorFactory.
- */
-public abstract class JarFactoryContainer extends FactoryContainer
-{
-	
-	/**
-	 * @return a java.io.File.  The file is not guaranteed to exist.
-	 */
-	public abstract File getJarFile();
-	
-	@Override
-	public boolean exists() {
-		try {
-			return getJarFile().exists();
-		} catch (SecurityException e) {
-			return false;
-		}
-	}
-
-	@Override
-	protected List<String> loadFactoryNames() throws IOException { 
-		return getServiceClassnamesFromJar( getJarFile() );
-	}
-	
-	/**
-     * Given a jar file, get the names of any AnnotationProcessorFactory
-     * implementations it offers.  The information is based on the Sun
-     * <a href="http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider">
-     * Jar Service Provider spec</a>: the jar file contains a META-INF/services
-     * directory; that directory contains text files named according to the desired
-     * interfaces; and each file contains the names of the classes implementing
-     * the specified service.  The files may also contain whitespace (which is to
-     * be ignored).  The '#' character indicates the beginning of a line comment,
-     * also to be ignored.  Implied but not stated in the spec is that this routine
-     * also ignores anything after the first nonwhitespace token on a line.
-     * @param jar the jar file.
-     * @return a list, possibly empty, of fully qualified classnames to be instantiated.
-     */
-    protected static List<String> getServiceClassnamesFromJar(File jar) throws IOException
-    {
-        List<String> classNames = new ArrayList<String>();
-        JarFile jarFile = null;
-        try {
-            jarFile = new JarFile(jar);
-
-            for (String providerName : AUTOLOAD_SERVICES) {
-            	// Get the service provider def file out of the jar.
-                JarEntry provider = jarFile.getJarEntry(providerName);
-                if (provider == null) {
-                    continue;
-                }
-                // Extract classnames from the service provider def file.
-                InputStream is = jarFile.getInputStream(provider);
-                readServiceProvider(is, classNames);
-            }
-        }
-        finally {
-        	try {if (jarFile != null) jarFile.close();} catch (IOException ioe) {}
-        }
-        return classNames;
-    }
-    
-    /**
-     * Read service classnames from a service provider definition.
-     * @param is an input stream corresponding to a Sun-style service provider
-     * definition file, e.g., one of the files named in AUTOLOAD_SERVICES.
-     * @param classNames a list to which the classes named in is will be added.
-     */
-    protected static void readServiceProvider(InputStream is, List<String> classNames) throws IOException {
-    	BufferedReader rd = null;
-    	try {
-	        rd = new BufferedReader(new InputStreamReader(is, "UTF-8")); //$NON-NLS-1$
-	        for (String line = rd.readLine(); line != null; line = rd.readLine()) {
-	            // hack off any comments
-	            int iComment = line.indexOf('#');
-	            if (iComment >= 0) {
-	                line = line.substring(0, iComment);
-	            }
-	            // add the first non-whitespace token to the list
-	            final String[] tokens = line.split("\\s", 2); //$NON-NLS-1$
-	            if (tokens[0].length() > 0) {
-	                classNames.add(tokens[0]);
-	            }
-	        }
-	        rd.close();
-    	}
-    	finally {
-    		if (rd != null) try {rd.close();} catch (IOException ioe) {}
-    	}
-    }
-	
-    /** List of jar file entries that specify autoloadable service providers */
-    private static final String[] AUTOLOAD_SERVICES = {
-        "META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory" //$NON-NLS-1$
-    };
-	
-}
-
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/Messages.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/Messages.java
deleted file mode 100644
index 959b137..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/Messages.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.core.internal.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String AnnotationProcessorFactoryLoader_jarNotFound;
-
-	public static String AnnotationProcessorFactoryLoader_ioError;
-
-	public static String AnnotationProcessorFactoryLoader_factorypath_missingLibrary;
-
-	public static String AnnotationProcessorFactoryLoader_factorypath;
-
-	public static String AnnotationProcessorFactoryLoader_unableToLoadFactoryClass;
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/NonEclipseImplementationException.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/NonEclipseImplementationException.java
deleted file mode 100644
index 5497e0b..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/NonEclipseImplementationException.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-/**
- * Thrown when the eclipse compiler encountered a non-eclipse implementation of the mirror type system.
- */
-public class NonEclipseImplementationException extends RuntimeException
-{  
-	private static final long serialVersionUID = 1L;
-
-	public NonEclipseImplementationException(String msg)
-    { super(msg); }
-
-    public NonEclipseImplementationException(){}
-} 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/PluginFactoryContainer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/PluginFactoryContainer.java
deleted file mode 100644
index b58f14d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/PluginFactoryContainer.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-
-public class PluginFactoryContainer extends FactoryContainer
-{
-	/** The label of the plug that owns this factory container.  */
-	private final String id;
-	
-	/** Whether the plugin's factories are enabled by default */
-	private final boolean enableDefault;
-	
-	/**
-	 * In general clients should not construct this object.  This c'tor should
-	 * only be called from @see FactoryPathUtil#loadPluginFactories().
-	 * @param pluginId
-	 * @param enableDefault
-	 */
-	public PluginFactoryContainer(final String pluginId, boolean enableDefault) {
-		this.id = pluginId;
-		this.enableDefault = enableDefault;
-	}
-	
-	public void addFactoryName( String n ) {
-		try {
-			getFactoryNames().add( n ); 
-		}
-		catch (IOException ioe) {
-			AptPlugin.log(ioe, "IOException reading a plugin"); //$NON-NLS-1$
-		}
-	}
-	
-	@Override
-	public boolean exists() {
-		// This object is created only in the process of loading factory plugins.
-		return true;
-	}
-
-	protected List<String> loadFactoryNames() { 
-		return new ArrayList<String>();
-	}
-	
-	public String getId() {
-		return id;
-	}
-	
-	public boolean getEnableDefault() {
-		return enableDefault;
-	}
-	
-	@Override
-	public FactoryType getType() {
-		return FactoryType.PLUGIN;
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/VarJarFactoryContainer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/VarJarFactoryContainer.java
deleted file mode 100644
index 60dfb1d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/VarJarFactoryContainer.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.core.JavaCore;
-
-/**
- * Annotation processor factory container based on a jar file
- * outside of the workspace, referenced by a classpath variable.
- */
-public class VarJarFactoryContainer extends JarFactoryContainer {
-	
-	private final String _id;
-	private final File _jarFile;
-
-	/**
-	 * @param jarPath
-	 */
-	public VarJarFactoryContainer(IPath jarPath) {
-		_id = jarPath.toString();
-		IPath resolved = JavaCore.getResolvedVariablePath(jarPath);
-		if (null != resolved) {
-			_jarFile = resolved.toFile();
-		}
-		else {
-			_jarFile = null;
-			IStatus s = AptPlugin.createWarningStatus(
-				null, "The factorypath entry " + _id + " could not be resolved"); //$NON-NLS-1$ //$NON-NLS-2$
-			AptPlugin.log(s);
-		}
-	}
-
-	@Override
-	public FactoryType getType() {
-		return FactoryType.VARJAR;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.internal.JarFactoryContainer#getJarFile()
-	 */
-	@Override
-	public File getJarFile() {
-		return _jarFile;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.FactoryContainer#getId()
-	 */
-	@Override
-	public String getId() {
-		return _id;
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/WkspJarFactoryContainer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/WkspJarFactoryContainer.java
deleted file mode 100644
index a9f6869..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/WkspJarFactoryContainer.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal;
-
-import java.io.File;
-
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.apt.core.AptPlugin;
-
-/**
- * Annotation processor factory container based on a jar file 
- * within the workspace.
- */
-public class WkspJarFactoryContainer extends JarFactoryContainer {
-
-	private final String _id;
-	private final File _jarFile; // A java.io.File, not guaranteed to exist.
-
-	/**
-	 * Construct a workspace-jar container from an IPath representing
-	 * the jar file's location in the workspace.  We will construct
-	 * the container even if the file does not exist.
-	 * @param jar an IPath representing a jar file in the workspace;
-	 * the path is relative to the workspace root.
-	 */
-	public WkspJarFactoryContainer(IPath jar) {
-		_id = jar.toString();
-		IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-		IResource res = root.findMember(_id);
-		if (null == res) {
-			// The file evidently doesn't exist on disk.  Do our best to 
-			// construct a java.io.File for it anyway.
-			_jarFile = root.getLocation().append(jar).toFile();
-			
-		}
-		else if (res.getType() == IResource.FILE) {
-			_jarFile = res.getLocation().toFile();
-		}
-		else {
-			_jarFile = null;
-			IStatus s = AptPlugin.createWarningStatus(
-				null, "The factorypath entry " + _id + " does not refer to a jar file"); //$NON-NLS-1$ //$NON-NLS-2$
-			AptPlugin.log(s);
-		}
-	}
-
-	@Override
-	public FactoryType getType() {
-		return FactoryType.WKSPJAR;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.internal.JarFactoryContainer#getJarFile()
-	 */
-	@Override
-	public File getJarFile() {
-		return _jarFile;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.FactoryContainer#getId()
-	 */
-	@Override
-	public String getId() {
-		return _id;
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedAnnotationElementDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedAnnotationElementDeclarationImpl.java
deleted file mode 100644
index cc34435..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedAnnotationElementDeclarationImpl.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration;
-import org.eclipse.jdt.core.dom.Expression;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.Type;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public class ASTBasedAnnotationElementDeclarationImpl 
-	extends ASTBasedMethodDeclarationImpl implements AnnotationTypeElementDeclaration{
-	
-	public ASTBasedAnnotationElementDeclarationImpl(
-			final AnnotationTypeMemberDeclaration astNode,
-			final IFile file,
-            final BaseProcessorEnv env)
-	{
-		super(astNode, file, env);
-	}
-
-	public void accept(DeclarationVisitor visitor) {
-		super.accept(visitor);
-		visitor.visitAnnotationTypeElementDeclaration(this);
-	}
-
-	public AnnotationTypeDeclaration getDeclaringType() {
-		return (AnnotationTypeDeclaration) super.getDeclaringType();
-	}
-
-	/**
-	 * @return the default value of this annotation element if one exists.
-	 *         Return null if the annotation element is defined in binary
-	 *         (feature not available right now). Return null if the annotation
-	 *         element is part of a seconary type that is defined outside the
-	 *         file associated with the environment.
-	 */
-	public AnnotationValue getDefaultValue() {
-		
-		final AnnotationTypeMemberDeclaration decl = getMemberAstNode();
-		if (decl != null){
-			final Expression defaultExpr = decl.getDefault();
-			if( defaultExpr != null )
-				return Factory.createDefaultValue(defaultExpr.resolveConstantExpressionValue(), this, _env);
-		}
-
-		return null;
-	}
-
-	public ASTNode getAstNodeForDefault() {
-		final AnnotationTypeMemberDeclaration decl = (AnnotationTypeMemberDeclaration) getAstNode();
-		if (decl != null)
-			return decl.getDefault();
-
-		return null;
-	}
-	
-	public boolean isVarArgs(){ return false; }
-
-    public String getSimpleName()
-    {
-    	final AnnotationTypeMemberDeclaration memberAstNode = getMemberAstNode(); 
-    	final SimpleName nameNode = memberAstNode.getName();
-    	return nameNode == null ? EMPTY_STRING : nameNode.getIdentifier();
-    }  
-    
-    public TypeMirror getReturnType()
-    {
-    	final AnnotationTypeMemberDeclaration memberAstNode = getMemberAstNode();
-    	final Type retType = memberAstNode.getType();
-    	// some funny error case where the return type is missing but it's not a constructor.
-    	if( retType == null )
-    		return Factory.createErrorClassType(EMPTY_STRING);
-        final ITypeBinding typeBinding = retType.resolveBinding();
-        // This is most likely the reason that we end up with an ast based implementation.
-        if( typeBinding == null ){
-        	return Factory.createErrorClassType(retType.toString());
-        }
-        else{
-        	final TypeMirror type = Factory.createTypeMirror(typeBinding, _env);
-            if(retType == null )
-                return Factory.createErrorClassType(retType.toString());
-            return type;
-        }
-    }
-	
-	public String toString()
-    {
-        final StringBuilder buffer = new StringBuilder();
-        final AnnotationTypeMemberDeclaration memberAstNode = (AnnotationTypeMemberDeclaration) getAstNode();
-
-        if( memberAstNode.getType() != null )
-            buffer.append(memberAstNode.getType());
-        buffer.append(' ');
-        buffer.append(memberAstNode.getName());
-        buffer.append("()"); //$NON-NLS-1$
-
-        return buffer.toString();
-    }
-
-	public Collection<ParameterDeclaration> getParameters() {
-		return Collections.emptyList();
-	}
-
-	public MirrorKind kind() {
-		return MirrorKind.ANNOTATION_ELEMENT;
-	}
-	
-	private AnnotationTypeMemberDeclaration getMemberAstNode(){ 
-		return (AnnotationTypeMemberDeclaration)_astNode; 
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedDeclarationImpl.java
deleted file mode 100644
index 0479504..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedDeclarationImpl.java
+++ /dev/null
@@ -1,213 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.BodyDeclaration;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.IExtendedModifier;
-import org.eclipse.jdt.core.dom.IResolvedAnnotation;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.VariableDeclaration;
-import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.Modifier;
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * Most mirror implementation are based on bindings but in some cases because of
- * incomplete information no bindings will be created at all. This implementation 
- * is to allow clients to get to the partial information that's available on certain
- * declarations.
- * 
- * The prefered implementation of the API is to rely on the binding since it is a more
- * complete and versatile representation of a declaration.
- */
-public abstract class ASTBasedDeclarationImpl extends EclipseDeclarationImpl {
-
-	static final String EMPTY_STRING = ""; //$NON-NLS-1$
-	/** either a <code>BodyDeclaration</code> or a <code>VariableDeclaration</code> */
-	protected final ASTNode _astNode;
-	/** the file which this ast node came from */
-	protected final IFile _file;
-	public ASTBasedDeclarationImpl(
-			ASTNode astNode,
-			IFile file,
-			BaseProcessorEnv env)
-	{
-		super(env);
-		assert astNode != null : "ast node cannot be missing"; //$NON-NLS-1$
-		assert file != null : "file cannot be missing";//$NON-NLS-1$
-		
-		assert astNode instanceof BodyDeclaration || 
-		   astNode instanceof VariableDeclaration :
-		   "ast node must be either a body declaration or a variable declaration"; //$NON-NLS-1$
-		
-		_astNode = astNode;
-		_file = file;
-	}
-	
-	public Collection<Modifier> getModifiers()
-	{
-		int modBits = 0;
-		if( _astNode instanceof BodyDeclaration )
-			modBits = ((BodyDeclaration)_astNode).getModifiers();
-		else if( _astNode instanceof SingleVariableDeclaration )
-			modBits = ((SingleVariableDeclaration)_astNode).getModifiers();
-		else{
-			ASTNode parent = ((VariableDeclarationFragment)_astNode).getParent();
-			if( _astNode instanceof BodyDeclaration )
-				modBits = ((BodyDeclaration)parent).getModifiers();
-		}
-		
-		return getModifiers(modBits);
-	}
-	
-	private Collection<Modifier> getModifiers(int modBits)
-	{	
-		final List<Modifier> mods = new ArrayList<Modifier>(4);
-        if( org.eclipse.jdt.core.dom.Modifier.isAbstract(modBits) )		
-        	mods.add(Modifier.ABSTRACT);
-        if( org.eclipse.jdt.core.dom.Modifier.isFinal(modBits) ) 		
-        	mods.add(Modifier.FINAL);
-        if( org.eclipse.jdt.core.dom.Modifier.isNative(modBits) ) 		
-        	mods.add(Modifier.NATIVE);
-        if( org.eclipse.jdt.core.dom.Modifier.isPrivate(modBits) ) 		
-        	mods.add(Modifier.PRIVATE);
-        if( org.eclipse.jdt.core.dom.Modifier.isProtected(modBits) ) 
-        	mods.add(Modifier.PROTECTED);
-        if( org.eclipse.jdt.core.dom.Modifier.isPublic(modBits) ) 	
-        	mods.add(Modifier.PUBLIC);
-        if( org.eclipse.jdt.core.dom.Modifier.isStatic(modBits) ) 	
-        	mods.add(Modifier.STATIC);
-        if( org.eclipse.jdt.core.dom.Modifier.isStrictfp(modBits) ) 
-        	mods.add(Modifier.STRICTFP);
-        if( org.eclipse.jdt.core.dom.Modifier.isSynchronized(modBits) ) 
-        	mods.add(Modifier.SYNCHRONIZED);
-        if( org.eclipse.jdt.core.dom.Modifier.isTransient(modBits) ) 
-        	mods.add(Modifier.TRANSIENT);
-        if( org.eclipse.jdt.core.dom.Modifier.isVolatile(modBits) ) 	
-        	mods.add(Modifier.VOLATILE);
-        return mods;
-		
-	}
-	
-	public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
-    {
-		final IResolvedAnnotation[] instances = getAnnotationInstancesFromAST();
-		return _getAnnotation(annotationClass, instances);
-    }
-
-    public Collection<AnnotationMirror> getAnnotationMirrors()
-    {
-		final IResolvedAnnotation[] instances = getAnnotationInstancesFromAST();
-		return _getAnnotationMirrors(instances);		
-    }
-	
-	private IResolvedAnnotation[] getAnnotationInstancesFromAST()
-	{	
-		IResolvedAnnotation[] instances = null;
-		List extendsMods = null;
-		switch( _astNode.getNodeType() )
-		{
-		case ASTNode.TYPE_DECLARATION:
-		case ASTNode.ANNOTATION_TYPE_DECLARATION:
-		case ASTNode.ENUM_DECLARATION:
-		case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
-		case ASTNode.METHOD_DECLARATION:
-		case ASTNode.FIELD_DECLARATION:
-		case ASTNode.ENUM_CONSTANT_DECLARATION:
-			extendsMods = ((BodyDeclaration)_astNode).modifiers();
-			break;
-			
-		case ASTNode.SINGLE_VARIABLE_DECLARATION:
-			extendsMods = ((SingleVariableDeclaration)_astNode).modifiers();
-			break;
-		case ASTNode.VARIABLE_DECLARATION_FRAGMENT:
-			final ASTNode parent = ((VariableDeclarationFragment)_astNode).getParent();
-			if( parent instanceof BodyDeclaration )
-				extendsMods = ((BodyDeclaration)parent).modifiers();
-			break;
-			
-		default:			
-			throw new IllegalStateException();
-		}
-		if( extendsMods != null ){
-			int count = 0;
-			for( Object obj : extendsMods ){
-				final IExtendedModifier extMod = (IExtendedModifier)obj;
-				if( extMod.isAnnotation() )
-					count ++;
-			}
-			instances = new IResolvedAnnotation[count];
-			int index = 0;
-			for( Object obj : extendsMods ){
-				final IExtendedModifier extMod = (IExtendedModifier)obj;
-				if( extMod.isAnnotation() )
-					instances[index ++] = 
-						((org.eclipse.jdt.core.dom.Annotation)extMod).resolveAnnotation();
-			}
-		}
-		return instances;
-	}
-	
-	public boolean isFromSource(){ return true; }
-	
-	ASTNode getAstNode(){
-		return _astNode;
-	}   
-
-    CompilationUnit getCompilationUnit(){
-        return (CompilationUnit)_astNode.getRoot();
-    }
-
-	public IFile getResource(){
-		return _file;
-	}
-	
-	public SourcePosition getPosition()
-	{
-		final ASTNode node = getRangeNode();
-		if( node == null ) return null;			       
-        final CompilationUnit unit = getCompilationUnit();
-        final int start = node.getStartPosition();    		
-        return new SourcePositionImpl(
-        		start,
-				node.getLength(),
-				unit.lineNumber(start),
-				unit.columnNumber(start),
-				this);
-    
-	}
-	
-	public boolean isBindingBased(){ return false; }
-	
-	public boolean equals(Object obj)
-    {
-        if(obj instanceof ASTBasedDeclarationImpl)
-        	return _astNode == ((ASTBasedDeclarationImpl)obj)._astNode;
-            
-        return false;
-    }
-	
-	public int hashCode(){ 
-		return _astNode.hashCode();
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedFieldDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedFieldDeclarationImpl.java
deleted file mode 100644
index 35ee806..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedFieldDeclarationImpl.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.Expression;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.Type;
-import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
-
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-
-/**
- * This field declaration implementation is based on the variable declaration 
- * fragment ast node in the parse tree.
- * The most common scenario where such implementation is required is when 
- * the type of the field cannot be resolved. In this case, the jdt will not 
- * create the field binding. Information such as the declaring type as well 
- * as the name of the field will still be captured and make available to clients.
- */
-public class ASTBasedFieldDeclarationImpl 
-	extends ASTBasedMemberDeclarationImpl 
-	implements FieldDeclaration {
-	
-	public ASTBasedFieldDeclarationImpl(
-			final VariableDeclarationFragment astNode, 
-			final IFile file,
-			final BaseProcessorEnv env)
-    {
-		super(astNode, file, env);
-		assert astNode.getParent() != null && 
-			   astNode.getParent().getNodeType() == ASTNode.FIELD_DECLARATION :
-			   "parent isn't a field declaration"; //$NON-NLS-1$
-    }
-	
-	public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitFieldDeclaration(this);
-    }
-
-    public String getConstantExpression()
-    {
-        final Object constant = getConstantValue();
-        if( constant == null ) return null;
-        return constant.toString();   
-    }
-
-    public Object getConstantValue()
-    {
-    	final VariableDeclarationFragment fragment = getAstNode();
-    	final Expression initializer = fragment.getInitializer();
-        if( initializer == null ) return null;
-        return initializer.resolveConstantExpressionValue();
-    }
-    
-    public String getSimpleName() {
-		final VariableDeclarationFragment fragment = getAstNode();			
-		final SimpleName nameNode = fragment.getName();
-		return nameNode == null ? EMPTY_STRING : nameNode.getIdentifier();
-	}
-
-    public TypeMirror getType()
-    {
-        final org.eclipse.jdt.core.dom.FieldDeclaration fieldASTNode = getFieldDeclarationAstNode();
-        final Type type = fieldASTNode.getType();
-        if( type == null )
-        	return null;
-        final ITypeBinding typeBinding = type.resolveBinding();
-        // This is probably why we end up with an ast based implementation.
-        if( typeBinding == null )
-        	return Factory.createErrorClassType(type.toString());
-        else{
-	        TypeMirror typeMirror = Factory.createTypeMirror( typeBinding, _env );
-	        if( typeMirror == null )
-	        	typeMirror = Factory.createErrorClassType(typeBinding);
-	        return typeMirror;
-        }
-    }
-    
-    public String toString()
-    {
-    	/*
-    	final org.eclipse.jdt.core.dom.FieldDeclaration fieldASTNode = getFieldDeclarationAstNode(); 
-    	StringBuilder buffer = new StringBuilder();
-    	final Type type = fieldASTNode.getType();
-        if( type != null ){
-        	buffer.append(type);
-        	buffer.append(' ');
-        }
-        buffer.append( getSimpleName() );
-        
-        return buffer.toString();
-        */
-    	return getSimpleName();
-    }
-
-    public MirrorKind kind(){ return MirrorKind.FIELD; }    
-    
-    VariableDeclarationFragment getAstNode()
-    {
-    	return (VariableDeclarationFragment)_astNode;
-    }
-    
-    org.eclipse.jdt.core.dom.FieldDeclaration getFieldDeclarationAstNode()
-    {
-    	return (org.eclipse.jdt.core.dom.FieldDeclaration)_astNode.getParent();
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMemberDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMemberDeclarationImpl.java
deleted file mode 100644
index 2180419..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMemberDeclarationImpl.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.jdt.core.dom.BodyDeclaration;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import com.sun.mirror.declaration.MemberDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public abstract class ASTBasedMemberDeclarationImpl 
-	extends ASTBasedDeclarationImpl implements MemberDeclaration{
-	
-	public ASTBasedMemberDeclarationImpl(
-			ASTNode astNode,
-			IFile file,
-			BaseProcessorEnv env)
-	{
-		super(astNode, file, env);
-	}
-	
-	public void accept(DeclarationVisitor visitor) {
-		super.accept(visitor);
-        visitor.visitMemberDeclaration(this);
-	}
-    
-    public TypeDeclaration getDeclaringType()
-    {
-	    final AbstractTypeDeclaration parentType = getContainingTypeAstNode();
-	    // most likely a mal-formed text.
-	    if( parentType == null ) 
-	    	return null;
-	    
-	    final ITypeBinding parentTypeBinding = parentType.resolveBinding();
-	    if( parentTypeBinding == null )
-	    	throw new UnsupportedOperationException("Type declaration that doesn't have binding"); //$NON-NLS-1$
-	    return Factory.createReferenceType(parentTypeBinding, _env);
-    }
-    
-    public String getDocComment()
-    {   
-    	final ASTNode node = getAstNode();        	
-    	
-		if( node instanceof BodyDeclaration )
-			return getDocComment((BodyDeclaration)node);
-
-		else if( node.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT ){
-			final ASTNode parent = node.getParent();
-			// a field declaration
-			if( parent instanceof BodyDeclaration )
-				return getDocComment((BodyDeclaration)parent);
-			
-		}
-		return EMPTY_STRING;
-    }
-    
-    /**     
-     * @return the closest ancestor to the ast node in this instance that
-     * is a type declaration node or <code>null</code> if none is found.
-     */
-    protected AbstractTypeDeclaration getContainingTypeAstNode()
-    {
-    	ASTNode cur = _astNode;
-    	while(cur != null){
-    		switch(cur.getNodeType()){
-    		case ASTNode.ANNOTATION_TYPE_DECLARATION:
-    		case ASTNode.ENUM_DECLARATION:
-    		case ASTNode.TYPE_DECLARATION:
-    			return (AbstractTypeDeclaration)cur;
-    		}
-    		cur = cur.getParent();
-    	}
-    	return null;
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMethodDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMethodDeclarationImpl.java
deleted file mode 100644
index 0e7d4a6..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ASTBasedMethodDeclarationImpl.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.Type;
-import org.eclipse.jdt.core.dom.TypeParameter;
-
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.declaration.TypeParameterDeclaration;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public class ASTBasedMethodDeclarationImpl 
-	extends ASTBasedMemberDeclarationImpl 
-	implements MethodDeclaration{
-
-	public ASTBasedMethodDeclarationImpl(
-			final org.eclipse.jdt.core.dom.BodyDeclaration astNode, 
-			final IFile file,
-			final BaseProcessorEnv env)
-	{
-		super(astNode, file, env);
-	}
-	
-	public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitExecutableDeclaration(this);
-        visitor.visitMethodDeclaration(this);
-    }
-	
-    public Collection<TypeParameterDeclaration> getFormalTypeParameters()
-    {
-    	return ExecutableUtil.getFormalTypeParameters(this, _env);
-    }
-    
-    public Collection<ParameterDeclaration> getParameters()
-    {
-    	return ExecutableUtil.getParameters(this, _env);
-    }
-
-    public Collection<ReferenceType> getThrownTypes()
-    {
-    	return ExecutableUtil.getThrownTypes(this, _env);
-    }
-
-    public boolean isVarArgs()
-    {
-        return getMethodAstNode().isVarargs();
-    }
-
-    public String getSimpleName()
-    {
-    	final org.eclipse.jdt.core.dom.MethodDeclaration methodAstNode = getMethodAstNode(); 
-    	final SimpleName nameNode = methodAstNode.getName();
-    	return nameNode == null ? EMPTY_STRING : nameNode.getIdentifier();
-    }  
-    
-    public TypeMirror getReturnType()
-    {
-    	final org.eclipse.jdt.core.dom.MethodDeclaration methodAstNode = getMethodAstNode();
-    	final Type retType = methodAstNode.getReturnType2();
-    	// some funny error case where the return type is missing but it's not a constructor.
-    	if( retType == null )
-    		return Factory.createErrorClassType(EMPTY_STRING);
-        final ITypeBinding typeBinding = retType.resolveBinding();
-        // This is most likely the reason that we end up with an ast based implementation.
-        if( typeBinding == null ){
-        	return Factory.createErrorClassType(retType.toString());
-        }
-        else{
-        	final TypeMirror type = Factory.createTypeMirror(typeBinding, _env);
-            if(retType == null )
-                return Factory.createErrorClassType(retType.toString());
-            return type;
-        }
-    }
-    
-    public MirrorKind kind(){ return MirrorKind.METHOD; }
-	
-	private org.eclipse.jdt.core.dom.MethodDeclaration getMethodAstNode(){ 
-		return (org.eclipse.jdt.core.dom.MethodDeclaration)_astNode; 
-	}
-	
-	public String toString()
-    {
-        final StringBuilder buffer = new StringBuilder();
-        final org.eclipse.jdt.core.dom.MethodDeclaration methodAstNode = getMethodAstNode();
-        @SuppressWarnings("unchecked") //$NON-NLS-1$
-    	final List<TypeParameter> typeParams = methodAstNode.typeParameters();
-        if( typeParams != null && typeParams.size() > 0 ){
-        	 buffer.append('<');
-             for(int i=0, size=typeParams.size(); i<size; i++ ){
-                 if( i != 0 )
-                     buffer.append(", "); //$NON-NLS-1$
-                 buffer.append(typeParams.get(i).toString());
-             }
-             buffer.append('>');
-        }
-
-        if( methodAstNode.getReturnType2() != null )
-            buffer.append(methodAstNode.getReturnType2());
-        buffer.append(' ');
-        buffer.append(methodAstNode.getName());
-        buffer.append('(');
-        int i=0;
-        @SuppressWarnings("unchecked") //$NON-NLS-1$
-    	final List<SingleVariableDeclaration> params = methodAstNode.parameters();
-        for( SingleVariableDeclaration param : params ){
-            if( i++ != 0 )
-                buffer.append(", "); //$NON-NLS-1$
-            buffer.append(param.getName());
-        }
-        buffer.append(')');
-
-        return buffer.toString();
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationDeclarationImpl.java
deleted file mode 100644
index 428ad18..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationDeclarationImpl.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration; 
-
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.TypeVisitor;
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class AnnotationDeclarationImpl extends InterfaceDeclarationImpl implements AnnotationTypeDeclaration, AnnotationType
-{    
-    public AnnotationDeclarationImpl(final ITypeBinding binding, final BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert binding.isAnnotation() : "binding does not represent a annotation "; //$NON-NLS-1$
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitAnnotationTypeDeclaration(this);
-    }
-
-    public Collection<AnnotationTypeElementDeclaration> getMethods()
-    {
-        return (Collection<AnnotationTypeElementDeclaration>)_getMethods();
-    }
-
-    // start of implementation of AnnotationType API
-    public void accept(TypeVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitAnnotationType(this);
-    }
-
-    public AnnotationTypeDeclaration getDeclaration()
-    {
-        return (AnnotationTypeDeclaration)super.getDeclaration();
-    }
-    // end of implementation of AnnotationType API
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_ANNOTATION; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationElementDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationElementDeclarationImpl.java
deleted file mode 100644
index 3423d86..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationElementDeclarationImpl.java
+++ /dev/null
@@ -1,72 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-
-public class AnnotationElementDeclarationImpl extends MethodDeclarationImpl implements AnnotationTypeElementDeclaration
-{
-    public AnnotationElementDeclarationImpl(final IMethodBinding binding,
-                                            final BaseProcessorEnv env)
-    {
-        super(binding, env);
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitAnnotationTypeElementDeclaration(this);
-    }
-
-    public AnnotationTypeDeclaration getDeclaringType()
-    {
-        return (AnnotationTypeDeclaration)super.getDeclaringType();
-    }
-
-	/**
-	 * @return the default value of this annotation element if one exists.
-	 * 		   Return null if the annotation element is defined in binary (feature not available right now).
-	 *         Return null if the annotation element is part of a seconary type that is defined outside
-	 *         the file associated with the environment. 
-	 */
-    public AnnotationValue getDefaultValue()
-    {   
-		final IMethodBinding binding = getDeclarationBinding();
-		final Object defaultValue = binding.getDefaultValue();
-		return Factory.createDefaultValue(defaultValue, this, _env);      
-    }
-	
-	ASTNode getAstNodeForDefault()
-	{
-		final AnnotationTypeMemberDeclaration decl = (AnnotationTypeMemberDeclaration)getAstNode();
-		if( decl != null )
-			return decl.getDefault();
-		
-		return null;
-	}
-
-    public Collection<ParameterDeclaration> getParameters(){ return Collections.emptyList(); }
-
-    public MirrorKind kind(){ return MirrorKind.ANNOTATION_ELEMENT; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationMirrorImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationMirrorImpl.java
deleted file mode 100644
index aaa914e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationMirrorImpl.java
+++ /dev/null
@@ -1,432 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.lang.reflect.Array;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.lang.reflect.Proxy;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.AnnotationInvocationHandler;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.ArrayInitializer;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.Expression;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.IResolvedAnnotation;
-import org.eclipse.jdt.core.dom.IResolvedMemberValuePair;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-import org.eclipse.jdt.core.dom.MemberValuePair;
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
-import org.eclipse.jdt.core.dom.TypeLiteral;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * Annotation instance from source.
- */
-public class AnnotationMirrorImpl implements AnnotationMirror, EclipseMirrorImpl
-{
-    /**The ast node that correspond to the annotation.*/
-    private final IResolvedAnnotation _domAnnotation;
-    private final BaseProcessorEnv _env;
-    /** the declaration that is annotated by this annotation or the annotation element declaration
-     *  if this is (part of) a default value*/
-    private final EclipseDeclarationImpl _annotated;
-    
-    public AnnotationMirrorImpl(IResolvedAnnotation annotationAstNode, EclipseDeclarationImpl decl, BaseProcessorEnv env)
-    {
-		_domAnnotation = annotationAstNode;
-        _env = env;
-        _annotated = decl;
-        assert _domAnnotation != null : "annotation node missing."; //$NON-NLS-1$
-        assert _annotated   != null : "missing the declaration that is annotated with this annotation."; //$NON-NLS-1$
-    }
-	
-    public AnnotationType getAnnotationType()
-    {		
-        final ITypeBinding binding = _domAnnotation.getAnnotationType();
-        if( binding == null ){
-        	final ASTNode node = _annotated.getCompilationUnit().findDeclaringNode(_domAnnotation);
-        	String name = ""; //$NON-NLS-1$
-        	if( node != null && node instanceof Annotation ){
-        		final Name typeNameNode = ((Annotation)node).getTypeName();
-        		if( typeNameNode != null )
-        			name = typeNameNode.toString();
-        	}
-        	return Factory.createErrorAnnotationType(name);
-        }
-        else
-        	return (AnnotationType)Factory.createReferenceType(binding, _env);        
-    }
-
-    public Map<AnnotationTypeElementDeclaration, AnnotationValue> getElementValues()
-    {
-		final IResolvedMemberValuePair[] pairs = _domAnnotation.getDeclaredMemberValuePairs();
-		if (pairs.length == 0) {
-			return Collections.emptyMap();
-		}
-		
-		final Map<AnnotationTypeElementDeclaration, AnnotationValue> result =
-			new LinkedHashMap<AnnotationTypeElementDeclaration, AnnotationValue>(pairs.length * 4 / 3 + 1 );
-		for( IResolvedMemberValuePair pair : pairs ){
-			 final String name = pair.getName();
-             if( name == null ) continue;
-             IMethodBinding elementMethod = pair.getMemberBinding();            
-             if( elementMethod != null ){           
-                 final EclipseDeclarationImpl mirrorDecl = Factory.createDeclaration(elementMethod, _env);
-                 if( mirrorDecl != null && mirrorDecl.kind() == EclipseMirrorImpl.MirrorKind.ANNOTATION_ELEMENT  )
-                 {
-                	 final AnnotationTypeElementDeclaration elementDecl = 
-                		 (AnnotationTypeElementDeclaration)mirrorDecl;
-                	 final AnnotationValue annoValue = 
-    					 Factory.createAnnotationMemberValue(pair.getValue(), name, this, _env, elementDecl.getReturnType());
-                	 if( annoValue != null )
-                		 result.put( elementDecl, annoValue);
-                 }
-             }
-		}
-        return result;
-    }
-
-    public SourcePosition getPosition()
-    {
-		if( isFromSource() ){
-			final CompilationUnit unit = _annotated.getCompilationUnit();
-			final org.eclipse.jdt.core.dom.Annotation annotation = getAstNode();
-			if( annotation == null ) return null;
-			org.eclipse.jdt.core.dom.ASTNode astNode = annotation.getTypeName();
-			if( astNode == null )
-				astNode = annotation;
-			
-			final int offset = astNode.getStartPosition();			
-			return new SourcePositionImpl(astNode.getStartPosition(),
-										  astNode.getLength(),
-						                  unit.lineNumber(offset),
-						                  unit.columnNumber(offset), 
-						                  _annotated);
-		}
-		return null;
-    }
-
-    public String toString()
-    {
-		return _domAnnotation.toString();			
-    }
-
-    /**
-     * @return the type(s) of the member value named <code>membername</code>.
-     * If the value is a class literal, then return the type binding corresponding to the type requested.
-     * Otherwise, return the type of the expression.
-     * If the value is an array initialization, then the type of each of the initialization expresion will
-     * be returned. Return null if no match is found.
-     */
-    public ITypeBinding[] getMemberValueTypeBinding(String membername)
-    {
-        if( membername == null ) return null;
-		final IResolvedMemberValuePair[] declaredPairs = _domAnnotation.getDeclaredMemberValuePairs();
-		for( IResolvedMemberValuePair pair : declaredPairs ){			
-			if( membername.equals(pair.getName()) ){
-				final Object value = pair.getValue();
-				return getValueTypeBinding(value, pair.getMemberBinding().getReturnType());
-			}
-		}
-      
-        // didn't find it in the ast, check the default values.
-        final IMethodBinding binding = getMethodBinding(membername);
-		if(binding == null ) return null;
-		final Object defaultValue = binding.getDefaultValue();
-		if( defaultValue != null )		
-			return getValueTypeBinding(defaultValue, binding.getReturnType() );
-		else
-			return null;		
-    }
-	
-	private ITypeBinding[] getValueTypeBinding(Object value, final ITypeBinding resolvedType)
-	{
-		if( value == null ) return null;		
-		if( resolvedType.isPrimitive() ||  resolvedType.isAnnotation() || value instanceof String )
-			return new ITypeBinding[]{ resolvedType };
-		else if( resolvedType.isArray() ){
-			final Object[] elements = (Object[])value;
-			final ITypeBinding[] result = new ITypeBinding[elements.length];
-			final ITypeBinding leafType = resolvedType.getElementType();
-			for(int i=0, len = elements.length; i<len; i++ ){
-				final ITypeBinding[] t = getValueTypeBinding(elements[i], leafType);
-				result[i] = t == null ? null : t[0];
-			}
-			return result;
-		}		 
-		else if( value instanceof IVariableBinding )
-			return new ITypeBinding[]{ ( (IVariableBinding)value ).getDeclaringClass() };
-		else if( value instanceof ITypeBinding )
-			return new ITypeBinding[]{ (ITypeBinding)value };
-		else
-			throw new IllegalStateException("value = " + value + " resolvedType = " + resolvedType ); //$NON-NLS-1$ //$NON-NLS-2$
-		
-	}
-
-    private ITypeBinding[] getExpressionTypeBindings(Expression expr)
-    {
-        if(expr == null) return null;
-        switch(expr.getNodeType())
-        {
-        case ASTNode.ARRAY_INITIALIZER:
-            final ArrayInitializer arrayInit = (ArrayInitializer)expr;
-            final List<Expression> exprs = arrayInit.expressions();
-            if( exprs == null || exprs.size() == 0 )
-                return new ITypeBinding[0];
-            final ITypeBinding[] bindings = new ITypeBinding[exprs.size()];
-            for( int i=0, size = exprs.size(); i<size; i++ ){
-                final Expression initExpr = exprs.get(i);
-                bindings[i] = getExpressionTypeBinding(initExpr);
-            }
-            return bindings;
-        default:
-            return new ITypeBinding[]{ getExpressionTypeBinding(expr) };
-        }
-    }
-
-    private ITypeBinding getExpressionTypeBinding(Expression expr)
-    {
-        if( expr.getNodeType() == ASTNode.TYPE_LITERAL )
-            return  ((TypeLiteral)expr).getType().resolveBinding();
-        else
-            return expr.resolveTypeBinding();
-    }
-
-    /**
-     * @param memberName the name of the member
-     * @return the value of the given member
-     */
-    private Object getValue(final String memberName)
-    {
-		if( memberName == null ) return null;
-		final IResolvedMemberValuePair[] declaredPairs = _domAnnotation.getDeclaredMemberValuePairs();
-		for( IResolvedMemberValuePair pair : declaredPairs ){			
-			if( memberName.equals(pair.getName()) ){
-				return pair.getValue();				
-			}
-		}
-      
-        // didn't find it in the ast, check the default values.
-        final IMethodBinding binding = getMethodBinding(memberName);
-		if(binding == null ) return null;
-		return binding.getDefaultValue();
-    }
-
-    /**
-     * @return the method binding that matches the given name from the annotation type
-     *         referenced by this annotation.
-     */
-    public IMethodBinding getMethodBinding(final String memberName)
-    {
-        if( memberName == null ) return null;
-        final ITypeBinding typeBinding = _domAnnotation.getAnnotationType();
-		if( typeBinding == null ) return null;
-        final IMethodBinding[] methods  = typeBinding.getDeclaredMethods();
-        for( IMethodBinding method : methods ){
-            if( memberName.equals(method.getName()) )
-                return method;
-        }
-        return null;
-    }
-    
-    public IResolvedAnnotation getResolvedAnnotaion(){return _domAnnotation; }
-
-    public Object getReflectionValue(String memberName, Method method)
-        throws Throwable
-    {
-        if(memberName == null || memberName.length() == 0 ) return null;
-        final Class targetType = method.getReturnType();
-        final Object value = getValue(memberName);	
-        return getReflectionValue(value, targetType);
-    }
-
-    private Object getReflectionValue(final Object value, final Class targetType)
-        throws Throwable
-    {
-        if( value == null ) return null;
-        else if(value instanceof Boolean   ||
-				value instanceof Byte      ||
-				value instanceof Character ||
-				value instanceof Double    || 
-				value instanceof Float     ||
-				value instanceof Integer   ||
-				value instanceof Long      ||
-				value instanceof Short     ||
-				value instanceof String ) 
-			return value;
-        else if( value instanceof IVariableBinding )
-		{
-			final IVariableBinding varBinding = (IVariableBinding)value;
-            final ITypeBinding declaringClass = varBinding.getDeclaringClass();
-            if( declaringClass != null ){
-         
-                final Field returnedField = targetType.getField( varBinding.getName() );
-                if (returnedField == null)
-                	return null;
-                if( returnedField.getType() != targetType )
-                    throw new ClassCastException( targetType.getName() );
-                return returnedField.get(null);
-            }
-		}
-        else if (value instanceof Object[])
-		{
-			final Object[] elements = (Object[])value;
-			assert targetType.isArray();
-            final Class componentType = targetType.getComponentType();
-            final int length = elements.length;;
-            final Object array = Array.newInstance(componentType, length);
-            if( length == 0) return array;
-
-            for( int i=0; i<length; i++ ){                
-                final Object returnObj = getReflectionValue( elements[i], componentType );
-                // fill in the array.
-                // If it is an array of some primitive type, we will need to unwrap it.
-                if( componentType.isPrimitive() ){
-                    if( componentType == boolean.class ){
-                        final Boolean bool = (Boolean)returnObj;
-                        Array.setBoolean( array, i, bool.booleanValue());
-                    }
-                    else if( componentType == byte.class ){
-                        final Byte b = (Byte)returnObj;
-                        Array.setByte( array, i, b.byteValue() );
-                    }
-                    else if( componentType == char.class ){
-                        final Character c = (Character)returnObj;
-                        Array.setChar( array, i, c.charValue() );
-                    }
-                    else if( componentType == double.class ){
-                        final Double d = (Double)returnObj;
-                        Array.setDouble( array, i, d.doubleValue() );
-                    }
-                    else if( componentType == float.class ){
-                        final Float f = (Float)returnObj;
-                        Array.setFloat( array, i, f.floatValue() );
-                    }
-                    else if( componentType == int.class ){
-                        final Integer integer = (Integer)returnObj;
-                        Array.setInt( array, i, integer.intValue() );
-                    }
-                    else if( componentType == long.class ){
-                        final Long l = (Long)returnObj;
-                        Array.setLong( array, i, l.longValue() );
-                    }
-                    else if( componentType == short.class ){
-                        final Short s = (Short)returnObj;
-                        Array.setShort( array, i, s.shortValue() );
-                    }
-                    else {
-                        throw new IllegalStateException("unrecognized primitive type: "  + componentType ); //$NON-NLS-1$
-                    }
-                }
-                else{
-                    Array.set( array, i, returnObj );
-                }
-            }
-            return array;
-		}
-		// caller should have caught this case.
-        else if( value instanceof ITypeBinding )
-			throw new IllegalStateException();
-		
-        else if( value instanceof IResolvedAnnotation )
-		{
-			final AnnotationMirrorImpl annoMirror =
-                (AnnotationMirrorImpl)Factory.createAnnotationMirror((IResolvedAnnotation)value, _annotated, _env);
-            final AnnotationInvocationHandler handler = new AnnotationInvocationHandler(annoMirror, targetType);
-            return Proxy.newProxyInstance(targetType.getClassLoader(),
-                                             new Class[]{ targetType }, handler );
-		}
-
-        return null;
-    }
-
-    public MirrorKind kind(){ return MirrorKind.ANNOTATION_MIRROR; }
-
-    boolean isFromSource()
-	{  
-		return _annotated.isFromSource();		
-	}
-
-    org.eclipse.jdt.core.dom.Annotation getAstNode()
-	{ 
-		if( isFromSource() ){
-			final CompilationUnit unit = _annotated.getCompilationUnit();
-			final ASTNode node = unit.findDeclaringNode(_domAnnotation);
-			if( node instanceof org.eclipse.jdt.core.dom.Annotation )
-				return (org.eclipse.jdt.core.dom.Annotation)node;			
-		}	
-		return null;
-    }
-	
-	ASTNode getASTNodeForElement(String name)
-	{
-		if( name == null ) return null;
-		final org.eclipse.jdt.core.dom.Annotation anno = getAstNode();
-		if( anno != null ){
-			if( anno.isSingleMemberAnnotation() ){
-				if( "value".equals(name) ) //$NON-NLS-1$
-					return ((SingleMemberAnnotation)anno).getValue();
-			}
-			else if( anno.isNormalAnnotation() ){
-				final List<MemberValuePair> pairs = ((NormalAnnotation)anno).values();
-				for( MemberValuePair pair : pairs )
-				{
-					final String pairName = pair.getName() == null ? null : pair.getName().toString();
-					if( name.equals(pairName) )
-						return pair.getValue();
-				}
-			}
-		}
-		// marker annotation or no match.
-		return null;
-	}
-
-    CompilationUnit getCompilationUnit() { return _annotated.getCompilationUnit(); }
-
-	public BaseProcessorEnv getEnvironment(){ return _env; }
-	
-	public IFile getResource()
-	{ 	return _annotated.getResource(); }
-	
-	public EclipseDeclarationImpl getAnnotatedDeclaration(){ return _annotated; }
-
-    public boolean equals(Object obj){
-        if( obj instanceof AnnotationMirrorImpl ){
-            return ((AnnotationMirrorImpl)obj)._domAnnotation == _domAnnotation;
-        }
-        return false;
-    }
-
-    public int hashCode(){
-        return _domAnnotation.hashCode();
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationValueImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationValueImpl.java
deleted file mode 100644
index fa90d1b..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/AnnotationValueImpl.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.util.List;
-
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.util.SourcePosition;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ArrayInitializer;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-
-public class AnnotationValueImpl implements EclipseMirrorImpl, AnnotationValue
-{   
-	/**
-	 * Either the annotation that directly contains this annotation value
-	 * or an annotation method, which indicates that this is its default value.
-	 */
-	private EclipseMirrorImpl _parent;
-	private final BaseProcessorEnv _env;
-	/** the annotation value */
-	private final Object _value;
-	/** 
-	 *  The name of the element if this is a value from an annotation member value.
-	 *  <code>null</code> otherwise 
-	 */
-	private final String _name;
-	/**
-	 * If this is part of an array, then the index into the array.
-	 * <code>-1</code> when this doesn't apply
-	 */
-	private final int _index;
-
-	/**
-	 * 
-	 * @param value the default value of an annotation element declaration
-	 * @param element the annotation element declaration.
-	 * @param index zero-based index into the array if the this value is an array element.
-	 *        <code>-1</code> otherwise.
-	 * @param env
-	 */
-    public AnnotationValueImpl( final Object value,
-								final int index,
-								final AnnotationElementDeclarationImpl element,								
-								final BaseProcessorEnv env)
-    {
-	
-        _value = value;
-        _env = env;
-		_parent = element;     
-		_name = null;
-		_index = index;
-        assert _env != null : "missing environment"; //$NON-NLS-1$
-		assert _parent != null : "missing element"; //$NON-NLS-1$
-    }
-	
-	/**
-	 * 
-	 * @param value the annotation value
-	 * @param name the name of the element member
-	 * @param index zero-based index into the array if the this value is an array element.
-	 *        <code>-1</code> otherwise.
-	 * @param annotation the annotation containing this value
-	 * @param env
-	 */
-	public AnnotationValueImpl( final Object value,
-								final String name,
-								final int index,
-								final AnnotationMirrorImpl annotation,
-								final BaseProcessorEnv env)
-	{
-		assert value != null : "value is null"; //$NON-NLS-1$
-		_value = value;
-        _env = env;		
-		_parent = annotation;        
-		_name = name;
-		_index = index;
-        assert _env != null : "missing environment"; //$NON-NLS-1$
-		assert _parent != null : "missing element"; //$NON-NLS-1$
-	}
-	
-    public SourcePosition getPosition()
-    {		
-		final MirrorKind kind = _parent.kind();
-		ASTNode astNode = null;
-		switch(kind)
-		{
-		case ANNOTATION_MIRROR:
-			final AnnotationMirrorImpl anno = (AnnotationMirrorImpl)_parent;
-			astNode = anno.getASTNodeForElement(_name);
-			break;
-		case ANNOTATION_ELEMENT:
-			final AnnotationElementDeclarationImpl element = (AnnotationElementDeclarationImpl)_parent;
-			astNode = element.getAstNodeForDefault();			
-		default:
-			throw new IllegalStateException(); // should never reach this point.
-		}
-		// did not come from source.
-		if( astNode == null )
-			return null;
-		if( _index >= 0 && astNode.getNodeType() == ASTNode.ARRAY_INITIALIZER ){
-			final ArrayInitializer arrayInit = (ArrayInitializer)astNode;
-			final List exprs = arrayInit.expressions();
-			if (exprs != null && _index < exprs.size() )
-				astNode = (ASTNode)exprs.get(_index);			
-		}		
-		if( astNode == null ) return null;
-		
-        final CompilationUnit unit = getCompilationUnit();
-		if( unit == null ) return null;		
-		final int offset = astNode.getStartPosition();		
-        return new SourcePositionImpl(astNode.getStartPosition(),
-									  astNode.getLength(),
-                                      unit.lineNumber(offset),
-                                      unit.columnNumber(offset),
-                                      this);
-    }
-	
-	CompilationUnit getCompilationUnit()
-	{	
-		final MirrorKind kind = _parent.kind();
-		switch(kind)
-		{
-		case ANNOTATION_MIRROR:
-			return ((AnnotationMirrorImpl)_parent).getCompilationUnit();
-		case ANNOTATION_ELEMENT:
-			if( ((EclipseDeclarationImpl)_parent).isBindingBased() )
-				return ((AnnotationElementDeclarationImpl)_parent).getCompilationUnit();
-			else
-				return ((ASTBasedAnnotationElementDeclarationImpl)_parent).getCompilationUnit();
-		default:
-			throw new IllegalStateException(); // should never reach this point.
-		}
-	}
-	
-	public boolean isFromSource()
-	{
-		final MirrorKind kind = _parent.kind();
-		switch(kind)
-		{
-		case ANNOTATION_MIRROR:
-			return ((AnnotationMirrorImpl)_parent).isFromSource();
-		case ANNOTATION_ELEMENT:
-			if( ((EclipseDeclarationImpl)_parent).isBindingBased() )
-				return ((AnnotationElementDeclarationImpl)_parent).isFromSource();
-			else
-				return ((ASTBasedAnnotationElementDeclarationImpl)_parent).isFromSource();
-		default:
-			throw new IllegalStateException(); // should never reach this point.
-		}
-	}
-	
-	public IFile getResource()
-	{
-		final MirrorKind kind = _parent.kind();
-		switch(kind)
-		{
-		case ANNOTATION_MIRROR:
-			return ((AnnotationMirrorImpl)_parent).getResource();
-		case ANNOTATION_ELEMENT:
-			if( ((EclipseDeclarationImpl)_parent).isBindingBased() )
-				return ((AnnotationElementDeclarationImpl)_parent).getResource();
-			else
-				return ((ASTBasedAnnotationElementDeclarationImpl)_parent).getResource();
-		default:
-			throw new IllegalStateException(); // should never reach this point.
-		}
-	}
-
-    public Object getValue(){ return _value; }
-
-    public MirrorKind kind(){ return MirrorKind.ANNOTATION_VALUE; }
-	
-	public BaseProcessorEnv getEnvironment(){
-		return _env;
-	}
-	
-	public String toString(){ return _value == null ? "" : _value.toString();  } //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/BinaryParameterDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/BinaryParameterDeclarationImpl.java
deleted file mode 100644
index f499f60..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/BinaryParameterDeclarationImpl.java
+++ /dev/null
@@ -1,155 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.Modifier;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.SourcePosition;
-
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.IBinding;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.IResolvedAnnotation;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-
-/**
- * Represents a formal parameter that came from binary.
- */
-public class BinaryParameterDeclarationImpl extends DeclarationImpl implements ParameterDeclaration
-{   
-	static final String ARG = "arg"; //$NON-NLS-1$
-	private final ITypeBinding _type;
-	private final ExecutableDeclarationImpl _executable;
-	private final int _paramIndex;
-    /**
-     * Parameter declaration from binary
-     */
-    public BinaryParameterDeclarationImpl(ExecutableDeclarationImpl executable, 
-										  ITypeBinding typeBinding,
-                                          int index,
-                                          BaseProcessorEnv env)
-    {
-        super(typeBinding, env);
-        assert( typeBinding != null ) : "missing type binding"; //$NON-NLS-1$
-        assert( index >= 0 ) : "invalid index " + index; //$NON-NLS-1$
-        assert executable != null : "missing executable"; //$NON-NLS-1$
-        _type = typeBinding;
-        _paramIndex = index;
-        _executable = executable;
-    }
-    
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitParameterDeclaration(this);
-    }  
- 
-    public Collection<Modifier> getModifiers()
-    {
-		// TODO
-		// we don't store this information. so simply return nothing for now.
-        return Collections.emptyList();
-    }
-    
-    public String getDocComment()
-    {
-        return null;
-    }
-    
-    public String getSimpleName()
-    {
-        final SingleVariableDeclaration decl = (SingleVariableDeclaration)getAstNode();
-        if( decl == null ) return ARG + _paramIndex;
-        final SimpleName name = decl.getName();
-        return name == null ? ARG : name.toString();
-    }
-
-    public SourcePosition getPosition()
-    {
-        return null;
-    }        
-    
-    public TypeMirror getType()
-    {
-        final TypeMirror mirrorType = Factory.createTypeMirror(getTypeBinding(), _env);
-        if( mirrorType == null )
-            return Factory.createErrorClassType(getTypeBinding());
-        return mirrorType;
-    }
-    
-    public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
-    {
-		final IMethodBinding methodBinding = _executable.getDeclarationBinding();
-		final IResolvedAnnotation[] paramAnnos = methodBinding.getParameterAnnotations(_paramIndex); 
-        return _getAnnotation(annotationClass, paramAnnos);
-    }
-
-    public Collection<AnnotationMirror> getAnnotationMirrors()
-    {
-		final IMethodBinding methodBinding = _executable.getDeclarationBinding();
-		final IResolvedAnnotation[] paramAnnos = methodBinding.getParameterAnnotations(_paramIndex); 
-        return _getAnnotationMirrors(paramAnnos);
-    }    
-    
-	public boolean isBindingBased(){ return true; }
-	
-	public boolean isFromSource(){ return false; }
-
-    ASTNode getAstNode(){ return null; }
-
-    public IFile getResource(){ return null; }
-    
-    private ITypeBinding getTypeBinding(){ return _type; }
-    
-    public MirrorKind kind(){ return MirrorKind.FORMAL_PARAMETER; }
-    
-    public IBinding getDeclarationBinding(){
-    	throw new UnsupportedOperationException("should never be invoked on a BinaryParameterDeclaration"); //$NON-NLS-1$
-    }
-    
-    public boolean equals(Object obj){
-        if( obj instanceof BinaryParameterDeclarationImpl ){
-            final BinaryParameterDeclarationImpl otherParam = (BinaryParameterDeclarationImpl)obj;
-            return otherParam._paramIndex == _paramIndex  &&
-                   otherParam._executable.getDeclarationBinding().isEqualTo(_executable.getDeclarationBinding()) ;
-        }
-        return false;
-    }
-    
-    public int hashCode(){
-    	final String methodKey = _executable.getDeclarationBinding().getKey();
-    	int hashcode = 0;
-    	if( methodKey != null )
-    		hashcode = methodKey.hashCode();
-    	return hashcode + _paramIndex; 
-    }  
-    
-    public String toString(){		
-        final StringBuilder builder = new StringBuilder();
-        builder.append(getTypeBinding().getName());
-        builder.append(' ');
-        builder.append(getSimpleName());        
-        return builder.toString();
-    }
-} 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ClassDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ClassDeclarationImpl.java
deleted file mode 100644
index 869b8f0..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ClassDeclarationImpl.java
+++ /dev/null
@@ -1,92 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration; 
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-import com.sun.mirror.declaration.ClassDeclaration;
-import com.sun.mirror.declaration.ConstructorDeclaration;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.type.ClassType;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.TypeVisitor;
-
-public class ClassDeclarationImpl extends TypeDeclarationImpl implements ClassDeclaration, ClassType
-{
-    public ClassDeclarationImpl(final ITypeBinding binding, final BaseProcessorEnv env)
-    {
-        super(binding, env);
-        // Enum types return false for isClass().
-        assert !binding.isInterface();
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitClassDeclaration(this);
-    }
-
-    public Collection<ConstructorDeclaration> getConstructors()
-    {
-        final IMethodBinding[] methods = getDeclarationBinding().getDeclaredMethods();
-        final List<ConstructorDeclaration> results = new ArrayList<ConstructorDeclaration>(methods.length);
-        for( IMethodBinding method : methods ){
-            if( method.isSynthetic() ) continue;
-            if( method.isConstructor() ){
-                Declaration mirrorDecl = Factory.createDeclaration(method, _env);
-                if( mirrorDecl != null)
-                    results.add((ConstructorDeclaration)mirrorDecl);
-            }
-        }
-        return results;
-
-    }
-
-    public Collection<MethodDeclaration> getMethods()
-    {
-        return (Collection<MethodDeclaration>)_getMethods();
-    }
-
-    // Start of implementation of ClassType API
-    public void accept(TypeVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitClassType(this);
-    }
-
-    public ClassType getSuperclass()
-    {
-        final ITypeBinding superClass = getDeclarationBinding().getSuperclass();
-		if ( superClass == null )
-			return null;
-		else if( superClass.isClass() )
-            return (ClassType)Factory.createReferenceType(superClass, _env);
-        else // catch error case where user extends some interface instead of a class.
-            return Factory.createErrorClassType(superClass);
-    }
-
-    public ClassDeclaration getDeclaration()
-    {
-        return (ClassDeclaration)super.getDeclaration();        
-    }
-    // End of implementation of ClassType API
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_CLASS; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ConstructorDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ConstructorDeclarationImpl.java
deleted file mode 100644
index cb578c0..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ConstructorDeclarationImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-
-import com.sun.mirror.declaration.ConstructorDeclaration;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public class ConstructorDeclarationImpl extends ExecutableDeclarationImpl implements ConstructorDeclaration
-{
-    public ConstructorDeclarationImpl(final IMethodBinding binding, BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert binding.isConstructor() : "binding does not represent a constructor"; //$NON-NLS-1$
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitConstructorDeclaration(this);
-    }
-
-    public MirrorKind kind(){ return MirrorKind.CONSTRUCTOR; }
-
-    public String toString()
-    {
-        final StringBuilder buffer = new StringBuilder();
-        final IMethodBinding methodBinding = getDeclarationBinding();
-        buffer.append(methodBinding.getName());
-        buffer.append('(');
-        int i=0;
-        for( ParameterDeclaration param : getParameters() ){
-            if( i++ != 0 )
-                buffer.append(", "); //$NON-NLS-1$
-            buffer.append(param);
-        }
-        buffer.append(')');
-
-        return buffer.toString();
-    }
-}
-
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/DeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/DeclarationImpl.java
deleted file mode 100644
index 0df837e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/DeclarationImpl.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.IBinding;
-
-import com.sun.mirror.declaration.Modifier;
-
-public abstract class DeclarationImpl extends EclipseDeclarationImpl {
-	
-	/** the type binding corresponding to this declaration */
-	protected final IBinding _binding;
-	DeclarationImpl(final IBinding binding, final BaseProcessorEnv env )
-	{
-		super(env);
-		assert binding != null : "binding cannot be null"; //$NON-NLS-1$
-		_binding = binding;
-	}
-	
-	public boolean equals(Object obj)
-    {
-        if(obj instanceof DeclarationImpl)
-            return _binding.isEqualTo( ((DeclarationImpl)obj)._binding );
-            
-        return false;
-    }
-	
-	public int hashCode(){ 
-    	final String key = getDeclarationBinding().getKey();
-    	return key == null ? 0 : key.hashCode(); 
-    }
-	
-	 /**
-     * @return the binding that corresponds to the original declaration. 
-     * For parameterized type or raw type, return the generic type declaration binding.
-     * For parameterized method, return the method declaration binding that has the 
-     * type parameters not the one with the parameters substituted with type arguments.
-     * In other cases, simply return the same binding. 
-     */
-    public abstract IBinding getDeclarationBinding();
-    
-    public Collection<Modifier> getModifiers()
-    {
-        final int modBits = getDeclarationBinding().getModifiers();
-        final List<Modifier> mods = new ArrayList<Modifier>(4);
-        if( org.eclipse.jdt.core.dom.Modifier.isAbstract(modBits) )		
-        	mods.add(Modifier.ABSTRACT);
-        if( org.eclipse.jdt.core.dom.Modifier.isFinal(modBits) ) 		
-        	mods.add(Modifier.FINAL);
-        if( org.eclipse.jdt.core.dom.Modifier.isNative(modBits) ) 		
-        	mods.add(Modifier.NATIVE);
-        if( org.eclipse.jdt.core.dom.Modifier.isPrivate(modBits) ) 		
-        	mods.add(Modifier.PRIVATE);
-        if( org.eclipse.jdt.core.dom.Modifier.isProtected(modBits) ) 
-        	mods.add(Modifier.PROTECTED);
-        if( org.eclipse.jdt.core.dom.Modifier.isPublic(modBits) ) 	
-        	mods.add(Modifier.PUBLIC);
-        if( org.eclipse.jdt.core.dom.Modifier.isStatic(modBits) ) 	
-        	mods.add(Modifier.STATIC);
-        if( org.eclipse.jdt.core.dom.Modifier.isStrictfp(modBits) ) 
-        	mods.add(Modifier.STRICTFP);
-        if( org.eclipse.jdt.core.dom.Modifier.isSynchronized(modBits) ) 
-        	mods.add(Modifier.SYNCHRONIZED);
-        if( org.eclipse.jdt.core.dom.Modifier.isTransient(modBits) ) 
-        	mods.add(Modifier.TRANSIENT);
-        if( org.eclipse.jdt.core.dom.Modifier.isVolatile(modBits) ) 	
-        	mods.add(Modifier.VOLATILE);
-        return mods;
-    }
-    
-    public boolean isBindingBased(){ return true; }
- 
-    ASTNode getAstNode(){
-        if( !isFromSource() ) return null;
-        return _env.getASTNodeForBinding(getDeclarationBinding());      
-    }
-
-    CompilationUnit getCompilationUnit(){
-        if( !isFromSource() ) return null;
-        return _env.getCompilationUnitForBinding(getDeclarationBinding());
-    }
-
-	public IFile getResource(){
-        if( isFromSource() ){
-            final IBinding binding = getDeclarationBinding();
-			return _env.getDeclaringFileForBinding(binding);            
-        }
-        return null;
-    }
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EclipseDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EclipseDeclarationImpl.java
deleted file mode 100644
index ab72d1c..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EclipseDeclarationImpl.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
- package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.lang.annotation.Annotation;
-import java.lang.reflect.Proxy;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.AnnotationInvocationHandler;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration;
-import org.eclipse.jdt.core.dom.BodyDeclaration;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.EnumConstantDeclaration;
-import org.eclipse.jdt.core.dom.FieldDeclaration;
-import org.eclipse.jdt.core.dom.IResolvedAnnotation;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.Javadoc;
-import org.eclipse.jdt.core.dom.MethodDeclaration;
-import org.eclipse.jdt.core.dom.SimpleName;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public abstract class EclipseDeclarationImpl implements Declaration, EclipseMirrorImpl
-{	
-    final BaseProcessorEnv _env;
-
-    EclipseDeclarationImpl(final BaseProcessorEnv env)
-    {   
-        assert env != null : "missing environment"; //$NON-NLS-1$
-        _env = env;
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        visitor.visitDeclaration(this);     
-    }        
-
-    <A extends Annotation> A _getAnnotation(Class<A> annotationClass,
-                                            IResolvedAnnotation[] annoInstances)
-    {
-    	if( annoInstances == null || annoInstances.length == 0 || annotationClass == null ) 
-    		return null;
-    	
-        String annoTypeName = annotationClass.getName();
-		if( annoTypeName == null ) return null;
-        annoTypeName = annoTypeName.replace('$', '.');
-		final int len = annoInstances == null ? 0 : annoInstances.length;
-        if( len == 0 ) return null;
-        for( IResolvedAnnotation annoInstance :  annoInstances){
-            final ITypeBinding binding = annoInstance.getAnnotationType();            
-            if( binding != null && binding.isAnnotation() ){
-                final String curTypeName = binding.getQualifiedName();
-                if( annoTypeName.equals(curTypeName) ){
-                    final AnnotationMirrorImpl annoMirror =
-                        (AnnotationMirrorImpl)Factory.createAnnotationMirror(annoInstance, this, _env);
-                    final AnnotationInvocationHandler handler = new AnnotationInvocationHandler(annoMirror, annotationClass);
-                    return (A)Proxy.newProxyInstance(annotationClass.getClassLoader(),
-                                                     new Class[]{ annotationClass }, handler );
-                }
-            }
-        }
-        return null; 
-    }
-
-    Collection<AnnotationMirror> _getAnnotationMirrors(IResolvedAnnotation[] annoInstances)
-    {
-		final int len = annoInstances == null ? 0 : annoInstances.length;
-        if( len == 0 ) return Collections.emptyList();
-        final List<AnnotationMirror> result = new ArrayList<AnnotationMirror>(len);
-        for(IResolvedAnnotation annoInstance : annoInstances){
-            final AnnotationMirrorImpl annoMirror =
-                        (AnnotationMirrorImpl)Factory.createAnnotationMirror(annoInstance, this, _env);
-            result.add(annoMirror);
-        }
-        return result;
-    }  
-	
-	Collection<AnnotationMirror> _getAnnotationMirrors(List<org.eclipse.jdt.core.dom.Annotation> annoInstances)
-	{
-		if( annoInstances == null || annoInstances.size() == 0 ) return Collections.emptyList();
-		final List<AnnotationMirror> result = new ArrayList<AnnotationMirror>(annoInstances.size());
-		for( org.eclipse.jdt.core.dom.Annotation annoInstance : annoInstances){
-			final AnnotationMirrorImpl annoMirror =
-				(AnnotationMirrorImpl)Factory.createAnnotationMirror(annoInstance.resolveAnnotation(), this, _env);
-			result.add(annoMirror);
-		}
-		return result;
-	}  
-	
-	/**
-     * @return the ast node that corresponding to this declaration.
-     *         Return null if this declaration came from binary.
-     * @see #isFromSource();
-     */
-    abstract ASTNode getAstNode();
-
-    /**
-     * @return the compilation unit that the ast node of this declaration came from
-     *         Return null if this declaration came from binary.
-     * @see #isFromSource()
-     */
-    abstract CompilationUnit getCompilationUnit();
-	
-	/**
-	 * @return the resource of this declaration if the declaration is from source.
-	 */
-	abstract public IFile getResource();
-    
-    /**
-     * @return true iff this declaration came from a source file.
-     *         Return false otherwise.
-     */
-    public abstract boolean isFromSource();
-    
-    public abstract boolean isBindingBased(); 
-	
-	public BaseProcessorEnv getEnvironment(){ return _env; }
-	
-	/**
-	 * @return the ast node that holds the range of this member declaration in source.
-	 *         The default is to find the name of the node and if that fails, return the 
-	 *         node with the smallest range that contains the declaration.
-	 */
-	protected ASTNode getRangeNode()
-	{
-		final ASTNode node = getAstNode();
-		if( node == null ) return null;
-		SimpleName name = null;
-		switch( node.getNodeType() )
-		{
-		case ASTNode.TYPE_DECLARATION:
-		case ASTNode.ANNOTATION_TYPE_DECLARATION:
-		case ASTNode.ENUM_DECLARATION:
-			name = ((AbstractTypeDeclaration)node).getName();
-			break;
-		case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
-			name = ((AnnotationTypeMemberDeclaration)node).getName();
-			break;
-		case ASTNode.METHOD_DECLARATION:
-			name = ((MethodDeclaration)node).getName();
-			break;		
-		case ASTNode.SINGLE_VARIABLE_DECLARATION:
-			name = ((SingleVariableDeclaration)node).getName();
-			break;
-		case ASTNode.FIELD_DECLARATION:
-			final String declName = getSimpleName();
-			if( declName == null ) return node;
-			for(Object obj : ((FieldDeclaration)node).fragments() ){
-				 VariableDeclarationFragment frag = (VariableDeclarationFragment)obj;
-				 if( declName.equals(frag.getName()) ){
-					 name = frag.getName();
-					 break;
-				 }	 
-			}
-			break;
-		case ASTNode.ENUM_CONSTANT_DECLARATION:
-			name = ((EnumConstantDeclaration)node).getName();
-			break;
-		default:
-			return node;
-		}
-		if( name == null ) return node;
-		return name;
-	}
-	
-	protected String getDocComment(final BodyDeclaration decl)
-    {
-    	final Javadoc javaDoc = decl.getJavadoc();
-        if( javaDoc == null ) return ""; //$NON-NLS-1$
-        return javaDoc.toString();
-    }
-} 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumConstantDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumConstantDeclarationImpl.java
deleted file mode 100644
index ff169bd..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumConstantDeclarationImpl.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import com.sun.mirror.declaration.EnumConstantDeclaration;
-import com.sun.mirror.declaration.EnumDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-
-public class EnumConstantDeclarationImpl extends FieldDeclarationImpl implements EnumConstantDeclaration
-{
-    public EnumConstantDeclarationImpl(IVariableBinding binding, BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert binding.isEnumConstant() : "binding does not represent an enum constant"; //$NON-NLS-1$
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-    }
-
-    public EnumDeclaration getDeclaringType()
-    {
-        return (EnumDeclaration)super.getDeclaringType();
-    }
-
-    public MirrorKind kind(){ return MirrorKind.ENUM_CONSTANT; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumDeclarationImpl.java
deleted file mode 100644
index 8f61ad9..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/EnumDeclarationImpl.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.EnumConstantDeclaration;
-import com.sun.mirror.declaration.EnumDeclaration;
-import com.sun.mirror.type.EnumType;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.TypeVisitor;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-
-public class EnumDeclarationImpl extends ClassDeclarationImpl implements EnumDeclaration, EnumType
-{
-    public EnumDeclarationImpl(final ITypeBinding binding, final BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert binding.isEnum() : "binding is not an enum."; //$NON-NLS-1$
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitEnumDeclaration(this);
-    }
-
-    public Collection<EnumConstantDeclaration> getEnumConstants()
-    {
-        final ITypeBinding enumBinding = getDeclarationBinding();
-        final IVariableBinding[] fields = enumBinding.getDeclaredFields();
-        final List<EnumConstantDeclaration> results = new ArrayList<EnumConstantDeclaration>(4);
-        for( IVariableBinding field : fields ){
-            if( field.isEnumConstant() ){
-                final Declaration mirrorDecl = Factory.createDeclaration(field, _env);
-                if( mirrorDecl  != null )
-                    results.add((EnumConstantDeclaration)mirrorDecl);
-            }
-        }
-        return results;
-    }
-
-    // start of implementation of EnumType API
-    
-    // end of implementation of EnumType API
-    public void accept(TypeVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitEnumType(this);
-    }
-
-    public EnumDeclaration getDeclaration()
-    {
-        return (EnumDeclaration)super.getDeclaration();
-    }
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_ENUM; }
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableDeclarationImpl.java
deleted file mode 100644
index 01c6c4c..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableDeclarationImpl.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-import com.sun.mirror.declaration.ExecutableDeclaration;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.declaration.TypeParameterDeclaration;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public abstract class ExecutableDeclarationImpl 
-	extends MemberDeclarationImpl implements ExecutableDeclaration
-{
-    public ExecutableDeclarationImpl(final IMethodBinding binding, final BaseProcessorEnv env)
-    {     
-        super(binding, env);
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitExecutableDeclaration(this);
-    }
-
-    public TypeDeclaration getDeclaringType()
-    {
-        final IMethodBinding methodBinding = getDeclarationBinding();        
-        return Factory.createReferenceType(methodBinding.getDeclaringClass(), _env);
-    }
-
-    public Collection<TypeParameterDeclaration> getFormalTypeParameters()
-    {
-    	return ExecutableUtil.getFormalTypeParameters(this, _env);
-    }
-    public Collection<ParameterDeclaration> getParameters()
-    {
-    	return ExecutableUtil.getParameters(this, _env);
-    }
-
-    public Collection<ReferenceType> getThrownTypes()
-    {
-    	return ExecutableUtil.getThrownTypes(this, _env);
-    }
-
-    public boolean isVarArgs()
-    {
-        return getDeclarationBinding().isVarargs();
-    }
-
-    public String getSimpleName()
-    {
-		return getDeclarationBinding().getName();
-    }
-
-    public IMethodBinding getDeclarationBinding()
-    {
-        return (IMethodBinding)_binding;
-    }
-
-    public boolean isFromSource()
-    {
-        final ITypeBinding type = getDeclarationBinding().getDeclaringClass();
-        return ( type != null && type.isFromSource() );
-    }
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableUtil.java
deleted file mode 100644
index da31747..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/ExecutableUtil.java
+++ /dev/null
@@ -1,208 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.env.EclipseMirrorObject.MirrorKind;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.TypeParameter;
-
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.declaration.TypeParameterDeclaration;
-import com.sun.mirror.type.ReferenceType;
-
-class ExecutableUtil {
-
-	/**
-	 * @param executable must be a constructor, method or annotation element.
-	 * @return the formal type parameters of the executable. 
-	 */
-	static Collection<TypeParameterDeclaration> getFormalTypeParameters(
-			EclipseDeclarationImpl executable,
-			BaseProcessorEnv env)
-	{			
-		// the dom ast does not provide type parameter list for annotation element
-		// that incorrectly includes them in the text
-		if(executable == null || executable.kind() == MirrorKind.ANNOTATION_ELEMENT)
-			return Collections.emptyList();
-		if( executable.kind() != MirrorKind.METHOD && executable.kind() != MirrorKind.CONSTRUCTOR)
-			throw new IllegalArgumentException("Executable is not a method " +  //$NON-NLS-1$
-					executable.getClass().getName());
-		
-		if( executable.isFromSource() ){
-			final org.eclipse.jdt.core.dom.MethodDeclaration methodAstNode = 
-				(org.eclipse.jdt.core.dom.MethodDeclaration)executable.getAstNode();
-	    	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	    	final List<TypeParameter> typeParams = methodAstNode.typeParameters();
-	    	final List<TypeParameterDeclaration> result = new ArrayList<TypeParameterDeclaration>();
-	    	for(TypeParameter typeParam : typeParams){
-	    		final ITypeBinding typeBinding = typeParam.resolveBinding();
-	    		if( typeBinding == null ){
-	    			throw new UnsupportedOperationException("cannot create a type parameter declaration without a binding"); //$NON-NLS-1$
-	    		}
-	    		else{
-	    			final TypeParameterDeclaration typeParamDecl = 
-	    				(TypeParameterDeclaration)Factory.createDeclaration(typeBinding, env);
-	                if( typeParamDecl != null )
-	                    result.add(typeParamDecl);
-	    		}
-	    	}
-	    	return result;
-		}
-		else{ // binary
-			if( !executable.isBindingBased() )
-				throw new IllegalStateException("binary executable without binding."); //$NON-NLS-1$
-			 final IMethodBinding methodBinding = ((ExecutableDeclarationImpl)executable).getDeclarationBinding();
-				final ITypeBinding[] typeParams = methodBinding.getTypeParameters();        
-		        if( typeParams == null || typeParams.length == 0 )
-		            return Collections.emptyList();
-		        final List<TypeParameterDeclaration> result = new ArrayList<TypeParameterDeclaration>();
-		        for( ITypeBinding typeVar : typeParams ){
-		            final TypeParameterDeclaration typeParamDecl = 
-		            	(TypeParameterDeclaration)Factory.createDeclaration(typeVar, env);
-		            if( typeParamDecl != null )
-		                result.add(typeParamDecl);
-		        }
-		        return result;
-			
-		}
-	}
-	
-	/**
-	 * @param executable must be a constructor, method or annotation element.
-	 * @return the list formal parameters of the executable. 
-	 */
-	static Collection<ParameterDeclaration> getParameters(
-			final EclipseDeclarationImpl executable,
-			final BaseProcessorEnv env)
-	{
-		// the dom ast does not provide parameter list for annotation element
-		// that incorrectly includes them in the text
-		if(executable == null || executable.kind() == MirrorKind.ANNOTATION_ELEMENT)
-			return Collections.emptyList();
-		if( executable.kind() != MirrorKind.METHOD && executable.kind() != MirrorKind.CONSTRUCTOR)
-			throw new IllegalArgumentException("Executable is not a method " +  //$NON-NLS-1$
-					executable.getClass().getName());
-		
-		if( executable.isFromSource() ){
-			// We always need to look into the ast to make sure the complete list of
-			// parameters are returned since parameters with unresolved type will not 
-			// show up in the method binding
-			final org.eclipse.jdt.core.dom.MethodDeclaration methodAstNode = 
-				(org.eclipse.jdt.core.dom.MethodDeclaration)executable.getAstNode();
-			
-			// Synthetic methods will have no ast node
-			if (methodAstNode == null)
-				return Collections.emptyList();
-			
-	    	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	    	final List<SingleVariableDeclaration> params = methodAstNode.parameters();
-	    	if( params == null || params.size() == 0 )
-	    		return Collections.emptyList();  
-	    	final List<ParameterDeclaration> result = new ArrayList<ParameterDeclaration>(params.size());
-	    	for( int i=0, size=params.size(); i<size; i++ ){   		
-	    		final SingleVariableDeclaration varDecl = params.get(i);
-	    		final ParameterDeclaration param = 
-	    			Factory.createParameterDeclaration(varDecl, executable.getResource(), env);
-	    		result.add(param);
-	    	}
-	        return result;
-		}
-		else{
-			if( !executable.isBindingBased() )
-				throw new IllegalStateException("binary executable without binding."); //$NON-NLS-1$
-			// it is binary, since we don't support the class file format, will rely on the
-			// binding and hope that it's complete.
-			final ExecutableDeclarationImpl impl = (ExecutableDeclarationImpl)executable;
-			final IMethodBinding methodBinding = impl.getDeclarationBinding();
-	        final ITypeBinding[] paramTypes = methodBinding.getParameterTypes();
-	        if( paramTypes == null || paramTypes.length == 0 )
-	            return Collections.emptyList();        
-	        final List<ParameterDeclaration> result = new ArrayList<ParameterDeclaration>(paramTypes.length);        
-	        
-	        for( int i=0; i<paramTypes.length; i++ ){
-	            final ITypeBinding type = paramTypes[i];
-	            final ParameterDeclaration param = Factory.createParameterDeclaration(impl, i, type, env);
-	            result.add(param);
-	        }
-
-	        return result;
-			
-		}
-	}  
-	
-	/**
-	 * @param executable must be a constructor, method or annotation element.
-	 * @return the list thrown types of the executable. 
-	 */
-	static Collection<ReferenceType> getThrownTypes(
-			final EclipseDeclarationImpl executable,
-			final BaseProcessorEnv env)
-	{
-		if(executable == null || executable.kind() == MirrorKind.ANNOTATION_ELEMENT)
-			return Collections.emptyList();
-		if( executable.kind() != MirrorKind.METHOD && executable.kind() != MirrorKind.CONSTRUCTOR)
-			throw new IllegalArgumentException("Executable is not a method " +  //$NON-NLS-1$
-					executable.getClass().getName());
-		if( executable.isFromSource()){
-			// We always need to look into the ast to make sure the complete list of
-			// parameters are returned since parameters with unresolved type will not 
-			// show up in the method binding
-			final org.eclipse.jdt.core.dom.MethodDeclaration methodAstNode = 
-				(org.eclipse.jdt.core.dom.MethodDeclaration)executable.getAstNode();
-			
-			// If this method is synthetic, there will be no AST node
-			if (methodAstNode == null) 
-				return Collections.emptyList();
-			
-	    	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	    	final List<Name> exceptions = methodAstNode.thrownExceptions();
-	    	if(exceptions == null || exceptions.size() == 0 )
-	    		return Collections.emptyList();
-	    	final List<ReferenceType> results = new ArrayList<ReferenceType>(4);
-	    	for(Name exception : exceptions ){
-	    		final ITypeBinding eType = exception.resolveTypeBinding();
-	    		final ReferenceType refType;
-	    		if( eType == null )
-	    			refType = Factory.createErrorClassType(exception.toString());
-	    		else
-	    			refType = Factory.createReferenceType(eType, env);
-	    		results.add(refType);
-	    	}
-	    	
-	    	return results;
-		}
-		else{
-			if( !executable.isBindingBased() )
-				throw new IllegalStateException("binary executable without binding."); //$NON-NLS-1$
-			final ExecutableDeclarationImpl impl = (ExecutableDeclarationImpl)executable;
-			final IMethodBinding methodBinding = impl.getDeclarationBinding();			
-	        final ITypeBinding[] exceptions = methodBinding.getExceptionTypes();
-	        final List<ReferenceType> results = new ArrayList<ReferenceType>(4);
-	        for( ITypeBinding exception : exceptions ){
-	            final TypeDeclaration mirrorDecl = Factory.createReferenceType(exception, env);
-	            if( mirrorDecl != null)
-	                results.add((ReferenceType)mirrorDecl);
-	        }
-	        return results;
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/FieldDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/FieldDeclarationImpl.java
deleted file mode 100644
index 3c9bb5d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/FieldDeclarationImpl.java
+++ /dev/null
@@ -1,91 +0,0 @@
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-
-public class FieldDeclarationImpl extends MemberDeclarationImpl implements FieldDeclaration
-{
-    public FieldDeclarationImpl(final IVariableBinding binding, final BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert binding.isField() : "binding doesn't represent a field"; //$NON-NLS-1$
-    }
-    
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitFieldDeclaration(this);
-    }
-
-    public String getConstantExpression()
-    {
-        final IVariableBinding field = getDeclarationBinding();
-        final Object constant = field.getConstantValue();
-        if( constant == null ) return null;
-        return constant.toString();   
-    }
-
-    public Object getConstantValue()
-    {
-        final IVariableBinding field = getDeclarationBinding();
-        return field.getConstantValue();
-    }
-
-    public TypeDeclaration getDeclaringType()
-    {
-        final IVariableBinding field = getDeclarationBinding();
-        final ITypeBinding outer = field.getDeclaringClass();
-        return Factory.createReferenceType(outer, _env);
-    }
-
-    public String getSimpleName()
-    {
-		final IVariableBinding field = getDeclarationBinding();
-        final String name = field.getName();
-        return name == null ? "" : name; //$NON-NLS-1$
-    }
-
-    public TypeMirror getType()
-    {
-        final IVariableBinding field = getDeclarationBinding();
-        final TypeMirror typeMirror = Factory.createTypeMirror( field.getType(), _env );
-        if( typeMirror == null )
-            return Factory.createErrorClassType(field.getType());
-        return typeMirror;
-    }
-
-    public IVariableBinding getDeclarationBinding()
-    {
-        return (IVariableBinding)_binding;
-    }
-    
-    public String toString()
-    {
-    /*
-    	final StringBuilder buffer = new StringBuilder();
-    	final IVariableBinding field = getDeclarationBinding();
-    	if( field.getType() != null ){
-    		buffer.append( field.getType() );
-    		buffer.append(' ');
-    	}
-    	buffer.append(field.getName());
-    	return buffer.toString();
-    */
-    	return getSimpleName();
-    }
-
-    public MirrorKind kind(){ return MirrorKind.FIELD; }
-
-    public boolean isFromSource()
-    {
-        final ITypeBinding type = getDeclarationBinding().getDeclaringClass();
-        return ( type != null && type.isFromSource() );
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/InterfaceDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/InterfaceDeclarationImpl.java
deleted file mode 100644
index 931dfe9..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/InterfaceDeclarationImpl.java
+++ /dev/null
@@ -1,57 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import com.sun.mirror.declaration.InterfaceDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.type.InterfaceType;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.TypeVisitor;
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class InterfaceDeclarationImpl extends TypeDeclarationImpl implements InterfaceDeclaration, InterfaceType
-{
-    public InterfaceDeclarationImpl(final ITypeBinding binding, final BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert binding.isInterface() : "binding does not represents an interface."; //$NON-NLS-1$
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitInterfaceDeclaration(this);
-    }
-
-    public Collection<? extends MethodDeclaration> getMethods()
-    {
-        return _getMethods();
-    }
-
-    // start of implementation of InterfaceType API
-    public void accept(TypeVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitInterfaceType(this);
-    }
-
-    public InterfaceDeclaration getDeclaration()
-    {
-        return (InterfaceDeclaration)super.getDeclaration();
-    }
-    // end of implementation of InterfaceType API
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_INTERFACE; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MemberDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MemberDeclarationImpl.java
deleted file mode 100644
index 4bc833b..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MemberDeclarationImpl.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration; 
-
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.core.dom.*;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.MemberDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.SourcePosition;
-
-public abstract class MemberDeclarationImpl extends DeclarationImpl implements MemberDeclaration, EclipseMirrorImpl
-{
-    MemberDeclarationImpl(final IBinding binding, BaseProcessorEnv env)
-    {
-        super(binding, env);
-    }
-    
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitMemberDeclaration(this);
-    }
-    
-    public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
-    {
-		final IResolvedAnnotation[] instances = getAnnotationInstances();
-		return _getAnnotation(annotationClass, instances);
-    }
-
-    public Collection<AnnotationMirror> getAnnotationMirrors()
-    {
-		final IResolvedAnnotation[] instances = getAnnotationInstances();
-		return _getAnnotationMirrors(instances);		
-    }
-	
-	private IResolvedAnnotation[] getAnnotationInstances()
-	{
-		final IBinding binding = getDeclarationBinding();
-		final IResolvedAnnotation[] instances;
-		switch( binding.getKind() )
-		{
-		case IBinding.TYPE:
-			instances = ((ITypeBinding)binding).getAnnotations();
-			break;
-		case IBinding.METHOD:
-			instances = ((IMethodBinding)binding).getAnnotations();
-			break;
-		case IBinding.VARIABLE:
-			instances = ((IVariableBinding)binding).getAnnotations();
-			break;
-		case IBinding.PACKAGE:
-			// TODO: support package annotation
-			return null;
-		default:			
-			throw new IllegalStateException();
-		}
-		return instances;
-	}
-
-    public String getDocComment()
-    {
-        if( isFromSource()){
-        	final ASTNode node = getAstNode();        	
-        	if(node != null){
-        		if( node instanceof BodyDeclaration )
-        			
-        			return getDocComment((BodyDeclaration)node);
-
-        		else if( node.getNodeType() == ASTNode.VARIABLE_DECLARATION_FRAGMENT ){
-        			final ASTNode parent = node.getParent();
-        			// a field declaration
-        			if( parent instanceof BodyDeclaration )
-        				return getDocComment((BodyDeclaration)parent);
-        			
-        		}
-        		return ""; //$NON-NLS-1$
-        	}  
-        }
-        return null;
-    }    
-
-	/**
-	 * @return the source position of this declaration. 
-	 *         Return null if this declaration did not come from source or 
-	 *         if the declaration is (or is part of) a secondary type that is defined 
-	 *         outside of the file associated with the environment.
-	 */
-    public SourcePosition getPosition()
-    {
-        if( isFromSource() ){
-			final ASTNode node = getRangeNode();
-			if( node == null ) return null;			       
-            final CompilationUnit unit = getCompilationUnit();
-            final int start = node.getStartPosition();    		
-            return new SourcePositionImpl(start,
-					node.getLength(),
-					unit.lineNumber(start),
-					unit.columnNumber(start),
-					this);
-        }
-        return null;
-    }   
-} 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MethodDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MethodDeclarationImpl.java
deleted file mode 100644
index 51254ec..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/MethodDeclarationImpl.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class MethodDeclarationImpl extends ExecutableDeclarationImpl implements MethodDeclaration
-{
-    public MethodDeclarationImpl(final IMethodBinding binding,                                 
-                                 final BaseProcessorEnv env)
-    {
-        super(binding, env);
-        assert !binding.isConstructor() : "binding does not represent a method."; //$NON-NLS-1$
-    }
-
-    public TypeMirror getReturnType()
-    {
-        final IMethodBinding methodBinding = getDeclarationBinding();
-        final ITypeBinding retType = methodBinding.getReturnType();
-        final TypeMirror type = Factory.createTypeMirror(retType, _env);
-        if(retType == null )
-            return Factory.createErrorClassType(retType);
-        return type;
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitMethodDeclaration(this);
-    }
-
-    public MirrorKind kind(){ return MirrorKind.METHOD; }
-
-    public String toString()
-    {
-        final StringBuilder buffer = new StringBuilder();
-        final IMethodBinding methodBinding = getDeclarationBinding();
-        final ITypeBinding[] typeParams = methodBinding.getTypeParameters();
-        if( typeParams != null && typeParams.length > 0 ){
-            buffer.append('<');
-            for(int i=0; i<typeParams.length; i++ ){
-                if( i != 0 )
-                    buffer.append(", "); //$NON-NLS-1$
-                buffer.append(typeParams[i]);
-            }
-            buffer.append('>');
-        }
-
-        if( methodBinding.getReturnType() != null )
-            buffer.append(methodBinding.getReturnType().getName());
-        buffer.append(' ');
-        buffer.append(methodBinding.getName());
-        buffer.append('(');
-        int i=0;
-        for( ParameterDeclaration param : getParameters() ){
-            if( i++ != 0 )
-                buffer.append(", "); //$NON-NLS-1$
-            buffer.append(param);
-        }
-        buffer.append(')');
-
-        return buffer.toString();
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImpl.java
deleted file mode 100644
index b8437e3..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImpl.java
+++ /dev/null
@@ -1,232 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.PackageUtil;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.core.IClassFile;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.IPackageBinding;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.ClassDeclaration;
-import com.sun.mirror.declaration.EnumDeclaration;
-import com.sun.mirror.declaration.InterfaceDeclaration;
-import com.sun.mirror.declaration.Modifier;
-import com.sun.mirror.declaration.PackageDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.SourcePosition;
-
-public class PackageDeclarationImpl extends DeclarationImpl implements PackageDeclaration
-{   
-	// If this package came from directly requesting it via the environment,
-	// need to hide the source position, as this is an artifact of our implementation
-	private final boolean _hideSourcePosition;
-	
-	/** The back-pointer to the type declaration that created this package declaration
-	 * @see TypeDeclarationImpl#getPackage()
-	 */
-	private final TypeDeclarationImpl _typeDecl;
-	
-	private IPackageFragment[] _pkgFragments;
-	
-    public PackageDeclarationImpl(
-			final IPackageBinding binding, 
-			final TypeDeclarationImpl typeDecl, 
-			final BaseProcessorEnv env,
-			final boolean hideSourcePosition)
-    {
-        this(binding, 
-        	 typeDecl, 
-        	 env, 
-        	 hideSourcePosition, 
-        	 PackageUtil.getPackageFragments(binding.getName(), env));
-    }
-    
-    public PackageDeclarationImpl(
-			final IPackageBinding binding, 
-			final TypeDeclarationImpl typeDecl, 
-			final BaseProcessorEnv env,
-			final boolean hideSourcePosition,
-			final IPackageFragment[] pkgFragments)
-    {
-        super(binding, env);   
-		_typeDecl = typeDecl;
-		_hideSourcePosition = hideSourcePosition;
-		_pkgFragments = pkgFragments;
-    }
-
-    public IPackageBinding getPackageBinding(){ return (IPackageBinding)_binding; }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitPackageDeclaration(this);
-    }
-    
-    public <A extends Annotation> A getAnnotation(Class<A> anno)
-    {
-		return _getAnnotation(anno, getPackageBinding().getAnnotations());
-    }
-
-    public Collection<AnnotationMirror> getAnnotationMirrors()
-    {	
-		return _getAnnotationMirrors(getPackageBinding().getAnnotations());
-    }
-
-    public Collection<AnnotationTypeDeclaration> getAnnotationTypes()
-    {
-		// jdt currently have no support for package declaration.
-		return Collections.emptyList();	
-    }
-
-    public Collection<ClassDeclaration> getClasses() {
-    	List<IType> types = getTypesInPackage(_pkgFragments);
-		List<ClassDeclaration> classes = new ArrayList<ClassDeclaration>();
-		for (IType type : types) {
-			try {
-				// isClass() will return true if TypeDeclaration is an InterfaceDeclaration
-				if (type.isClass()) {
-					TypeDeclaration td = _env.getTypeDeclaration( type );
-					if ( td instanceof ClassDeclaration ) {				
-						classes.add((ClassDeclaration)td);
-					}
-				}
-			}
-			catch (JavaModelException ex) {} // No longer exists, don't return it
-		}
-		
-		return classes;
-    }
-
-    public Collection<EnumDeclaration> getEnums() {
-    	List<IType> types = getTypesInPackage(_pkgFragments);
-		List<EnumDeclaration> enums = new ArrayList<EnumDeclaration>();
-		for (IType type : types) {
-			try {
-				if (type.isEnum()) {
-					enums.add((EnumDeclaration)_env.getTypeDeclaration(type));
-				}
-			}
-			catch (JavaModelException ex) {} // No longer exists, don't return it
-		}
-		
-		return enums;
-    }
-
-    public Collection<InterfaceDeclaration> getInterfaces() {
-    	List<IType> types = getTypesInPackage(_pkgFragments);
-		List<InterfaceDeclaration> interfaces = new ArrayList<InterfaceDeclaration>();
-		for (IType type : types) {
-			try {
-				if (type.isInterface()) {
-					interfaces.add((InterfaceDeclaration)_env.getTypeDeclaration(type));
-				}
-			}
-			catch (JavaModelException ex) {} // No longer exists, don't return it
-		}
-		
-		return interfaces;
-    }
-
-    public String getDocComment()
-    {
-        return null;
-    }
-
-    public Collection<Modifier> getModifiers()
-    {
-        // package doesn't have modifiers.
-        return Collections.emptyList();
-    }
-
-    public SourcePosition getPosition()
-    {
-		if (_hideSourcePosition)
-			return null;
-		if(_typeDecl.isFromSource()){
-			final CompilationUnit unit = _typeDecl.getCompilationUnit();
-			final ASTNode node = unit.findDeclaringNode(getDeclarationBinding());
-			if( node == null ) return null;
-			final int start = node.getStartPosition();			
-	        return new SourcePositionImpl(start,
-										  node.getLength(),
-	                                      unit.lineNumber(start),
-	                                      unit.columnNumber(start),
-	                                      this);			
-		}
-		return null;
-        
-    }
-
-    public String getQualifiedName()
-    {
-		return getPackageBinding().getName();
-    }   
-
-    public String getSimpleName()
-    {
-        IPackageBinding pkg = getPackageBinding();
-        final String[] components = pkg.getNameComponents();
-        if( components == null || components.length == 0 ) return ""; //$NON-NLS-1$
-        return components[components.length - 1];
-    }
-
-    public MirrorKind kind(){ return MirrorKind.PACKAGE; }
-
-    public String toString(){ return getQualifiedName(); }
-	
-	public IPackageBinding getDeclarationBinding(){ return (IPackageBinding)_binding; }
-
-	public boolean isFromSource(){ return _typeDecl.isFromSource(); }
-	
-	private static List<IType> getTypesInPackage(final IPackageFragment[] fragments) {
-		List<IType> types = new ArrayList<IType>();
-		try {
-			// Get all top-level classes -- ignore local, member, and anonymous classes
-			for (IPackageFragment fragment : fragments) {
-				for (IClassFile classFile : fragment.getClassFiles()) {
-					IType type = classFile.getType();
-					if (! (type.isLocal() || type.isMember() || type.isAnonymous()) ) {
-						types.add(type);
-					}
-				}
-				for (ICompilationUnit compUnit : fragment.getCompilationUnits()) {
-					for (IType type : compUnit.getTypes()) {
-						if (! (type.isLocal() || type.isMember() || type.isAnonymous()) ) {
-							types.add(type);
-						}
-					}
-				}
-			}
-		}
-		catch (JavaModelException jme) {
-			// Ignore -- project is in a bad state. This will get recalled if necessary
-		}
-		return types;
-	}
-   
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImplNoBinding.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImplNoBinding.java
deleted file mode 100644
index 0e232fc..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/PackageDeclarationImplNoBinding.java
+++ /dev/null
@@ -1,90 +0,0 @@
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.lang.annotation.Annotation;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.IPackageFragment;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.ClassDeclaration;
-import com.sun.mirror.declaration.EnumDeclaration;
-import com.sun.mirror.declaration.InterfaceDeclaration;
-import com.sun.mirror.declaration.Modifier;
-import com.sun.mirror.declaration.PackageDeclaration;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * For packages that have no binding. E.g. Packages with no
- * classes, like "java.lang", or possibly "" (the default package).
- */
-public class PackageDeclarationImplNoBinding implements PackageDeclaration {
-	
-	private final IPackageFragment[] fragments;
-	private final BaseProcessorEnv env;
-	
-	public PackageDeclarationImplNoBinding(final IPackageFragment[] fragments, BaseProcessorEnv env) {
-		this.fragments = fragments;
-		this.env = env;
-	}
-
-	public String getQualifiedName() {
-		return fragments[0].getElementName();
-	}
-
-	public Collection<ClassDeclaration> getClasses() {
-		return Collections.emptyList();
-    }
-
-    public Collection<EnumDeclaration> getEnums() {
-		return Collections.emptyList();
-    }
-
-    public Collection<InterfaceDeclaration> getInterfaces() {
-		return Collections.emptyList();
-    }
-
-	public Collection<AnnotationTypeDeclaration> getAnnotationTypes() {
-		return Collections.emptyList();
-	}
-
-	public String getDocComment() {
-		// Packages have no comments
-		return null;
-	}
-
-	public Collection<AnnotationMirror> getAnnotationMirrors() {
-		return Collections.emptyList();
-	}
-
-	public <A extends Annotation> A getAnnotation(Class<A> arg0) {
-		return null;
-	}
-
-	public Collection<Modifier> getModifiers() {
-		// Packages do not have modifiers
-		return Collections.emptyList();
-	}
-
-	public String getSimpleName() {
-		String components = getQualifiedName();
-		int dotIndex = components.indexOf("."); //$NON-NLS-1$
-		if (dotIndex < 0)
-			return components;
-		return components.substring(dotIndex + 1);
-	}
-
-	public SourcePosition getPosition() {
-		// non-source, we do not have a source position
-		return null;
-	}
-
-	public void accept(final DeclarationVisitor visitor) {
-		visitor.visitDeclaration(this);
-		visitor.visitPackageDeclaration(this);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/SourceParameterDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/SourceParameterDeclarationImpl.java
deleted file mode 100644
index a91298e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/SourceParameterDeclarationImpl.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-import org.eclipse.jdt.core.dom.Name;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.Type;
-
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-
-/**
- * Represents a formal parameter that came from source
- */
-public class SourceParameterDeclarationImpl 
-	extends ASTBasedDeclarationImpl implements ParameterDeclaration{
-   
-    /**
-     * Parameter declaration from source files
-     * @param astNode the ast node that defines this parameter
-     * @param file the file where the ast node originates 
-     * @param env
-     */
-    public SourceParameterDeclarationImpl(SingleVariableDeclaration astNode,
-    									  IFile file,
-										  BaseProcessorEnv env)
-    {	
-    	super( astNode, file, env);
-    }
-    
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitParameterDeclaration(this);
-    }  
-    
-    public TypeMirror getType()
-    {
-    	final SingleVariableDeclaration astNode = getAstNode();
-    	final Type  type = astNode.getType();
-    	if( type == null )
-    		return Factory.createErrorClassType(EMPTY_STRING);
-    	final IVariableBinding varBinding = astNode.resolveBinding();
-    	if( varBinding == null ){
-    		String typeName = type.toString();
-			 if( astNode.isVarargs() )
-				 return Factory.createErrorArrayType(typeName, 1);
-			 else
-				 return Factory.createErrorClassType(typeName);
-    	}
-    	else{
-    		 final ITypeBinding typeBinding = varBinding.getType();
-    		 if( typeBinding == null ){
-    			 String typeName = type.toString();
-    			 if( astNode.isVarargs() )
-    				 return Factory.createErrorArrayType(typeName, 1);
-    			 else
-    				 return Factory.createErrorClassType(typeName);
-             }
-    		 else{
-	        	final TypeMirror mirrorType = Factory.createTypeMirror(typeBinding, _env);
-	            if(mirrorType == null )
-	                return Factory.createErrorClassType(type.toString());
-	            return mirrorType;
-    	     }
-    	}
-    }
-    
-    public String getSimpleName()
-    {
-    	final Name nameNode = getAstNode().getName();
-    	return nameNode == null ? EMPTY_STRING : nameNode.toString();
-    }
-    
-    public String getDocComment()
-    {   
-    	return EMPTY_STRING;
-    }
-    
-    SingleVariableDeclaration getAstNode()
-    {
-    	return (SingleVariableDeclaration)_astNode;
-    }  
-    
-    public MirrorKind kind(){ return MirrorKind.FORMAL_PARAMETER; }
-    
-    public String toString(){
-    	return _astNode.toString();
-    }
-	
-	public boolean equals(Object obj){
-        if( obj instanceof SourceParameterDeclarationImpl ){
-            final SourceParameterDeclarationImpl otherParam = (SourceParameterDeclarationImpl)obj;
-            return _astNode == otherParam._astNode;
-        }
-        return false;
-    }
-	
-	public int hashCode(){
-		return _astNode.hashCode();
-    }
-}
-
-
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeDeclarationImpl.java
deleted file mode 100644
index 44f7ac2..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeDeclarationImpl.java
+++ /dev/null
@@ -1,202 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-
-import com.sun.mirror.declaration.*;
-import com.sun.mirror.type.DeclaredType;
-import com.sun.mirror.type.InterfaceType;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.TypeVisitor;
-
-public abstract class TypeDeclarationImpl extends MemberDeclarationImpl implements TypeDeclaration, DeclaredType, ReferenceType
-{
-	// jdt core compiler add a field to a type with the following name when there is a hierachy problem with the type.	
-	private static final String HAS_INCONSISTENT_TYPE_HIERACHY = "has inconsistent hierarchy"; //$NON-NLS-1$
-    public TypeDeclarationImpl(final ITypeBinding binding,
-                               final BaseProcessorEnv env)
-    {
-        super(binding, env);
-    }
-
-    public String getQualifiedName()
-    {
-        ITypeBinding type = getTypeBinding();
-        return type.getQualifiedName();      
-    }
-
-    public String getSimpleName()
-    {
-    	ITypeBinding type = getTypeBinding();
-    	return type.getName();        
-    }
-
-    public PackageDeclaration getPackage()
-    {
-        ITypeBinding binding = getDeclarationBinding();
-		return new PackageDeclarationImpl(binding.getPackage(), this, _env, false);        
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitTypeDeclaration(this);
-    }
-
-    public ITypeBinding getTypeBinding(){ return (ITypeBinding)_binding; }
-
-    public Collection<FieldDeclaration> getFields()
-    {
-        final IVariableBinding[] fields = getDeclarationBinding().getDeclaredFields();
-        final List<FieldDeclaration> results = new ArrayList<FieldDeclaration>(fields.length);
-        for( IVariableBinding field : fields ){
-        	// note that the name HAS_INCONSISTENT_TYPE_HIERACHY is not a legal java identifier
-        	// so there is no chance that we are filtering out actual declared fields.
-        	if( field.isSynthetic() || HAS_INCONSISTENT_TYPE_HIERACHY.equals(field.getName())) 
-        		continue;
-            Declaration mirrorDecl = Factory.createDeclaration(field, _env);
-            if( mirrorDecl != null)
-                results.add( (FieldDeclaration)mirrorDecl);
-        }
-        return results;
-    }
-
-    public Collection<TypeDeclaration> getNestedTypes()
-    {
-        final ITypeBinding[] memberTypes = getDeclarationBinding().getDeclaredTypes();
-        final List<TypeDeclaration> results = new ArrayList<TypeDeclaration>(memberTypes.length);
-        for( ITypeBinding type : memberTypes ){
-            Declaration mirrorDecl = Factory.createReferenceType(type, _env);
-            if( mirrorDecl != null )
-                results.add((TypeDeclaration)mirrorDecl);
-        }
-        return results;
-    }
-
-    public Collection<TypeParameterDeclaration> getFormalTypeParameters()
-    {
-        final ITypeBinding[] typeParams = getDeclarationBinding().getTypeParameters();
-        final List<TypeParameterDeclaration> results = new ArrayList<TypeParameterDeclaration>(typeParams.length);
-        for( ITypeBinding typeParam : typeParams ){
-            Declaration mirrorDecl = Factory.createDeclaration(typeParam, _env);
-            if( mirrorDecl != null )
-                results.add( (TypeParameterDeclaration)mirrorDecl );
-        }
-        return results;
-    }    
-
-    public TypeDeclaration getDeclaringType()
-    {
-        final ITypeBinding decl = getDeclarationBinding();
-        if( decl.isMember() )
-        	return Factory.createReferenceType(decl.getDeclaringClass(), _env);
-        return null;        
-    }
-
-    // Start of implementation of DeclaredType API
-    public Collection<TypeMirror> getActualTypeArguments()
-    {
-        final ITypeBinding type = getTypeBinding();
-        final ITypeBinding[] typeArgs = type.getTypeArguments();
-        if( typeArgs == null || typeArgs.length == 0 )
-    		return Collections.emptyList();
-
-        final Collection<TypeMirror> result = new ArrayList<TypeMirror>(typeArgs.length);
-        for( ITypeBinding arg : typeArgs ){
-            final TypeMirror mirror = Factory.createTypeMirror(arg, _env);
-            if(arg == null)
-                result.add(Factory.createErrorClassType(arg));
-            else
-                result.add(mirror);
-        }
-
-        return result;
-    }
-
-    public DeclaredType getContainingType()
-    {
-        final ITypeBinding outer = getTypeBinding().getDeclaringClass();
-        return Factory.createReferenceType(outer, _env);
-    }
-
-    public TypeDeclaration getDeclaration()
-    {
-        final ITypeBinding declBinding = getDeclarationBinding();
-        if( declBinding == _binding ) return this;
-        else return Factory.createReferenceType(declBinding, _env);
-    }
-    
-    public Collection<InterfaceType> getSuperinterfaces()
-    {
-        final ITypeBinding[] superInterfaceBindings = getDeclarationBinding().getInterfaces();
-        if( superInterfaceBindings == null || superInterfaceBindings.length == 0 )
-            return Collections.emptyList();
-        final List<InterfaceType> results = new ArrayList<InterfaceType>(superInterfaceBindings.length);
-        for( ITypeBinding binding : superInterfaceBindings ){
-            if( binding.isInterface() ){
-                final TypeDeclarationImpl mirrorDecl = Factory.createReferenceType(binding, _env);
-                if( mirrorDecl.kind() == MirrorKind.TYPE_INTERFACE ){
-                    results.add((InterfaceType)mirrorDecl);
-                }
-            }
-            else results.add(Factory.createErrorInterfaceType(binding));
-        }
-        return results;
-    }
-
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitDeclaredType(this);
-        visitor.visitReferenceType(this);
-    }
-
-    // End of implementation of DeclaredType API
-
-    public ITypeBinding getDeclarationBinding()
-    {	
-        final ITypeBinding type = getTypeBinding();
-        return type.getTypeDeclaration();
-    }
-
-    protected List<? extends MethodDeclaration> _getMethods()
-    {
-        final IMethodBinding[] methods = getDeclarationBinding().getDeclaredMethods();
-        final List<MethodDeclaration> results = new ArrayList<MethodDeclaration>(methods.length);
-        for( IMethodBinding method : methods ){
-            if( method.isConstructor() || method.isSynthetic() ) continue;
-            Declaration mirrorDecl = Factory.createDeclaration(method, _env);
-            if( mirrorDecl != null)
-                results.add((MethodDeclaration)mirrorDecl);
-        }
-        return results;
-    }
-    
-    public String toString()
-    {		
-    	return getQualifiedName();
-    }
-
-    public boolean isFromSource(){ return getDeclarationBinding().isFromSource(); }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeParameterDeclarationImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeParameterDeclarationImpl.java
deleted file mode 100644
index 68c36ee..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/declaration/TypeParameterDeclarationImpl.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.declaration;
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.Modifier;
-import com.sun.mirror.declaration.TypeParameterDeclaration;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.type.TypeVariable;
-import com.sun.mirror.util.DeclarationVisitor;
-import com.sun.mirror.util.SourcePosition;
-import com.sun.mirror.util.TypeVisitor;
-
-public class TypeParameterDeclarationImpl extends DeclarationImpl implements TypeParameterDeclaration, TypeVariable
-{
-    public TypeParameterDeclarationImpl(final ITypeBinding binding,
-                                        final BaseProcessorEnv env)
-    {
-		super(binding, env);
-		assert binding.isTypeVariable();
-    }
-
-    public void accept(DeclarationVisitor visitor)
-    {
-        super.accept(visitor);
-        visitor.visitTypeParameterDeclaration(this);
-    }
-
-    public <A extends Annotation> A getAnnotation(Class<A> annotationClass)
-    {
-        return null;
-    }
-
-    public Collection<AnnotationMirror> getAnnotationMirrors()
-    {
-        return Collections.emptyList();
-    }
-
-    public Collection<ReferenceType> getBounds()
-    {
-        final ITypeBinding[] bounds = getDeclarationBinding().getTypeBounds();
-        if( bounds == null || bounds.length == 0 )
-            return Collections.emptyList();
-
-        final Collection<ReferenceType> result = new ArrayList<ReferenceType>(4);
-        for( ITypeBinding bound : bounds ){
-            final ReferenceType type = Factory.createReferenceType(bound, _env);
-             if( type != null )
-                result.add(type);
-        }
-
-        return result;
-    }
-
-    public String getDocComment()
-    {
-        return null;
-    }
-
-    public Collection<Modifier> getModifiers()
-    {
-        return Collections.emptyList();
-    }
-
-    public Declaration getOwner()
-    {
-        // TODO: (theodora) uncomment the following code when we get the next version of jdt.core
-	/*
-		final ITypeBinding binding = getDeclarationBinding();
-		// declared on a class
-		IBinding owner = binding.getDeclaringClass();
-		if( owner == null )
-			// declared on the method
-			owner = binding.getDeclaringMethod();
-		// actually don't know for some reason.
-		if( owner == null ) return null;
-		return Factory.createDeclaration(owner, _env);
-		
-	*/	
-        throw new UnsupportedOperationException("Need version 1.44 of jdt.core.dom.ITypeBinding.java. tyeung@bea.com"); //$NON-NLS-1$
-    }
-
-    public SourcePosition getPosition()
-    {
-        if( isFromSource() )
-        {
-			final ASTNode node = getAstNode();  
-			if( node == null ) return null;
-            final CompilationUnit unit = getCompilationUnit();
-            final int offset = node.getStartPosition();    		
-            return new SourcePositionImpl(offset, 
-            		                      node.getLength(), 
-            							  unit.lineNumber(offset), 
-            							  unit.columnNumber(offset),
-            							  this);
-        }
-        else
-            return null;
-    }
-
-    public String getSimpleName()
-    {
-        final ITypeBinding typeVar = getDeclarationBinding();
-        return typeVar.getName();
-    }
-
-    // Start of implementation of TypeVariable API
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitReferenceType(this);
-        visitor.visitTypeVariable(this);
-    }
-
-    public TypeParameterDeclaration getDeclaration()
-    {
-        return this;
-    }
-    // End of implementation of TypeVariable API
-
-    public String toString()
-    {
-        return getSimpleName();
-    }
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_PARAMETER_VARIABLE; }
-	
-	public ITypeBinding getDeclarationBinding(){ return (ITypeBinding) _binding; }
-
-	public boolean isFromSource(){ return getDeclarationBinding().isFromSource(); }   
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/APTProblem.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/APTProblem.java
deleted file mode 100644
index 79493fb..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/APTProblem.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.env.MessagerImpl.Severity;
-import org.eclipse.jdt.apt.core.util.EclipseMessager;
-import org.eclipse.jdt.core.compiler.IProblem;
-
-class APTProblem implements IProblem 
-{	
-	private static final String[] NO_ARGS = new String[0];
-	private final Severity _severity;
-	private int _startingOffset;
-	private int _endingOffset;
-	private int _line;
-	private IFile _resource;
-	private final String _message;
-	
-	// May be null
-	private final String[] _arguments;
-	
-	APTProblem(final String msg, 
-			   final Severity severity, 
-			   final IFile file, 
-			   final int startingOffset,
-			   final int endingOffset,
-			   final int line,
-			   final String[] arguments){
-		_message = msg;
-		_severity = severity;
-		_startingOffset = startingOffset;
-		_endingOffset = endingOffset;
-		_line = line;
-		_resource = file;
-		_arguments = arguments;
-	}
-
-	public int getID() {
-		// If we have arguments, then we're quick-fixable
-		if (_arguments != null) {
-			return EclipseMessager.APT_QUICK_FIX_PROBLEM_ID;
-		}
-		else {
-			return EclipseMessager.APT_PROBLEM_ID;
-		}
-	}
-	
-	public String[] getArguments() {	
-		return _arguments == null ? NO_ARGS : (String[])_arguments.clone();
-	}
-	
-	public String getMessage() {	
-		return _message;
-	}
-	
-	public char[] getOriginatingFileName() {		
-		return _resource.getName().toCharArray();
-	}
-	
-	public int getSourceStart() {
-		return _startingOffset;
-	}
-	
-	public int getSourceEnd() {	
-		return _endingOffset;
-	}
-	
-	public int getSourceLineNumber() {		
-		return _line;
-	}
-	
-	public void setSourceStart(int sourceStart) {
-		_startingOffset = sourceStart;
-	}	
-	
-	public void setSourceEnd(int sourceEnd) {
-		_endingOffset = sourceEnd;
-	}
-	
-	public void setSourceLineNumber(int lineNumber) {
-		_line = lineNumber;		
-	}
-	
-	public boolean isError() {
-		return _severity == Severity.ERROR;
-	}
-	
-	public boolean isWarning() {
-		return _severity == Severity.WARNING;
-	}
-	
-	public String toString()
-	{
-		return _message == null ? "<null message>" : _message ;  //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/AnnotationInvocationHandler.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/AnnotationInvocationHandler.java
deleted file mode 100644
index 4cfe6c8..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/AnnotationInvocationHandler.java
+++ /dev/null
@@ -1,120 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.env; 
-
-import com.sun.mirror.type.MirroredTypeException;
-import com.sun.mirror.type.MirroredTypesException;
-import com.sun.mirror.type.TypeMirror;
-import java.lang.reflect.InvocationHandler;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class AnnotationInvocationHandler implements InvocationHandler
-{
-	private static final String JAVA_LANG_CLASS = "java.lang.Class"; //$NON-NLS-1$
-    private final AnnotationMirrorImpl _instance;
-    private final Class _clazz;
-
-    public AnnotationInvocationHandler(final AnnotationMirrorImpl annotation,
-    								   final Class clazz)
-    {
-        _instance = annotation;
-        _clazz = clazz;
-    }
-
-    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
-    {
-        final String methodName = method.getName();
-        if( args == null || args.length == 0 )
-        {
-            if( methodName.equals("hashCode") ) //$NON-NLS-1$
-                return new Integer( _instance.hashCode() );
-            if( methodName.equals("toString") ) //$NON-NLS-1$
-                return _instance.toString();
-            if( methodName.equals("annotationType")) //$NON-NLS-1$
-            	return _clazz;
-        }
-        else if( args.length == 1 && methodName.equals("equals") ) //$NON-NLS-1$
-        {
-            return new Boolean( _instance.equals( args[0] ) );
-        }
-        if( args != null && args.length != 0 )
-            throw new NoSuchMethodException("method " + method.getName() + formatArgs(args) + " does not exists"); //$NON-NLS-1$ //$NON-NLS-2$
-        final String c_methodName = method.getName();
-        final IMethodBinding methodBinding = _instance.getMethodBinding(c_methodName);
-        if( methodBinding == null )
-            throw new NoSuchMethodException("method " + method.getName() + "() does not exists"); //$NON-NLS-1$ //$NON-NLS-2$
-
-        final ITypeBinding retType = methodBinding.getReturnType();
-        if( retType == null ) return null;
-        
-        final String qName = retType.getTypeDeclaration().getQualifiedName();
-        // type of annotation member is java.lang.Class
-        if( retType.isClass() && JAVA_LANG_CLASS.equals(qName) ){ //$NON-NLS-1$
-            // need to figure out the class that's being accessed
-            final ITypeBinding[] classTypes = _instance.getMemberValueTypeBinding(c_methodName);
-            TypeMirror mirrorType = null;
-            if( classTypes != null && classTypes.length > 0 ){
-                mirrorType = Factory.createTypeMirror(classTypes[0], _instance.getEnvironment() );
-            }
-            if( mirrorType == null )
-                mirrorType = Factory.createErrorClassType(classTypes[0]);
-            throw new MirroredTypeException(mirrorType);
-        }
-        else if( retType.isArray() ){
-            final ITypeBinding leafType = retType.getElementType();
-            final String leafQName = leafType.getTypeDeclaration().getQualifiedName();
-            // type of annotation member is java.lang.Class[]
-            if( leafType.isClass() && JAVA_LANG_CLASS.equals(leafQName) ){ //$NON-NLS-1$
-                final ITypeBinding[] classTypes = _instance.getMemberValueTypeBinding(c_methodName);
-                final Collection<TypeMirror> mirrorTypes;
-                if( classTypes == null || classTypes.length == 0 )
-                    mirrorTypes = Collections.emptyList();
-                else{
-                    mirrorTypes = new ArrayList<TypeMirror>(classTypes.length);
-                    for( ITypeBinding type : classTypes ){
-                        TypeMirror mirror = Factory.createTypeMirror(type, _instance.getEnvironment() );
-                        if( mirror == null )
-                            mirrorTypes.add( Factory.createTypeMirror(type, _instance.getEnvironment() ) );
-                        else
-                            mirrorTypes.add(mirror);
-                    }
-                }
-
-                throw new MirroredTypesException(mirrorTypes);
-            }
-        }
-        return _instance.getReflectionValue(c_methodName, method);
-    }
-
-    private String formatArgs(final Object[] args)
-    {
-        // estimate that each class name (plus the separators) is 10 characters long plus 2 for "()".
-        final StringBuilder builder = new StringBuilder(args.length * 8 + 2 );
-        builder.append('(');
-        for( int i=0; i<args.length; i++ )
-        {
-            if( i > 0 ) builder.append(", "); //$NON-NLS-1$
-            builder.append(args[i].getClass().getName());
-        }
-
-        builder.append(')');
-
-        return builder.toString();
-    }
-} 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java
deleted file mode 100644
index 6b694c6..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BaseProcessorEnv.java
+++ /dev/null
@@ -1,819 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.env.Phase;
-import org.eclipse.jdt.apt.core.internal.declaration.EclipseDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.PackageDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.PackageDeclarationImplNoBinding;
-import org.eclipse.jdt.apt.core.internal.declaration.TypeDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.type.PrimitiveTypeImpl;
-import org.eclipse.jdt.apt.core.internal.type.VoidTypeImpl;
-import org.eclipse.jdt.apt.core.internal.util.DeclarationsUtil;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.apt.core.internal.util.PackageUtil;
-import org.eclipse.jdt.apt.core.internal.util.TypesUtil;
-import org.eclipse.jdt.apt.core.internal.util.Visitors.AnnotatedNodeVisitor;
-import org.eclipse.jdt.core.BindingKey;
-import org.eclipse.jdt.core.IClassFile;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaElement;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IMember;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IType;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTParser;
-import org.eclipse.jdt.core.dom.ASTRequestor;
-import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.IBinding;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorListener;
-import com.sun.mirror.apt.Filer;
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.PackageDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.util.Declarations;
-import com.sun.mirror.util.Types;
-
-/**
- * Base annotation processor environment that supports type system navigation.
- * No support for problem registration as well as type generation.
- *  
- * @author tyeung
- */
-public class BaseProcessorEnv implements AnnotationProcessorEnvironment 
-{
-	static{
-		final AST ast = AST.newAST(AST.JLS3);
-		EMPTY_AST_UNIT = ast.newCompilationUnit();
-	}
-	public static final CompilationUnit EMPTY_AST_UNIT;
-	public static final ICompilationUnit[] NO_UNIT = new ICompilationUnit[0];
-	public static final CompilationUnit[] NO_AST_UNITs = new CompilationUnit[0];
-	public static final String[] NO_KEYS = new String[0];
-
-	private static final int BOOLEAN_INDEX = 0;
-	private static final int BYTE_INDEX = 1;
-	private static final int CHAR_INDEX = 2;
-	private static final int DOUBLE_INDEX = 3;
-	private static final int FLOAT_INDEX = 4;
-	private static final int INT_INDEX = 5;
-	private static final int LONG_INDEX = 6;
-	private static final int SHORT_INDEX = 7;
-	private static final int VOID_INDEX = 8;
-	
-	protected CompilationUnit _astRoot;
-	protected final Phase _phase;
-	protected IFile _file;
-	protected final IJavaProject _javaProject;
-	
-	/**
-     * Mapping model compilation unit to dom compilation unit.
-     * The assumption here is that once the client examine some binding from some file, 
-     * it will continue to examine other bindings from came from that same file.
-     */
-    protected final Map<ICompilationUnit, CompilationUnit> _modelCompUnit2astCompUnit;
-	/**
-	 * Mapping (source) top-level type binding to the compilation unit that defines it.
-	 */
-    protected final Map<ITypeBinding, ICompilationUnit> _typeBinding2ModelCompUnit;
-    // void type and the primitive types will be null if the '_file'
-	// is outside of the workspace.
-	private VoidTypeImpl _voidType;
-	private PrimitiveTypeImpl[] _primitives;
-	
-	public BaseProcessorEnv(CompilationUnit astCompilationUnit,
-						    IFile file,
-						    IJavaProject javaProj,
-							Phase phase )
-	{
-		_astRoot = astCompilationUnit;
-		_file = file;
-		_javaProject = javaProj;
-		_phase = phase;
-		
-		_modelCompUnit2astCompUnit = new HashMap<ICompilationUnit, CompilationUnit>();
-		_typeBinding2ModelCompUnit = new HashMap<ITypeBinding, ICompilationUnit>();
-	}
-  
-	public Types getTypeUtils()
-    {
-		return new TypesUtil(this);
-    }
-	
-	public Declarations getDeclarationUtils()
-    {
-        return new DeclarationsUtil();
-    }
-	
-	public void addListener(AnnotationProcessorListener listener) {
-		throw new UnsupportedOperationException("Not supported!"); //$NON-NLS-1$
-	}
-	
-	public void removeListener(AnnotationProcessorListener listener) {
-		throw new UnsupportedOperationException("Not supported!"); //$NON-NLS-1$
-	}
-	
-	/**
-     * @return the list of all named type declarations in compilation unit associated with
-     *         this environment.
-     * This implementation is different from the API specification that it does not return
-     * all included types in the universe.
-     */
-    public Collection<TypeDeclaration> getTypeDeclarations()
-    {
-    	final List<ITypeBinding> bindings = getTypeBindings();
-		if( bindings.isEmpty() )
-			return Collections.emptyList();
-		final List<TypeDeclaration> mirrorDecls = new ArrayList<TypeDeclaration>(bindings.size());
-
-		for( ITypeBinding binding : bindings ){
-			final TypeDeclaration mirrorDecl = Factory.createReferenceType(binding, this);
-			if( mirrorDecl != null )
-				mirrorDecls.add(mirrorDecl);
-		}
-
-		return mirrorDecls;
-    }
-    
-    protected List<AbstractTypeDeclaration> searchLocallyForTypeDeclarations()
-    {
-    	return _astRoot.types();
-    }
-    
-    private List<ITypeBinding> getTypeBindings()
-	{
-    	final List<AbstractTypeDeclaration> declTypes = searchLocallyForTypeDeclarations();    	
-		if( declTypes == null || declTypes.isEmpty() )
-			return Collections.emptyList();
-		final List<ITypeBinding> typeBindings = new ArrayList<ITypeBinding>(declTypes.size());
-
-		for( AbstractTypeDeclaration decl : declTypes ){
-			getTypeBindings(decl.resolveBinding(), typeBindings);
-		}
-		return typeBindings;
-	}
-    
-    /**
-	 * Add <code>type</code> and all its declared nested type(s) to <code>types</code>
-	 * @param type the container type
-	 * @param typeBindings upon return, contains all the nested types within <code>type</code>
-	 *        and the type itself.
-	 */
-	protected void getTypeBindings(final ITypeBinding type, final List<ITypeBinding> typeBindings)
-	{
-		if( type == null ) return;
-		typeBindings.add(type);
-		for( ITypeBinding nestedType : type.getDeclaredTypes() ) {
-			typeBindings.add(nestedType);
-			getTypeBindings(nestedType, typeBindings);
-		}
-	}
-    
-    public Collection<TypeDeclaration> getSpecifiedTypeDeclarations()
-    {
-        return getTypeDeclarations();
-    }
-    
-    public Collection<Declaration> getDeclarationsAnnotatedWith(AnnotationTypeDeclaration a)
-    {
-    	 final ITypeBinding annotationType = TypesUtil.getTypeBinding(a);
-         if( annotationType == null  || !annotationType.isAnnotation()) return Collections.emptyList();
-         return getDeclarationsAnnotatedWith(annotationType);
-    }
-    
-    /**
-     * Go through the current compilation unit and look for ast nodes that has annotations.
-     * @return the map between ast node and 
-     */
-    protected Map<ASTNode, List<Annotation>> getASTNodesWithAnnotations()
-    {
-    	final Map<ASTNode, List<Annotation>> astNode2Anno = new HashMap<ASTNode, List<Annotation>>();
-        final AnnotatedNodeVisitor visitor = new AnnotatedNodeVisitor(astNode2Anno);
-        _astRoot.accept(visitor);
-        return astNode2Anno;
-    }
-
-    private List<Declaration> getDeclarationsAnnotatedWith(final ITypeBinding annotationType)
-    {
-        final Map<ASTNode, List<Annotation>> astNode2Anno = getASTNodesWithAnnotations();       
-		if( astNode2Anno.isEmpty() )
-			return Collections.emptyList();
-		final List<Declaration> decls = new ArrayList<Declaration>();
-		for(Map.Entry<ASTNode, List<Annotation>> entry : astNode2Anno.entrySet() ){
-			final ASTNode node = entry.getKey();
-			for( Annotation anno : entry.getValue() ){
-				final IBinding resolvedTypeBinding = anno.resolveTypeBinding();
-				if( annotationType.isEqualTo(resolvedTypeBinding) )
-					getDeclarations(node, decls);
-			}
-		}
-        return decls;
-
-    }
-    
-    protected IFile getFileForNode(final ASTNode node)
-    {
-    	if( node.getRoot() == _astRoot )
-    		return _file;
-    	
-    	throw new IllegalStateException(); // should never get here.
-    }
-    
-    /**
-	 * @param node the ast node in question
-	 * @param decls the list to be populated.
-	 *        adding the declaration(s) corresponding to the ast node to this list.
-	 */
-    protected void getDeclarations(ASTNode node, List<Declaration>decls)
-    {
-    	if( node == null ) return;
-        IBinding binding = null;
-		switch( node.getNodeType() )
-		{
-		case ASTNode.FIELD_DECLARATION:
-			final List<VariableDeclarationFragment> fragments =
-                ((org.eclipse.jdt.core.dom.FieldDeclaration)node).fragments();
-			for( VariableDeclarationFragment frag : fragments ){
-				final IBinding fieldBinding = frag.resolveBinding();
-				final EclipseDeclarationImpl decl; 
-				if( fieldBinding != null )
-					decl = Factory.createDeclaration(fieldBinding, this);
-				else{
-					decl = Factory.createDeclaration(frag, getFileForNode(frag), this);
-				}
-				if( decl != null )
-					decls.add(decl);
-			}
-            return;
-
-		case ASTNode.ENUM_CONSTANT_DECLARATION:
-            binding = ((org.eclipse.jdt.core.dom.EnumConstantDeclaration)node).resolveVariable();
-            break;
-        case ASTNode.METHOD_DECLARATION:
-            binding = ((org.eclipse.jdt.core.dom.MethodDeclaration)node).resolveBinding();
-			break;
-        case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
-            binding = ((AnnotationTypeMemberDeclaration)node).resolveBinding();
-            break;
-        case ASTNode.TYPE_DECLARATION:
-        case ASTNode.ANNOTATION_TYPE_DECLARATION:
-        case ASTNode.ENUM_DECLARATION:
-            binding = ((AbstractTypeDeclaration)node).resolveBinding();
-            break;
-        case ASTNode.SINGLE_VARIABLE_DECLARATION:
-        	binding = null;
-            break;
-        case ASTNode.PACKAGE_DECLARATION:
-            binding = ((org.eclipse.jdt.core.dom.PackageDeclaration)node).resolveBinding();
-            break;
-        default:
-            throw new UnsupportedOperationException("unknown node type: " + node.getNodeType()); //$NON-NLS-1$
-        }
-
-		final EclipseDeclarationImpl decl; 
-		if( binding != null )
-			decl = Factory.createDeclaration(binding, this);
-		else{
-			decl = Factory.createDeclaration(node, getFileForNode(node), this);
-		}
-		if( decl != null )
-			decls.add( decl );
-        
-        return;
-    }
-
-	
-	
-	/**
-     * @param binding must be correspond to a type, method or field declaration.
-     * @return the ast node the corresponds to the declaration of the given binding.
-     *         Return null if none is found.
-     */
-    public ASTNode getASTNodeForBinding(final IBinding binding)
-    {
-    	final CompilationUnit astUnit = getCompilationUnitForBinding(binding);
-		if( astUnit == null ) 
-			return null;
-		return astUnit.findDeclaringNode(binding.getKey());
-    }
-    
-    public Map<String, String> getOptions(){ return Collections.emptyMap(); };
-    
-    // does not generated dependencies
-    public TypeDeclaration getTypeDeclaration(String name)
-    {	
-    	if( name == null || name.length() == 0 ) return null;
-		// get rid of the generics parts.
-		final int index = name.indexOf('<');
-		if( index != -1 )
-			name = name.substring(0, index);
-		
-		// first see if it is one of the well known types.
-		// any AST is as good as the other.		
-		ITypeBinding typeBinding = null;
-		if( _astRoot != null )
-			typeBinding = _astRoot.getAST().resolveWellKnownType(name);
-		String typeKey = BindingKey.createTypeBindingKey(name);
-		if(typeBinding == null){
-			// then look into the current compilation units			
-			ASTNode node = null;
-			if( _astRoot != null )
-				node = _astRoot.findDeclaringNode(typeKey);
-						
-			if( node != null ){
-				final int nodeType = node.getNodeType();
-				if( nodeType == ASTNode.TYPE_DECLARATION ||
-					nodeType == ASTNode.ANNOTATION_TYPE_DECLARATION ||
-					nodeType == ASTNode.ENUM_DECLARATION )
-				typeBinding = ((AbstractTypeDeclaration)node).resolveBinding();
-			}
-		}
-		if( typeBinding != null )
-			return Factory.createReferenceType(typeBinding, this);
-
-		// finally go search for it in the universe.
-		typeBinding = getTypeBinding(typeKey);
-		if( typeBinding != null ){			
-			return Factory.createReferenceType(typeBinding, this);
-		}
-
-		return null;
-    }
-    
-    /**
-	 * @param key the key to a type binding, could be reference type, array or primitive.
-	 * @return the binding corresponding to the given key or null if none is found.
-	 */
-	public ITypeBinding getTypeBinding(final String key)
-	{
-		class BindingRequestor extends ASTRequestor
-		{
-			private ITypeBinding _result = null;
-			public void acceptBinding(String bindingKey, IBinding binding)
-			{
-				if( binding != null && binding.getKind() == IBinding.TYPE )
-					_result = (ITypeBinding)binding;
-			}
-		}
-
-		final BindingRequestor requestor = new BindingRequestor();
-		final ASTParser parser = ASTParser.newParser(AST.JLS3);
-		parser.setResolveBindings(true);
-		parser.setProject(_javaProject);
-		parser.createASTs(NO_UNIT, new String[]{key}, requestor, null);
-		return requestor._result;
-	}
-	
-	public TypeDeclaration getTypeDeclaration(final IType type) {
-		if (type == null) return null;
-		String name = type.getFullyQualifiedName();
-		return getTypeDeclaration(name);
-	}
-    
-	public PackageDeclaration getPackage(String name)
-    {
-		if (name == null)
-			throw new IllegalArgumentException("name cannot be null"); //$NON-NLS-1$		
-        IPackageFragment[] pkgFrags = PackageUtil.getPackageFragments(name, this);
-
-		// No packages found, null expected
-		if (pkgFrags.length == 0)
-			return null;
-
-		// If there are no source or class files, we'll need to return
-		// a special implementation of the package decl that expects
-		// no declarations inside it
-		boolean containsNoJavaResources = true;
-		for (IPackageFragment pkg : pkgFrags) {
-			try {
-				if (pkg.containsJavaResources()) {
-					containsNoJavaResources = false;
-					break;
-				}
-			}
-			catch (JavaModelException e) {}
-		}
-		if (containsNoJavaResources)
-			return new PackageDeclarationImplNoBinding(pkgFrags, this);
-
-		// We should be able to create a class or
-		// source file from one of the packages.
-		ICompilationUnit compUnit = null;
-		IClassFile classFile = null;
-
-		OUTER:
-		for (IPackageFragment pkg : pkgFrags) {
-			try {
-				ICompilationUnit[] compUnits = pkg.getCompilationUnits();
-				if (compUnits.length > 0) {
-					compUnit = compUnits[0];
-					break;
-				}
-				IClassFile[] classFiles = pkg.getClassFiles();
-				if (classFiles.length > 0) {
-					// Need to grab the first one that's not an inner class,
-					// as eclipse has trouble parsing inner class files
-					for (IClassFile tempClassFile : classFiles) {
-						if (tempClassFile.getElementName().indexOf("$") < 0) { //$NON-NLS-1$
-							classFile = tempClassFile;
-							break OUTER;
-						}
-					}
-				}
-			}
-			catch (JavaModelException e) {}
-		}
-
-		IType type = null;
-		if (compUnit != null) {
-			try {
-				IType[] types = compUnit.getAllTypes();
-				if (types.length > 0) {
-					type = types[0];
-				}
-			}
-			catch (JavaModelException e) {}
-		}
-		else if (classFile != null) {
-			try {
-				type = classFile.getType();
-			}
-			catch (JavaModelException e) {}
-		}
-
-		// Given a type, we can construct a package declaration impl from it,
-		// but we must hide the fact that it came from a real declaration,
-		// as the client requested it without that context
-		if (type != null) {
-			TypeDeclarationImpl typeDecl = (TypeDeclarationImpl)getTypeDeclaration(type);
-			ITypeBinding binding = typeDecl.getDeclarationBinding();
-			return new PackageDeclarationImpl(binding.getPackage(), typeDecl, this, true, pkgFrags);
-		}
-
-		// No classes or source files found
-		return new PackageDeclarationImplNoBinding(pkgFrags, this);
-    }
-	
-	protected CompilationUnit searchLocallyForBinding(final IBinding binding)
-	{
-		final ASTNode node = _astRoot.findDeclaringNode(binding);
-		if( node != null )
-			return _astRoot;
-		return null;
-	}
-    
-	/**
-     * @param binding must be correspond to a type, method or field declaration.
-     * @return the compilation unit that contains the declaration of the given binding.
-     */
-    public CompilationUnit getCompilationUnitForBinding(final IBinding binding)
-    {
-        assert binding.getKind() == IBinding.TYPE ||
-               binding.getKind() == IBinding.METHOD ||
-               binding.getKind() == IBinding.VARIABLE ;
-        CompilationUnit domUnit = searchLocallyForBinding(binding);        
-        if( domUnit != null ) 
-        	return domUnit;
-        else{
-			final IMember member = (IMember)binding.getJavaElement();
-			final ICompilationUnit unit;
-			if( member != null ){
-				unit = member.getCompilationUnit();
-			}
-			else{
-				final ITypeBinding typeBinding = getDeclaringClass(binding);
-				if( _typeBinding2ModelCompUnit.get(typeBinding) != null )
-					unit = _typeBinding2ModelCompUnit.get(typeBinding);
-				else{
-					final String qname = typeBinding.getQualifiedName();
-					final String pathname = qname.replace('.', File.separatorChar);
-					final IPath path = Path.fromOSString(pathname);
-					try{
-						unit = (ICompilationUnit)_javaProject.findElement(path);
-						_typeBinding2ModelCompUnit.put(typeBinding, unit);
-					}
-					catch(JavaModelException e){
-						throw new IllegalStateException(e);
-					}
-				}
-			}
-			if( unit == null ) return null;
-
-            final CompilationUnit astUnit = _modelCompUnit2astCompUnit.get(unit);
-            if( astUnit != null ) return astUnit;
-            else{
-                // Note: very expensive operation. we are re-compiling a file with binding information.
-                final ASTParser parser =  ASTParser.newParser(AST.JLS3);
-                parser.setResolveBindings(true);
-                parser.setSource(unit);
-				parser.setFocalPosition(0);
-                CompilationUnit resultUnit = (CompilationUnit)parser.createAST(null);
-                _modelCompUnit2astCompUnit.put(unit, resultUnit);
-                return resultUnit;
-            }
-        }
-    }
-    
-    public Filer getFiler(){ 
-    	throw new UnsupportedOperationException("Not supported: the EnvironmentFactory API is for type system navigation only"); //$NON-NLS-1$
-    }    
-
-    public Messager getMessager(){ 
-    	throw new UnsupportedOperationException("Not supported: the EnvironmentFactory API is for type system navigation only"); //$NON-NLS-1$
-    }
-    
-    /**
-	 * @param bindin a type, method or field binding.
-	 * @return the top-level type binding that declares <code>binding</code>
-	 * 	       or itself if it is already one.
-	 */
-	protected static ITypeBinding getDeclaringClass(final IBinding binding)
-	{
-		assert binding != null : "binding cannot be null"; //$NON-NLS-1$
-		ITypeBinding aTypeBinding = null;
-		switch( binding.getKind() )
-		{
-		case IBinding.TYPE:
-			aTypeBinding = (ITypeBinding)binding;
-			break;
-		case IBinding.METHOD:
-			aTypeBinding = ((IMethodBinding)binding).getDeclaringClass();
-			break;
-		case IBinding.VARIABLE:
-			aTypeBinding = ((IVariableBinding)binding).getDeclaringClass();
-			break;
-		default:
-			throw new IllegalStateException("unrecognized binding type " +  binding.getKind()); //$NON-NLS-1$
-		}
-		if(aTypeBinding == null ) return null;
-		while( !aTypeBinding.isTopLevel() ){
-			aTypeBinding = aTypeBinding.getDeclaringClass();
-		}
-		return aTypeBinding;
-	}
-	
-	protected IFile searchLocallyForIFile(final IBinding binding)
-	{
-		ASTNode node = _astRoot.findDeclaringNode(binding);
-		if( node != null )
-			return _file;
-		return null;
-	}
-	
-	/**
-	 * @param binding must be correspond to a type, method or field declaration
-	 * @return the file that contains the declaration of given binding.
-	 */
-	public IFile getDeclaringFileForBinding(final IBinding binding)
-	{
-		assert binding.getKind() == IBinding.TYPE ||
-		       binding.getKind() == IBinding.METHOD ||
-		       binding.getKind() == IBinding.VARIABLE ;
-		// check to see whether it is in the current file.
-		IFile file = searchLocallyForIFile(binding);
-		if( file != null ) 
-			return file;
-	
-		final IMember member = (IMember)binding.getJavaElement();
-		if( member != null ){
-			final ICompilationUnit unit = member.getCompilationUnit();
-			return (IFile)unit.getResource();
-		}
-		else{
-			final ITypeBinding type = getDeclaringClass(binding);
-			assert type.isTopLevel() : "type must be top-level type"; //$NON-NLS-1$
-			final String qname = type.getQualifiedName();
-			final String pathname = qname.replace('.', File.separatorChar);
-			final IPath path = Path.fromOSString(pathname);
-			try{
-				// the element would be a compilation unit.
-				final IJavaElement element = _javaProject.findElement(path);
-				if( element == null ) return null;
-				return (IFile)element.getResource();
-			}
-			catch(JavaModelException e){
-				throw new IllegalStateException(e);
-			}
-		}
-	}
-	
-	/**
-	 * Parse and fully resolve all files. 
-	 * @param javaProject
-	 * @param files the files to be parsed and resolved.
-	 * @return the array of ast units parallel to <code>files</code>
-	 * Any entry in the returned array may be <code>null</code>. 
-	 * This indicates an error while reading the file. 
-	 */
-	public static CompilationUnit[] createDietASTs(
-			final IJavaProject javaProject, 
-			final ICompilationUnit[] parseUnits)
-	{
-		if( parseUnits == null ) 
-			return null;
-		final int len = parseUnits.length;
-		if( len == 0 )
-			return NO_AST_UNITs;
-		
-		class CompilationUnitsRequestor extends ASTRequestor
-		{	
-			CompilationUnit[] domUnits = new CompilationUnit[len];
-			CompilationUnitsRequestor(){
-				for( int i=0; i<len; i++ ){
-					// make sure we will not get any null.
-					// setting it to an empty unit will guarantee that if the 
-					// creation failed, the apt dispatch will do the cleanup work properly.
-					domUnits[i] = EMPTY_AST_UNIT;;
-				}
-			}
-			public void acceptAST(ICompilationUnit source, CompilationUnit ast) {
-				for( int i=0; i<len; i++ ){
-					if( source == parseUnits[i] ){
-						domUnits[i] = ast;
-						break;
-					}
-				}
-			}
-		}
-		
-		CompilationUnitsRequestor requestor = new CompilationUnitsRequestor();
-		ASTParser p = ASTParser.newParser( AST.JLS3 );
-		p.setResolveBindings( true );
-		p.setProject( javaProject );
-		p.setFocalPosition( 0 );
-		p.setKind( ASTParser.K_COMPILATION_UNIT );
-		p.createASTs( parseUnits, NO_KEYS,  requestor, null);
-		
-		return requestor.domUnits;
-	}
-	
-	/**
-	 *  This should create an AST without imports or method-body statements
-	 */
-	public static CompilationUnit createDietAST(
-			IJavaProject javaProject, 
-			final ICompilationUnit compilationUnit)
-	{	
-		if(compilationUnit == null)
-			return null;
-		
-		class CompilationUnitRequestor extends ASTRequestor
-		{	
-			CompilationUnit domUnit = EMPTY_AST_UNIT;
-			public void acceptAST(ICompilationUnit source, CompilationUnit ast) {
-				if( source == compilationUnit )
-					domUnit = ast;			
-			}
-		}
-		
-		CompilationUnitRequestor requestor = new CompilationUnitRequestor();
-		ASTParser p = ASTParser.newParser( AST.JLS3 );
-		p.setResolveBindings( true );
-		p.setProject( javaProject );		
-		p.setFocalPosition( 0 );
-		p.setKind( ASTParser.K_COMPILATION_UNIT );
-		p.createASTs( new ICompilationUnit[]{compilationUnit}, NO_KEYS,  requestor, null);
-		if( AptPlugin.DEBUG ){
-			AptPlugin.trace("created DOM AST for " + compilationUnit.getElementName() ); //$NON-NLS-1$
-		}
-		return requestor.domUnit;
-	}
-	
-	/**
-	 * @return the ast current being processed
-	 */
-	protected AST getCurrentDietAST(){
-		return _astRoot.getAST();
-	}
-	
-	private void initPrimitives()
-	{
-		if(_primitives != null ) return;
-		AST ast = getCurrentDietAST();
-		 
-		_primitives = new PrimitiveTypeImpl[8];
-		// boolean
-		ITypeBinding binding = ast.resolveWellKnownType(ITypeConstants.BOOLEAN);		
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BOOLEAN); //$NON-NLS-1$
-		_primitives[BOOLEAN_INDEX] = new PrimitiveTypeImpl(binding);		
-		// byte
-		binding = ast.resolveWellKnownType(ITypeConstants.BYTE);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[BYTE_INDEX] = new PrimitiveTypeImpl(binding);
-		// char
-		binding = ast.resolveWellKnownType(ITypeConstants.CHAR);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[CHAR_INDEX] = new PrimitiveTypeImpl(binding);
-		// double
-		binding = ast.resolveWellKnownType(ITypeConstants.DOUBLE);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[DOUBLE_INDEX] = new PrimitiveTypeImpl(binding);
-		// float
-		binding = ast.resolveWellKnownType(ITypeConstants.FLOAT);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[FLOAT_INDEX] = new PrimitiveTypeImpl(binding);
-		// int
-		binding = ast.resolveWellKnownType(ITypeConstants.INT);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[INT_INDEX] = new PrimitiveTypeImpl(binding);
-		// long
-		binding = ast.resolveWellKnownType(ITypeConstants.LONG);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[LONG_INDEX] = new PrimitiveTypeImpl(binding);
-		// short
-		binding = ast.resolveWellKnownType(ITypeConstants.SHORT);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_primitives[SHORT_INDEX] = new PrimitiveTypeImpl(binding);
-		// void
-		binding = ast.resolveWellKnownType(ITypeConstants.VOID);
-		if( binding == null )
-			throw new IllegalStateException("fail to locate " + ITypeConstants.BYTE); //$NON-NLS-1$
-		_voidType = new VoidTypeImpl(binding);
-	}
-	
-	public PrimitiveTypeImpl getBooleanType(){
-		initPrimitives();
-		return _primitives[BOOLEAN_INDEX]; 
-	}
-	public PrimitiveTypeImpl getByteType(){ 
-		initPrimitives();
-		return _primitives[BYTE_INDEX]; 
-	}
-	public PrimitiveTypeImpl getCharType(){
-		initPrimitives();
-		return _primitives[CHAR_INDEX]; 
-	}
-	public PrimitiveTypeImpl getDoubleType(){ 
-		initPrimitives();
-		return _primitives[DOUBLE_INDEX]; 
-	}
-	public PrimitiveTypeImpl getFloatType(){
-		initPrimitives();
-		return _primitives[FLOAT_INDEX]; 
-	}
-	public PrimitiveTypeImpl getIntType(){ 
-		initPrimitives();
-		return _primitives[INT_INDEX]; 
-	}
-	public PrimitiveTypeImpl getLongType(){ 
-		initPrimitives();
-		return _primitives[LONG_INDEX]; 
-	}
-	public PrimitiveTypeImpl getShortType(){ 
-		initPrimitives();
-		return _primitives[SHORT_INDEX]; 
-	}
-	public VoidTypeImpl getVoidType(){ 
-		initPrimitives();
-		return _voidType; 
-	}
-	
-	public CompilationUnit  getAstCompilationUnit(){ return _astRoot; }
-	public IFile            getFile() { return _file; }
-	public Phase            getPhase(){ return _phase; }
-    public IProject         getProject(){ return _javaProject.getProject(); }
-	public IJavaProject		getJavaProject(){ return _javaProject; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BinaryFileOutputStream.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BinaryFileOutputStream.java
deleted file mode 100644
index 4620565..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/BinaryFileOutputStream.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.util.FileSystemUtil;
-
-/**
- * Wrap output operations, caching them in memory,
- * then writing them out at the end if the content
- * is different than what is on disk
- */
-public class BinaryFileOutputStream extends ByteArrayOutputStream {
-
-	private final IFile _file;
-	
-	public BinaryFileOutputStream(IFile file) {
-		_file = file;
-	}
-	
-	@Override
-	public void close() throws IOException {
-		super.close();
-		InputStream contents = new ByteArrayInputStream(toByteArray());
-		if (!_file.exists()) {
-			saveToDisk(contents, true);
-			return;
-		}
-		boolean needToWriteData = true;
-		try {
-			// Only write the contents if the data is different
-			InputStream in = new ByteArrayInputStream(toByteArray());
-			InputStream oldData = new BufferedInputStream(_file.getContents());
-			if (FileSystemUtil.compareStreams(in, oldData)) {
-				needToWriteData = false;
-			}
-		}
-		catch (CoreException ce) {
-			// Ignore -- couldn't read the old data, so assume it's different
-		}
-		if (needToWriteData) {
-			contents.reset();
-			saveToDisk(contents, false);
-		}
-	}
-	
-	private void saveToDisk(InputStream toSave, boolean create) throws IOException{
-		try {
-			FileSystemUtil.makeDerivedParentFolders(_file.getParent());
-			if (create) {
-				_file.create(toSave, true, null);
-				_file.setDerived(true);
-			}
-			else {
-				_file.setContents(toSave, true, false, null);
-			}
-		}
-		catch (CoreException ce) {
-			AptPlugin.log(ce, "Could not create generated file"); //$NON-NLS-1$
-			throw new IOException(ce.getMessage());
-		}
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/EclipseRoundCompleteEvent.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/EclipseRoundCompleteEvent.java
deleted file mode 100644
index 451bff1..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/EclipseRoundCompleteEvent.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial implementation.    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-
-import com.sun.mirror.apt.RoundCompleteEvent;
-import com.sun.mirror.apt.RoundState;
-
-public class EclipseRoundCompleteEvent extends RoundCompleteEvent 
-{
-	static final long serialVersionUID = 0;
-	
-	public EclipseRoundCompleteEvent(final ProcessorEnvImpl env)
-	{
-		super( env, new State(env) );	
-	}
-	
-	private static class State implements RoundState 
-	{	
-		private final ProcessorEnvImpl _env;
-		State(ProcessorEnvImpl env){ _env = env; }
-		public boolean classFilesCreated() { return _env.hasGeneratedClassFiles(); }		
-		public boolean errorRaised() {  return _env.hasRaisedErrors(); }			
-		public boolean sourceFilesCreated() {  return _env.hasGeneratedSourceFiles(); }			
-		public boolean finalRound() {
-			// apt terminates when there are no new generated source files 
-			return !_env.hasGeneratedSourceFiles(); 
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FileRefreshJob.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FileRefreshJob.java
deleted file mode 100644
index c4949d9..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FileRefreshJob.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.jobs.Job;
-
-public class FileRefreshJob extends Job {
-	
-	private final IFile _file;
-	
-	FileRefreshJob(final IFile file) {
-		super(file.toString());
-		_file = file;
-	}
-
-	@Override
-	protected IStatus run(IProgressMonitor monitor) {
-		try {
-			_file.getParent().refreshLocal(IResource.DEPTH_INFINITE, monitor);
-		}
-		catch (CoreException ce) {
-			return ce.getStatus();
-		}
-		return Status.OK_STATUS;
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FilerImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FilerImpl.java
deleted file mode 100644
index 970935a..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/FilerImpl.java
+++ /dev/null
@@ -1,205 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.OutputStream;
-import java.io.OutputStreamWriter;
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.env.Phase;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager;
-import org.eclipse.jdt.apt.core.internal.util.FileSystemUtil;
-import org.eclipse.jdt.core.JavaModelException;
-
-import com.sun.mirror.apt.Filer;
-
-
-public class FilerImpl implements Filer {
-
-	private ProcessorEnvImpl _env;
-	private boolean _generatedClassFiles = false;
-	
-    public FilerImpl( ProcessorEnvImpl env )
-    {
-        _env = env;
-    }
-	
-    /**
-     * Creates a new source file and returns a writer for it. The file's name 
-     * and path (relative to the root of all newly created source files) is 
-     * based on the type to be declared in that file. If more than one type is 
-     * being declared, the name of the principal top-level type (the public 
-     * one, for example) should be used. 
-     * 
-     * Character set used is the default character set for the platform
-     * 
-     * @param name - canonical (fully qualified) name of the principal type being declared in this file 
-     */
-    public PrintWriter createSourceFile(String typeName) throws IOException 
-    {
-    	_env.checkValid();
-        return new JavaSourceFilePrintWriter( typeName, new StringWriter(), _env ); 
-    }
-
-
-    /**  
-     * Creates a new class file, and returns a stream for writing to it. The 
-     * file's name and path (relative to the root of all newly created class 
-     * files) is based on the name of the type being written. 
-     *  
-     * @param name - canonical (fully qualified) name of the type being written 
-     * @return -a stream for writing to the new file 
-     */
-    public OutputStream createClassFile(String name) throws IOException 
-    {
-    	_env.checkValid();
-		_generatedClassFiles = true;
-		
-		// We do not want to write to disk during reconcile
-		if (_env.getPhase() == Phase.RECONCILE) {
-			return new NoOpOutputStream();
-		}
-		
-    	GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( _env.getProject() );
-    	IPath path;
-    	try 
-    	{
-    		 path = gfm.getGeneratedSourceFolderOutputLocation();
-    	}
-    	catch ( Exception e )
-    	{
-    		// TODO - stop throwing this exception
-    		AptPlugin.log(e, "Failure getting the output file"); //$NON-NLS-1$
-    		throw new IOException();
-    	}
-    	
-    	path = path.append(name.replace('.', File.separatorChar) + ".class"); //$NON-NLS-1$
-    	
-        IFile file = _env.getProject().getFile(path);
-        return new BinaryFileOutputStream(file);
-    }
-	
-	public boolean hasGeneratedClassFile(){ return _generatedClassFiles; }
-
-    /**
-     * Creates a new text file, and returns a writer for it. The file is 
-     * located along with either the newly created source or newly created 
-     * binary files. It may be named relative to some package (as are source 
-     * and binary files), and from there by an arbitrary pathname. In a loose 
-     * sense, the pathname of the new file will be the concatenation of loc, 
-     * pkg, and relPath. 
-     * 
-     * A charset for encoding the file may be provided. If none is given, 
-     * the charset used to encode source files (see createSourceFile(String)) will be used. 
-     *
-     * @param loc - location of the new file
-     * @param pkg - package relative to which the file should be named, or the empty string if none
-     * @param relPath - final pathname components of the file
-     * @param charsetName - the name of the charset to use, or null if none is being explicitly specified 
-     * @return - a writer for the new file 
-     */
-    public PrintWriter createTextFile(Filer.Location loc, String pkg, File relPath, String charsetName) 
-        throws IOException 
-    {
-    	_env.checkValid();
-    	
-    	// If we're reconciling, we do not want to actually create the text file
-    	if (_env.getPhase() == Phase.RECONCILE) {
-    		return new NoOpPrintWriter();
-    	}
-    	
-    	IPath path = getOutputFileForLocation( loc, pkg, relPath );
-    	IFile file = _env.getProject().getFile(path);
-    	OutputStream binaryOut = new BinaryFileOutputStream(file);
- 
-    	if (charsetName == null) {
-    		return new PrintWriter(binaryOut);
-    	}
-    	else {
-    		OutputStreamWriter outWriter = new OutputStreamWriter(binaryOut, charsetName);
-    		return new PrintWriter(outWriter);
-    	}
-    }
-
-    /**
-     * Creates a new binary file, and returns a stream for writing to it. The 
-     * file is located along with either the newly created source or newly 
-     * created binary files. It may be named relative to some package (as 
-     * are source and binary files), and from there by an arbitrary pathname. 
-     * In a loose sense, the pathname of the new file will be the concatenation 
-     * of loc, pkg, and relPath. 
-     * 
-     * @param loc - location of the new file
-     * @param pkg - package relative to which the file should be named, or the empty string if none
-     * @param relPath - final pathname components of the file 
-     * @return a stream for writing to the new file 
-     */
-    public OutputStream createBinaryFile(Filer.Location loc, String pkg, File relPath)
-        throws IOException 
-    {
-    	_env.checkValid();
-    	
-    	// We do not want to write to disk during reconcile
-		if (_env.getPhase() == Phase.RECONCILE) {
-			return new NoOpOutputStream();
-		}
-    	
-    	IPath path = getOutputFileForLocation( loc, pkg, relPath );
-    	IFile file = _env.getProject().getFile(path);
-    	return new BinaryFileOutputStream(file);
-    }
-	
-    /**
-     * Return a project-relative path
-     */
-    private IPath getOutputFileForLocation( Filer.Location loc, String pkg, File relPath )
-    	throws IOException
-    {
-    	GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( _env.getProject() );
-    	IPath path = null;
-    	if ( loc == Filer.Location.CLASS_TREE )
-    	{
-    		try 
-    		{
-    			path = gfm.getGeneratedSourceFolderOutputLocation();
-    		}
-    		catch ( JavaModelException e )
-    		{
-    			AptPlugin.log(e, "Failure getting the output file"); //$NON-NLS-1$
-    			throw new IOException();
-    		}
-    	}
-    	else if ( loc == Filer.Location.SOURCE_TREE ) {
-    		path = gfm.getGeneratedSourceFolder().getProjectRelativePath();
-    	}
-    	
-        if( pkg != null )
-            path = path.append(pkg.replace('.', File.separatorChar) );
-
-        path = path.append(relPath.getPath() );
-    	
-        // Create the parent folder (need an absolute path temporarily)
-        IPath absolutePath = _env.getProject().getLocation().append(path);
-        File parentFile = absolutePath.toFile().getParentFile();
-        FileSystemUtil.mkdirs( parentFile );
-        
-    	return path;
-    }
-    
-    
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ITypeConstants.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ITypeConstants.java
deleted file mode 100644
index f066f8b..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ITypeConstants.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-public interface ITypeConstants {
-	static final String BOOLEAN = "boolean"; //$NON-NLS-1$
-	static final String BYTE 	= "byte"; //$NON-NLS-1$
-	static final String CHAR 	= "char"; //$NON-NLS-1$
-	static final String DOUBLE  = "double"; //$NON-NLS-1$
-	static final String FLOAT 	= "float"; //$NON-NLS-1$
-	static final String INT 	= "int"; //$NON-NLS-1$
-	static final String LONG	= "long"; //$NON-NLS-1$
-	static final String SHORT	= "short"; //$NON-NLS-1$
-	static final String VOID 	= "void"; //$NON-NLS-1$
-}
-
-
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/JavaSourceFilePrintWriter.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/JavaSourceFilePrintWriter.java
deleted file mode 100644
index 0050781..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/JavaSourceFilePrintWriter.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.PrintWriter;
-import java.io.StringWriter;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.env.Phase;
-import org.eclipse.jdt.apt.core.internal.generatedfile.FileGenerationResult;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager;
-import org.eclipse.jdt.core.ICompilationUnit;
-
-
-public class JavaSourceFilePrintWriter extends PrintWriter {
-
-    public JavaSourceFilePrintWriter( String typeName, StringWriter sw, ProcessorEnvImpl env )
-    {
-        super( sw );
-        _sw = sw;
-        _typeName = typeName;
-        _env = env;
-    }
-	
-    public void close()
-    {
-    	
-    	try {
-	    	String contents = _sw.toString();
-	        super.close();
-	        GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager(_env.getProject());
-	        Phase phase = _env.getPhase();
-		
-	        FileGenerationResult result = null;
-	        if ( phase == Phase.RECONCILE )
-	        {
-	        	ICompilationUnit parentCompilationUnit = _env.getCompilationUnit();
-	            result  = gfm.generateFileDuringReconcile( 
-	                parentCompilationUnit, _typeName, contents, parentCompilationUnit.getOwner(), null, null );
-	        }
-	        else if ( phase == Phase.BUILD)	
-	        {
-				result = gfm.generateFileDuringBuild( 
-						_env.getFile(),  _typeName, contents, _env, null /* progress monitor */ );
-	        }
-	        else
-	        {
-	            throw new IllegalStateException( "Unexpected phase value: " + phase ); //$NON-NLS-1$
-	        }
-	        if (result != null) {
-	        	_env.addGeneratedFile(result.getFile(), result.isModified());
-	        	if (result.hasSourcepathChanged()) {
-	        		_env.setSourcePathChanged(true);
-	        	}
-	        }
-    	}
-    	catch (CoreException ce) {
-    		AptPlugin.log(ce, "Unable to generate type when JavaSourceFilePrintWriter was closed"); //$NON-NLS-1$
-    	}
-    }
-			
-	
-    private StringWriter _sw;
-    private String _typeName;
-    private ProcessorEnvImpl _env;
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MarkerInfo.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MarkerInfo.java
deleted file mode 100644
index 88778d7..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MarkerInfo.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.apt.core.internal.env.MessagerImpl.Severity;
-
-/**
- * Simple container class for attributes of IMarker
- *
- */
-public class MarkerInfo {
-
-	private final int start;
-	private final int end;
-	private final Severity severity;
-	private final String msg;
-	private final int line;
-	
-	
-	public MarkerInfo(final int start,
-							final int end, 
-							final Severity severity,
-							final String msg,
-							final int line) 
-	{
-		this.start = start;
-		this.end = end;
-		this.severity = severity;
-		this.msg = msg;
-		this.line = line;
-	}
-	
-	private int getSeverity() {
-		switch (severity) {
-		case ERROR : 
-			return IMarker.SEVERITY_ERROR;
-		case WARNING :
-			return IMarker.SEVERITY_WARNING;
-		case INFO :
-			return IMarker.SEVERITY_INFO;
-		}
-		throw new IllegalStateException("Unhandled severity level: " + severity); //$NON-NLS-1$
-	}
-	
-	public boolean isError(){
-		return severity == Severity.ERROR;
-	}
-	
-	/**
-	 * Copy this info into the provided marker
-	 */
-	public void copyIntoMarker(IMarker marker) throws CoreException {
-		marker.setAttribute(IMarker.CHAR_START, start);
-		marker.setAttribute(IMarker.CHAR_END, end);
-		marker.setAttribute(IMarker.SEVERITY, getSeverity());
-		marker.setAttribute(IMarker.MESSAGE, msg);
-		marker.setAttribute(IMarker.LINE_NUMBER, line);
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MessagerImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MessagerImpl.java
deleted file mode 100644
index 481afa9..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/MessagerImpl.java
+++ /dev/null
@@ -1,231 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.env; 
-
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.util.SourcePosition;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.util.SourcePositionImpl;
-import org.eclipse.jdt.apt.core.util.EclipseMessager;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-
-
-public class MessagerImpl implements Messager, EclipseMessager
-{
-	public static enum Severity{ ERROR, WARNING, INFO};
-    private final ProcessorEnvImpl _env;
-
-    MessagerImpl(ProcessorEnvImpl env){
-        _env = env;
-    }
-    
-    public void printError(SourcePosition pos, String msg, String[] arguments)
-    {
-    	if( pos == null )
-    		printError(msg);
-    	else if( pos instanceof SourcePositionImpl )
-            print((SourcePositionImpl)pos, Severity.ERROR, msg, arguments);
-    	else
-    		print(pos, Severity.ERROR, msg, arguments);
-    }
-	
-	public void printError(ASTNode node, String msg)
-	{
-		if( node == null )
-			throw new IllegalArgumentException("'node' cannot be null"); //$NON-NLS-1$
-		final int start = node.getStartPosition();
-		// The only time you get a dom AST node is when you are processing in a per-file mode.
-		// _env.getAstCompilationUnit() && _env.getFile() will return an non-null value.
-		final int line = _env.getAstCompilationUnit().lineNumber(start);
-		_env.addMessage(_env.getFile(), start, node.getLength() + start, Severity.ERROR, msg, line, null );
-	}
-
-    public void printError(String msg)
-    {
-        print(Severity.ERROR, msg, null);
-    }
-
-    public void printNotice(SourcePosition pos, String msg, String[] arguments)
-    {
-        if( pos instanceof SourcePositionImpl )
-            print((SourcePositionImpl)pos, Severity.INFO, msg, arguments);
-		else if (pos == null )
-			printNotice(msg);
-		else
-    		print(pos, Severity.INFO, msg, arguments);
-    }
-	
-	public void printNotice(ASTNode node, String msg)
-	{
-		if( node == null )
-			throw new IllegalArgumentException("'node' cannot be null"); //$NON-NLS-1$
-		final int start = node.getStartPosition();
-		// The only time you get a dom AST node is when you are processing in a per-file mode.
-		// _env.getAstCompilationUnit() && _env.getFile() will return an non-null value.
-		final int line = _env.getAstCompilationUnit().lineNumber(start);
-		_env.addMessage(_env.getFile(), start, node.getLength() + start, Severity.INFO, msg, line, null );
-	}
-
-    public void printNotice(String msg)
-    {
-       print(Severity.INFO, msg, null);
-    }
-
-    public void printWarning(SourcePosition pos, String msg, String[] arguments)
-    {		
-        if( pos instanceof SourcePositionImpl )
-            print((SourcePositionImpl)pos, Severity.WARNING, msg, arguments);
-		else if (pos == null )
-			printWarning(msg); 
-		else
-    		print(pos, Severity.WARNING, msg, arguments);
-    }
-	
-	public void printWarning(ASTNode node, String msg)
-	{
-		if( node == null )
-			throw new IllegalArgumentException("'node' cannot be null"); //$NON-NLS-1$
-		final int start = node.getStartPosition();
-		// The only time you get a dom AST node is when you are processing in a per-file mode.
-		// _env.getAstCompilationUnit() && _env.getFile() will return an non-null value.
-		final int line = _env.getAstCompilationUnit().lineNumber(start);
-		_env.addMessage(_env.getFile(), start, node.getLength() + start, Severity.WARNING, msg, line, null);
-	}
-
-    public void printWarning(String msg)
-    {
-        print(Severity.WARNING, msg, null);
-    }
-    
-    public void printError(SourcePosition pos, String msg) {
-		printError(pos, msg, null);
-	}
-
-	public void printWarning(SourcePosition pos, String msg) {
-		printWarning(pos, msg, null);
-	}
-
-	public void printNotice(SourcePosition pos, String msg) {
-		printNotice(pos, msg, null);
-	}
-	
-	public void printFixableError(SourcePosition pos, String msg, String pluginId, String errorId) {
-		if (pluginId == null) {
-			throw new IllegalArgumentException("pluginId cannot be null"); //$NON-NLS-1$
-		}
-		if (errorId == null) {
-			throw new IllegalArgumentException("errorId cannot be null"); //$NON-NLS-1$
-		}
-		printError(pos, msg, new String[] {pluginId, errorId});
-	}
-	
-	public void printFixableWarning(SourcePosition pos, String msg, String pluginId, String errorId) {
-		if (pluginId == null) {
-			throw new IllegalArgumentException("pluginId cannot be null"); //$NON-NLS-1$
-		}
-		if (errorId == null) {
-			throw new IllegalArgumentException("errorId cannot be null"); //$NON-NLS-1$
-		}
-		printWarning(pos, msg, new String[] {pluginId, errorId});
-	}
-	
-	public void printFixableNotice(SourcePosition pos, String msg, String pluginId, String errorId) {
-		if (pluginId == null) {
-			throw new IllegalArgumentException("pluginId cannot be null"); //$NON-NLS-1$
-		}
-		if (errorId == null) {
-			throw new IllegalArgumentException("errorId cannot be null"); //$NON-NLS-1$
-		}
-		printNotice(pos, msg, new String[] {pluginId, errorId});
-	}
-	
-	public void printFixableError(String msg, String pluginId, String errorId) {
-		if (pluginId == null) {
-			throw new IllegalArgumentException("pluginId cannot be null"); //$NON-NLS-1$
-		}
-		if (errorId == null) {
-			throw new IllegalArgumentException("errorId cannot be null"); //$NON-NLS-1$
-		}
-		print(Severity.ERROR, msg, new String[] {pluginId, errorId});
-	}
-	
-	public void printFixableWarning(String msg, String pluginId, String errorId) {
-		if (pluginId == null) {
-			throw new IllegalArgumentException("pluginId cannot be null"); //$NON-NLS-1$
-		}
-		if (errorId == null) {
-			throw new IllegalArgumentException("errorId cannot be null"); //$NON-NLS-1$
-		}
-		print(Severity.WARNING, msg, new String[] {pluginId, errorId});
-	}
-	
-	public void printFixableNotice(String msg, String pluginId, String errorId) {
-		if (pluginId == null) {
-			throw new IllegalArgumentException("pluginId cannot be null"); //$NON-NLS-1$
-		}
-		if (errorId == null) {
-			throw new IllegalArgumentException("errorId cannot be null"); //$NON-NLS-1$
-		}
-		print(Severity.INFO, msg, new String[] {pluginId, errorId});
-	}
-  
-    private void print(SourcePositionImpl pos,
-    				   Severity severity,
-                       String msg,
-                       String[] arguments)
-    {
-        final IFile resource = pos.getResource();
-        if( resource == null ){
-			throw new IllegalStateException("missing resource"); //$NON-NLS-1$            
-        }
-        else{          
-          _env.addMessage(resource, pos.getStartingOffset(), pos.getEndingOffset(), 
-						  severity, msg, pos.line(), arguments);
-        }
-    }
-    
-    private void print(SourcePosition pos,
-    				   Severity severity,
-    				   String msg,
-    				   String[] arguments)
-    {    	
-    	final java.io.File file = pos.file();
-    	IFile resource = null;
-    	if( file != null ){    		
-    		final String projAbsPath = _env.getProject().getLocation().toOSString();
-    		final String fileAbsPath = file.getAbsolutePath();
-    		final String fileRelPath = fileAbsPath.substring(projAbsPath.length());    			
-    		resource = _env.getProject().getFile(fileRelPath);
-    		if( !resource.exists() )
-    			resource = null;
-    	}
-    	else
-    		resource = null;
-    	 
-    	int offset = -1;
-    	if( resource != null ){
-    		final CompilationUnit unit = _env.getAstCompilationUnit(resource);
-    		if( unit != null )
-    			offset = unit.getPosition( pos.line(), pos.column() );
-    	}
-    	_env.addMessage(resource, offset, -1, severity, msg, pos.line(), arguments );   
-    }
-
-    private void print(Severity severity, String msg, String[] arguments)
-    {
-     	_env.addMessage(null, -1, -1, severity, msg, 1, arguments );  
-		
-    }
-  
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpOutputStream.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpOutputStream.java
deleted file mode 100644
index b3c80b8..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpOutputStream.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.IOException;
-import java.io.OutputStream;
-
-/**
- * Dummy output stream for filer operations 
- */
-public class NoOpOutputStream extends OutputStream {
-	
-	public NoOpOutputStream() {
-		super();
-	}
-
-	@Override
-	public void write(byte[] b, int off, int len) throws IOException {
-	}
-
-	@Override
-	public void write(byte[] b) throws IOException {
-	}
-
-	@Override
-	public void write(int b) throws IOException {
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpPrintWriter.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpPrintWriter.java
deleted file mode 100644
index c1e40fc..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/NoOpPrintWriter.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.PrintWriter;
-
-public class NoOpPrintWriter extends PrintWriter {
-
-	public NoOpPrintWriter() {
-		super(new NoOpOutputStream());
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ProcessorEnvImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ProcessorEnvImpl.java
deleted file mode 100644
index 050e507..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/env/ProcessorEnvImpl.java
+++ /dev/null
@@ -1,1239 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.env;
-
-import java.io.BufferedInputStream;
-import java.io.CharArrayWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.env.EclipseAnnotationProcessorEnvironment;
-import org.eclipse.jdt.apt.core.env.Phase;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.TypeDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.env.MessagerImpl.Severity;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.apt.core.internal.util.Visitors.AnnotatedNodeVisitor;
-import org.eclipse.jdt.apt.core.internal.util.Visitors.AnnotationVisitor;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.core.util.EclipseMessager;
-import org.eclipse.jdt.core.BindingKey;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.compiler.IProblem;
-import org.eclipse.jdt.core.dom.AST;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTParser;
-import org.eclipse.jdt.core.dom.ASTVisitor;
-import org.eclipse.jdt.core.dom.AbstractTypeDeclaration;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.CompilationUnit;
-import org.eclipse.jdt.core.dom.IBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.SimpleName;
-
-import com.sun.mirror.apt.AnnotationProcessorListener;
-import com.sun.mirror.apt.Filer;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.PackageDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-public class ProcessorEnvImpl extends BaseProcessorEnv implements EclipseAnnotationProcessorEnvironment
-{
-	private static final boolean ENABLE_GENERATED_FILE_LISTENER = false;
-	public static final String BUILD_MARKER = "org.eclipse.jdt.apt.core.marker"; //$NON-NLS-1$
-	public static final ICompilationUnit[] NO_UNIT = new ICompilationUnit[0];
-	/** delimiter of path variables in -A values, e.g., %ROOT%/foo */
-	private static final char PATHVAR_DELIM = '%';
-	/** regex to identify substituted token in path variables */
-	private static final String PATHVAR_TOKEN = "^%[^%/\\\\ ]+%.*"; //$NON-NLS-1$
-	/** path variable meaning "workspace root" */
-	private static final String PATHVAR_ROOT = "%ROOT%"; //$NON-NLS-1$
-    
-	/**
-	 * The compilation unit of the file that is being processed in reconcile 
-	 * or in file-based mode of build.  
-	 */
-    private ICompilationUnit _unit;       
-    private Map<IFile, List<IProblem>> _allProblems;
-    
-	// Stores the generated java files from parent to child
-    private Map<IFile, Set<IFile>> _allGeneratedFiles = new HashMap<IFile, Set<IFile>>();
-    private Set<IFile> _modifiedGeneratedFiles = new HashSet<IFile>();
-	private Set<AnnotationProcessorListener> _listeners = null;
-	private final FilerImpl _filer;
-	private boolean _sourcePathChanged;
-	private boolean _isClosed = false;
-
-	/**
-	 * Set of strings that indicate new type dependencies introduced on the file
-	 * each string is a fully-qualified type name.
-	 */
-	private Map<IFile, Set<String>> _typeDependencies = new HashMap<IFile, Set<String>>();
-	
-	/**
-	 * Processor options, including -A options.
-	 * Set in ctor and then not changed.
-	 */
-	private Map<String, String> _options;
-	
-	/**
-	 * Indicates whether we are in batch mode or not. This gets flipped only 
-	 * during build and could be flipped back and forth. 
-	 */
-	private boolean _batchMode = false; // off by default.	
-
-	/** 
-	 * Holds all the files that contains annotation that are to be processed during build.
-	 * If we are not in batch mode (reconcile time or file-based dispatch during build),
-	 * <code>super._file</code> holds the file being processed at the time. 
-	 */ 
-	private IFile[] _filesWithAnnotation = null;
-	
-	/**
-	 * These are files that are part of a build but does not have annotations on it.
-	 * During batch mode processing, these files still also need to be included. 
-	 */
-	private IFile[] _additionFiles = null;
-	/** 
-	 * This is intialized when <code>_batchMode</code> is set to be <code>true</code> or
-	 * when batch processing is expected. @see #getAllAnnotationTypes(Map)
-	 */
-	private CompilationUnit[] _astUnits = null;
-	/**
-	 * <code>ICompilationUnit</code> parallel to the <code>CompilationUnit</code>s in 
-	 * <code>_astUnits</code>
-	 */
-	private ICompilationUnit[] _units = null;
-	private List<MarkerInfo> _markerInfos = null;
-
-	public static ProcessorEnvImpl newReconcileEnv(ICompilationUnit compilationUnit, IJavaProject javaProj)
-    {
-		CompilationUnit domUnit = createDietAST( javaProj, compilationUnit );
-       	return new ProcessorEnvImpl( domUnit, compilationUnit, javaProj);
-    }
-	
-	/**
-	 * @param filesWithAnnotation files that have annotation.
-	 * @param units compilation unit associated with <code>filesWithAnnotation</code>
-	 * @param javaProj
-	 * @return a new processor environment.
-	 */
-	public static ProcessorEnvImpl newBuildEnvInternalRounding(
-			IFile[] filesWithAnnotation,			
-			ICompilationUnit[] units, 
-			IJavaProject javaProj)
-	{
-		assert filesWithAnnotation != null : "missing files"; //$NON-NLS-1$
-		return new ProcessorEnvImpl(filesWithAnnotation, null, units, javaProj, Phase.BUILD);
-	}
-    
-    public static ProcessorEnvImpl newBuildEnv(
-    		IFile[] filesWithAnnotation,
-    		IFile[] additionalFiles,
-    		IJavaProject javaProj )
-    {
-    	assert filesWithAnnotation != null : "missing files"; //$NON-NLS-1$    	
-    
-		// note, we are not reading any files.
-		return new ProcessorEnvImpl(filesWithAnnotation, additionalFiles, null, javaProj, Phase.BUILD);
-    }
-    
-    /** 
-     * Constructor for creating a processor environment used during reconcile
-     * @param astCompilationUnit
-     * @param compilationUnit
-     * @param file
-     * @param javaProj
-     * @param phase
-     */
-    private ProcessorEnvImpl(
-    		final CompilationUnit astCompilationUnit,
-    		final ICompilationUnit compilationUnit,
-    		final IJavaProject javaProj )
-    {
-    	super(  astCompilationUnit, (IFile)compilationUnit.getResource(), javaProj, Phase.RECONCILE );
-   
-	   _unit = compilationUnit;	
-	   _filer = new FilerImpl(this);
-	   _allProblems = new HashMap<IFile, List<IProblem>>();	   
-	   initOptions(javaProj);
-    }
-    
-    /**
-     * Constructor for creating a processor environment used during build.
-     * @param filesWithAnnotations
-     * @param additionalFiles
-     * @param units
-     * @param javaProj
-     * @param phase
-     */
-    private ProcessorEnvImpl(
-			final IFile[] filesWithAnnotations,
-			final IFile[] additionalFiles, 
-			final ICompilationUnit[] units,
-			final IJavaProject javaProj,
-			final Phase phase) {
-    	
-    	super(null, null, javaProj, phase);
-    
-		_unit = null;
-		_units = units;
-		_filer = new FilerImpl(this);
-		_filesWithAnnotation = filesWithAnnotations;
-		_additionFiles = additionalFiles;
-		_allProblems = new HashMap<IFile, List<IProblem>>();
-		_markerInfos = new ArrayList<MarkerInfo>();
-		initOptions(javaProj);
-	}
-    
-    
-    /**
-     * Set the _options map based on the current project/workspace settings.
-     * There is a bug in Sun's apt implementation: it parses the command line 
-     * incorrectly, such that -Akey=value gets added to the options map as 
-     * key "-Akey=value" and value "".  In order to support processors written 
-     * to run on Sun's apt as well as processors written without this bug
-     * in mind, we populate the map with two copies of every option, one the
-     * expected way ("key" / "value") and the other the Sun way 
-     * ("-Akey=value" / "").  We make exceptions for the non-dash-A options
-     * that we set automatically, such as -classpath, -target, and so forth;
-     * since these wouldn't have come from a -A option we don't construct a
-     * -Akey=value variant.
-     * 
-     * Called from constructor.  A new Env is constructed for each build pass,
-     * so this will always be up to date with the latest settings.
-	 */
-	private void initOptions(IJavaProject jproj) {
-		Map<String, String> procOptions = AptConfig.getProcessorOptions(jproj);
-		_options = new HashMap<String, String>(procOptions.size() * 2);
-		
-		// Add configured options
-		for (Map.Entry<String, String> entry : procOptions.entrySet()) {
-			String value = resolveVarPath(entry.getValue());
-			String key = entry.getKey();
-			_options.put(key, value);
-			if (!AptConfig.isAutomaticProcessorOption(key)) {
-				String sunStyle;
-				if (value != null) {
-					sunStyle = "-A" + entry.getKey() + "=" + value; //$NON-NLS-1$ //$NON-NLS-2$
-				}
-				else {
-					sunStyle = "-A" + entry.getKey(); //$NON-NLS-1$
-				}
-				_options.put(sunStyle, ""); //$NON-NLS-1$
-			}
-		}
-	}
-
-	/**
-	 * If the value starts with a path variable such as %ROOT%, replace it with
-	 * the absolute path.
-	 * @param value the value of a -Akey=value command option
-	 */
-	private String resolveVarPath(String value) {
-		if (value == null) {
-			return null;
-		}
-		// is there a token to substitute?
-		if (!Pattern.matches(PATHVAR_TOKEN, value)) {
-			return value;
-		}
-		IPath path = new Path(value);
-		String firstToken = path.segment(0);
-		// If it matches %ROOT%/project, it is a project-relative path.
-		if (PATHVAR_ROOT.equals(firstToken)) {
-			IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
-			IResource proj = root.findMember(path.segment(1));
-			if (proj == null) {
-				return value;
-			}
-			// all is well; do the substitution
-			IPath relativePath = path.removeFirstSegments(2);
-			IPath absoluteProjPath = proj.getLocation();
-			IPath absoluteResPath = absoluteProjPath.append(relativePath);
-			return absoluteResPath.toOSString();
-		}
-		
-		// otherwise it's a classpath-var-based path.
-		String cpvName = firstToken.substring(1, firstToken.length() - 1);
-		IPath cpvPath = JavaCore.getClasspathVariable(cpvName);
-		if (cpvPath != null) {
-			IPath resolved = cpvPath.append(path.removeFirstSegments(1));
-			return resolved.toOSString();
-		}
-		else {
-			return value;
-		}
-	}
-
-
-    public Filer getFiler()
-    {
-		checkValid();
-        return _filer;
-    }
-
-    public EclipseMessager getMessager()
-    {
-		checkValid();
-		return new MessagerImpl(this);
-	}
-
-    public Map<String, String> getOptions()
-    {
-        final HashMap<String, String> options = new HashMap<String, String>(_options);
-		options.put("phase", getPhase().toString()); //$NON-NLS-1$
-		return options;
-    }
-
-    public PackageDeclaration getPackage(String name)
-    {
-		checkValid();
-		return super.getPackage(name);
-    }
-
-    public TypeDeclaration getTypeDeclaration(String name)
-    {
-		checkValid();		
-		TypeDeclaration decl = null;
-		if( !_batchMode ){
-			// we are not keeping dependencies unless we are processing on a
-			// per file basis.
-			decl = super.getTypeDeclaration(name);			
-			addTypeDependency( name );
-		}
-		else
-			decl = getTypeDeclarationInBatch(name);
-			
-		return decl;
-    }
-
-    private TypeDeclaration getTypeDeclarationInBatch(String name)
-    {	
-    	if( name == null || _astUnits == null ) return null;
-		// get rid of the generics parts.
-		final int index = name.indexOf('<');
-		if( index != -1 )
-			name = name.substring(0, index);
-		
-		// first see if it is one of the well known types.
-		// any AST is as good as the other.
-		ITypeBinding typeBinding = null;
-		String typeKey = BindingKey.createTypeBindingKey(name);
-		if( _astUnits.length > 0 ){
-			_astUnits[0].getAST().resolveWellKnownType(name);
-			
-			if(typeBinding == null){
-				// then look into the current compilation units			
-				ASTNode node = null;
-				for( int i=0, len=_astUnits.length; i<len; i++ )
-					node = _astUnits[i].findDeclaringNode(typeKey);			
-				if( node != null ){
-					final int nodeType = node.getNodeType();
-					if( nodeType == ASTNode.TYPE_DECLARATION ||
-						nodeType == ASTNode.ANNOTATION_TYPE_DECLARATION ||
-						nodeType == ASTNode.ENUM_DECLARATION )
-					typeBinding = ((AbstractTypeDeclaration)node).resolveBinding();
-				}
-			}
-			if( typeBinding != null )
-				return Factory.createReferenceType(typeBinding, this);
-		}
-
-		// finally go search for it in the universe.
-		typeBinding = getTypeBinding(typeKey);
-		if( typeBinding != null ){			
-			return Factory.createReferenceType(typeBinding, this);
-		}
-
-		return null;
-    }
-  
-    public void addListener(AnnotationProcessorListener listener)
-    {
-		checkValid();
-        if(_listeners == null )
-			_listeners = new HashSet<AnnotationProcessorListener>();
-		_listeners.add(listener);
-    }
-
-    public void removeListener(AnnotationProcessorListener listener)
-    {
-		checkValid();
-        if( _listeners == null ) return;
-		_listeners.remove(listener);
-    }
-
-	public Set<AnnotationProcessorListener> getProcessorListeners()
-	{
-		if( _listeners == null )
-			return Collections.emptySet();
-		return Collections.unmodifiableSet(_listeners);
-	}
-
-	public void addGeneratedFile( IFile f, boolean contentsChanged ) {		
-		// Add first to the map of parent -> child
-		IFile parent = getFile();
-		Set<IFile> children = _allGeneratedFiles.get(parent);
-		if (children == null) {
-			children = new HashSet<IFile>();
-			_allGeneratedFiles.put(parent, children);
-		}
-		children.add(f);
-		
-		if (contentsChanged)
-			_modifiedGeneratedFiles.add(f);
-	}
-
-    public ICompilationUnit getCompilationUnit(){ return _unit; }
-    
-    public Map<IFile, Set<IFile>> getAllGeneratedFiles(){ return _allGeneratedFiles; }
-    
-    public Set<IFile> getModifiedGeneratedFiles() { return _modifiedGeneratedFiles; }
-
-	/**
-	 * @return true iff source files has been generated.
-	 *         Always return false when this environment is closed.
-	 */
-	public boolean hasGeneratedSourceFiles(){ return !_allGeneratedFiles.isEmpty();  }
-
-	/**
-	 * @return true iff class files has been generated.
-	 *         Always return false when this environment is closed.
-	 */
-	public boolean hasGeneratedClassFiles(){ return _filer.hasGeneratedClassFile(); }
-
-	/**
-	 * @return true iff errors (markers with serverity == APTProblem.Severity.Error) has been posted
-	 *         Always return false when this environment is closed.
-	 */
-	public boolean hasRaisedErrors()
-	{
-		checkValid();
-		for(List<IProblem> problems : _allProblems.values() )
-		{
-			for(IProblem problem : problems ){
-				if( problem.isError() ) 
-					return true;
-			}		
-		}
-		
-		if( _markerInfos != null ){
-			for(MarkerInfo markerInfo : _markerInfos){
-				if( markerInfo.isError() )
-					return true;
-			}
-		}
-		return false;
-	}  
-
-	/**
-	 *
-	 * reads a given file's contents and returns them as a char array.
-	 *
-	 * @param file
-	 * @return
-	 * @throws CoreException
-	 */
-	public static char[] getFileContents( IFile file )
-		throws CoreException, IOException
-	{
-		Reader reader = null;
-		CharArrayWriter w = null;
-
-		try
-		{
-			reader = getFileReader( file );
-			w = new CharArrayWriter( 4096 );
-			int c = -1;
-			while ( ( c = reader.read() ) > -1 )
-				w.write( c );
-			return w.toCharArray();
-		}
-		finally
-		{
-			try { if ( reader != null ) reader.close(); } catch ( IOException ioe ) {};
-			if ( w != null ) w.close();
-		}
-	}
-
-	public static InputStreamReader getFileReader( final IFile file ) throws IOException, CoreException {
-		return new InputStreamReader(getInputStream(file), file.getCharset());
-	}
-
-	public static InputStream getInputStream( final IFile file ) throws IOException, CoreException {
-		return new BufferedInputStream(file.getContents());
-	}
-
-	/* (non-Javadoc)
-	 *  Once the environment is closed the following is not allowed
-	 *  1) posting messge
-	 *  2) generating file
-	 *  3) retrieving type or package by name
-	 *  4) add or remove listeners
-	 */
-    public void close(){
-    	if( _isClosed ) 
-    		return;
-    	postMarkers();
-    	_markerInfos = null;
-    	_astRoot = null;
-    	_file = null;
-    	_astUnits = null;
-    	_filesWithAnnotation = null;
-    	_units = null;
-    	_allProblems = null;
-        _modelCompUnit2astCompUnit.clear();		
-		_allGeneratedFiles = null;
-		_modifiedGeneratedFiles = null;
-		if(_listeners != null)
-			_listeners.clear();
-		_isClosed = true;
-    }
-
-	/* package */ void checkValid()
-	{
-		if( _isClosed )
-			throw new IllegalStateException("Environment has expired"); //$NON-NLS-1$
-	}	
-       
-    
-    /**
-     * 
-     * @param resource null to indicate current resource
-     * @param start the starting offset of the marker
-     * @param end -1 to indicate unknow ending offset.
-     * @param severity the severity of the marker
-     * @param msg the message on the marker
-     * @param line the line number of where the marker should be
-     */
-    void addMessage(IFile resource, 
-       		        int start, 
-    				int end,
-                    Severity severity, 
-                    String msg, 
-                    int line,
-                    String[] arguments)
-    {
-    	checkValid();
-    	
-    	if( resource == null )
-    		resource = getFile();
-    	
-    	// not going to post any markers to resource outside of the one we are currently 
-    	// processing during reconcile phase.
-    	if( _phase == Phase.RECONCILE && resource != null && !resource.equals( getFile() ) )
-    		return;
-    	
-    	// Eclipse doesn't support INFO-level IProblems, so we send them to the log instead.
-    	if ( _phase != Phase.RECONCILE && severity == Severity.INFO) {
-    		StringBuilder sb = new StringBuilder();
-    		sb.append("Informational message reported by annotation processor:\n"); //$NON-NLS-1$
-    		sb.append(msg);
-    		sb.append("\n"); //$NON-NLS-1$
-    		if (resource != null) {
-    			sb.append("Resource="); //$NON-NLS-1$
-    			sb.append(resource.getName());
-    			sb.append("; "); //$NON-NLS-1$
-    		}
-    		sb.append("starting offset="); //$NON-NLS-1$
-    		sb.append(start);
-    		sb.append("; ending offset="); //$NON-NLS-1$
-    		sb.append(end);
-    		sb.append("; line="); //$NON-NLS-1$
-    		sb.append(line);
-    		if (arguments != null) {
-    			sb.append("; arguments:"); //$NON-NLS-1$
-    			for (String s : arguments) {
-    				sb.append("\n"); //$NON-NLS-1$
-    				sb.append(s);
-    			}
-    		}
-    		else {
-    			sb.append("\n"); //$NON-NLS-1$
-    		}
-    		IStatus status = AptPlugin.createInfoStatus(null, sb.toString());
-    		AptPlugin.log(status);
-    		return;
-    	}
-    	
-    	if( resource == null ){
-    		assert _batchMode : "not in batch mode but don't know about current resource"; //$NON-NLS-1$
-    		addMarker(start, end, severity, msg, line, arguments);
-    	}
-    	else    	
-    		addProblem(resource, start, end, severity, msg, line, arguments);
-    	
-    }
-    
-    private void addProblem(
-    		IFile resource, 
-		    int start, 
-			int end,
-            Severity severity, 
-            String msg, 
-            int line,
-            String[] arguments)
-    {	 
-    	// end-1 since IProblem ending offsets are inclusive but DOM layer
-    	// ending offsets are exclusive.
-    	final APTProblem newProblem = 
-        	new APTProblem(msg, severity, resource, start, end-1, line, arguments);
-    	List<IProblem> problems = _allProblems.get(resource);
-    	if( problems == null ){
-    		problems = new ArrayList<IProblem>(4);
-    		_allProblems.put(resource, problems);    		
-    	}
-    	problems.add(newProblem);
-    }
-    
-    private void addMarker(
-    		int start, 
-			int end,
-            Severity severity, 
-            String msg, 
-            int line,
-            String[] arguments)
-    {    	
-    	// Note that the arguments are ignored -- no quick-fix for markers.
-    	_markerInfos.add(new MarkerInfo(start, end, severity, msg, line));
-    }
-    
-    public Map<IFile, List<IProblem>> getProblems()
-    {
-    	checkValid();
-    	
-    	updateProblemLength();
-    	return _allProblems;
-    }
-    
-    public Map<String, AnnotationTypeDeclaration> getAnnotationTypesInFile()
-    {
-    	checkValid();
-    	assert _astRoot != null && _file != null && !_batchMode : 
-    		"operation not available under batch mode."; //$NON-NLS-1$
-    	final List<Annotation> instances = new ArrayList<Annotation>();
-		final Map<String, AnnotationTypeDeclaration> decls = 
-			new HashMap<String, AnnotationTypeDeclaration>();
-		final AnnotationVisitor visitor = new AnnotationVisitor(instances);
-		_astRoot.accept(visitor);
-			
-		for (int instanceIndex=0, size = instances.size(); instanceIndex < size; instanceIndex++) {
-			final Annotation instance = instances.get(instanceIndex);
-			final ITypeBinding annoType = instance.resolveTypeBinding();
-			if (annoType == null)
-				continue;
-			final TypeDeclarationImpl decl = 
-				Factory.createReferenceType(annoType, this);
-			if (decl.kind() == EclipseMirrorImpl.MirrorKind.TYPE_ANNOTATION){
-				final AnnotationTypeDeclaration annoDecl = (AnnotationTypeDeclaration)decl;
-				decls.put(annoDecl.getQualifiedName(), annoDecl);
-			}
-		}
-		
-		return decls;
-    }
-    
-    /**
-	 * Return all annotations at declaration level within all compilation unit(s)
-	 * associated with this environment. All the files associated with this environment will 
-	 * be parsed and resolved for all declaration level elements at the return of this call.
-	 * 
-	 * @param file2Annotations populated by this method to map files to the annotation types
-	 *        if contains. May be null.
-	 * @return the map containing all annotation types found within this environment.
-	 */
-    public Map<String, AnnotationTypeDeclaration> getAllAnnotationTypes(
-    		final Map<IFile, Set<AnnotationTypeDeclaration>> file2Annotations) {
-    	
-    	checkValid();
-    	if( _filesWithAnnotation == null )  
-    		return getAnnotationTypesInFile();
-    	createDomASTs();
-    	
-		final List<Annotation> instances = new ArrayList<Annotation>();
-		final Map<String, AnnotationTypeDeclaration> decls = 
-			new HashMap<String, AnnotationTypeDeclaration>();
-		final AnnotationVisitor visitor = new AnnotationVisitor(instances);
-		for( int astIndex=0, len=_astUnits.length; astIndex<len; astIndex++ ){
-			if( _astUnits == null || _astUnits[astIndex] == null  )
-				System.err.println();
-			_astUnits[astIndex].accept(visitor);
-			final Set<AnnotationTypeDeclaration> perFileAnnos = new HashSet<AnnotationTypeDeclaration>(); 
-			
-			for (int instanceIndex=0, size = instances.size(); instanceIndex < size; instanceIndex++) {
-				final Annotation instance = instances.get(instanceIndex);
-				final ITypeBinding annoType = instance.resolveTypeBinding();
-				if (annoType == null)
-					continue;
-				final TypeDeclarationImpl decl = 
-					Factory.createReferenceType(annoType, this);
-				if (decl.kind() == EclipseMirrorImpl.MirrorKind.TYPE_ANNOTATION){
-					final AnnotationTypeDeclaration annoDecl = (AnnotationTypeDeclaration)decl;
-					decls.put(annoDecl.getQualifiedName(), annoDecl);
-					perFileAnnos.add(annoDecl);
-				}
-			}
-			if( file2Annotations != null && !perFileAnnos.isEmpty() )
-				file2Annotations.put(_filesWithAnnotation[astIndex], perFileAnnos);
-			visitor.reset();
-		}
-		
-		return decls;
-	}
-    
-    /**
-     * @param file
-     * @return length 3 int array with the following information.
-     * at index 0: contains the starting offset, always >= 0
-     * at index 1: contains the ending offset, may be a negative number.
-     * at index 2: the line number
-     * 
-     */
-    private int[] getClassNameRange(final IFile file){
-    	final CompilationUnit astUnit = getAstCompilationUnit(file);
-    	int[] startAndEnd = null;
-    	if( astUnit != null){
-    		@SuppressWarnings({"unchecked", "nls"})
-    		final List<AbstractTypeDeclaration> topTypes = astUnit.types();
-    		if( topTypes != null && topTypes.size() > 0 ){
-    			final AbstractTypeDeclaration topType = topTypes.get(0);
-    			startAndEnd = new int[3];
-    			final SimpleName typename = topType.getName();
-    			if( typename != null ){
-    				startAndEnd[0] = typename.getStartPosition();
-    				// ending offsets need to be exclusive.
-    				startAndEnd[1] = startAndEnd[0] + typename.getLength() - 1;
-    				startAndEnd[2] = astUnit.lineNumber(typename.getStartPosition());
-    			}
-    			else{
-    				startAndEnd[0] = topType.getStartPosition();
-    				// let case 2 in updateProblemLength() kicks in. 
-    				startAndEnd[1] = -2;
-    				startAndEnd[2] = astUnit.lineNumber(topType.getStartPosition());
-    			}
-    		}
-    	}
-    	if( startAndEnd == null )
-    		// let case 2 in updateProblemLength() kicks in.
-    		return new int[]{0, -2, 1};
-    
-    	return startAndEnd;
-    }
-    
-    /**
-     * Handling the following 2 cases
-     * 1) For IProblems that does not have a starting and ending offset, 
-     * place the problem at the class name. 
-     * 
-     * 2) For IProblems that does not have an ending offset, place the ending
-     * offset at the end of the tightest ast node. 
-     * We will only walk the ast once to determine the ending 
-     * offsets of all the problems that do not have the information set. 
-     */
-    private void updateProblemLength()
-    {	
-    	// for those problems that doesn't have an ending offset, figure it out by
-    	// traversing the ast.
-    	// we do it once just before we post the marker so we only have to walk the ast 
-    	// once.
-    	for( Map.Entry<IFile, List<IProblem>> entry : _allProblems.entrySet() ){
-    		int count = 0;
-    		final IFile file = entry.getKey();
-    		int[] classNameRange = null;
-    		for( IProblem problem : entry.getValue() ){
-    			if( problem.getSourceStart() < 0 ){
-    				if( classNameRange == null )
-    					classNameRange = getClassNameRange(file);
-    				problem.setSourceStart(classNameRange[0]);
-    				problem.setSourceEnd(classNameRange[1]);
-    				problem.setSourceLineNumber(classNameRange[2]);
-    			}
-    			if( problem.getSourceEnd() < 0 ){
-    				count ++;
-    			}
-    		}
-    		
-    		if( count > 0 ){
-    			final CompilationUnit astUnit = getAstCompilationUnit(file);
-    			if( astUnit != null ){
-    			
-    				final int[] startingOffsets = new int[count];
-    		    	int index = 0;
-	    			for( IProblem problem : entry.getValue() ){
-	    				if( problem.getSourceEnd() < 0 )
-	    					startingOffsets[index++] = problem.getSourceStart();
-	    			}
-	    			
-	    			final EndingOffsetFinder lfinder = new EndingOffsetFinder(startingOffsets);
-	    			
-	    			astUnit.accept( lfinder );
-	    	    	
-	    	    	for(IProblem problem : entry.getValue() ){
-	    				if( problem.getSourceEnd() < 0 ){
-	    					int startingOffset = problem.getSourceStart();
-	    					int endingOffset = lfinder.getEndingOffset(startingOffset);
-	    	    			if( endingOffset == 0 )
-	    	    				endingOffset = startingOffset;
-	    	    			problem.setSourceEnd(endingOffset-1);
-	    				}
-	    			}
-    			}
-    			else{
-        			for(IProblem problem : entry.getValue() ){
-        				// set the -1 source end to be the same as the source start.
-        				if( problem.getSourceEnd() < problem.getSourceStart() )
-        					problem.setSourceEnd(problem.getSourceStart());
-        			}
-        		}
-    		}
-    		
-    	}
-    }
-    
-    /**
-     * Responsible for finding the ending offset of the ast node that has the tightest match 
-     * for a given offset. This ast visitor can operator on an array of offsets in one pass.   
-     * @author tyeung     
-     */
-    private static class EndingOffsetFinder extends ASTVisitor 
-    {
-    	private final int[] _sortedStartingOffset;
-    	/** 
-    	 * parallel to <code>_sortedOffsets</code> and contains 
-    	 * the ending offset of the ast node that has the tightest match for the 
-    	 * corresponding starting offset.
-    	 */
-    	private final int[] _endingOffsets;
-    	
-    	/**
-    	 * @param offsets the array of offsets which will be sorted.
-    	 * @throws IllegalArgumentException if <code>offsets</code> is <code>null</code>.
-    	 */
-    	private EndingOffsetFinder(int[] offsets)
-    	{
-    		if(offsets == null)
-    			throw new IllegalArgumentException("argument cannot be null."); //$NON-NLS-1$
-    		// sort the array first
-    		Arrays.sort(offsets);
-    	
-    		// look for duplicates.		
-    		int count = 0;	
-    		for( int i=0, len=offsets.length; i<len; i++){
-    			if( i == 0 ) ; // do nothing				
-    			else if( offsets[i-1] == offsets[i] )
-    				continue;			
-    			count ++;
-    		}	
-    	
-    		if( count != offsets.length ){
-    			_sortedStartingOffset = new int[count];
-    	
-    			int index = 0;
-    			for( int i=0, len=offsets.length; i<len; i++){
-    				if( i != 0 && offsets[i-1] == offsets[i] )
-    					continue;
-    				_sortedStartingOffset[index++] = offsets[i];
-    			}		
-    		}
-    		else{
-    			_sortedStartingOffset = offsets;
-    		}
-    		
-    		_endingOffsets = new int[count];
-    		for( int i=0; i<count; i++ )
-    			_endingOffsets[i] = 0;
-    	}
-    	
-    	public void preVisit(ASTNode node) 
-    	{
-    		final int startingOffset = node.getStartPosition();
-    		final int endingOffset = startingOffset + node.getLength();
-    		// starting offset is inclusive
-    		int startIndex = Arrays.binarySearch(_sortedStartingOffset, startingOffset);
-    		// ending offset is exclusive
-    		int endIndex = Arrays.binarySearch(_sortedStartingOffset, endingOffset);
-    		if( startIndex < 0 )
-    			startIndex = - startIndex - 1;		
-    		if( endIndex < 0 )
-    			endIndex = - endIndex - 1;
-    		else 
-    			// endIndex needs to be exclusive and we want to 
-    			// include the 'endIndex'th entry in our computation.
-    			endIndex ++; 
-    		if( startIndex >= _sortedStartingOffset.length )
-    			return;
-    		
-    		for( int i=startIndex; i<endIndex; i++ ){    			
-    			if( _endingOffsets[i] == 0 )
-    				_endingOffsets[i] = endingOffset;
-    			else if( endingOffset < _endingOffsets[i] )
-    				_endingOffsets[i] = endingOffset;
-    		}
-    	}
-    	
-    	
-    	public int getEndingOffset(final int startingOffset)
-    	{
-    		int index = Arrays.binarySearch(_sortedStartingOffset, startingOffset);
-    		if( index == -1 ) return 0;
-    		return _endingOffsets[index];
-    	}
-    }
-
-	/**
-	 * @return - the extra type dependencies for the files under compilation
-	 */
-	public Map<IFile, Set<String>> getTypeDependencies()  { return _typeDependencies; }
-	
-	/** true value indicates that the source path for the project changed during this APT dispatch */
-	public boolean getSourcePathChanged() { return _sourcePathChanged; }
-
-	/** true value indicates that the source path for the project changed during this APT dispatch */
-	public void setSourcePathChanged( boolean b ) { _sourcePathChanged = b; }
-	
-	
-	/**
-	 * Switch to batch processing mode. 
-	 * Note: Call to this method will cause all files associated with this environment to be 
-	 * read and parsed.
-	 */
-	public void setBatchProcessing(){		
-		if( _phase != Phase.BUILD )
-			throw new IllegalStateException("No batch processing outside build."); //$NON-NLS-1$
-		
-		if( _batchMode ) return;
-		checkValid();
-		createDomASTs();
-		
-		_batchMode = true;
-		_file = null;
-		_astRoot = null;
-	}
-	
-	private void createDomASTs()
-	{
-		if( _astUnits != null || _filesWithAnnotation == null) return;
-		createICompilationUnits();		
-		_astUnits = createDietASTs(_javaProject, _units);
-	}
-	
-	public void setFileProcessing(IFile file){		
-		if( file == null )
-			throw new IllegalStateException("missing file"); //$NON-NLS-1$
-		_batchMode = false;
-		if( file.equals(_file) ) // this is a no-op
-			return;
-		
-		_astRoot = null;
-		_file = null;
-		_unit = null;
-		
-		// need to match up the file with the ast.
-		if( _filesWithAnnotation != null ){
-			for( int i=0, len=_filesWithAnnotation.length; i<len; i++ ){
-				if( file.equals(_filesWithAnnotation[i]) ){
-					_file = file;
-					if( _astUnits != null ){
-						_astRoot = _astUnits[i];		
-						_unit = _units[i];
-					}
-					else{
-						_unit = JavaCore.createCompilationUnitFrom(_filesWithAnnotation[i]);
-						_astRoot = createDietAST(_javaProject, _unit);
-					}
-				}
-			}
-		}
-		
-		if( _file == null || _astRoot == null)
-			throw new IllegalStateException(
-					"file " +  //$NON-NLS-1$
-					file.getName() + 
-					" is not in the list to be processed."); //$NON-NLS-1$
-	}
-	
-	// Implementation for EclipseAnnotationProcessorEnvironment
-	public CompilationUnit getAST()
-	{
-		if( _batchMode ) return null;
-		final ASTParser parser =  ASTParser.newParser(AST.JLS3);
-        parser.setResolveBindings(false);
-        parser.setSource(_unit);
-        CompilationUnit resultUnit = (CompilationUnit)parser.createAST(null);
-        return resultUnit;
-	}
-
-	public void addTypeDependency(final String fullyQualifiedTypeName )
-	{
-		if(!_batchMode){
-			Set<String> deps = _typeDependencies.get(_file);
-			if( deps == null ){
-				deps = new HashSet<String>(4);
-				_typeDependencies.put(_file, deps);
-			}
-			deps.add( fullyQualifiedTypeName );
-		}
-	}
-	// End of implementation for EclipseAnnotationProcessorEnvironment
-	
-	/**
-	 * Include all the types from all files, files with and without annotations on it
-	 * if we are in batch mode. Otherwise, just the types from the file that's currently
-	 * being processed.
-	 */
-	protected List<AbstractTypeDeclaration> searchLocallyForTypeDeclarations()
-    {
-		if( !_batchMode )
-			return super.searchLocallyForTypeDeclarations();
-		final List<AbstractTypeDeclaration> typeDecls = new ArrayList<AbstractTypeDeclaration>();
-		for( int i=0, len=_astUnits.length; i<len; i++ )
-        	typeDecls.addAll( _astUnits[i].types() );
-		
-		getTypeDeclarationsFromAdditionFiles(typeDecls);
-		
-		return typeDecls;
-    }
-	
-	private void getTypeDeclarationsFromAdditionFiles(List<AbstractTypeDeclaration> typeDecls){
-		if( _additionFiles == null || _additionFiles.length == 0 ) return;
-	
-		ICompilationUnit[] units = createICUsFrom(_additionFiles);
-		final int actualLen = units.length;
-		final int numFiles = _additionFiles.length;
-		if( actualLen == 0 )
-			return;
-		
-		// We are simply silently dropping files that doesn't have a compilation unit.
-		// This most like means the file has been deleted.
-		if( numFiles != actualLen ){
-			final ICompilationUnit[] newUnits = new ICompilationUnit[actualLen];
-			int newIndex = 0;
-			for( ICompilationUnit unit : units ){
-				if( unit != null )
-					newUnits[newIndex ++] = unit;
-			}
-			units = newUnits;
-		}
-		final CompilationUnit[] domUnits = createDietASTs(_javaProject, units);
-		for( CompilationUnit domUnit : domUnits ){
-			if( domUnit != null ){
-				typeDecls.addAll( domUnit.types() );
-			}
-		}
-	}
-	
-	protected Map<ASTNode, List<Annotation>> getASTNodesWithAnnotations()
-    {
-		if( !_batchMode )
-			return super.getASTNodesWithAnnotations();
-    	final Map<ASTNode, List<Annotation>> astNode2Anno = new HashMap<ASTNode, List<Annotation>>();
-        final AnnotatedNodeVisitor visitor = new AnnotatedNodeVisitor(astNode2Anno);        
-        for( int i=0, len=_astUnits.length; i<len; i++ )
-        	_astUnits[i].accept( visitor );
-        return astNode2Anno;
-    }
-	
-	protected IFile getFileForNode(final ASTNode node)
-	{
-		if( !_batchMode )
-			return super.getFileForNode(node);
-		final CompilationUnit curRoot = (CompilationUnit)node.getRoot();
-		for( int i=0, len=_astUnits.length; i<len; i++ ){
-			if( _astUnits[i] == curRoot )
-				return _filesWithAnnotation[i];
-		}
-		throw new IllegalStateException();
-	}
-	
-	/**
-	 * Go through the list of compilation unit in this environment and looking for
-	 * the declaration node of the given binding.
-	 * @param binding 
-	 * @return the compilation unit that defines the given binding or null if no 
-	 * match is found.
-	 */
-	protected CompilationUnit searchLocallyForBinding(final IBinding binding)
-	{
-		if( !_batchMode )
-			return super.searchLocallyForBinding(binding);
-		
-		for( int i=0, len=_astUnits.length; i<len; i++ ){
-			ASTNode node = _astUnits[i].findDeclaringNode(binding);
-			if( node != null)
-				return _astUnits[i];
-		}
-		return null;
-	}
-	
-	/**
-	 * Go through the list of compilation unit in this environment and looking for
-	 * the declaration node of the given binding.
-	 * @param binding 
-	 * @return the compilation unit that defines the given binding or null if no 
-	 * match is found.
-	 */
-	protected IFile searchLocallyForIFile(final IBinding binding)
-	{
-		if( !_batchMode )
-			return super.searchLocallyForIFile(binding);
-		
-		for( int i=0, len=_astUnits.length; i<len; i++ ){
-			ASTNode node = _astUnits[i].findDeclaringNode(binding);
-			if( node != null)
-				return _filesWithAnnotation[i];
-		}
-		return null;
-	}
-	
-	public ICompilationUnit getICompilationUnitForFile(final IFile file){
-		if( file == null ) 
-    		return null;
-    	else if( file.equals(_file) )
-    		return _unit;
-    	else if( _units != null ){
-    		for( int i=0, len=_filesWithAnnotation.length; i<len; i++ ){
-        		if( file.equals(_filesWithAnnotation[i]) )
-        			return _units[i];
-        	}
-    	}
-    	return null;
-	}
-	
-	/**
-     * @param file
-     * @return the compilation unit associated with the given file.
-     * If the file is not one of those that this environment is currently processing,
-     * return null;
-     */
-	public CompilationUnit getAstCompilationUnit(final IFile file)
-	{
-		if( file == null ) 
-    		return null;
-    	else if( file.equals(_file) )
-    		return _astRoot;
-    	else if( _astUnits != null ){
-    		for( int i=0, len=_filesWithAnnotation.length; i<len; i++ ){
-        		if( file.equals(_filesWithAnnotation[i]) )
-        			return _astUnits[i];
-        	}
-    	}
-    	return null;
-	}
-	
-	/**
-	 * @return the current ast being processed if in per-file mode.
-	 * If in batch mode, one of the asts being processed (no guarantee which
-	 * one will be returned.  
-	 */
-	protected AST getCurrentDietAST(){
-		
-		if( _astRoot != null )
-			return _astRoot.getAST();
-		else{
-			if( _astUnits == null )
-				throw new IllegalStateException("no AST is available"); //$NON-NLS-1$
-			return _astUnits[0].getAST();
-		}
-	}
-	
-	void postMarkers()
-    {
-		if( _markerInfos == null || _markerInfos.size() == 0 )
-			return;
-		// Posting all the markers to the workspace. Doing this in a batch process
-		// to minimize the amount of notification.
-		try{
-	        final IWorkspaceRunnable runnable = new IWorkspaceRunnable(){
-	            public void run(IProgressMonitor monitor)
-	            {		
-	                for( MarkerInfo markerInfo : _markerInfos ){	                  
-						try{
-		                    final IMarker marker = _javaProject.getProject().createMarker(BUILD_MARKER);
-							//final IMarker marker = _javaProject.getProject().createMarker(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER);
-		                    markerInfo.copyIntoMarker(marker);
-						}
-						catch(CoreException e){
-							AptPlugin.log(e, "Failure posting markers"); //$NON-NLS-1$
-						}
-	                }
-	            };
-	        };
-	        IWorkspace ws = _javaProject.getProject().getWorkspace();
-			ws.run(runnable, null);
-		}
-		catch(CoreException e){
-			AptPlugin.log(e, "Failed to post markers"); //$NON-NLS-1$
-		}
-		finally{
-			_markerInfos.clear();
-		}
-    }
-	
-	public IFile[] getFiles()
-	{
-		if(_filesWithAnnotation != null)
-			return _filesWithAnnotation;
-		else
-			return new IFile[]{_file};
-	}
-	
-	private static ICompilationUnit[] createICUsFrom(final IFile[] files){
-		final int len = files.length;
-		if( len == 0 )
-			return NO_UNIT;
-		final ICompilationUnit[] units = new ICompilationUnit[len];
-		for( int i=0; i<len; i++ ){
-			units[i] = JavaCore.createCompilationUnitFrom(files[i]);
-		}
-		return units;
-	}
-	
-	/**
-	 * Build <code>ICompilationUnit</code> from the files with annotations in this environment.
-	 * If a compilation unit cannot be created from a file, the file will be 
-	 * dropped from the file list.
-	 */
-	private void createICompilationUnits(){
-		if(_units != null) 
-			return;
-		_units = createICUsFrom(_filesWithAnnotation);
-		
-	
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/ElementChangedListener.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/ElementChangedListener.java
deleted file mode 100644
index 7cedb5e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/ElementChangedListener.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.core.internal.generatedfile;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.core.ElementChangedEvent;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IElementChangedListener;
-import org.eclipse.jdt.core.IJavaElementDelta;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaModelException;
-
-public class ElementChangedListener implements IElementChangedListener 
-{
-	public void elementChanged(ElementChangedEvent event) 
-	{
-		Object o = event.getSource();
-		if ( o instanceof IJavaElementDelta )
-		{			
-			IJavaElementDelta delta = (IJavaElementDelta) o;
-			processElementDelta( delta );
-
-		}
-	}
-	
-	private void processElementDelta( IJavaElementDelta delta )
-	{
-		IJavaElementDelta[] deltas = delta.getAffectedChildren();
-		if ( deltas != null && deltas.length > 0 )
-		{
-			for( int i = 0; i<deltas.length; i++ )
-				processElementDelta( deltas[i] );
-		}
-		if ( delta.getElement() instanceof ICompilationUnit )
-		{
-			//
-			// handle case where a working copy is discarded (e.g., an editor is closed).  If an editor 
-			// is noopen, then the compilation unit's isWorkingCopy() will return false.
-			//
-			
-			ICompilationUnit cu = (ICompilationUnit) delta.getElement();	
-
-			//
-			// cu.isWorkingCopy() doesn't work here.  For back-compat reasons, that always returns 
-			// true for non-primary working copies, so we use the following test to see if a working copy
-			// has been discarded.
-			//
-			// TODO:  remove reference to jdt-internal class
-			//
-			org.eclipse.jdt.internal.core.CompilationUnit cu2 = (org.eclipse.jdt.internal.core.CompilationUnit)cu;			
-			boolean workingCopyDiscarded = cu2.isPrimary() ? !cu.isWorkingCopy() : cu2.getPerWorkingCopyInfo() == null;
-
-			if ( workingCopyDiscarded )
-			{
-				IJavaProject jp = cu.getJavaProject();
-				IProject p = jp.getProject();
-				GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager(p);
-				IFile f = (IFile)cu.getResource();
-				if ( gfm.isParentFile( f ) )
-				{
-					try 
-					{
-						gfm.parentWorkingCopyDiscarded( f );
-					} 
-					catch (JavaModelException e) 
-					{
-						AptPlugin.log(e, "Failure processing delta: " + delta); //$NON-NLS-1$
-					}		
-				}
-			}
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/FileGenerationResult.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/FileGenerationResult.java
deleted file mode 100644
index 46f028c..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/FileGenerationResult.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package org.eclipse.jdt.apt.core.internal.generatedfile;
-
-import org.eclipse.core.resources.IFile;
-
-/**
- * Simple container class for holding the result of file generation.<P>
- * 
- * It contains the generated file, as well as a boolean indicating if it
- * has changed since it was last seen. This is used to force compilation 
- * of the file later.
- */
-public class FileGenerationResult {
-
-	private final IFile file;
-	private final boolean modified;
-	private final boolean sourcepathChanged;
-	
-	public FileGenerationResult(final IFile file, final boolean modified, final boolean sourcepathChanged) {
-		this.file = file;
-		this.modified = modified;
-		this.sourcepathChanged = sourcepathChanged;
-	}
-	
-	public IFile getFile() {
-		return file;
-	}
-	
-	public boolean isModified() {
-		return modified;
-	}	
-	
-	public boolean hasSourcepathChanged() {
-		return sourcepathChanged;
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedFileManager.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedFileManager.java
deleted file mode 100644
index dac4e0b..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedFileManager.java
+++ /dev/null
@@ -1,1645 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.core.internal.generatedfile;
-
-import java.io.BufferedInputStream;
-import java.io.ByteArrayInputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.UnsupportedEncodingException;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.WeakHashMap;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.IPreferenceChangeListener;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences.PreferenceChangeEvent;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.env.ProcessorEnvImpl;
-import org.eclipse.jdt.apt.core.internal.util.FileSystemUtil;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.core.util.AptPreferenceConstants;
-import org.eclipse.jdt.core.ElementChangedEvent;
-import org.eclipse.jdt.core.IBuffer;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.IProblemRequestor;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.WorkingCopyOwner;
-import org.eclipse.jdt.core.dom.AST;
-
-/**
- * This class is used for managing generated files.  
- *   
- * There are four maps that are used.  Two are used to track the relationships 
- * between parent files & generated files ( 
- * <code>_parentFile2GeneratedFiles</code> & <code>_generatedFile2ParentFiles</code>). 
- * The other two maps are used to track cached working copies:  
- * <code>_generatedFile2WorkingCopy</code>  maps a generated file to its 
- * working copy, and  <code>_generatedWorkingCopy2OpenParentFiles</code>  
- * maps a working copy to any parent files that may be open.   
- * 
- * The file maps have entries added when a file is generated during a build.  
- * The file maps & working-copy maps haven entries added added when a file
- * is added during a reconcile.  There are various entry-points to keep the
- * maps up-to-date with respect to life-cycle events on the parent & generated files.
- * (e.g., parentFileDeleted(), ).
- *
- * SYNCHRONIZATION NOTES (IMPORTANT)
- * ---------------------------------
- * Synchronization around the GeneratedFileManager's maps uses the GeneratedFileManager
- * instance's monitor.   When acquiring this monitor, DO NOT PERFORM ANY OPERATIONS
- * THAT TAKE ANY OTHER LOCKS (e.g., java model operations, or file system operations like
- * creating or deleting a file or folder).  If you do this, then the code is subject to 
- * deadlock situations.  For example, a resource-changed listener may take a resource lock
- * and then call into the GeneratedFileManager for clean-up, where your code could reverse
- * the order in which the locks are taken.  This is bad, so be careful.   
- * 
- */
-public class GeneratedFileManager {
-
-	// disable type generation during reconcile. This can cause deadlock.
-	// See radar bug #238684	
-	public static final boolean GENERATE_TYPE_DURING_RECONCILE = false;
-	
-
-	// Use a weak hash map to allow file managers to get GC'ed if a project
-	// goes away
-	private static final Map<IProject, GeneratedFileManager> MANAGERS_MAP = 
-		new WeakHashMap<IProject, GeneratedFileManager>();
-	
-	/**
-	 * map from IFile of parent file to Set <IFile>of generated files
-	 */
-	private Map<IFile, Set<IFile>> _parentFile2GeneratedFiles = new HashMap();
-
-	/**
-	 * map from IFile of generated file to Set <IFile>of parent files
-	 */
-	private Map<IFile, Set<IFile>> _generatedFile2ParentFiles = new HashMap();
-	
-	/**
-	 * Map from a the working copy of a generated file to its *open* parents.  Note that
-	 * the set of parent files are only those parent files that have an open editor.
-	 * This set should be a subset for a correpsonding entry in the _generatedFile2Parents map.
-	 */
-	private Map<ICompilationUnit, Set<IFile>> _generatedWorkingCopy2OpenParentFiles = new HashMap();
-	
-	/**
-	 * Map from type name to the working copy in memory of that type name
-	 * 
-	 * Map<String, ICompilationUnit>
-	 */
-	private Map<IFile, ICompilationUnit> _generatedFile2WorkingCopy = new HashMap();	
-
-	/**
-	 * The folder where generated source files are placed.  This will be null until
-	 * the folder is actually created and the project's source path is updated to 
-	 * include the folder. 
-	 */
-	private IFolder _generatedSourceFolder;
-	
-	private String _generatedSourceFolderName;
-	
-	private final IProject _project;
-	
-	private final IJavaProject _javaProject;
-	
-	private static boolean _initialized = false;
-	
-	
-	/**
-	 * Construction can only take place from within 
-	 * the factory method, getGeneratedFileManager().
-	 */
-	private GeneratedFileManager(final IProject project) {
-		_project = project;
-		_javaProject = JavaCore.create( _project );
-		
-		// register a preference listener so that we can watch for changes 
-		// to the gen src dir at the project scope...
-		IScopeContext projScope = new ProjectScope(project);
-		IEclipsePreferences projPrefs = projScope.getNode(AptPlugin.PLUGIN_ID);
-		IPreferenceChangeListener projListener = new IPreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent event) {
-				if (AptPreferenceConstants.APT_GENSRCDIR.equals(event.getKey())) {
-					setGeneratedSourceFolderName( (String)event.getNewValue() );
-				}
-			}
-		};
-		projPrefs.addPreferenceChangeListener(projListener);
-		
-		// ...and at the workspace scope.
-		// Note we check all projects, even those that have project-specific
-		// settings, when the workspace setting changes.  For projects with
-		// project-specific settings, the value of the setting won't change 
-		// so the request will be ignored.
-		IScopeContext wkspScope = new InstanceScope();
-		IEclipsePreferences wkspPrefs = wkspScope.getNode(AptPlugin.PLUGIN_ID);
-		IPreferenceChangeListener wkspListener = new IPreferenceChangeListener() {
-			public void preferenceChange(PreferenceChangeEvent event) {
-				if (AptPreferenceConstants.APT_GENSRCDIR.equals(event.getKey())) {
-					setGeneratedSourceFolderName( AptConfig.getGenSrcDir(_javaProject) );
-				}
-			}
-		};
-		wkspPrefs.addPreferenceChangeListener(wkspListener);
-		
-		// get generated source dir from config 
-		// default value is set in org.eclipse.jdt.apt.core.internal.util.AptCorePreferenceInitializer
-		_generatedSourceFolderName = AptConfig.getString( _javaProject, AptPreferenceConstants.APT_GENSRCDIR);
-		// properly initialize the GeneratedFileManager if project path is up-to-date and the generated 
-		// source folder is there.
-		final IFolder folder = project.getFolder(_generatedSourceFolderName);
-		if(folder.exists()){
-			boolean uptodate = false;
-			try{
-				uptodate = isProjectClassPathUpToDate(_javaProject, null, folder.getFullPath(), null);
-			}catch(JavaModelException e){
-				e.printStackTrace();
-			}
-			if( uptodate )
-				_generatedSourceFolder = folder;
-		}	
-	}
-
-	private static void init()
-	{
-		_initialized = true;
-		// register element-changed listener
-		int mask = ElementChangedEvent.POST_CHANGE;
-		JavaCore.addElementChangedListener( new ElementChangedListener(), mask );
-	}
-	
-	/**
-	 *  Returns a list of the generated file managers for all projects.  
-	 */
-	public static synchronized List<GeneratedFileManager> getGeneratedFileManagers() {
-		return new ArrayList(MANAGERS_MAP.values());
-	}
-	
-	/**
-	 *  returns a generated file manager instance for the specified project.  If one doesn't
-	 *  already exist, then one will be created. 
-	 */
-	public static synchronized GeneratedFileManager getGeneratedFileManager(final IProject project) 
-	{
-		if ( project == null )
-			return null;
-		
-		if ( ! _initialized ) 
-			init();
-		GeneratedFileManager gfm = MANAGERS_MAP.get(project);
-		if (gfm != null)
-			return gfm;
-
-		gfm = new GeneratedFileManager(project);
-		MANAGERS_MAP.put(project, gfm);
-		return gfm;
-	}
-	
-	/**
-	 * Invoked when a file is generated during a build.  The generated file and intermediate 
-	 * directories will be created if they don't  exist.  This method takes file-system locks, 
-	 * and assumes that the calling method has at some point acquired a workspace-level 
-	 * resource lock.
-	 * 
-	 * @param parentFile the parent of the type being generated
-	 * @param typeName the dot-separated java type name of the type being generated
-	 * @param contents the java code contents of the new type .
-	 * @param progressMonitor a progres monitor.  This may be null.
-	 * @param charsetName the character set to use when creating the new file.  This can be null 
-	 * or the empty string, in which case the platform default encoding will be used.
-	 *  
-	 * @return - the newly created IFile along with whether it was modified
-	 * 
-	 * @throws CoreException
-	 * @throws UnsupportedEncodingException
-	 */
-	public FileGenerationResult generateFileDuringBuild(
-			IFile parentFile,
-			String typeName, 
-			String contents, 
-			ProcessorEnvImpl env,
-			IProgressMonitor progressMonitor)
-	throws CoreException
-	{
-		try{
-			final boolean sourcepathUpdated = ensureGeneratedSourceFolder(progressMonitor);
-			
-			final IFolder genFolder = getGeneratedSourceFolder();
-			IPackageFragmentRoot genFragRoot = null;
-			IPackageFragmentRoot[] roots = _javaProject.getAllPackageFragmentRoots();
-			for (IPackageFragmentRoot root : roots) {
-				if( genFolder.equals(root.getResource()) ){
-					genFragRoot = root;
-					break;
-				}
-			}
-			if( genFragRoot == null ){
-				StringBuilder sb = new StringBuilder();
-				
-				sb.append("*** start of classpath ***\n"); //$NON-NLS-1$
-				IClasspathEntry[] cp = _javaProject.getRawClasspath();
-				for (IClasspathEntry c : cp) {
-					sb.append(c).append("\n"); //$NON-NLS-1$
-				}
-				sb.append("*** end of classpath ***"); //$NON-NLS-1$
-				
-				throw new IllegalStateException("failed to locate package fragment root for " +  //$NON-NLS-1$
-						genFolder.getName() + ". classpath:\n" + sb.toString()); //$NON-NLS-1$ 
-			}
-			if( typeName.indexOf('/') != -1 )
-				typeName = typeName.replace('/', '.');
-			int separatorIndex = typeName.lastIndexOf('.');			
-			final String typeSimpleName;
-			final String pkgName;
-			if( separatorIndex == -1 ){
-				pkgName = ""; //$NON-NLS-1$
-				typeSimpleName = typeName;
-			}
-			else{
-				pkgName = typeName.substring(0, separatorIndex);
-				typeSimpleName = typeName.substring(separatorIndex + 1, typeName.length());
-			}
-			
-			// NOTE: Do NOT ever create any type of resource (files, folders) through the
-			// resource API. The resource change event will not go out until the build
-			// is completed. Instead always go through the JavaModel. -theodora
-			final Set<IContainer> newFolders = getNewPackageFolders(pkgName, genFolder);
-			IPackageFragment pkgFrag = genFragRoot.createPackageFragment(pkgName, true, progressMonitor);
-			if( pkgFrag == null ){
-				throw new IllegalStateException("failed to locate package '" + pkgName + "'");  //$NON-NLS-1$ //$NON-NLS-2$
-			}			
-			// mark all newly create folders as derived.			
-			markNewFoldersAsDerived((IContainer)pkgFrag.getResource(), newFolders);
-			
-			final String cuName = typeSimpleName + ".java"; //$NON-NLS-1$
-			
-			ICompilationUnit unit = pkgFrag.getCompilationUnit(cuName);
-			IFile file = (IFile)unit.getResource();
-			boolean contentsDiffer = true;
-
-			if (unit.exists()) {
-				InputStream oldData = null;
-				InputStream is = null;
-				try {
-					is = new ByteArrayInputStream( contents.getBytes() );
-					oldData = new BufferedInputStream( ((IFile)unit.getResource()).getContents());
-					contentsDiffer = !FileSystemUtil.compareStreams(oldData, is);
-				}
-				catch (CoreException ce) {
-					// Do nothing. Assume the new content is different
-				}
-				finally {
-					is.reset();
-					if (oldData != null) {
-						try {
-							oldData.close();
-						} 
-						catch (IOException ioe) 
-						{}
-					}
-				}
-			}	
-			
-			if( contentsDiffer ){
-				if( unit.exists() && unit.isOpen() ){
-					// directly modify the content of the working copy
-					// so that UI will pick up the change.
-					IBuffer buffer = unit.getBuffer();
-					if (buffer == null){
-						throw new IllegalStateException("Unable to update unit for " + cuName); //$NON-NLS-1$
-						
-					}
-					buffer.setContents(contents.toCharArray());
-					buffer.save(progressMonitor, true);
-				}
-				else{
-					ICompilationUnit newUnit = null;
-					newUnit = pkgFrag.createCompilationUnit(cuName, contents, true,
-							progressMonitor);
-					if( newUnit == null ) {				
-						throw new IllegalStateException("Unable to create unit for " + cuName); //$NON-NLS-1$
-					}
-					if( AptPlugin.DEBUG )
-						AptPlugin.trace("generated " + typeName ); //$NON-NLS-1$
-					newUnit.save(progressMonitor, true);
-				}
-			}			
-			file.setDerived(true);
-			// We used to also make the file read-only. This is a bad idea,
-			// as refactorings then fail in the future, which is worse
-			// than allowing a user to modify a generated file.
-			
-			// during a batch build
-			if( parentFile != null ){
-				addEntryToFileMaps( parentFile, file );
-			}
-			return new FileGenerationResult(file, contentsDiffer, sourcepathUpdated);
-		}
-		catch(Throwable e){
-			AptPlugin.log(e, "(2)failed to generate type " + typeName); //$NON-NLS-1$
-			e.printStackTrace();
-		}
-		return null; // something failed. The catch block have already logged the error.
-	}	
-	
-		
-	/**
-	 * This function generates a type "in-memory" by creating or updating a working copy with the
-	 * specified contents.   The generated-source folder must be configured correctly for this to 
-	 * work. This method takes no locks, so it is safe to call when holding fine-grained resource 
-	 * locks (e.g., during some reconcile paths).  Since this only works on an in-memory working 
-	 * copy of the type, the IFile for the generated type may not exist on disk.  Likewise, the
-	 * corresponding package directories of type-name may not exist on disk.   
-	 * 
-	 * TODO:  figure out how to create a working copy with a client-specified character set
-	 * 
-	 * @param parentCompilationUnit - the parent compilation unit. 
-	 * @param typeName - the dot-separated java type name for the new type
-	 * @param contents - the contents of the new type
-	 * @param workingCopyOwner - the working copy owner.  This may be null.  If null, parentCompilationUnit.getOwner() 
-	 * will be used.  
-	 * @param problemRequestor - this may be null. 
-	 * @param progressMonitor - this may be null
-	 * 
-	 * @return The FileGenerationResult.  This will return null if the generated source folder
-	 * is not configured.
-	 *
-	 */
-	public  FileGenerationResult generateFileDuringReconcile(
-			ICompilationUnit parentCompilationUnit, String typeName,
-			String contents, WorkingCopyOwner workingCopyOwner,
-			IProblemRequestor problemRequestor, IProgressMonitor progressMonitor ) 
-	
-	throws CoreException
-	{	
-		
-		if (!GENERATE_TYPE_DURING_RECONCILE)
-			return null;
-		
-		final boolean sourcepathUpdated = ensureGeneratedSourceFolder(progressMonitor);
-		
-		ICompilationUnit workingCopy = null;
-		FileGenerationResult result = null;
-		IFile parentFile = (IFile)parentCompilationUnit.getResource();
-		try 
-		{
-			//
-			// get working copy (either from cache or create a new one)
-			//
-			workingCopy = getCachedWorkingCopy( parentFile, typeName );
-			
-			if ( workingCopyOwner == null )
-				workingCopyOwner = parentCompilationUnit.getOwner();
-			
-			if ( workingCopy == null )
-			{
-				// create a new working copy
-				workingCopy = createNewWorkingCopy(  
-						parentFile,  typeName, contents,  
-						workingCopyOwner, problemRequestor,  progressMonitor);
-								
-				workingCopy.reconcile(AST.JLS3, true, workingCopyOwner,
-						progressMonitor);
-				
-				// TODO:  pass in correct flag for source-patch changed.  This is probably not going to matter.  Per 103183, we will either 
-				// disable reconcile-time generation, or do it without any modifications, so we shouldn't have to worry about this.   
-				result = new FileGenerationResult((IFile)workingCopy.getResource(), true, sourcepathUpdated);
-			}
-			else
-			{
-
-				//
-				//  Update working copy's buffer with the contents of the type 
-				// 
-				boolean modified = updateWorkingCopy( contents, workingCopy, workingCopyOwner, progressMonitor );
-				result = new FileGenerationResult((IFile)workingCopy.getResource(), modified, sourcepathUpdated);
-			}
-			
-			return result;
-		} 
-		catch (JavaModelException jme) 
-		{
-			AptPlugin.log(jme, "Could not generate file for type: " + typeName); //$NON-NLS-1$
-		} 
-		return new FileGenerationResult((IFile)workingCopy.getResource(), true, sourcepathUpdated);
-	}
-
-	
-	/**
-	 *  returns true if the specified file is a generated file (i.e., it has one or more parent files)
-	 *  
-	 *  @param f the file in question
-	 *  @return true
-	 */
-	public synchronized boolean isGeneratedFile( IFile f )
-	{
-		Set<IFile> s = _generatedFile2ParentFiles.get( f ); 
-		if ( s == null || s.isEmpty() )
-			return false;
-		else
-			return true;
-	}
-	
-	/**
-	 *  returns true if the specified file is a parent  file (i.e., it has one or more generated files)  
-	 *  
-	 *  @param f - the file in question
-	 *  @return true if the file is a parent, false otherwise
-	 *  
-	 *  @see #getGeneratedFilesForParent(IFile)
-	 *  @see #isGeneratedFile(IFile)
-	 */
-	public synchronized boolean isParentFile( IFile f )
-	{
-		Set<IFile> s = _parentFile2GeneratedFiles.get( f );
-		if ( s == null || s.isEmpty() )
-			return false;
-		else
-			return true;
-	}
-	
-
-	/**
-	 * returns true if the specified folder is the source folder used where
-	 * generated files are placed. 
-	 * 
-	 * @param folder - the folder to determine if it is the generated source folder
-	 * @return true if it is the generated source folder, false otherwise.  
-	 * 
-	 * @see #getGeneratedSourceFolder()
-	 */
-	public boolean isGeneratedSourceFolder( IFolder folder )
-	{
-		// use getGeneratedSourceFolder() here.  Bad things can happen if we try to 
-		// create the generated source folder when this is invoked from a resource 
-		// change listener
-		if ( folder != null && folder.equals( getGeneratedSourceFolder() ) )
-			return true;
-		else
-			return false;
-	}
-	
-	
-	/**
-	 * @param parent - the parent file that you want to get generated files for
-	 * @return Set of IFile instances that are the files known to be generated
-	 * by this parent
-	 * 
-	 * @see #isParentFile(IFile)
-	 * @see #isGeneratedFile(IFile)
-	 */
-	public synchronized Set<IFile> getGeneratedFilesForParent( IFile parent )
-	{
-		Set<IFile> s = _parentFile2GeneratedFiles.get( parent ); 
-		if (s == null )
-			s = Collections.emptySet();
-		else
-			// make a copy of the set to avoid any race conditions
-			s = new HashSet<IFile>( s );
-		return s;
-	}
-	
-	
-
-	/**
-	 * 	Invoked whenever we potentially need to discard a generated working copy. 
-	 *  Note that the generated working copy may not necessarily be discarded.  It 
-	 *  will only be discarded if specified parent file is the only open parent file
-	 *  for the specified Generated file.  If there are other parent open parent files, 
-	 *  then the working copy for the generated file will remain open, but the link between
-	 *  the generated file's working copy and its open parent file will be discarded. 
-	 *  
-	 * @param generatedFile - the generated file that we potentially want to discard
-	 * @param parentFile - the parent file for the generated file
-	 * @throws JavaModelException 
-	 */
-	public void discardGeneratedWorkingCopy( IFile generatedFile, IFile parentFile )
-		throws JavaModelException
-	{
-		removeFromWorkingCopyMaps( generatedFile, parentFile );
-	}
-
-	/**
-	 *  Invoked whenever a parent working copy has been discarded.
-	 *  
-	 *  @param parentFile.  The parent file whose working copy has been discarded
-	 *  @throws JavaModelException if there is a problem discarding any working copies 
-	 *  generated by the parent.
-	 */
-	public void parentWorkingCopyDiscarded( IFile parentFile )
-		throws JavaModelException
-	{
-		Set<IFile> generatedFiles;
-		synchronized( this )
-		{
-			generatedFiles = _parentFile2GeneratedFiles.get( parentFile );
-			if ( generatedFiles == null || generatedFiles.size() == 0 )
-				return;
-		
-			// make a copy to prevent race conditions
-			generatedFiles = new HashSet<IFile>( generatedFiles );
-		}
-		
-		for ( IFile generatedFile : generatedFiles )
-			discardGeneratedWorkingCopy( generatedFile, parentFile );
-	}
-	
-	/**
-	 *  Invoked whenever a parent file has been deleted
-	 */
-	public void parentFileDeleted( IFile parent, IProgressMonitor monitor ) 
-		throws CoreException
-	{
-		Set<IFile> generatedFiles;
-		
-		synchronized( this )
-		{
-			generatedFiles = _parentFile2GeneratedFiles.get( parent );
-			// make a copy to avoid race conditions
-			generatedFiles = new HashSet<IFile>( generatedFiles );
-		}
-			
-		for ( IFile generatedFile : generatedFiles )
-			deleteGeneratedFile( generatedFile, parent, monitor );
-	}
-
-	/**
-	 *  Invoked whenever we need to delete a generated file (e.g., the parent file has been deleted,
-	 *  or a parent stops generating a specific child).  Note that the generated file will only 
-	 *  be deleted if the specified parent file is the only parent of the specified generated file. 
-	 *  If there are other parents, then the generated file will not be deleted, but the link associating
-	 *  the parent and the generated file will be removed (i.e., the the generated file will no longer consider
-	 *  the parent file a "parent").
-	 *  
-	 */
-	public boolean deleteGeneratedFile(IFile generatedFile, IFile parentFile, IProgressMonitor progressMonitor )
-		throws CoreException
-	{
-		removeFromFileMaps( generatedFile, parentFile );
-		
-		boolean delete = false;
-
-		synchronized ( this )
-		{
-			Set<IFile> parents = _generatedFile2ParentFiles.get( generatedFile );
-		
-			// this can be empty, but it shouldn't be null here unless parentFile was never a parent of generatedFile
-			if ( parents == null ) throw new RuntimeException("unexpected null value for parents set for file " + generatedFile); //$NON-NLS-1$
-		
-			if (parents == null || parents.size() == 0) 
-				delete = true;
-		}
-		
-		if ( delete ){
-			final IFolder genFolder = getGeneratedSourceFolder();
-			assert genFolder != null : "Generated folder == null"; //$NON-NLS-1$
-			IContainer parent = generatedFile.getParent();
-			generatedFile.delete(true, true, progressMonitor);
-			// not deleting the generated source folder and only 
-			// delete generated folders containing the generated file.
-			while( !genFolder.equals(parent) && parent != null && parent.isDerived() ){				
-				final IResource[] members = parent.members();
-				IContainer grandParent = parent.getParent();
-				// last one turns the light off.
-				if( members == null || members.length == 0 )
-					parent.delete(true, progressMonitor);
-				else
-					break;
-				parent = grandParent;
-			}
-		}
-		
-		return delete;
-	}
-	
-
-	/**
-	 *  Invoked whenever a previously-generated file is removed during reconcile.  We put an empty buffer in the contents 
-	 *  of the working copy.  This effectively makes the type go away from the in-memory type system.  A subsequent
-	 *  build is necessary to actually remove the file from disk, and to actually remove references in the
-	 *  the generated file manager's state. 
-	 *  
-	 * @param generatedFile - the generated file whose working-copy buffer we want to be the empty string. 
-	 * @param parentWorkingCopy - the parent working copy. 
-	 * @param progressMonitor - a progress monitor
-	 * 
-	 * @return return true if the working-copy's buffer is set to the empty-string, false otherwise. 
-	 * 
-	 * @throws JavaModelException
-	 */
-	public boolean deleteGeneratedTypeInMemory(IFile generatedFile, ICompilationUnit parentWorkingCopy, IProgressMonitor progressMonitor )
-		throws JavaModelException, CoreException
-	{		
-		if( !GENERATE_TYPE_DURING_RECONCILE )
-			return false;
-		// see if this is the only parent for this generated file
-		boolean remove = false;
-		IFile parentFile = (IFile) parentWorkingCopy.getResource();
-		ICompilationUnit workingCopy = null;
-		synchronized ( this )
-		{
-			// see if this generated file has any other parent files.  
-			Set<IFile> parentFiles = _generatedFile2ParentFiles.get( generatedFile );
-
-			assert( parentFiles != null && parentFiles.contains( parentFile ) ) : "Unexpected state in GeneratedFileManager"; //$NON-NLS-1$
-			
-			if ( parentFiles.size() == 1 && parentFiles.contains( parentFile ) )
-			{
-				workingCopy = _generatedFile2WorkingCopy.get( generatedFile );
-				remove = true;
-			}
-			else
-				remove = false;
-		}
-
-		if ( remove )
-		{
-			// we don't need to remove entries from any maps.  That will happen after 
-			// the user saves & builds. 
-			
-			if ( workingCopy != null )
-			{
-				updateWorkingCopy( "", workingCopy, workingCopy.getOwner(), progressMonitor ); //$NON-NLS-1$
-				return true;
-			}
-			else
-			{
-				// we don't have a cached working copy, so call generateWorkingCopyDuringReconcile and create an empty-stringed working copy
-				// for the type that was generated during build.
-				String typeName =  getTypeNameForDerivedFile( generatedFile );
-				WorkingCopyOwner workingCopyOwner = parentWorkingCopy.getOwner();
-				generateFileDuringReconcile( parentWorkingCopy, typeName, "", workingCopyOwner, null, progressMonitor ); //$NON-NLS-1$
-			}
-		}
-		
-		return remove;
-	}
-	
-	/**
-	 * Invoked whenever a generated file has been deleted.  This method will
-	 * clean up any in-memory state about the previously generated file. 
-	 * 
-	 * @param generatedFile - the generated file that has been deleted
-	 * @param progressMonitor - progress monitor.  this can be null. 
-	 *
-	 * @throws JavaModelException if there is an exception when discarding an open working copy for the generated file
-	 */
-	public void generatedFileDeleted( IFile generatedFile,  IProgressMonitor progressMonitor )
-		throws JavaModelException
-	{
-		Set<IFile> parentFiles;
-		synchronized( this )
-		{
-			parentFiles = _generatedFile2ParentFiles.get( generatedFile );
-			if ( parentFiles == null || parentFiles.isEmpty() )
-				return;
-			
-			// make a copy to prevent race conditions
-			parentFiles = new HashSet<IFile>( parentFiles );
-		}
-		
-		for ( IFile parentFile : parentFiles )
-		{
-			removeFromWorkingCopyMaps( generatedFile, parentFile );
-			removeFromFileMaps( generatedFile, parentFile );
-		}
-	}
-
-	
-	/**
-	 * given file f, return the typename corresponding to the file.  This assumes
-	 * that derived files use java naming rules (i.e., type "a.b.c" will be file 
-	 * "a/b/c.java".
-	 */
-	private String getTypeNameForDerivedFile( IFile f )
-	{
-		IPath p = f.getFullPath();
-
-		IProject project = f.getProject();
-		IFolder folder = project.getFolder( getGeneratedSourceFolderName() );
-		IPath generatedSourcePath = folder.getFullPath();
-		
-		int count = p.matchingFirstSegments( generatedSourcePath );	
-		p = p.removeFirstSegments( count );
-	
-		String s = p.toPortableString();
-		int idx = s.lastIndexOf( '.' );
-		s = p.toPortableString().replace( '/', '.' );
-		return s.substring( 0, idx );
-	}
-	
-	/**
-	 * Given a typename a.b.c, this will return the IFile for the 
-	 * type name, where the IFile is in the GENERATED_SOURCE_FOLDER_NAME.
-	 */
-	private IFile getIFileForTypeName( String typeName )
-	{
-		// split the type name into its parts
-		String[] parts = typeName.split( "\\."); //$NON-NLS-1$
-		
-		IFolder folder = getGeneratedSourceFolder();
-		for ( int i = 0; i < parts.length - 1; i++ )
-			folder = folder.getFolder( parts[i] );
-		
-		// the last part of the type name is the file name
-		String fileName = parts[parts.length - 1] + ".java"; //$NON-NLS-1$		
-		IFile file = folder.getFile( fileName );
-		return file;
-	}
-	
-	private void markNewFoldersAsDerived(IContainer folder, Set<IContainer> newFolders)
-		throws CoreException
-	{
-		while(folder != null){
-			if( newFolders.contains(folder) ){
-				folder.setDerived(true);
-			}
-			folder = folder.getParent();
-		}
-	}
-	
-	private Set<IContainer> getNewPackageFolders(String pkgName, IFolder parent )
-	{
-		StringBuilder buffer = new StringBuilder();
-		Set<IContainer> newFolders = new HashSet<IContainer>();
-	    for( int i=0, len=pkgName.length(); i<len; i++ ){
-	    	final char c = pkgName.charAt(i);
-	    	if( c != '.')
-	    		buffer.append(c);
-	    	// create a folder when we see a dot or when we are at the end.
-	    	if( c == '.' || i == len - 1){
-	    		if( buffer.length() > 0 ){
-	    			final IFolder folder = parent.getFolder(buffer.toString());
-	    			if( !folder.exists()){
-	    				newFolders.add(folder);
-	    			}
-	    			parent = folder;
-	    			// reset the buffer
-	    			buffer.setLength(0);
-	    		}
-	    	}
-	    }
-	    return newFolders;
-	}
-	
-	/**
-	 * Create all the folders corresponding to specified package name
-	 * and mark all newly created ones as derived.
-	 * @param pkgName dot-separated package name
-	 * @param parent the parent folder of the folder to be created
-	 * @throws CoreException when the folder creation fails.
-	 */
-	private void createFoldersForPackage(String pkgName, IFolder parent)
-		throws CoreException
-	{
-	    StringBuilder buffer = new StringBuilder();
-	    for( int i=0, len=pkgName.length(); i<len; i++ ){
-	    	final char c = pkgName.charAt(i);
-	    	if( c != '.')
-	    		buffer.append(c);
-	    	// create a folder when we see a dot or when we are at the end.
-	    	if( c == '.' || i == len - 1){
-	    		if( buffer.length() > 0 ){
-	    			final IFolder folder = parent.getFolder(buffer.toString());
-	    			if( !folder.exists()){
-	    				folder.create(true, true, null);
-	    				folder.setDerived(true);
-	    			}
-	    			parent = folder;
-	    			// reset the buffer
-	    			buffer.setLength(0);
-	    		}
-	    	}
-	    }
-	}
-	
-	/**
-	 *  Creates the generated source folder if it doesn't exist, and adds it as a source path
-	 *  to the project.  To access the generated source folder, but not have it be created
-	 *  or added as a source path, use getGeneratedSourceFolder().  Note that this method 
-	 *  will take a resource lock if the generated source folder needs to be created on disk, 
-	 *  and it will take a java model lock if the project's source paths need to be updated.
-	 *  Care should be taken when calling this method to ensure that locking behavior is correct.    
-	 *  
-	 *  <em>
-	 *  The only time that it is save to call this method is either we are explicitly fixing the 
-	 *  classpath during a <code>ICompilationParitcipant.BROKEN_CLASSPATH_BUILD_FAILURE_EVENT</code> 
-	 *  or during a resource change event. Since resource change event only occur before or after a build 
-	 *  but never during one, the classpath will be updated at the correct time.
-	 *  </em> 
-	 *  
-	 *  
-	 *  @param progressMonitor the progress monitor.  This can be null. 
-	 *  
-	 *  @see #getGeneratedSourceFolder()
-	 *  @see #isGeneratedSourceFolderConfigured()
-	 */
-	public boolean ensureGeneratedSourceFolder( IProgressMonitor progressMonitor ){
-		
-		boolean reset = false;
-		IFolder curSrcFolder = null;
-		synchronized( this )
-		{
-			if( _generatedSourceFolder != null ){
-				final IPath srcFolderPath = _generatedSourceFolder.getProjectRelativePath();
-				
-				if( !_generatedSourceFolderName.equals( srcFolderPath.toString()) ){
-					reset = true;
-					curSrcFolder = _generatedSourceFolder;
-					_generatedSourceFolder = null;
-				}
-				else {
-					if (_javaProject.isOnClasspath(_generatedSourceFolder))
-						return false;
-				}
-			}
-	
-		}
-		IFolder srcFolder = null;
-		try{
-			if( reset ){
-				// the generated source folder and the generated source folder name is not
-				// lining up.
-				removeFromProjectClasspath(_javaProject, curSrcFolder, progressMonitor );
-				if ( curSrcFolder.exists() ){
-					if( AptPlugin.DEBUG )
-						AptPlugin.trace("deleting gen src dir " + curSrcFolder.getName() ); //$NON-NLS-1$
-					curSrcFolder.delete( true, false, null );
-				}
-			}
-				
-			// don't take any locks while creating the folder, since we are doing file-system operations
-			srcFolder = getGeneratedSourceFolder();
-		 
-			srcFolder.refreshLocal( IResource.DEPTH_INFINITE, progressMonitor );
-			if (!srcFolder.exists()) {
-				FileSystemUtil.makeDerivedParentFolders(srcFolder);
-			}
-				
-			//
-			// make sure __generated_src dir is on the cp if not already
-			//
-			updateProjectClasspath( _javaProject, srcFolder, progressMonitor );
-			
-			if(AptPlugin.DEBUG)
-				AptPlugin.trace("Added directory " + srcFolder.getName() + " and updated classpath" ); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		catch(CoreException e){						
-			e.printStackTrace();
-			AptPlugin.log(e, "Failed to create generated source directory"); //$NON-NLS-1$
-		}
-		
-		synchronized ( this )
-		{
-			_generatedSourceFolder = srcFolder;
-			return true;
-		}
-	}
-	
-	
-	/**
-	 * This method will return the binary output location for the generated source folder.
-	 * If the generated-source folder is not configured (i.e., not created or not added to
-	 * the project's source path, then this method will return the default binary output
-	 * location for the project. 
-	 *
-	 * @return the IPath corresponding to the binary output location for the
-	 * generated source folder. This is relative to the project.
-	 * 
-	 * @throws JavaModelException
-	 * 
-	 * @see #getGeneratedSourceFolder()
-	 * @see #isGeneratedSourceFolderConfigured()	
-	 */
-	public IPath getGeneratedSourceFolderOutputLocation()
-		 throws JavaModelException 
-	{
-		IPath outputRootPath = null;
-		IFolder generatedSourceFolder = getGeneratedSourceFolder();
-		if ( generatedSourceFolder != null && generatedSourceFolder.exists() )
-		{
-			IClasspathEntry cpe = findProjectSourcePath( _javaProject, generatedSourceFolder );
-			if ( cpe != null )
-				outputRootPath = cpe.getOutputLocation();
-		}
-		
-		// no output root, so get project's default output location
-		if ( outputRootPath == null )
-			outputRootPath = _javaProject.getOutputLocation();
-
-		// output location is relative to the workspace, we want to make it relative to project
-		int segments = outputRootPath.matchingFirstSegments( _javaProject.getPath() );
-		outputRootPath = outputRootPath.removeFirstSegments( segments );
-		
-		return outputRootPath;
-	}
-	
-	//
-	//  check cache to see if we already have a working copy
-	//
-	private ICompilationUnit getCachedWorkingCopy( IFile parentFile, String typeName )
-	{
-		IFile derivedFile = getIFileForTypeName( typeName );
-		ICompilationUnit workingCopy= null;
-		
-		synchronized( this )
-		{
-			workingCopy = _generatedFile2WorkingCopy.get( derivedFile );
-		}
-		
-		if ( workingCopy != null )
-			addEntryToWorkingCopyMaps( parentFile, workingCopy );
-
-		return workingCopy;
-	}
-	
-	private ICompilationUnit createNewWorkingCopy(IFile parentFile, String typeName,
-			String contents, WorkingCopyOwner workingCopyOwner,
-			IProblemRequestor problemRequestor, IProgressMonitor progressMonitor)
-		throws JavaModelException
-	{
-		IFolder folder = getGeneratedSourceFolder();
-		
-		// 
-		//  figure out package part of type & file name
-		//
-		String pkgName;
-		String fname;
-		int idx = typeName.lastIndexOf( '.' );
-		if ( idx > 0 )
-		{
-		    pkgName = typeName.substring( 0, idx );
-		    fname = 
-				typeName.substring(idx + 1, typeName.length()) + ".java"; //$NON-NLS-1$
-		}
-		else
-		{
-			pkgName = ""; //$NON-NLS-1$
-			fname = typeName + ".java"; //$NON-NLS-1$
-		}
-
-		//
-		//  create compilation unit
-		//
-		IPackageFragmentRoot root = _javaProject.getPackageFragmentRoot(folder);
-		IPackageFragment pkgFragment = 	root.getPackageFragment(pkgName );
-		ICompilationUnit cu = pkgFragment.getCompilationUnit( fname );
-
-		//
-		// BecomeWorkingCopyOperation shouldn't take any resource locks to run, so we should be thread-safe here
-		//
-		cu.becomeWorkingCopy(problemRequestor, progressMonitor);
-		ICompilationUnit workingCopy = cu;
-		
-		//
-		//  update working copy
-		//
-		updateWorkingCopy( contents, workingCopy, workingCopyOwner, progressMonitor );
-
-		
-		//
-		// update maps
-		//
-		addEntryToWorkingCopyMaps( parentFile, workingCopy );
-		
-
-		return workingCopy;	
-	}
-	
-	/**
-	 * Returns true if the file was modified
-	 */
-	private static boolean updateWorkingCopy( 
-			String contents, ICompilationUnit workingCopy, 
-			WorkingCopyOwner workingCopyOwner, IProgressMonitor progressMonitor )
-		throws JavaModelException
-	{
-		IBuffer b = workingCopy.getBuffer();
-		char[] oldBuf = b.getCharacters();
-		// Diff the contents, and only set if they differ
-		if (oldBuf.length == contents.length()) {
-			boolean contentsMatch = true;
-			for (int i=0; i<oldBuf.length; i++) {
-				if (oldBuf[i] != contents.charAt(i)) {
-					contentsMatch = false;
-					break;
-				}
-			}
-			if (contentsMatch) {
-				// No change, no need to update buffer
-				return false;
-			}
-		}
-		
-		b.setContents(contents);
-		workingCopy.reconcile(AST.JLS3, true, workingCopyOwner,
-				progressMonitor);
-		return true;
-	}
-	
-	private void addEntryToWorkingCopyMaps( IFile parentFile, ICompilationUnit workingCopy )
-	{
-		IFile generatedFile = (IFile) workingCopy.getResource();
-		addEntryToFileMaps( parentFile, generatedFile );
-
-		synchronized( this )
-		{
-			ICompilationUnit cu = _generatedFile2WorkingCopy.get( generatedFile );
-			Set<IFile> parents = _generatedWorkingCopy2OpenParentFiles.get( workingCopy);
-		
-			if ( cu != null )
-			{
-				//assert( cu.equals( workingCopy ) ) : "unexpected different instances of working copy for the same type";
-				if ( !cu.equals(workingCopy) ) throw new RuntimeException( "unexpected different instances of working copy for the same type" ); //$NON-NLS-1$
-				if ( parents == null || parents.size() < 1 ) throw new RuntimeException( "Unexpected size of open-parents set.  Expected size >= 0"); //$NON-NLS-1$
-			}
-			else
-			{
-				_generatedFile2WorkingCopy.put( generatedFile, workingCopy );
-			}
-		
-			if ( parents == null )
-			{
-				parents = new HashSet<IFile>();
-				_generatedWorkingCopy2OpenParentFiles.put( workingCopy, parents );
-			}
-			parents.add( parentFile );
-		}
-	}
-	
-	private void addEntryToFileMaps( IFile parentFile, IFile generatedFile )
-	{
-		synchronized ( this )
-		{
-			// add parent file -> set of derived files
-			Set<IFile> fileSet = _parentFile2GeneratedFiles.get( parentFile );
-			if ( fileSet == null )
-			{
-				fileSet = new HashSet();
-				_parentFile2GeneratedFiles.put( parentFile, fileSet );
-			}
-			fileSet.add( generatedFile );
-
-			// add derived file -> set of parent files
-			fileSet = _generatedFile2ParentFiles.get( generatedFile );
-			if ( fileSet == null )
-			{ 
-				fileSet = new HashSet();
-				_generatedFile2ParentFiles.put( generatedFile, fileSet );
-			}
-			fileSet.add( parentFile );
-		}
-	}
-	
-	private void removeFromFileMaps( IFile generatedFile, IFile parentFile ) 
-	    throws JavaModelException 
-	{
-		boolean discardWorkingCopy;
-		synchronized( this )
-		{	
-			discardWorkingCopy = _generatedFile2WorkingCopy.containsKey(generatedFile);
-		}
-		
-		// don't want to hold a lock when we call discardGeneratedWorkingCopy...
-		if ( discardWorkingCopy )
-			discardGeneratedWorkingCopy(generatedFile, parentFile);
-
-		synchronized( this )
-		{
-			Set<IFile> derivedFiles = _parentFile2GeneratedFiles.get(parentFile);
-
-			// assertions
-			if (derivedFiles == null)
-				throw new RuntimeException(
-					"derivedFiles is null and it shouldn't be"); //$NON-NLS-1$
-
-			derivedFiles.remove(generatedFile);
-		
-			// update _derivedFile2Parents map
-			Set<IFile> parents = _generatedFile2ParentFiles.get(generatedFile);
-
-			// assertions
-			if (parents == null)
-				throw new RuntimeException(" parents is null and it shouldn't be"); //$NON-NLS-1$
-			if (!parents.contains(parentFile))
-				throw new RuntimeException("parents set does not contain parent. Parent: " + parentFile + ". Child: " + generatedFile); //$NON-NLS-1$ //$NON-NLS-2$
-
-			parents.remove(parentFile);
-		}
-	}
-
-	private void removeFromWorkingCopyMaps( IFile derivedFile, IFile parentFile )
-		throws JavaModelException
-	{
-		ICompilationUnit workingCopy = null;
-		boolean discard = false;
-		
-		synchronized( this )
-		{
-			workingCopy = _generatedFile2WorkingCopy.get( derivedFile );
-			if ( workingCopy == null )
-				return;
-	
-			Set<IFile> parents = _generatedWorkingCopy2OpenParentFiles.get( workingCopy );
-
-			// TODO:  change these to assertions
-			if ( parents == null ) throw new RuntimeException( "parents == null and it shouldnt"); //$NON-NLS-1$
-			if ( ! parents.contains( parentFile )) throw new RuntimeException("parents set should contain parentCompilationUnit"); //$NON-NLS-1$
-		
-			// remove entry from parents _derivedWorkingCopy2OpenParentFiles
-			parents.remove( parentFile );
-	
-			// and remove entry from _derivedFile2WorkingCopy
-			if ( parents.size() == 0 )
-			{
-				_generatedFile2WorkingCopy.remove( derivedFile );
-				discard = true;
-			}
-		}
-	
-		if ( discard )
-			workingCopy.discardWorkingCopy();
-	}
-
-	private void clearWorkingCopyMaps()
-	{
-		// first discard all working copies
-
-		Collection<ICompilationUnit> workingCopies;
-		
-		synchronized( this )
-		{
-			// make a copy to avoid race conditions
-			workingCopies = new ArrayList<ICompilationUnit>( _generatedFile2WorkingCopy.values() );
-		
-			_generatedWorkingCopy2OpenParentFiles.clear();
-			_generatedFile2WorkingCopy.clear();
-		}
-		
-			
-		for ( ICompilationUnit workingCopy : workingCopies )
-		{
-			try
-			{
-				workingCopy.discardWorkingCopy();
-			}
-			catch( JavaModelException jme )
-			{
-				AptPlugin.log(jme, "Could not discard working copy"); //$NON-NLS-1$
-				// TODO:  deal with this
-			}
-		}
-	}
-	
-	private void clearAllMaps() 
-	{
-		clearWorkingCopyMaps();
-		
-		synchronized( this )
-		{
-			// now clear file maps
-			_parentFile2GeneratedFiles.clear();
-			_generatedFile2ParentFiles.clear();
-		}
-	}
-	
-	/**
-	 * Given a java project, this function will determine if the specified
-	 * folder is a source folder of the java project. 
-	 * 
-	 * @param jp - the java project
-	 * @param folder - the folder that you want to see if it is a classpath entry for the java project
-	 * @return
-	 * @throws JavaModelException
-	 */
-	public static IClasspathEntry findProjectSourcePath( IJavaProject jp, IFolder folder )
-		throws JavaModelException
-	{
-		IClasspathEntry[] cp = jp.getRawClasspath();
-		IClasspathEntry searchingFor = 
-			JavaCore.newSourceEntry(folder.getFullPath());
-		IPath searchingForPath = searchingFor.getPath();
-		for (int i = 0; i < cp.length; i++) 
-		{
-			if (cp[i].getPath().equals( searchingForPath )) 
-				return cp[i];
-		}
-		return null;
-	}
-	
-	private static boolean isProjectClassPathUpToDate(		
-			IJavaProject jp,
-			IClasspathEntry[] cp,
-			IPath path, 
-			IProgressMonitor progressMonitor)
-		throws JavaModelException
-	{	
-		if( cp == null )
-			cp = jp.getRawClasspath();
-		for (int i = 0; i < cp.length; i++) 
-		{
-			if (cp[i].getPath().equals( path )) 
-			{
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * returns true if we updated the classpath, false otherwise
-	 */
-	private static boolean updateProjectClasspath( IJavaProject jp, IFolder folder, IProgressMonitor progressMonitor )
-		throws JavaModelException
-	{
-		IClasspathEntry[] cp = jp.getRawClasspath();
-		IPath path = folder.getFullPath();
-		boolean found = isProjectClassPathUpToDate(jp, cp, path, progressMonitor);
-		
-		if (!found) 
-		{
-			// update exclusion patterns
-			ArrayList<IPath> exclusions = new ArrayList<IPath>();
-			for ( int i = 0; i< cp.length; i++ )
-			{
-				if ( cp[i].getPath().isPrefixOf( path ) )
-				{
-					// exclusion patterns must be project-relative paths, and must end with a "/"
-					IPath projectRelativePath = folder.getProjectRelativePath().addTrailingSeparator();
-					
-					// path is contained in an existing source path, so update existing paths's exclusion patterns				
-					IPath[] oldExclusions = cp[i].getExclusionPatterns();
-
-					// don't add if exclusion pattern already contains src dir
-					boolean add = true;
-					for ( int j = 0; j < oldExclusions.length; j++ )
-						if ( oldExclusions[j].equals( projectRelativePath ) )
-							add = false;
-					
-					if ( add )
-					{
-						IPath[] newExclusions;
-						if ( cp[i].getExclusionPatterns() == null )
-							newExclusions = new IPath[1];
-						else
-						{
-							newExclusions = new IPath[ oldExclusions.length + 1 ];
-							System.arraycopy( oldExclusions, 0, newExclusions, 0, oldExclusions.length );
-						}
-						newExclusions[ newExclusions.length - 1 ] = projectRelativePath;
-						cp[i] = JavaCore.newSourceEntry(cp[i].getPath(), cp[i].getInclusionPatterns(), newExclusions, cp[i].getOutputLocation(), cp[i].getExtraAttributes());
-					}
-					
-				}
-				else if ( path.isPrefixOf( cp[i].getPath() ))
-				{
-					// new source path contains an existing source path, so add an exclusion pattern for it
-					exclusions.add( cp[i].getPath().addTrailingSeparator() );
-				}
-			}
-			
-			IPath[] exclusionPatterns = exclusions.toArray( new IPath[exclusions.size()] );
-			IClasspathEntry generatedSourceClasspathEntry = 
-				JavaCore.newSourceEntry(folder.getFullPath(), exclusionPatterns );
-			
-			IClasspathEntry[] newCp = new IClasspathEntry[cp.length + 1];
-			System.arraycopy(cp, 0, newCp, 0, cp.length);
-			newCp[newCp.length - 1] = generatedSourceClasspathEntry;
-			
-			jp.setRawClasspath(newCp, progressMonitor );
-		}
-
-		// return true if we updated the project's classpath entries
-		return !found;
-	}
-
-	/** 
-	 * removes a classpath entry from the project 
-	 */
-	public static void removeFromProjectClasspath( IJavaProject jp, IFolder folder, IProgressMonitor progressMonitor )
-		throws JavaModelException
-	{			
-		IClasspathEntry[] cp = jp.getRawClasspath();
-		IPath workspaceRelativePath = folder.getFullPath();
-		boolean found = isProjectClassPathUpToDate(jp, cp, workspaceRelativePath, progressMonitor);
-		
-		if( found ){			
-			IPath projectRelativePath = folder.getProjectRelativePath().addTrailingSeparator();
-	
-			// remove entries that are for the specified folder, account for 
-			// multiple entries, and clean up any exclusion entries to the 
-			// folder being removed.
-			int j = 0;
-			for ( int i=0; i<cp.length; i++ )
-			{
-				if (! cp[i].getPath().equals( workspaceRelativePath ) )
-				{
-				
-					// see if we added the generated source dir as an exclusion pattern to some other entry
-					IPath[] oldExclusions = cp[i].getExclusionPatterns();
-					int m = 0;
-					for ( int k = 0; k < oldExclusions.length; k++ )
-					{
-						if ( !oldExclusions[k].equals( projectRelativePath ) )
-						{
-							oldExclusions[m] = oldExclusions[k];
-							m++;
-						}
-					}
-					
-					if ( oldExclusions.length == m )
-					{
-						// no exclusions changed, so we do't need to create a new entry
-						cp[j] = cp[i];
-					}
-					else
-					{
-						// we've removed some exclusion, so create a new entry
-						IPath[] newExclusions = new IPath[ m ];
-						System.arraycopy( oldExclusions, 0, newExclusions, 0, m );
-						cp[j] = JavaCore.newSourceEntry( cp[i].getPath(), cp[i].getInclusionPatterns(), newExclusions, cp[i].getOutputLocation(), cp[i].getExtraAttributes() );
-					}
-					
-					j++;
-				}
-			}
-			
-			// now copy updated classpath entries into new array
-			IClasspathEntry[] newCp = new IClasspathEntry[ j ];
-			System.arraycopy( cp, 0, newCp, 0, j);
-			jp.setRawClasspath( newCp, progressMonitor );
-			
-			if( AptPlugin.DEBUG ){
-				AptPlugin.trace("removed " + workspaceRelativePath + " from classpath"); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-		}
-	}
-	
-	/**
-	 * invoked when a project is closed.  This will discard any open working-copies
-	 * of generated files.
-	 */
-	public void projectClosed()
-	{
-		clearWorkingCopyMaps();
-	}
-	
-	/**
-	 * invoked whenever a project is cleaned.  This will remove any state kept about
-	 * generated files for the given project.  If the deleteFiles flag is specified, 
-	 * then the contents of the generated source folder will be deleted. 
-	 *
-	 * @param deleteFiles true if the contents of the generated source folder are to be
-	 * deleted, false otherwise.
-	 */
-	
-	public void projectClean( boolean deleteFiles )
-	{
-		clearAllMaps();
-		
-		// delete the generated source dir
-		if ( deleteFiles )
-		{
-			IFolder f = getGeneratedSourceFolder();
-			if ( f != null && f.exists() )
-			{
-				// delete the contents of the generated source folder, but don't delete
-				// the generated source folder because that will cause a classpath change,
-				// which will force the next build to be a full build.
-				try
-				{	
-					IResource[] members = f.members();
-					for ( int i = 0; i<members.length; i++ ){
-						deleteDerivedResources(members[i]);
-					}
-				}
-				catch ( CoreException ce )
-				{
-					AptPlugin.log(ce, "Could not delete generated files"); //$NON-NLS-1$
-				}
-			}
-		}
-	}
-	
-	/**
-	 * If the given resource is a folder, then recursively deleted all derived  
-	 * files and folders contained within it. Delete the folder if it becomes empty
-	 * and if itself is also a derived resource.
-	 * If the given resource is a file, delete it iff it is a derived resource.
-	 * The resource is left untouched if it is no a folder or a file.
-	 * @param resource
-	 * @return <code>true</code> iff the resource has been deleted.
-	 * @throws CoreException
-	 */
-	private boolean deleteDerivedResources(final IResource resource)
-		throws CoreException
-	{		
-		if( resource.getType() == IResource.FOLDER ){
-			boolean deleteFolder = resource.isDerived();
-			IResource[] members = ((IFolder)resource).members();
-			for( int i=0, len=members.length; i<len; i++ ){	
-				deleteFolder &= deleteDerivedResources(members[i]);
-			}
-			if( deleteFolder ){
-				resource.delete(true, null);
-				return true;
-			}
-			return false; 
-		}
-		else if( resource.getType() == IResource.FILE ){
-			if( resource.isDerived() ){
-				resource.delete(true, null);
-				return true;
-			}
-			return false;
-		}
-		// will skip pass everything else.
-		else
-			return false;
-	}
-	
-	/**
-	 * Inovked when a project has been deleted.  This will remove this generated file manager
-	 * from the static map of projects->generated file managers, and this will flush any known
-	 * in-memory state tracking generated files.  This will not delete any of the project's generated files
-	 * from disk.  
-	 */
-	public void projectDeleted()
-	{
-		//
-		// remove this project from the managers map.  Some other clients may still
-		// have a reference to this, but that should be fine since the project is being
-		// deleted.  We'll just empty out member fields rather than
-		// setting them to null to avoid NPEs.
-		//
-		synchronized( this.getClass() )
-		{
-			MANAGERS_MAP.remove( _project );
-		}
-		
-		projectClean( false );
-	}
-	
-	/**
-	 *  Invoked when the generated source folder has been deleted.  This will 
-	 *  flush any in-memory state tracking generated files and clean up the project classpath.
-	 *  
-	 *  Note: this should only be called within a resource change event to ensure that the classpath
-	 *  is correct during any build. Resource change event never occurs during a build.
-	 */
-	public void generatedSourceFolderDeleted()
-	{
-		projectClean( false );
-		
-		IFolder srcFolder;
-		synchronized(this){
-			srcFolder = getGeneratedSourceFolder();
-			_generatedSourceFolder = null;
-		}
-		if(AptPlugin.DEBUG)
-			AptPlugin.trace("nulled out gen src dir " + srcFolder.getName() ); //$NON-NLS-1$
-		
-		try{			
-			removeFromProjectClasspath( _javaProject, srcFolder, null );		
-		}catch(JavaModelException e){
-			AptPlugin.log( e, "Error occurred deleting old generated src folder " + srcFolder.getName() ); //$NON-NLS-1$
-		}
-		
-	}
-	
-	/**
-	 *  This method should only be used for testing purposes to ensure
-	 *  that maps contain entries when we expect them to.
-	 */
-	public synchronized boolean containsWorkingCopyMapEntriesForParent( IFile f )
-	{
-		Collection<Set<IFile>> parentSets = _generatedWorkingCopy2OpenParentFiles.values();
-		if ( parentSets != null )
-		{
-			for( Set<IFile> s : parentSets )
-			{
-				if ( s.contains( f ) )
-					return true;
-			}
-		}
-
-		Set<IFile> generatedFiles = _parentFile2GeneratedFiles.get( f );
-		if ( generatedFiles != null )
-		{
-			for ( IFile gf : generatedFiles )
-			{
-				ICompilationUnit cu = _generatedFile2WorkingCopy.get( gf );
-				if ( cu != null )
-				{
-					Set<IFile> parents = _generatedWorkingCopy2OpenParentFiles.get( cu );
-					if ( parents.contains( cu ) || parents.size() == 0 )
-						return true;
-				}
-			}
-		}
-		return false;
-	}
-	
-	/**
-	 * @return get the generated source folder. May return null if
-	 * creation has failed, the folder has been deleted or has not been created.
-	 */
-	public IFolder getGeneratedSourceFolder(){
-		IFolder srcFolder;
-		final String folderName;
-		synchronized (this) {
-			srcFolder = _generatedSourceFolder;
-			folderName = getGeneratedSourceFolderName();
-		}
-		if(srcFolder != null)
-			return srcFolder;
-		
-		return _project.getFolder( folderName );
-	}
-	
-	/**
-	 * returns the name of the folder for generated source files.  The name is relative
-	 * to the project root.
-	 * 
-	 * @see #getGeneratedSourceFolder()
-	 * @see #isGeneratedSourceFolderConfigured()
-	 */
-	public synchronized String getGeneratedSourceFolderName() 
-	{ 
-		return _generatedSourceFolderName; 
-	}
-
-	
-	/**
-	 * Sets the name of the generated soruce folder.  The source folder will not be created 
-	 * and will not be added to the project's source paths (i.e., after a call to
-	 * setGeneratedSourceFolderName, isGeneratedSourceFolderConfigured() will return false.)  
-	 * To properly have the new generated source folder configured, call #ensureGeneratedSourceFolder(). 
-	 * 
-	 * @param s The string name of the new generated source folder.  This should be relative 
-	 * to the project root.  Absolute paths are not supported.  The specified string should be 
-	 * a valid folder name for the file system, and should not be an existing source folder for the 
-	 * project.  
-	 * 
-	 * @see #getGeneratedSourceFolder()
-	 * @see #getGeneratedSourceFolderName()
-	 * @see #isGeneratedSourceFolderConfigured()
-	 */
-	private void setGeneratedSourceFolderName( String s ) 
-	{
-		// bail if they specify null, empty-string or don't change the name of the source folder
-		if ( s == null || s.length() == 0 || s.equals( getGeneratedSourceFolderName() ) )
-			return;
-		
-		projectClean( true );
-
-		IFolder srcFolder;
-		synchronized ( this )
-		{
-			// We are not going to delete any directories or change the classpath
-			// since this could happen during a build. 
-			// see ensureGeneratedSourceFolder() 
-			_generatedSourceFolderName = s;
-			// save _generatedSrcFolder off to avoid race conditions
-			srcFolder = _generatedSourceFolder;
-		}
-		
-		// delete generatedSourceFolder
-		if( srcFolder == null )
-			ensureGeneratedSourceFolder(null);
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedResourceChangeListener.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedResourceChangeListener.java
deleted file mode 100644
index 8c07c57..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/generatedfile/GeneratedResourceChangeListener.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.generatedfile;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceChangeEvent;
-import org.eclipse.core.resources.IResourceChangeListener;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.JavaCore;
-
-public class GeneratedResourceChangeListener implements IResourceChangeListener 
-{
-	public GeneratedResourceChangeListener(){}
-	
-	public void resourceChanged(IResourceChangeEvent event) 
-	{
-		if ( event.getType() == IResourceChangeEvent.PRE_BUILD )
-		{
-			try
-			{ 
-				if( AptPlugin.DEBUG )
-					AptPlugin.trace("[ thread= " + Thread.currentThread().getName() + " ] ---- got a pre-build event"); //$NON-NLS-1$ //$NON-NLS-2$
-				final PreBuildVisitor visitor = new PreBuildVisitor();
-				event.getDelta().accept( visitor );
-				addGeneratedSrcFolderTo(visitor.getProjectsThatNeedGenSrcFolder());
-			}
-			catch ( CoreException ce )
-			{
-				AptPlugin.log(ce, "Error during resource change for " + event); //$NON-NLS-1$
-				// TODO:  handle exception here.
-			}
-		}
-		else if ( event.getType() == IResourceChangeEvent.PRE_CLOSE )
-		{
-			IProject p = (IProject)event.getResource();
-			GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( p );
-			gfm.projectClosed();
-		}
-		else if ( event.getType() == IResourceChangeEvent.PRE_DELETE )
-		{
-			// TODO:  need to update projectDeleted() to delete the generated_src folder
-			// in an async thread.  The resource tree is locked here.
-			IProject p = (IProject)event.getResource();
-			GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( p );
-			gfm.projectDeleted();
-		}
-	}
-	
-	private void addGeneratedSrcFolderTo(final Set<IProject> projs ){
-	
-		for(IProject proj : projs ){
-			final GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager(proj);
-			if(AptConfig.isEnabled(JavaCore.create(proj)))
-				gfm.ensureGeneratedSourceFolder(null);
-		}
-
-	}
-
-	public class PreBuildVisitor implements IResourceDeltaVisitor
-	{
-		// projects that we need to add the generated source folder to.
-		private final Set<IProject> _addGenFolderTo = new HashSet<IProject>();
-		// any projects that is closed or about to be deleted
-		private final Set<IProject> _removedProjects = new HashSet<IProject>();
-		public boolean visit(IResourceDelta delta) throws CoreException 
-		{
-			IResource r = delta.getResource();
-			IProject project = r.getProject();		
-			
-			if ( project == null ) 
-				return true;
-			
-			if( delta.getKind() == IResourceDelta.REMOVED ){
-				GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( project );
-				if( r instanceof IFile ){
-					IFile f = (IFile)r;
-					if ( gfm.isParentFile( f ) )
-					{
-						gfm.parentFileDeleted( (IFile) r, null /* progress monitor */ );
-					}
-					else if ( gfm.isGeneratedFile( f ) )
-					{
-						gfm.generatedFileDeleted( f, null /*progress monitor */ );
-					}
-				}
-				else if( r instanceof IFolder ){			
-					IFolder f = (IFolder) r;
-					if ( gfm.isGeneratedSourceFolder( f ) ){
-						// all deletion occurs before any add (adding the generated source directory)
-						if( !_removedProjects.contains(project) ){							
-							gfm.generatedSourceFolderDeleted();
-							_addGenFolderTo.add(project);
-						}
-						// if the project is already closed or in the process of being
-						// deleted, will ignore this deletion since we cannot correct 
-						// the classpath anyways.
-					}
-				}
-				else if( r instanceof IProject ){	
-					_removedProjects.add((IProject)r);
-				}
-			}
-			else if( r instanceof IProject ){
-				final IProject proj = (IProject)delta.getResource();		
-				if( canUpdate(proj) ){
-					_addGenFolderTo.add(proj);
-				}				
-				else
-					_removedProjects.add(proj);
-			}
-
-			return true;
-		}	
-		
-		Set<IProject> getProjectsThatNeedGenSrcFolder(){
-			_addGenFolderTo.removeAll(_removedProjects);
-			return _addGenFolderTo;
-		}
-		
-		private boolean canUpdate(IProject proj)
-			throws CoreException
-		{
-			return proj.isOpen() && proj.exists() && proj.hasNature(JavaCore.NATURE_ID);
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/messages.properties b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/messages.properties
deleted file mode 100644
index 13caf15..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/messages.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-AnnotationProcessorFactoryLoader_jarNotFound=Could not find jar: 
-AnnotationProcessorFactoryLoader_factorypath_missingLibrary=Project {1} is missing required annotation processor library: ''{0}''
-AnnotationProcessorFactoryLoader_unableToLoadFactoryClass=Unable to load annotation processor factory ''{0}'' for project {1}
-AnnotationProcessorFactoryLoader_factorypath=Annotation processor factory path
-AnnotationProcessorFactoryLoader_ioError=Could not load from jar: 
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ArrayTypeImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ArrayTypeImpl.java
deleted file mode 100644
index 2ad0bc2..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ArrayTypeImpl.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.type; 
-
-import com.sun.mirror.type.ArrayType;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.TypeVisitor;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.BindingKey;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class ArrayTypeImpl implements ArrayType, EclipseMirrorImpl
-{
-    private final ITypeBinding _arrayBinding;
-	private final BaseProcessorEnv _env;
-    public ArrayTypeImpl(final ITypeBinding binding, BaseProcessorEnv env)
-    {
-        _arrayBinding = binding;
-		_env = env;
-        assert _arrayBinding != null && _arrayBinding.isArray();
-        assert env != null : "missing environment"; //$NON-NLS-1$
-    }
-
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitArrayType(this);
-    }
-
-    public TypeMirror getComponentType()
-    {
-		final ITypeBinding elementType = _arrayBinding.getElementType();
-        final int dimension = _arrayBinding.getDimensions();
-        // guarding around error cases.
-        if( dimension == 0 ) return null;
-        final ITypeBinding componentType;
-        if( dimension == 1 ) // the element type is the component type.
-            componentType = elementType;
-        else{
-            final ITypeBinding leaf = elementType.getElementType();
-			final String componentKey = BindingKey.createArrayTypeBindingKey(leaf.getKey(), dimension - 1);
-			componentType = _env.getTypeBinding(componentKey);
-            if( componentType == null )
-				throw new IllegalStateException("unknown component type for " + _arrayBinding); //$NON-NLS-1$
-        }
-
-        final TypeMirror mirror = Factory.createTypeMirror(componentType, _env);
-        if( mirror == null )
-            return Factory.createErrorClassType(componentType);
-        return mirror;
-    }
-
-    public String toString(){ 
-    	final ITypeBinding elementType = _arrayBinding.getElementType();
-    	final StringBuilder buffer = new StringBuilder();
-    	String name = elementType.getQualifiedName();
-    	buffer.append(name);
-		for( int i=0, dim = _arrayBinding.getDimensions(); i<dim; i++ )
-			buffer.append("[]"); //$NON-NLS-1$
-		
-		return buffer.toString();
-    }
-
-    public boolean equals(Object obj)
-    {
-        if( obj instanceof ArrayTypeImpl )
-            return _arrayBinding == ((ArrayTypeImpl)obj)._arrayBinding;
-        return false;
-    }
-
-    public ITypeBinding getArrayBinding(){ return _arrayBinding; }
-
-    public int hashCode(){ return _arrayBinding.hashCode(); }
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_ARRAY; }
-	
-	public BaseProcessorEnv getEnvironment(){ return _env; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ErrorType.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ErrorType.java
deleted file mode 100644
index caea047..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/ErrorType.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.type;
-
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.ClassDeclaration;
-import com.sun.mirror.declaration.InterfaceDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.type.ArrayType;
-import com.sun.mirror.type.ClassType;
-import com.sun.mirror.type.DeclaredType;
-import com.sun.mirror.type.InterfaceType;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.util.TypeVisitor;
-
-import java.util.Collection;
-import java.util.Collections;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-
-/**
- * This is the error type marker
- */
-public abstract class ErrorType implements DeclaredType, ReferenceType, EclipseMirrorImpl
-{
-    final String _name;
-
-    ErrorType(final String name){
-        _name = name;
-    }
-
-    public Collection<TypeMirror> getActualTypeArguments(){ return Collections.emptyList(); }
-
-    public DeclaredType getContainingType(){ return null; }
-
-    public String toString(){ return _name; }
-
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitDeclaredType(this);
-        visitor.visitReferenceType(this);
-    }
-
-    public Collection<InterfaceType> getSuperinterfaces(){ return Collections.emptyList(); }
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_ERROR; }
-	
-	public BaseProcessorEnv getEnvironment(){ return null; }
-
-    public static final class ErrorClass extends ErrorType implements ClassType
-    {
-        public ErrorClass(final String name){ super(name); }
-
-        public void accept(TypeVisitor visitor)
-        {
-            super.accept(visitor);
-            visitor.visitClassType(this);
-        }
-
-        public ClassType getSuperclass()
-        {
-            return null;
-        }
-
-        public ClassDeclaration getDeclaration(){ return null; }		
-		
-    }
-
-    public static class ErrorInterface extends ErrorType implements InterfaceType
-    {
-        public ErrorInterface(final String name){ super(name); }
-
-        public void accept(TypeVisitor visitor)
-        {
-            super.accept(visitor);
-            visitor.visitInterfaceType(this);
-        }
-
-        public InterfaceDeclaration getDeclaration(){ return null; }
-    }
-
-    public static final class ErrorAnnotation extends ErrorInterface implements AnnotationType
-    {
-        public ErrorAnnotation(final String name){ super(name); }
-
-        public void accept(TypeVisitor visitor)
-        {
-            super.accept(visitor);
-            visitor.visitAnnotationType(this);
-        }
-
-        public AnnotationTypeDeclaration getDeclaration(){ return null; }
-    }
-    
-    public static final class ErrorArrayType extends ErrorType implements ArrayType 
-    {
-    	private final int _dimension;
-    	public ErrorArrayType(final String name, final int dimension )
-    	{
-    		super(name);
-    		_dimension = dimension;
-    	}
-    	
-    	public void accept(TypeVisitor visitor)
-        {
-            super.accept(visitor);
-            visitor.visitArrayType(this);
-        }
-    	
-    	public TypeDeclaration getDeclaration() { return null; }
-    	
-    	public TypeMirror getComponentType() {
-    		return new ErrorClass(_name);
-    	}
-    	
-    	public String toString()
-    	{
-    		final StringBuilder buffer = new StringBuilder();
-    		buffer.append(_name);
-    		for( int i=0; i<_dimension; i++ )
-    			buffer.append("[]"); //$NON-NLS-1$
-    		return buffer.toString();
-    	}
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/PrimitiveTypeImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/PrimitiveTypeImpl.java
deleted file mode 100644
index fc88576..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/PrimitiveTypeImpl.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.type; 
-
-import com.sun.mirror.type.PrimitiveType;
-import com.sun.mirror.util.TypeVisitor;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class PrimitiveTypeImpl implements PrimitiveType, EclipseMirrorImpl
-{	
-    private final ITypeBinding _binding;    
-    
-    public PrimitiveTypeImpl(ITypeBinding binding)
-    {
-		assert binding != null;
-        _binding = binding;        
-    }
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitPrimitiveType(this);
-    }
-
-    public PrimitiveType.Kind getKind()
-    {
-		final String name = getTypeBinding().getName();
-		if( "int".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.INT; 
-		else if( "byte".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.BYTE;
-		else if( "short".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.SHORT;
-		else if( "char".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.CHAR;
-		else if( "long".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.LONG;
-		else if( "float".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.FLOAT;
-		else if( "double".equals(name) ) //$NON-NLS-1$
-			return PrimitiveType.Kind.DOUBLE;
-		else if( "boolean".equals(name)) //$NON-NLS-1$
-			return PrimitiveType.Kind.BOOLEAN;
-		else
-			throw new IllegalStateException("unrecognized primitive type " + _binding); //$NON-NLS-1$
-    }
-    
-    public String toString(){ return _binding.getName(); }
-
-    public ITypeBinding getTypeBinding(){ return _binding; }
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_PRIMITIVE; }
-	
-	public boolean equals(final Object obj)
-	{
-		try{
-			return this._binding.isEqualTo( ((PrimitiveTypeImpl)obj)._binding );
-		}
-		catch(ClassCastException e){
-			return false;
-		}
-	}
-	
-	public BaseProcessorEnv getEnvironment(){ return null; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/VoidTypeImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/VoidTypeImpl.java
deleted file mode 100644
index 7698db1..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/VoidTypeImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.type;
-
-import com.sun.mirror.type.VoidType;
-import com.sun.mirror.util.TypeVisitor;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class VoidTypeImpl implements VoidType, EclipseMirrorImpl
-{   
-	private final ITypeBinding _binding;
-
-    public VoidTypeImpl(final ITypeBinding  binding){
-		assert binding != null : "missing binding"; //$NON-NLS-1$
-		_binding = binding;
-	}
-    
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitVoidType(this);
-    }
-
-    public String toString(){ return "void"; } //$NON-NLS-1$
-	
-	public ITypeBinding getTypeBinding(){return _binding;}
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_VOID; }
-	
-	public BaseProcessorEnv getEnvironment(){ return null; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/WildcardTypeImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/WildcardTypeImpl.java
deleted file mode 100644
index 9d5eb33..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/type/WildcardTypeImpl.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.type;
-
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.type.WildcardType;
-import com.sun.mirror.util.TypeVisitor;
-import java.util.Collection;
-import java.util.Collections;
-
-import org.eclipse.jdt.apt.core.env.EclipseMirrorObject.MirrorKind;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.util.Factory;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class WildcardTypeImpl implements WildcardType
-{
-    private final ITypeBinding _binding;
-	private final BaseProcessorEnv _env;
-
-    public WildcardTypeImpl(ITypeBinding binding, BaseProcessorEnv env)
-    {
-        _binding = binding;
-		_env = env;
-        assert _binding != null && _binding.isWildcardType();
-        assert env != null : "missing environment"; //$NON-NLS-1$
-    }
-    
-    public void accept(TypeVisitor visitor)
-    {
-        visitor.visitTypeMirror(this);
-        visitor.visitWildcardType(this);
-    }
-
-    public Collection<ReferenceType> getLowerBounds()
-    {
-        final ITypeBinding bound = _binding.getBound();
-        // no bound or has an upper bound.
-        if( bound == null || _binding.isUpperbound() )
-            return Collections.emptyList();
-        ReferenceType mirror = Factory.createReferenceType(bound, _env);
-        if( mirror == null )
-            mirror = Factory.createErrorClassType(bound);
-        return Collections.singletonList(mirror);
-    }
-
-    public Collection<ReferenceType> getUpperBounds()
-    {
-        final ITypeBinding bound = _binding.getBound();
-        // no bound or has a lower bound.
-        if( bound == null || !_binding.isUpperbound() )
-            return Collections.emptyList();
-        ReferenceType mirror = Factory.createReferenceType(bound, _env);
-        if( mirror == null )
-            mirror = Factory.createErrorClassType(bound);
-        return Collections.singletonList(mirror);
-    }
-
-    public String toString(){ return _binding.toString(); }
-    public int hashCode(){ return _binding.hashCode(); }
-    public boolean equals(Object obj)
-    {
-        if(obj instanceof WildcardTypeImpl )
-            return ((WildcardTypeImpl)obj)._binding.isEqualTo(_binding);
-        return false;
-    }
-
-    public MirrorKind kind(){ return MirrorKind.TYPE_WILDCARD; }
-
-    public ITypeBinding getWildcardBinding(){ return _binding; }
-	
-	public BaseProcessorEnv getEnvironment(){ return _env; }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/AptCorePreferenceInitializer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/AptCorePreferenceInitializer.java
deleted file mode 100644
index 2e76b88..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/AptCorePreferenceInitializer.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import java.util.Map;
-
-import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.util.AptPreferenceConstants;
-
-/**
- * This class is used to extend org.eclipse.core.runtime.preferences.
- */
-public class AptCorePreferenceInitializer extends AbstractPreferenceInitializer {
-
-	@Override
-	public void initializeDefaultPreferences() {
-	 	IEclipsePreferences defaultPreferences = new DefaultScope().getNode(AptPlugin.PLUGIN_ID);
-	 	for (Map.Entry<String,String> entry : AptPreferenceConstants.DEFAULT_OPTIONS_MAP.entrySet()) {
-	 		defaultPreferences.put(entry.getKey(), entry.getValue());
-	 	}
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/DeclarationsUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/DeclarationsUtil.java
deleted file mode 100644
index 46fb654..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/DeclarationsUtil.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.NonEclipseImplementationException;
-import org.eclipse.jdt.apt.core.internal.declaration.DeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.EclipseDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.MemberDeclarationImpl;
-import org.eclipse.jdt.core.dom.IBinding;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.IPackageBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-import org.eclipse.jdt.core.dom.Modifier;
-
-import com.sun.mirror.declaration.MemberDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.util.Declarations;
-
-public class DeclarationsUtil implements Declarations
-{
-    public boolean hides(MemberDeclaration sub, MemberDeclaration sup) {
-		
-		// A declaration cannot hide itself
-		if (sub == sup || sub.equals(sup))
-			return false;
-		
-		if( ! ((EclipseDeclarationImpl)sub).isBindingBased() ||  
-			! ((EclipseDeclarationImpl)sup).isBindingBased() )
-			return false;
-		
-		MemberDeclarationImpl subImpl = (MemberDeclarationImpl)sub;
-		MemberDeclarationImpl supImpl = (MemberDeclarationImpl)sup;
-		
-		IBinding subBinding = subImpl.getDeclarationBinding();
-		IBinding supBinding = supImpl.getDeclarationBinding();
-		
-		
-		// Hiding can only take place between declarations of the same kind and name,
-		// and types, variables and methods
-		int subKind = subBinding.getKind();
-		int supKind = supBinding.getKind();
-		if (subKind != supKind || subKind == IBinding.PACKAGE)
-			return false;
-		if (!subBinding.getName().equals(supBinding.getName()))
-			return false;
-		
-		// Methods must be both static and the sub a subsignature of the sup
-		if (subKind == IBinding.METHOD) {
-			boolean allowed = false;
-			int modifiers = subBinding.getModifiers();
-			if ((modifiers & Modifier.STATIC) == Modifier.STATIC) {
-				IMethodBinding methodBinding = (IMethodBinding)subBinding;
-				if (methodBinding.isSubsignature((IMethodBinding)supBinding)) {
-					allowed = true;
-				}
-			}
-			if (!allowed)
-				return false;
-		}
-		
-		// sub's enclosing class must be a subclass of sup's
-		ITypeBinding subClass = getDeclaringClass(subBinding);
-		ITypeBinding supClass = getDeclaringClass(supBinding);
-		if (subClass == null || supClass == null)
-			return false;
-		if (!subClass.isSubTypeCompatible(supClass))
-			return false;
-		
-		// sup must be visible from sub
-		if (!isVisibleForHiding(supClass, supClass, supBinding.getModifiers()))
-			return false;
-		
-		return true;
-    }
-	
-	/**
-	 * Is a method, field, type visible from the viewer?
-	 * That is, do accessibility rules allow it? (public, protected, etc.)<P>
-	 * 
-	 * Note that we make an assumption about protected here since
-	 * its use in hides() already determines that the declaringTarget
-	 * must be a subclass of the declaringViewer.
-	 */
-	private static boolean isVisibleForHiding(
-			final ITypeBinding declaringTarget, 
-			final ITypeBinding declaringViewer, 
-			final int modifiers) {
-		
-		// Public is always visible
-		if ((modifiers & Modifier.PUBLIC) == Modifier.PUBLIC)
-			return true;
-		if ((modifiers & Modifier.PRIVATE) == Modifier.PRIVATE) {
-			// Must be the same class
-			if (declaringTarget.equals(declaringViewer))
-				return true;
-			else
-				return false;
-		}
-		if ((modifiers & Modifier.PROTECTED) == Modifier.PROTECTED) {
-			// We've already checked for subclassing
-			return true;
-		}
-		// Package-friendly (no accessibility modifier)
-		// Classes must be in the same package
-		IPackageBinding targetPackage = declaringTarget.getPackage();
-		IPackageBinding viewerPackage = declaringViewer.getPackage();
-		return targetPackage.equals(viewerPackage);
-	}
-
-    public boolean overrides(MethodDeclaration sub, MethodDeclaration sup) {
-        final IMethodBinding subBinding = (IMethodBinding)getBinding(sub);
-        final IMethodBinding supBinding = (IMethodBinding)getBinding(sup);
-        if(subBinding == null || supBinding == null) return false;
-        return subBinding.overrides(supBinding);
-    }
-
-    private static IBinding getBinding(MemberDeclaration memberDecl)
-        throws NonEclipseImplementationException
-    {
-        if( memberDecl == null ) return null;
-        if( memberDecl instanceof EclipseMirrorImpl ){
-        	if( memberDecl instanceof DeclarationImpl )
-        		return ((DeclarationImpl)memberDecl).getDeclarationBinding();
-        	else
-        		return null;
-        }
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + memberDecl.getClass().getName()); //$NON-NLS-1$
-    }
-	
-	private static ITypeBinding getDeclaringClass(IBinding binding) {
-		int kind = binding.getKind();
-		if (kind == IBinding.TYPE)
-			return ((ITypeBinding)binding).getDeclaringClass();
-		if (kind == IBinding.METHOD)
-			return ((IMethodBinding)binding).getDeclaringClass();
-		if (kind == IBinding.VARIABLE)
-			return ((IVariableBinding)binding).getDeclaringClass();
-		
-		// Package binding -- no declaring class
-		return null;
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Factory.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Factory.java
deleted file mode 100644
index 0079222..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Factory.java
+++ /dev/null
@@ -1,574 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.type.ArrayType;
-import com.sun.mirror.type.ClassType;
-import com.sun.mirror.type.InterfaceType;
-import com.sun.mirror.type.PrimitiveType;
-import com.sun.mirror.type.TypeMirror;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.ASTBasedAnnotationElementDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.ASTBasedFieldDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.ASTBasedMethodDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationElementDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationValueImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.BinaryParameterDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.ClassDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.ConstructorDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.EclipseDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.EnumConstantDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.EnumDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.ExecutableDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.FieldDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.InterfaceDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.MethodDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.SourceParameterDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.TypeDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.TypeParameterDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.type.ArrayTypeImpl;
-import org.eclipse.jdt.apt.core.internal.type.ErrorType;
-import org.eclipse.jdt.apt.core.internal.type.WildcardTypeImpl;
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration;
-import org.eclipse.jdt.core.dom.IResolvedAnnotation;
-import org.eclipse.jdt.core.dom.IBinding;
-import org.eclipse.jdt.core.dom.IMethodBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-import org.eclipse.jdt.core.dom.IVariableBinding;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.VariableDeclarationFragment;
-
-public class Factory
-{
-    public static TypeDeclarationImpl createReferenceType(ITypeBinding binding, BaseProcessorEnv env)
-    {
-        if(binding == null || binding.isNullType()) return null;        
-        TypeDeclarationImpl mirror = null;
-        // must test for annotation type before interface since annotation 
-        // is an interface
-        if( binding.isAnnotation() )
-            mirror = new AnnotationDeclarationImpl(binding, env);
-        else if (binding.isInterface() )
-            mirror = new InterfaceDeclarationImpl(binding, env);
-        // must test for enum first since enum is also a class. 
-        else if( binding.isEnum() ) 
-        	mirror = new EnumDeclarationImpl(binding, env);
-        else if( binding.isClass() )
-            mirror = new ClassDeclarationImpl(binding, env);
-        else
-            throw new IllegalStateException("cannot create type declaration from " + binding); //$NON-NLS-1$
-
-        return mirror;
-    }
-
-    public static EclipseDeclarationImpl createDeclaration(IBinding binding, BaseProcessorEnv env)
-    {
-        if(binding == null) return null;
-       
-        switch(binding.getKind())
-        {
-    	case IBinding.TYPE:
-    		final ITypeBinding typeBinding = (ITypeBinding)binding;
-        	if( typeBinding.isAnonymous() || typeBinding.isArray() || 
-    			typeBinding.isWildcardType() || typeBinding.isPrimitive() )       
-                throw new IllegalStateException("failed to create declaration from " + binding); //$NON-NLS-1$
-            return createReferenceType(typeBinding, env);
-        case IBinding.VARIABLE:
-        	final IVariableBinding varBinding = (IVariableBinding)binding;            
-            if(varBinding.isEnumConstant())
-                return new EnumConstantDeclarationImpl(varBinding, env);
-            else
-                return new FieldDeclarationImpl(varBinding, env);
-        case IBinding.METHOD:
-            final IMethodBinding method = (IMethodBinding)binding;
-            if( method.isConstructor() )
-                return new ConstructorDeclarationImpl(method, env);
-            final ITypeBinding declaringType = method.getDeclaringClass();
-            if( declaringType != null && declaringType.isAnnotation() )
-                return new AnnotationElementDeclarationImpl(method, env);
-            else
-                return new MethodDeclarationImpl(method, env);             
-        default:
-            throw new IllegalStateException("failed to create declaration from " + binding); //$NON-NLS-1$
-        }     
-    }
-    
-    public static EclipseDeclarationImpl createDeclaration(
-    		ASTNode node, 
-    		IFile file,
-    		BaseProcessorEnv env)
-    {
-    	 if( node == null )
-    		 return null;
-    	 switch( node.getNodeType() )
-    	 {
-    	 case ASTNode.SINGLE_VARIABLE_DECLARATION:
-    		 return new SourceParameterDeclarationImpl((SingleVariableDeclaration)node, file, env);
-    	 case ASTNode.VARIABLE_DECLARATION_FRAGMENT:
-    		 return new ASTBasedFieldDeclarationImpl( (VariableDeclarationFragment)node, file, env );
-    	 case ASTNode.METHOD_DECLARATION :
-    		  return new ASTBasedMethodDeclarationImpl( (org.eclipse.jdt.core.dom.MethodDeclaration)node, file, env );
-    	 case ASTNode.ANNOTATION_TYPE_MEMBER_DECLARATION:
-    		 return new ASTBasedMethodDeclarationImpl((AnnotationTypeMemberDeclaration)node, file, env);
-    	 default :
-    		 throw new UnsupportedOperationException(
-    				 "cannot create mirror type from " +   //$NON-NLS-1$
-    				 node.getClass().getName() );
-    	 }
-    }
-
-    public static TypeMirror createTypeMirror(ITypeBinding binding, BaseProcessorEnv env)
-    {		
-        if( binding == null ) return null;        
-
-		if( binding.isPrimitive() ){
-			if( "int".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getIntType(); 
-			else if( "byte".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getByteType();
-			else if( "short".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getShortType();
-			else if( "char".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getCharType();
-			else if( "long".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getLongType();
-			else if( "float".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getFloatType();
-			else if( "double".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getDoubleType();
-			else if( "boolean".equals(binding.getName())) //$NON-NLS-1$
-				return env.getBooleanType();
-			else if( "void".equals(binding.getName()) ) //$NON-NLS-1$
-				return env.getVoidType();
-			else
-				throw new IllegalStateException("unrecognized primitive type: " + binding); //$NON-NLS-1$
-        }
-        else if( binding.isArray() )
-            return new ArrayTypeImpl(binding, env);
-        else if( binding.isWildcardType() ){
-			return new WildcardTypeImpl(binding, env);            
-        }
-        else if( binding.isTypeVariable() )
-            return new TypeParameterDeclarationImpl(binding, env);
-        else
-            return createReferenceType(binding, env);       
-    }
-    
-    public static ParameterDeclaration createParameterDeclaration(
-    		final SingleVariableDeclaration param,
-    		final IFile file,
-    		final BaseProcessorEnv env)
-    {
-    	return new SourceParameterDeclarationImpl(param, file, env);
-    }
-    
-    
-    public static ParameterDeclaration createParameterDeclaration(
-    		final ExecutableDeclarationImpl exec,
-    		final int paramIndex,
-    		final ITypeBinding type,
-    		final BaseProcessorEnv env )
-    {
-    	return new BinaryParameterDeclarationImpl(exec, type, paramIndex, env);
-    }
-   
-  
-    /**
-     * @param annotation the ast node.
-     * @param annotated the declaration that <code>annotation</code> annotated
-     * @param env
-     * @return a newly created {@link AnnotationMirror} object
-     */
-    public static AnnotationMirror createAnnotationMirror(final IResolvedAnnotation annotation,
-                                                          final EclipseDeclarationImpl annotated,
-                                                          final BaseProcessorEnv env)
-    {
-        return new AnnotationMirrorImpl(annotation, annotated, env);		
-    }
-    
-    public static AnnotationValue createDefaultValue(
-    		Object domValue,
-    		AnnotationElementDeclarationImpl decl,
-    		BaseProcessorEnv env)
-    {
-    	if( domValue == null ) return null;		
-		final Object converted = convertDOMValueToMirrorValue(
-				domValue, null, decl, decl, env, decl.getReturnType());
-		
-        return createAnnotationValue(converted, null, -1, decl, env);
-    }
-	
-	/**
-	 * Build an {@link AnnotationValue} object based on the given dom value.
-	 * @param domValue default value according to the DOM API.
-	 * @param decl the element declaration whose default value is <code>domValue</code>
-	 * 			   if {@link #domValue} is an annotation, then this is the declaration it annotated. 
-	 * 			   In all other case, this parameter is ignored.
-	 * @param env 
-	 * @return an annotation value
-	 */
-    public static AnnotationValue createDefaultValue(Object domValue, 
-													 ASTBasedAnnotationElementDeclarationImpl decl, 
-													 BaseProcessorEnv env)
-    {
-        if( domValue == null ) return null;		
-		final Object converted = convertDOMValueToMirrorValue(
-				domValue, null, decl, decl, env, decl.getReturnType());
-		
-        return createAnnotationValue(converted, null, -1, decl, env);
-    }
-	
-	/**
-	 * Build an {@link AnnotationValue} object based on the given dom value.
-	 * @param domValue annotation member value according to the DOM API.
-	 * @param elementName the name of the member value
-	 * @param anno the annotation that directly contains <code>domValue</code>	
-	 * @param env 
-	 * @return an annotation value
-	 */
-	public static AnnotationValue createAnnotationMemberValue(Object domValue,
-															  String elementName,
-															  AnnotationMirrorImpl anno, 														
-															  BaseProcessorEnv env,
-															  TypeMirror expectedType)
-	{
-		if( domValue == null ) return null;
-		final Object converted = convertDOMValueToMirrorValue(
-				domValue, elementName, anno, 
-				anno.getAnnotatedDeclaration(), env, expectedType);
-		return createAnnotationValue(converted, elementName, -1, anno, env);		
-	}
-	
-	/**
-	 * @param convertedValue value in mirror form.
-	 * @param name the name of the annotation member or null for default value 
-	 * @param index the number indicate the source order of the annotation member value 
-	 *              in the annotation instance.
-	 * @param mirror either {@link AnnotationMirrorImpl } or {@link AnnotationElementDeclarationImpl}
-	 * @param env
-	 * @param needBoxing whether the expected type of the member value is an array or not.
-	 * @return
-	 */
-	private static AnnotationValue createAnnotationValue(Object convertedValue, 
-														 String name,
-														 int index,
-														 EclipseMirrorImpl mirror, 
-														 BaseProcessorEnv env)	
-	{
-		if( convertedValue == null ) return null;
-		if( mirror instanceof AnnotationMirrorImpl )
-			return new AnnotationValueImpl(convertedValue, name, index, (AnnotationMirrorImpl)mirror, env);
-		else
-			return new AnnotationValueImpl(convertedValue, index, (AnnotationElementDeclarationImpl)mirror, env);
-	}
-
-
-    /**
-     * Building an annotation value object based on the dom value.
-     * 
-     * @param dom the dom value to convert to the mirror specification.      
-     * @see com.sun.mirror.declaration.AnnotationValue.getObject()
-     * @param name the name of the element if <code>domValue</code> is an 
-     * element member value of an annotation
-     * @param parent the parent of this annotation value.
-     * @param decl if <code>domValue</code> is a default value, then this is the 
-     * annotation element declaration where the default value originates
-     * if <code>domValue</code> is an annotation, then <code>decl</code>
-     * is the declaration that it annotates.
-     * @param expectedType the declared type of the member value.
-     * @param needBoxing <code>true</code> indicate an array should be returned. 
-     * @return the converted annotation value or null if the conversion failed
-     */
-    private static Object convertDOMValueToMirrorValue(Object domValue, 
-													   String name,	
-													   EclipseMirrorImpl parent,
-													   EclipseDeclarationImpl decl, 
-													   BaseProcessorEnv env,
-													   TypeMirror expectedType)													   
-    {
-        if( domValue == null ) return null;		
-        
-        final Object returnValue;
-        if( domValue instanceof Boolean   ||
-			domValue instanceof Byte      ||
-			domValue instanceof Character ||
-			domValue instanceof Double    || 
-			domValue instanceof Float     ||
-			domValue instanceof Integer   ||
-			domValue instanceof Long      ||
-			domValue instanceof Short     ||
-			domValue instanceof String ) 
-			returnValue = domValue;
-        
-        else if( domValue instanceof IVariableBinding )
-		{
-        	returnValue = Factory.createDeclaration((IVariableBinding)domValue, env);			
-		}
-        else if (domValue instanceof Object[])
-		{
-			final Object[] elements = (Object[])domValue;
-			final int len = elements.length;
-            final List<AnnotationValue> annoValues = new ArrayList<AnnotationValue>(len);
-            final TypeMirror leaf; 
-            if( expectedType instanceof ArrayType )
-            	leaf = ((ArrayType)expectedType).getComponentType();
-            else
-            	leaf = expectedType; // doing our best here.
-			for( int i=0; i<len; i++ ){				
-                if( elements[i] == null ) continue;
-                // can't have multi-dimensional array.
-                // there should be already a java compile time error
-                else if( elements[i] instanceof Object[] )
-                    return null;
-
-				Object o = convertDOMValueToMirrorValue( elements[i], name, parent, decl, env, leaf );				
-				if( o == null ) 
-					return null; 
-				assert( !( o instanceof IResolvedAnnotation ) ) : 
-					"Unexpected return value from convertDomValueToMirrorValue! o.getClass().getName() = " //$NON-NLS-1$
-					+ o.getClass().getName(); 
-				
-				final AnnotationValue annoValue = createAnnotationValue(o, name, i, parent, env);
-                if( annoValue != null )
-                    annoValues.add(annoValue);
-            }
-			return annoValues;
-		}
-		// caller should have caught this case.
-        else if( domValue instanceof ITypeBinding )
-			returnValue = Factory.createTypeMirror((ITypeBinding)domValue, env);
-		
-        else if( domValue instanceof IResolvedAnnotation )
-		{
-			returnValue = Factory.createAnnotationMirror((IResolvedAnnotation)domValue, decl, env);
-		}
-        else	        
-			// should never reach this point
-			throw new IllegalStateException("cannot build annotation value object from " + domValue); //$NON-NLS-1$       
-
-        return performNecessaryTypeConversion(expectedType, returnValue, name, parent, env);
-    }
-    
-    /**
-     * Apply type conversion according to JLS 5.1.2 and 5.1.3 and / or auto-boxing.
-     * @param expectedType the expected type
-     * @param value the value where conversion may be applied to
-     * @param name name of the member value
-     * @param parent the of the annotation of the member value
-     * @param env 
-     * @return the value matching the expected type or itself if no conversion can be applied.
-     */
-    private static Object performNecessaryTypeConversion(final TypeMirror expectedType,
-	    											     final Object value,
-	    											     final String name,
-	    											     final EclipseMirrorImpl parent,
-	    											     final BaseProcessorEnv env)
-    {
-    	if(expectedType == null )return value;
-    	// apply widening or narrowing primitive type conversion based on JLS 5.1.2 and 5.1.3
-    	if( expectedType instanceof PrimitiveType )
-    	{    	
-    		// widening byte -> short, int, long, float or double
-    		// narrowing byte -> char
-    		if( value instanceof Byte )
-    		{
-    			final byte b = ((Byte)value).byteValue();
-    			switch( ((PrimitiveType)expectedType).getKind() )
-    			{
-    			case CHAR:
-    				return new Character((char)b);
-    			case SHORT:
-    				return new Short(b);
-    			case INT:
-    				return new Integer(b);
-    			case LONG:
-    				return new Long(b);
-    			case FLOAT:
-    				return new Float(b);
-    			case DOUBLE:
-    				return new Double(b);
-    			default:
-    				// it is either already correct or it is completely wrong,
-    				// which doesn't really matter what's returned
-    				return value;
-    			}
-    		}
-    		// widening short -> int, long, float, or double 
-    		// narrowing short -> byte or char
-    		else if( value instanceof Short )
-    		{
-    			final short s = ((Short)value).shortValue();
-    			switch( ((PrimitiveType)expectedType).getKind() )
-    			{
-    			case BYTE:
-    				return new Byte((byte)s);
-    			case CHAR:
-    				return new Character((char)s);  
-    			case INT:
-    				return new Integer(s); 
-    			case LONG:
-    				return new Long(s);
-    			case FLOAT:
-    				return new Float(s);
-    			case DOUBLE:
-    				return new Double(s);
-    			default:
-    				// it is either already correct or it is completely wrong,
-    				// which doesn't really matter what's returned
-    				return value;
-    			}
-    		}
-    		// widening char -> int, long, float, or double 
-    		// narrowing char -> byte or short
-    		else if( value instanceof Character )
-    		{
-    			final char c = ((Character)value).charValue();
-    			switch( ((PrimitiveType)expectedType).getKind() )
-    			{
-    			case INT:
-    				return new Integer(c); 
-    			case LONG:
-    				return new Long(c);
-    			case FLOAT:
-    				return new Float(c);
-    			case DOUBLE:
-    				return new Double(c);
-    			case BYTE:
-    				return new Byte((byte)c);
-    			case SHORT:
-    				return new Short((short)c);  
-    			
-    			default:
-    				// it is either already correct or it is completely wrong,
-    				// which doesn't really matter what's returned
-    				return value;
-    			}
-    		}
-    		
-    		// widening int -> long, float, or double 
-    		// narrowing int -> byte, short, or char 
-    		else if( value instanceof Integer )
-    		{
-    			final int i = ((Integer)value).intValue();
-    			switch( ((PrimitiveType)expectedType).getKind() )
-    			{    		
-    			case LONG:
-    				return new Long(i);
-    			case FLOAT:
-    				return new Float(i);
-    			case DOUBLE:
-    				return new Double(i);
-    			case BYTE:
-    				return new Byte((byte)i);
-    			case SHORT:
-    				return new Short((short)i);  
-    			case CHAR:
-    				return new Character((char)i);
-    			default:
-    				// it is either already correct or it is completely wrong,
-    				// which doesn't really matter what's returned
-    				return value;
-    			}
-    		}
-    		// widening long -> float or double
-    		else if( value instanceof Long )
-    		{
-    			final long l = ((Long)value).longValue();
-    			switch( ((PrimitiveType)expectedType).getKind() )
-    			{
-    			case FLOAT:
-    				return new Float(l);
-    			case DOUBLE:
-    				return new Double(l);    		
-    			default:
-    				// it is either already correct or it is completely wrong,
-    				// which doesn't really matter what's returned
-    				return value;
-    			}
-    		}
-    		
-    		// widening float -> double    		 
-    		else if( value instanceof Float )
-    		{
-    			final float f = ((Float)value).floatValue();
-    			switch( ((PrimitiveType)expectedType).getKind() )
-    			{    			
-    			case DOUBLE:
-    				return new Double(f);    		
-    			default:
-    				// it is either already correct or it is completely wrong,
-    				// which doesn't really matter what's returned
-    				return value;
-    			}
-    		}
-    		else // boolean or double case. Nothing we can do here.
-    			return value;
-    	}
-    	// handle auto-boxing
-    	else if( expectedType instanceof ArrayType)
-    	{
-    		final TypeMirror componentType = ((ArrayType)expectedType).getComponentType();
-    		Object converted = value;
-    		// if it is an error case, will just leave it as is.
-    		if( !(componentType instanceof ArrayType ) )    		
-    			converted = performNecessaryTypeConversion(componentType, value, name, parent, env);
-    		
-    		final AnnotationValue annoValue = createAnnotationValue(converted, name, 0, parent, env);
-        	return Collections.singletonList(annoValue);
-    	}
-    	else // no change
-    		return value;
-    }
-
-    public static InterfaceType createErrorInterfaceType(final ITypeBinding binding)
-    {
-        return new ErrorType.ErrorInterface(binding.getName());
-    }
-
-    public static ClassType createErrorClassType(final ITypeBinding binding)
-    {
-        return createErrorClassType(binding.getName());
-    }
-    
-    public static ClassType createErrorClassType(final String name)
-    {
-    	return new ErrorType.ErrorClass(name);
-    }
-
-    public static AnnotationType createErrorAnnotationType(final ITypeBinding binding)
-    {
-        return createErrorAnnotationType(binding.getName());
-    }
-    
-    public static AnnotationType createErrorAnnotationType(String name)
-    {	
-        return new ErrorType.ErrorAnnotation(name);
-    }
-    
-    public static ArrayType createErrorArrayType(final String name, final int dimension)
-    {
-    	return new ErrorType.ErrorArrayType(name, dimension);
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryContainer.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryContainer.java
deleted file mode 100644
index dd71eeb..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryContainer.java
+++ /dev/null
@@ -1,88 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import java.io.IOException;
-import java.util.List;
-
-/**
- * An entity that contains annotation processor factories.
- */
-public abstract class FactoryContainer
-{
-	public enum FactoryType {
-		PLUGIN,  // Eclipse plugin 
-		EXTJAR,  // external jar file (not in workspace)
-		WKSPJAR, // jar file within workspace
-		VARJAR;  // external jar file referenced by classpath variable
-	}
-	
-	/**	
-	 * Returns an ID that is guaranteed to be sufficiently unique for this container --
-	 * that is, all necessary state can be reconstructed from just the id and FactoryType.
-	 * For plugins, it's the plugin id, for jar files, the path to the jar, etc.
-	 */
-	public abstract String getId();
-	
-	/**
-	 * This method is used to display the container in the UI.
-	 * If this default implementation is not adequate for a particular
-	 * container, that container should provide an override.
-	 */
-	@Override
-	public String toString() {
-		return getId();
-	}
-	
-	public abstract FactoryType getType();
-	
-	/**
-	 * Test whether the resource that backs this container exists,
-	 * can be located, and is (at least in principle) accessible for 
-	 * factories to be loaded from.  For instance, a plugin exists if 
-	 * the plugin is loaded in Eclipse; a jar exists if the jar file 
-	 * can be found on disk.  The test is not required to be perfect:
-	 * for instance, a jar file might exist but be corrupted and
-	 * therefore not really readable, but this method would still return
-	 * true.
-	 * @return true if the resource backing the container exists.
-	 */
-	public abstract boolean exists();
-	
-	protected abstract List<String> loadFactoryNames() throws IOException;
-	
-	protected List<String> _factoryNames;
-	
-	public List<String> getFactoryNames() throws IOException
-	{ 
-		if ( _factoryNames == null )
-			_factoryNames = loadFactoryNames();
-		return _factoryNames;
-	}
-	
-	@Override
-	public int hashCode() {
-		return getType().hashCode() ^ getId().hashCode();
-	}
-
-	@Override
-	public boolean equals(Object o) {
-		if (!(o instanceof FactoryContainer)) {
-			return false;
-		}
-
-		FactoryContainer other = (FactoryContainer) o;
-		return other.getType() == getType() && other.getId().equals(getId());
-	}
-}
-
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPath.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPath.java
deleted file mode 100644
index 080243e..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPath.java
+++ /dev/null
@@ -1,249 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import java.io.File;
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.util.IFactoryPath;
-
-/**
- * Provides access to the annotation processor factory path for a Java project.
- * This class should not be instantiated or subclassed.
- * 
- * The factory path is an ordered Map<FactoryContainer, FactoryPath.Attributes>.
- * Containers are things like jar files or plugins, that contain one or more
- * annotation processor factories.  In the context of a particular project,
- * processors are given precedence according to the order of their container on
- * the factory path; and they are executed according to the container's attributes
- * on the factory path.  
- */
-public class FactoryPath implements IFactoryPath {
-	
-	/**
-	 * Attributes of entries on the factory path.  These belong here,
-	 * rather than on FactoryContainer itself, because the same container
-	 * might have different attributes in different projects - e.g., it
-	 * might be enabled in one project and disabled in another.
-	 */
-	public static class Attributes {
-		/** Should this container's processors be executed? */
-		private boolean _enabled;
-		/** Should this container's processors execute in Sun apt compatibility mode? (Slow and limiting!) */
-		private boolean _runInBatchMode;
-		
-		// CONSTRUCTORS
-		public Attributes(boolean enabled, boolean runInBatchMode) {
-			_enabled = enabled;
-			_runInBatchMode = runInBatchMode;
-		}
-		public Attributes(Attributes attr) {
-			_enabled = attr._enabled;
-			_runInBatchMode = attr._runInBatchMode;
-		}
-		
-		// SUPPORT
-		public boolean equals(Object o) {
-			if (o == null || !(o instanceof Attributes))
-				return false;
-			Attributes oA = (Attributes)o;
-			return (_enabled == oA._enabled) && (_runInBatchMode == oA._runInBatchMode );
-		}
-		public int hashCode() {
-			return (_enabled ? 1 : 0) + (_runInBatchMode ? 2 : 0);
-		}
-		
-		
-		// GETTERS
-		public boolean isEnabled() {
-			return _enabled;
-		}
-		public boolean runInBatchMode() {
-			return _runInBatchMode;
-		}
-
-		// SETTERS
-		public void setEnabled(boolean enabled) {
-			_enabled = enabled;
-		}
-		public void setRunInBatchMode(boolean runInBatchMode) {
-			_runInBatchMode = runInBatchMode;
-		}
-	}
-	
-	/**
-	 * The factory path.  
-	 */
-	private final Map<FactoryContainer, Attributes> _path = Collections.synchronizedMap(
-			new LinkedHashMap<FactoryContainer, Attributes>());
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#addExternalJar(java.io.File)
-	 */
-	public void addExternalJar(File jar) {
-		FactoryContainer fc = FactoryPathUtil.newExtJarFactoryContainer(jar);
-		Attributes a = new Attributes(true, false);
-		internalAdd(fc, a);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#removeExternalJar(java.io.File)
-	 */
-	public void removeExternalJar(File jar) {
-		FactoryContainer fc = FactoryPathUtil.newExtJarFactoryContainer(jar);
-		_path.remove(fc);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#addVarJar(org.eclipse.core.runtime.IPath)
-	 */
-	public void addVarJar(IPath jarPath) {
-		FactoryContainer fc = FactoryPathUtil.newVarJarFactoryContainer(jarPath);
-		Attributes a = new Attributes(true, false);
-		internalAdd(fc, a);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#removeVarJar(org.eclipse.core.runtime.IPath)
-	 */
-	public void removeVarJar(IPath jarPath) {
-		FactoryContainer fc = FactoryPathUtil.newVarJarFactoryContainer(jarPath);
-		_path.remove(fc);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#addWkspJar(org.eclipse.core.runtime.IPath)
-	 */
-	public void addWkspJar(IPath jarPath) {
-		FactoryContainer fc = FactoryPathUtil.newWkspJarFactoryContainer(jarPath);
-		Attributes a = new Attributes(true, false);
-		internalAdd(fc, a);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#removeWkspJar(org.eclipse.core.runtime.IPath)
-	 */
-	public void removeWkspJar(IPath jarPath) {
-		FactoryContainer fc = FactoryPathUtil.newWkspJarFactoryContainer(jarPath);
-		_path.remove(fc);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#enablePlugin(java.lang.String)
-	 */
-	public void enablePlugin(String pluginId) throws CoreException {
-		FactoryContainer fc = FactoryPathUtil.getPluginFactoryContainer(pluginId);
-		Attributes a = _path.get(fc);
-		if (a == null) {
-			Status status = AptPlugin.createWarningStatus(new IllegalArgumentException(), 
-					"Specified plugin was not found, so it could not be added to the annotation processor factory path: " + pluginId);  //$NON-NLS-1$
-			throw new CoreException(status);
-		}
-		a.setEnabled(true);
-		internalAdd(fc, a);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.core.util.IFactoryPath#disablePlugin(java.lang.String)
-	 */
-	public void disablePlugin(String pluginId) {
-		FactoryContainer fc = FactoryPathUtil.getPluginFactoryContainer(pluginId);
-		Attributes a = _path.get(fc);
-		if (a != null) {
-			a.setEnabled(false);
-		}
-	}
-
-	/**
-	 * Add a single factory container to the head of the FactoryPath, 
-	 * and save the new path to the appropriate settings file.  
-	 * If the container specified is already  in the project's list in 
-	 * some other FactoryPathEntry, the existing entry will be removed 
-	 * before the new one is added.
-	 * @param jproj - the IJavaProject, for per-project settings, or
-	 * null for workspace settings.
-	 * @param must not be null.
-	 */
-	public void addEntryToHead(FactoryContainer fc, boolean enabled, boolean runInBatchMode) {
-		Attributes a = new Attributes(enabled, runInBatchMode);
-		internalAdd(fc, a);
-	}
-	
-	/**
-	 * Set the factory path based on the contents of an ordered map.
-	 * @param map should be an ordered map, such as LinkedHashMap; should contain no
-	 * nulls; and should contain no duplicate FactoryContainers.
-	 */
-	public void setContainers(Map<FactoryContainer, Attributes> map) {
-		synchronized(_path) {
-			_path.clear();
-			_path.putAll(map);
-		}
-	}
-	
-	/**
-	 * Add a factory container, and attributes, to the head of the list.
-	 * If it already existed in the list, remove the old instance before
-	 * adding the new one.
-	 * <p>
-	 * @param fc must not be null
-	 * @param a must not be null
-	 */
-	private void internalAdd(FactoryContainer fc, Attributes a) {
-		synchronized(_path) {
-			_path.remove(fc);
-			// LinkedHashMap doesn't have any way to add to the head,
-			// so we're forced to do two copies.  Make the new map
-			// large enough that we don't have to rehash midway through the putAll().
-			Map<FactoryContainer, Attributes> newPath = 
-				new LinkedHashMap<FactoryContainer, Attributes>(1 + 4*(_path.size() + 1)/3);
-			newPath.put(fc, a);
-			newPath.putAll(_path);
-			_path.clear();
-			_path.putAll(newPath);
-		}
-	}
-
-	public Map<FactoryContainer, Attributes> getEnabledContainers() {
-		Map<FactoryContainer, Attributes> map = new LinkedHashMap<FactoryContainer, Attributes>();
-		synchronized(_path) {
-			for (Map.Entry<FactoryContainer, Attributes> entry : _path.entrySet()) {
-				Attributes attr = entry.getValue();
-				if (attr.isEnabled()) {
-					Attributes attrClone = new Attributes(attr);
-					map.put(entry.getKey(), attrClone);
-				}
-			}
-		}
-		return map;
-	}
-
-	/**
-	 * @return a copy of the path
-	 */
-	public Map<FactoryContainer, Attributes> getAllContainers() {
-		Map<FactoryContainer, Attributes> map = new LinkedHashMap<FactoryContainer, Attributes>(_path.size());
-		synchronized(_path) {
-			for( Map.Entry<FactoryContainer, Attributes> entry : _path.entrySet() ){
-				map.put( entry.getKey(), new Attributes(entry.getValue()) );
-			}
-		}
-		return map;
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPathUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPathUtil.java
deleted file mode 100644
index 2550591..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FactoryPathUtil.java
+++ /dev/null
@@ -1,553 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.util;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.StringReader;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.TreeMap;
-
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.ExtJarFactoryContainer;
-import org.eclipse.jdt.apt.core.internal.PluginFactoryContainer;
-import org.eclipse.jdt.apt.core.internal.VarJarFactoryContainer;
-import org.eclipse.jdt.apt.core.internal.WkspJarFactoryContainer;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer.FactoryType;
-import org.eclipse.jdt.apt.core.util.IFactoryPath;
-import org.eclipse.jdt.core.IJavaProject;
-import org.w3c.dom.Element;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-import org.xml.sax.InputSource;
-import org.xml.sax.SAXException;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * Utility class for dealing with the factory path
- */
-public final class FactoryPathUtil {
-	
-	private static final String FACTORYPATH_TAG = "factorypath"; //$NON-NLS-1$
-	private static final String FACTORYPATH_ENTRY_TAG = "factorypathentry"; //$NON-NLS-1$
-	private static final String KIND = "kind"; //$NON-NLS-1$
-	private static final String ID = "id"; //$NON-NLS-1$
-	private static final String ENABLED = "enabled"; //$NON-NLS-1$
-	private static final String RUN_IN_BATCH_MODE = "runInBatchMode"; //$NON-NLS-1$
-	
-	private static final String FACTORYPATH_FILE = ".factorypath"; //$NON-NLS-1$
-	
-	// four spaces for indent
-	private static final String INDENT = "    "; //$NON-NLS-1$
-
-	/** map of plugin names -> factories */
-	private static final HashMap<String, AnnotationProcessorFactory> PLUGIN_FACTORY_MAP = new HashMap<String, AnnotationProcessorFactory>();
-	
-	/** map of plugin names -> plugin factory containers, sorted by plugin name */
-	private static final TreeMap<String, PluginFactoryContainer> PLUGIN_CONTAINER_MAP = new TreeMap<String, PluginFactoryContainer>();
-	
-	// Private c-tor to prevent construction
-	private FactoryPathUtil() {}
-	
-	/**
-	 * Test whether a resource is a factory path file.  The criteria are
-	 * that it is a file, it belongs to a project, it is located in the root 
-	 * of that project, and it is named ".factorypath".  Note that the 
-	 * workspace-wide factorypath file does NOT meet these criteria.
-	 * @param path any sort of IResource, or null.
-	 * @return true if the resource is a project-specific factory path file.
-	 */
-	public static boolean isFactoryPathFile(IResource res) {
-		if (res == null || res.getType() != IResource.FILE || res.getProject() == null) {
-			return false;
-		}
-		IPath path = res.getProjectRelativePath();
-		if (path.segmentCount() != 1) {
-			return false;
-		}
-		return FACTORYPATH_FILE.equals(path.lastSegment());
-	}
-	
-	/**
-	 * Loads a map of factory containers from the factory path for a given
-	 * project. If no factorypath file was found, returns null.
-	 */
-	public static Map<FactoryContainer, FactoryPath.Attributes> readFactoryPathFile(IJavaProject jproj) 
-		throws CoreException
-	{
-		String data = null;
-		try {
-			// If project is null, use workspace-level data
-			if (jproj == null) {
-				File file = getFileForWorkspace();
-				if (!file.exists()) {
-					return null;
-				}
-				data = FileSystemUtil.getContentsOfFile(file);
-			}
-			else {
-				IFile ifile = getIFileForProject(jproj);
-				if (!ifile.exists()) {
-					return null;
-				}
-				data = FileSystemUtil.getContentsOfIFile(ifile);
-			}
-		}
-		catch (IOException e) {
-			throw new CoreException(new Status(IStatus.ERROR, AptPlugin.PLUGIN_ID, -1, Messages.FactoryPathUtil_status_ioException, e));
-		}
-		
-		return FactoryPathUtil.decodeFactoryPath(data);
-	}
-	
-	/**
-	 * Stores a map of factory containers to the factorypath file
-	 * for a given project. If null is passed in, the factorypath file
-	 * is deleted.
-	 */
-	public static void saveFactoryPathFile(IJavaProject jproj, Map<FactoryContainer, FactoryPath.Attributes> containers) 
-		throws CoreException 
-	{
-		IFile projFile;
-		File wkspFile;
-		if (jproj != null) {
-			projFile = getIFileForProject(jproj);
-			wkspFile = null;
-		}
-		else {
-			wkspFile = getFileForWorkspace();
-			projFile = null;
-		}
-		
-		try {
-			if (containers != null) {
-				String data = FactoryPathUtil.encodeFactoryPath(containers);
-				// If project is null, set workspace-level data
-				if (jproj == null) {
-					FileSystemUtil.writeStringToFile(wkspFile, data);
-				}
-				else {
-					FileSystemUtil.writeStringToIFile(projFile, data);
-				}
-			}
-			else { // restore defaults by deleting the factorypath file.
-				if (jproj != null) {
-					projFile.delete(true, null);
-				}
-				else {
-					wkspFile.delete();
-				}
-			}
-		}
-		catch (IOException e) {
-			throw new CoreException(new Status(IStatus.ERROR, AptPlugin.PLUGIN_ID, -1, Messages.FactoryPathUtil_status_ioException, e));
-		}
-	}
-	
-	/**
-	 * Returns an XML string encoding all of the factories.
-	 * @param jproj
-	 * @param factories
-	 * @return
-	 */
-	public static String encodeFactoryPath(Map<FactoryContainer, FactoryPath.Attributes> factories) {
-		StringBuilder sb = new StringBuilder();
-		sb.append("<").append(FACTORYPATH_TAG).append(">\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		for (Map.Entry<FactoryContainer, FactoryPath.Attributes> entry : factories.entrySet()) {
-			FactoryContainer container = entry.getKey();
-			FactoryPath.Attributes attr = entry.getValue();
-			sb.append(INDENT);
-			sb.append("<"); //$NON-NLS-1$
-			sb.append(FACTORYPATH_ENTRY_TAG).append(" "); //$NON-NLS-1$
-			sb.append(KIND).append("=\"").append(container.getType()).append("\" "); //$NON-NLS-1$ //$NON-NLS-2$
-			sb.append(ID).append("=\"").append(container.getId()).append("\" "); //$NON-NLS-1$ //$NON-NLS-2$
-			sb.append(ENABLED).append("=\"").append(attr.isEnabled()).append("\" "); //$NON-NLS-1$ //$NON-NLS-2$
-			sb.append(RUN_IN_BATCH_MODE).append("=\"").append(attr.runInBatchMode()).append("\"/>\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		}
-		sb.append("</").append(FACTORYPATH_TAG).append(">\n"); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		return sb.toString();
-	}
-	
-	/**
-	 * Create a factory container based on an external jar file (not in the 
-	 * workspace).
-	 * @param jar a java.io.File representing the jar file.
-	 */
-	public static FactoryContainer newExtJarFactoryContainer(File jar) {
-		return new ExtJarFactoryContainer(jar);
-	}
-	
-	/**
-	 * Create a factory container based on a jar file in the workspace.
-	 * @param an Eclipse IPath representing the jar file; the path is
-	 * relative to the workspace root.
-	 */
-	public static FactoryContainer newWkspJarFactoryContainer(IPath jar) {
-		return new WkspJarFactoryContainer(jar);
-	}
-	
-	/**
-	 * Create a factory container based on an external jar file specified 
-	 * by a classpath variable (and possibly a path relative to that variable).
-	 * @param jar an Eclipse IPath representing the jar file; the first
-	 * segment of the path is assumed to be the variable name.
-	 */
-	public static FactoryContainer newVarJarFactoryContainer(IPath jar) {
-		return new VarJarFactoryContainer(jar);
-	}
-
-	public static Map<FactoryContainer, FactoryPath.Attributes> decodeFactoryPath(final String xmlFactoryPath) 
-	throws CoreException
-{
-	Map<FactoryContainer, FactoryPath.Attributes> result = new LinkedHashMap<FactoryContainer, FactoryPath.Attributes>();
-	StringReader reader = new StringReader(xmlFactoryPath);
-	Element fpElement = null;
-	
-	try {
-		DocumentBuilder parser = 
-			DocumentBuilderFactory.newInstance().newDocumentBuilder();
-		fpElement = parser.parse(new InputSource(reader)).getDocumentElement();
-		
-	}
-	catch (IOException e) {
-		throw new CoreException(new Status(IStatus.ERROR, AptPlugin.PLUGIN_ID, -1, Messages.FactoryPathUtil_status_ioException, e));
-	}
-	catch (SAXException e) {
-		throw new CoreException(new Status(IStatus.ERROR, AptPlugin.PLUGIN_ID, -1, Messages.FactoryPathUtil_status_couldNotParse, e));
-	}
-	catch (ParserConfigurationException e) {
-		throw new CoreException(new Status(IStatus.ERROR, AptPlugin.PLUGIN_ID, -1, Messages.FactoryPathUtil_status_parserConfigError, e));
-	}
-	finally {
-		reader.close();
-	}
-	
-	if (!fpElement.getNodeName().equalsIgnoreCase(FACTORYPATH_TAG)) {
-		IOException e = new IOException("Incorrect file format. File must begin with " + FACTORYPATH_TAG); //$NON-NLS-1$
-		throw new CoreException(new Status(IStatus.ERROR, AptPlugin.PLUGIN_ID, -1, Messages.FactoryPathUtil_status_ioException, e));
-	}
-	NodeList nodes = fpElement.getElementsByTagName(FACTORYPATH_ENTRY_TAG);
-	for (int i=0; i < nodes.getLength(); i++) {
-		Node node = nodes.item(i);
-		if (node.getNodeType() == Node.ELEMENT_NODE) {
-			Element element = (Element)node;
-			String kindString = element.getAttribute(KIND);
-			// deprecated container type "JAR" is now "EXTJAR"
-			if ("JAR".equals(kindString)) { //$NON-NLS-1$
-				kindString = "EXTJAR"; //$NON-NLS-1$
-			}
-			String idString = element.getAttribute(ID);
-			String enabledString = element.getAttribute(ENABLED);
-			String runInAptModeString = element.getAttribute(RUN_IN_BATCH_MODE); 
-			FactoryType kind = FactoryType.valueOf(kindString);
-			FactoryContainer container = null;
-			switch (kind) {
-			
-			case WKSPJAR :
-				container = newWkspJarFactoryContainer(new Path(idString));
-				break;
-				
-			case EXTJAR :
-				container = newExtJarFactoryContainer(new File(idString));
-				break;
-				
-			case VARJAR :
-				container = newVarJarFactoryContainer(new Path(idString));
-				break;
-			
-			case PLUGIN :
-				container = getPluginFactoryContainer(idString);
-				break;
-				
-			default :
-				throw new IllegalStateException("Unrecognized kind: " + kind + ". Original string: " + kindString); //$NON-NLS-1$ //$NON-NLS-2$
-			}
-			
-			if (null != container) {
-				FactoryPath.Attributes a = new FactoryPath.Attributes( 
-						Boolean.parseBoolean(enabledString), Boolean.parseBoolean(runInAptModeString));
-				result.put(container, a);
-			}
-		}
-	}
-	
-	return result;
-}
-	/**
-	 * Get a file designator for the workspace-level factory path settings file.
-	 * Typically this is [workspace]/.metadata/plugins/org.eclipse.jdt.apt.core/.factorypath
-	 * @return a java.io.File
-	 */
-	private static File getFileForWorkspace() {
-		return AptPlugin.getPlugin().getStateLocation().append(FACTORYPATH_FILE).toFile();
-	}
-
-	/**
-	 * Get an Eclipse IFile for the project-level factory path settings file.
-	 * Typically this is [project]/.factorypath
-	 * @param jproj must not be null
-	 * @return an Eclipse IFile
-	 */
-	private static IFile getIFileForProject(IJavaProject jproj) {
-		IProject proj = jproj.getProject();
-		return proj.getFile(FACTORYPATH_FILE);
-	}
-
-	/**
-	 * Does a factory path file already exist for the specified project,
-	 * or for the workspace as a whole?
-	 * @param jproj if this is null, check for workspace-level settings.
-	 * @return true if a settings file exists.
-	 */
-	public static boolean doesFactoryPathFileExist(IJavaProject jproj) {
-		if (jproj == null) {
-			File wkspFile = getFileForWorkspace();
-			return wkspFile.exists();
-		}
-		else {
-			IFile projFile = getIFileForProject(jproj);
-			return projFile.exists();
-		}
-	}
-
-	/**
-	 * Get a factory path corresponding to the default values: if jproj is
-	 * non-null, return the current workspace factory path (workspace prefs
-	 * are the default for a project); if jproj is null, return the default 
-	 * list of plugin factories (which is the "factory default").
-	 */
-	public static IFactoryPath getDefaultFactoryPath(IJavaProject jproj) {
-		FactoryPath fp = new FactoryPath();
-		if (jproj != null) {
-			fp.setContainers(calculatePath(null));
-		}
-		else {
-			fp.setContainers(getAllPluginFactoryContainers());
-		}
-		return fp;
-	}
-
-	public static FactoryPath getFactoryPath(IJavaProject jproj) {
-		Map<FactoryContainer, FactoryPath.Attributes> map = calculatePath(jproj);
-		FactoryPath fp = new FactoryPath();
-		fp.setContainers(map);
-		return fp;
-	}
-
-	public static void setFactoryPath(IJavaProject jproj, FactoryPath path) 
-			throws CoreException {
-		Map<FactoryContainer, FactoryPath.Attributes> map = path.getAllContainers();
-		saveFactoryPathFile(jproj, map);
-	}
-	
-	/**
-	 * Calculates the active factory path for the specified project.  This
-	 * depends on the stored information in the .factorypath file, as well as
-	 * on the set of plugins that were found at load time of this Eclipse instance.
-	 * Returns all containers for the provided project, including disabled ones.
-	 * @param jproj The java project in question, or null for the workspace
-	 * @return an ordered map, where the key is the container and the value 
-	 * indicates whether the container is enabled.
-	 */
-	private static synchronized Map<FactoryContainer, FactoryPath.Attributes> calculatePath(IJavaProject jproj) {
-		Map<FactoryContainer, FactoryPath.Attributes> map = null;
-		boolean foundPerProjFile = false;
-		if (jproj != null) {
-			try {
-				map = readFactoryPathFile(jproj);
-				foundPerProjFile = (map != null);
-			}
-			catch (CoreException ce) {
-				AptPlugin.log(ce, "Could not get factory containers for project: " + jproj); //$NON-NLS-1$
-			}
-		}
-		// Workspace if no project data was found
-		if (map == null) {
-			try {
-				map = readFactoryPathFile(null);
-			}
-			catch (CoreException ce) {
-				AptPlugin.log(ce, "Could not get factory containers for project: " + jproj); //$NON-NLS-1$
-			}
-		}
-		// if no project and no workspace data was found, we'll get the defaults
-		if (map == null) {
-			map = new LinkedHashMap<FactoryContainer, FactoryPath.Attributes>();
-		}
-		boolean disableNewPlugins = (jproj != null) && foundPerProjFile;
-		updatePluginContainers(map, disableNewPlugins);
-		return map;
-	}
-	
-	/**
-	 * Removes missing plugin containers, and adds any plugin containers 
-	 * that were added since the map was originally created.  The order
-	 * of the original list will be maintained, and new entries will be
-	 * added to the end of the list in alphabetic order.  The resulting 
-	 * list has the same contents as PLUGIN_FACTORY_MAP (that is, all the 
-	 * loaded plugins and nothing else), but the order is as close as possible
-	 * to the input.
-	 * 
-	 * @param path the factory path (in raw Map form) to be modified.
-	 * @param disableNewPlugins if true, newly discovered plugins will be
-	 * disabled.  If false, they will be enabled or disabled according to
-	 * their setting in the extension declaration.
-	 */
-	private static void updatePluginContainers(
-			Map<FactoryContainer, FactoryPath.Attributes> path, boolean disableNewPlugins) {
-		
-		// Get the alphabetically-ordered list of all plugins we found at startup.
-		Map<FactoryContainer, FactoryPath.Attributes> pluginContainers = getAllPluginFactoryContainers();
-		
-		// Remove from the path any plugins which we did not find at startup
-		for (Iterator<FactoryContainer> i = path.keySet().iterator(); i.hasNext(); ) {
-			FactoryContainer fc = i.next();
-			if (fc.getType() == FactoryContainer.FactoryType.PLUGIN && !pluginContainers.containsKey(fc)) {
-				i.remove();
-			}
-		}
-		
-		// Add to the end any plugins which are not in the path (i.e., which
-		// have been discovered since the config was last saved)
-		for (Map.Entry<FactoryContainer, FactoryPath.Attributes> entry : pluginContainers.entrySet()) {
-			if (!path.containsKey(entry.getKey())) {
-				FactoryPath.Attributes newAttr;
-				FactoryPath.Attributes oldAttr = entry.getValue();
-				if (disableNewPlugins) {
-					newAttr = new FactoryPath.Attributes(false, oldAttr.runInBatchMode());
-				} else {
-					newAttr = oldAttr;
-				}
-				path.put(entry.getKey(), newAttr);
-			}
-		}
-	}
-
-	/**
-	 * Returns an ordered list of all the plugin factory containers that have 
-	 * been registered as plugins.  Note that this may include plugins that have 
-	 * been disabled by the user's configuration.  The 'enabled' attribute in the
-	 * returned map reflects the 'enableDefault' attribute in the plugin
-	 * manifest, rather than the user configuration.  
-	 * Ordering is alphabetic by plugin id.
-	 */
-	private static synchronized Map<FactoryContainer, FactoryPath.Attributes> getAllPluginFactoryContainers()
-	{
-		Map<FactoryContainer, FactoryPath.Attributes> map = new LinkedHashMap<FactoryContainer, FactoryPath.Attributes>(PLUGIN_CONTAINER_MAP.size());
-		// The PLUGIN_CONTAINER_MAP is alphabetically ordered.
-		for (PluginFactoryContainer pfc : PLUGIN_CONTAINER_MAP.values()) {
-			FactoryPath.Attributes a = new FactoryPath.Attributes(pfc.getEnableDefault(), false);
-			map.put(pfc, a);
-		}
-		return map;
-	}
-	
-	public static synchronized AnnotationProcessorFactory getFactoryFromPlugin( String factoryName )
-	{
-		AnnotationProcessorFactory apf = PLUGIN_FACTORY_MAP.get( factoryName );
-		if ( apf == null ) 
-		{
-			String s = "could not find AnnotationProcessorFactory " +  //$NON-NLS-1$
-				factoryName + " from available factories defined by plugins"; //$NON-NLS-1$
-			AptPlugin.log(new Status(IStatus.WARNING, AptPlugin.PLUGIN_ID, AptPlugin.STATUS_NOTOOLSJAR, s, null));
-		}
-		return apf;
-	}
-
-    /**
-     * Return the factory container corresponding to the specified plugin id.
-     * All plugin factories are loaded at startup time.
-     * @param pluginId the id of a plugin that extends annotationProcessorFactory.
-     * @return a PluginFactoryContainer, or null if the plugin id does not 
-     * identify an annotation processor plugin.
-     */
-	public static synchronized FactoryContainer getPluginFactoryContainer(String pluginId) {
-		return PLUGIN_CONTAINER_MAP.get(pluginId);
-	}    
-
-	/**
-	 * Discover and instantiate annotation processor factories by searching for plugins
-	 * which contribute to org.eclipse.jdt.apt.core.annotationProcessorFactory.
-	 * This method should only be called once, at startup.
-	 */
-	public static synchronized void loadPluginFactories() {
-		assert PLUGIN_FACTORY_MAP.size() == 0 : "loadPluginFactoryMap() was called more than once"; //$NON-NLS-1$
-
-		IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(
-				AptPlugin.PLUGIN_ID, // name of plugin that exposes this extension point
-				"annotationProcessorFactory"); //$NON-NLS-1$ - extension id
-
-		// Iterate over all declared extensions of this extension point.  
-		// A single plugin may extend the extension point more than once, although it's not recommended.
-		for (IExtension extension : extensionPoint.getExtensions())
-		{
-			// Iterate over the children of the extension to find one named "factories".
-			for(IConfigurationElement factories : extension.getConfigurationElements())
-			{
-				if (!"factories".equals(factories.getName())) { //$NON-NLS-1$ - name of configElement 
-					continue;
-				}
-				
-				// Get enableDefault.  If the attribute is missing, default to true.
-				String enableDefaultStr = factories.getAttribute("enableDefault"); //$NON-NLS-1$
-				boolean enableDefault = true;
-				if ("false".equals(enableDefaultStr)) { //$NON-NLS-1$
-					enableDefault = false;
-				}
-				
-				// Create and cache a PluginFactoryContainer for this plugin.
-				String pluginId = extension.getNamespace();
-				PluginFactoryContainer pfc = new PluginFactoryContainer(pluginId, enableDefault);
-				PLUGIN_CONTAINER_MAP.put(pluginId, pfc);
-				
-				// Iterate over the children of the "factories" element to find all the ones named "factory".
-				for (IConfigurationElement factory : factories.getChildren()) {
-					if (!"factory".equals(factory.getName())) { //$NON-NLS-1$
-						continue;
-					}
-					try {
-						Object execExt = factory.createExecutableExtension("class"); //$NON-NLS-1$ - attribute name
-						if (execExt instanceof AnnotationProcessorFactory){
-							String factoryName = execExt.getClass().getName();
-							PLUGIN_FACTORY_MAP.put( factoryName, (AnnotationProcessorFactory)execExt );
-							pfc.addFactoryName(factoryName);
-						}
-					} catch(CoreException e) {
-							e.printStackTrace();
-					}
-				}
-			}
-		}
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FileSystemUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FileSystemUtil.java
deleted file mode 100644
index 43d8c66..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/FileSystemUtil.java
+++ /dev/null
@@ -1,154 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.util;
-
-import java.io.BufferedOutputStream;
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-import org.eclipse.core.resources.IContainer;
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-
-/**
- *  Simple utility class to encapsulate an mkdirs() that avoids a timing issue
- *  in the jdk.  
- */
-public final class FileSystemUtil
-{
-	private FileSystemUtil() {}
-	
-    public static void mkdirs( File parent )
-    {
-        if ( parent == null )
-            return;
-        
-        // It is necessary to synchronize to prevent timing issues while creating the parent directories
-        // We can be codegening multiple files that go into the same directory at the same time.        
-        synchronized (FileSystemUtil.class) {
-            if (!parent.exists()) {
-                boolean succeed = false;
-                for (int i = 0 ; !succeed && i < 5 ; i++)
-                    succeed = parent.mkdirs();
-            }
-        }
-    }    
-  
-    public static void makeDerivedParentFolders (IContainer container) throws CoreException {
-		if ((container instanceof IFolder) && !container.exists()) {
-			makeDerivedParentFolders(container.getParent());
-			((IFolder) container).create(true, true, null);
-			container.setDerived(true);
-		}
-    }
-    
-    /**
-     * Returns the contents of a file as a string in UTF8 format
-     */
-    public static String getContentsOfIFile(IFile file) throws IOException, CoreException {
-    	return getContents(file.getContents(true));
-    }
-    
-    public static String getContentsOfFile(File file) throws IOException {
-    	return getContents(new FileInputStream(file));
-    }
-    
-    private static String getContents(InputStream in) throws IOException {
-    	try {
-    		ByteArrayOutputStream out = new ByteArrayOutputStream();
-    		byte[] buffer = new byte[512];
-    		int len;
-    		while ((len = in.read(buffer)) > 0) {
-    			out.write(buffer, 0, len);
-    		}
-    		out.close();
-    		String s = new String(out.toByteArray(), "UTF8"); //$NON-NLS-1$
-    		return s;
-    	}
-    	finally {
-    		try {in.close();} catch (IOException ioe) {}
-    	}
-    }
-    
-    /**
-     * Stores a string into an Eclipse file in UTF8 format.  The file
-     * will be created if it does not already exist.
-     * @throws IOException, CoreException
-     */
-    public static void writeStringToIFile(IFile file, String contents) throws IOException, CoreException {
-    	byte[] data = contents.getBytes("UTF8"); //$NON-NLS-1$
-    	ByteArrayInputStream input = new ByteArrayInputStream(data);
-    	if (file.exists()) {
-    		if (file.isReadOnly()) {
-				// provide opportunity to checkout read-only .factorypath file
-				ResourcesPlugin.getWorkspace().validateEdit(new IFile[]{file}, null);
-			}
-    		file.setContents(input, true, false, null);
-    	}
-    	else {
-    		// Even with FORCE, create() will still throw if the file already exists.
-    		file.create(input, IResource.FORCE, null);
-    	}
-    }
-    
-    /**
-     * Stores a string into an ordinary workspace file in UTF8 format.
-     * The file will be created if it does not already exist.
-     * @throws IOException
-     */
-    public static void writeStringToFile(File file, String contents) throws IOException {
-    	byte[] data = contents.getBytes("UTF8"); //$NON-NLS-1$
-    	OutputStream out = new BufferedOutputStream(new FileOutputStream(file));
-    	try {
-    		for (byte b : data) {
-    			out.write(b);
-    		}
-    	}
-    	finally {
-    		try {out.close();} catch (IOException ioe) {}
-    	}
-    }
-    
-    /**
-	 * Return true if the content of the streams is identical, 
-	 * false if not.
-	 */
-	public static boolean compareStreams(InputStream is1, InputStream is2) {
-		try {
-			int b1 = is1.read();
-	        while(b1 != -1) {
-	            int b2 = is2.read();
-	            if(b1 != b2) {
-	                return false;
-	            }
-	            b1 = is1.read();
-	        }
-
-	        int b2 = is2.read();
-	        if(-1 != b2) {
-	            return false;
-	        }
-	        return true;
-		}
-		catch (IOException ioe) {
-			return false;
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Messages.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Messages.java
deleted file mode 100644
index 34ea77a..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Messages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.core.internal.util.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String FactoryPathUtil_status_ioException;
-
-	public static String FactoryPathUtil_status_couldNotParse;
-
-	public static String FactoryPathUtil_status_parserConfigError;
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/PackageUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/PackageUtil.java
deleted file mode 100644
index c9cee3f..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/PackageUtil.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package org.eclipse.jdt.apt.core.internal.util;
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.IPackageFragment;
-import org.eclipse.jdt.core.IPackageFragmentRoot;
-import org.eclipse.jdt.core.JavaModelException;
-
-/**
- * Utility class for dealing with packages, using
- * Eclipse's underlying SearchEngine
- */
-public class PackageUtil {
-	
-	private PackageUtil() {}
-	
-	public static IPackageFragment[] getPackageFragments(
-			final String packageName, 
-			final BaseProcessorEnv env) {
-		
-		IJavaProject project = env.getJavaProject();
-		List<IPackageFragment> packages = new ArrayList<IPackageFragment>();
-		try {
-			IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
-			for (IPackageFragmentRoot root : roots) {
-				IPackageFragment fragment = root.getPackageFragment(packageName);
-				if (fragment != null && fragment.exists())
-					packages.add(fragment);
-			}
-		}
-		catch (JavaModelException e) {
-			return new IPackageFragment[0];
-		}
-		
-		return packages.toArray(new IPackageFragment[packages.size()]);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/SourcePositionImpl.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/SourcePositionImpl.java
deleted file mode 100644
index a31f4c1..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/SourcePositionImpl.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import com.sun.mirror.util.SourcePosition;
-import java.io.File;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.AnnotationValueImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.EclipseDeclarationImpl;
-
-public class SourcePositionImpl implements SourcePosition
-{
-    private final int _startingOffset;
-    private final int _length;
-    private final int _line;
-    private final int _column;
-    /** the back pointer to the declaration that created this object */
-    private final EclipseMirrorImpl _decl;
-
-    public SourcePositionImpl(final int startingOffset,
-                              final int length,
-                              final int line,
-                              final int column,
-                              final EclipseDeclarationImpl decl)
-    {
-        _startingOffset = startingOffset;
-        _length = length;
-        _line = line;
-        _column = column;
-        _decl = decl;
-        assert decl != null : "missing declaration [decl] == null."; //$NON-NLS-1$
-    }
-	
-	public SourcePositionImpl(final int startingOffset,
-							  final int length,
-							  final int line,
-							  final int column,
-							  final AnnotationValueImpl decl )
-	{
-		_startingOffset = startingOffset;
-        _length = length;
-        _line = line;
-        _column = column;
-        _decl = decl;
-        assert decl != null : "missing declaration [decl] == null."; //$NON-NLS-1$
-	}
-	
-	public SourcePositionImpl(final int startingOffset,
-							  final int length,
-							  final int line,
-							  final int column,
-							  final AnnotationMirrorImpl decl )
-	{
-		_startingOffset = startingOffset;
-        _length = length;
-        _line = line;
-        _column = column;
-        _decl = decl;
-        assert decl != null : "missing declaration [decl] == null."; //$NON-NLS-1$
-	}
-    
-    public int line(){ return _line; }
-    public int column(){ return _column; }
-    public File file(){
-        IResource resource = getResource();
-        if( resource == null ) return null;
-        final IPath absPath = resource.getRawLocation();
-        if(absPath == null) return null;
-        return new File( absPath.toOSString() );
-    }
-
-    // for use in IDE mode for squiggling.
-    public int getStartingOffset(){ return _startingOffset; }
-    public int getEndingOffset(){ return _startingOffset + _length; }
-    public int getLength(){ return _length; }
-    public IFile getResource(){
-		if( _decl instanceof EclipseDeclarationImpl )
-			return ((EclipseDeclarationImpl)_decl).getResource();
-		else if( _decl instanceof AnnotationMirrorImpl )
-			return ((AnnotationMirrorImpl)_decl).getResource();
-		else if( _decl instanceof AnnotationValueImpl )
-			return ((AnnotationValueImpl)_decl).getResource();
-		
-		throw new IllegalStateException();
-    }
-    
-    public String toString()
-    {
-    	StringBuilder buffer = new StringBuilder();
-    	buffer.append("offset = "); //$NON-NLS-1$
-    	buffer.append(_startingOffset); //$NON-NLS-1$
-    	buffer.append(" line = "); //$NON-NLS-1$
-    	buffer.append( _line ); //$NON-NLS-1$
-    	buffer.append(" column = "); //$NON-NLS-1$
-    	buffer.append( _column ); //$NON-NLS-1$
-    	buffer.append(" length = "); //$NON-NLS-1$
-    	buffer.append( _length ); //$NON-NLS-1$
-    	
-    	return buffer.toString();
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/TypesUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/TypesUtil.java
deleted file mode 100644
index 71317ea..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/TypesUtil.java
+++ /dev/null
@@ -1,358 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.internal.util;
-
-import com.sun.mirror.declaration.PackageDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.declaration.TypeParameterDeclaration;
-import com.sun.mirror.type.ArrayType;
-import com.sun.mirror.type.DeclaredType;
-import com.sun.mirror.type.PrimitiveType;
-import com.sun.mirror.type.ReferenceType;
-import com.sun.mirror.type.TypeMirror;
-import com.sun.mirror.type.TypeVariable;
-import com.sun.mirror.type.VoidType;
-import com.sun.mirror.type.WildcardType;
-import com.sun.mirror.util.Types;
-import java.util.Collection;
-import org.eclipse.jdt.apt.core.internal.EclipseMirrorImpl;
-import org.eclipse.jdt.apt.core.internal.NonEclipseImplementationException;
-import org.eclipse.jdt.apt.core.internal.declaration.PackageDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.TypeDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.declaration.TypeParameterDeclarationImpl;
-import org.eclipse.jdt.apt.core.internal.env.BaseProcessorEnv;
-import org.eclipse.jdt.apt.core.internal.type.ArrayTypeImpl;
-import org.eclipse.jdt.apt.core.internal.type.PrimitiveTypeImpl;
-import org.eclipse.jdt.apt.core.internal.type.VoidTypeImpl;
-import org.eclipse.jdt.apt.core.internal.type.WildcardTypeImpl;
-import org.eclipse.jdt.core.BindingKey;
-import org.eclipse.jdt.core.Signature;
-import org.eclipse.jdt.core.dom.IPackageBinding;
-import org.eclipse.jdt.core.dom.ITypeBinding;
-
-public class TypesUtil implements Types
-{	
-	private static final String[] NO_ARGS = new String[0];
-    private final BaseProcessorEnv _env;
-	
-	public static void main(String[] args){}
-
-    public TypesUtil(BaseProcessorEnv env){
-        _env = env;
-        assert env != null : "null environment."; //$NON-NLS-1$
-    }
-    
-    public ArrayType getArrayType(TypeMirror componentType)
-    {
-        if( componentType == null ) return null;
-        if( componentType instanceof EclipseMirrorImpl ){
-            final EclipseMirrorImpl impl = (EclipseMirrorImpl)componentType;
-            // the leaf type of the array
-            final ITypeBinding leaf;
-            final int dimension;
-            switch( impl.kind() )
-            {
-                case TYPE_ERROR:
-                    throw new IllegalArgumentException("cannot create an array from error type"); //$NON-NLS-1$
-                case TYPE_VOID:
-                    throw new IllegalArgumentException("cannot create an array from void type"); //$NON-NLS-1$
-                case TYPE_PRIMITIVE:
-                    leaf = ((PrimitiveTypeImpl)componentType).getTypeBinding();
-                    dimension = 1;
-                    break;
-                case TYPE_ARRAY:
-                    final ITypeBinding array = ((ArrayTypeImpl)componentType).getArrayBinding();
-                    dimension = array.getDimensions() + 1;
-                    leaf = array.getElementType();
-                    break;
-                case TYPE_WILDCARD:
-                    leaf = ((WildcardTypeImpl)componentType).getWildcardBinding();
-                    dimension = 1;
-                    break;
-                default:
-                    leaf = ((TypeDeclarationImpl)componentType).getTypeBinding();
-                    dimension = 1;
-            }
-            if( leaf == null || leaf.isParameterizedType() )
-                throw new IllegalArgumentException("illegal component type: " + componentType); //$NON-NLS-1$
-
-            final String bindingKey = BindingKey.createArrayTypeBindingKey(leaf.getKey(), dimension);
-			final ITypeBinding arrayType = _env.getTypeBinding(bindingKey);
-			if(arrayType == null)
-				return null;
-			return (ArrayType)Factory.createTypeMirror(arrayType, _env); 
-        }
-		
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + componentType.getClass().getName()); //$NON-NLS-1$
-                                                
-    }
-
-    /**
-     * @param outer a type
-     * @param inner the simple name of the nested class
-     * @return the binding that correspond to <code>outer.getQualifiedName()</code>.<code>inner</code>
-     * 		   or null if it cannot be located.
-     */
-    private ITypeBinding findMemberType(ITypeBinding outer, String inner )
-    {
-        if( outer == null || inner == null ) return null;        
-
-        outer = outer.getTypeDeclaration();        
-
-        final ITypeBinding[] nestedTypes = outer.getDeclaredTypes();
-        // first we search throw the ones that are directly declared within 'outer'
-        for( ITypeBinding nestedType : nestedTypes ){
-            if( inner.equals(nestedType.getName()) )
-                return nestedType;
-        }
-		// then we look up the hierachy chain.
-		// first we search the super type
-		ITypeBinding result = findMemberType(outer.getSuperclass(), inner);
-		if( result != null ) return result;
-		
-		// then the super interfaces
-		final ITypeBinding[] interfaces = outer.getInterfaces();
-		for( ITypeBinding interfaceType : interfaces ){
-			result = findMemberType(interfaceType, inner);
-			if( result != null ) return result;
-		}
-        
-		// can't find it.
-		return null;
-    }
-
-    public com.sun.mirror.type.DeclaredType getDeclaredType(DeclaredType containing, TypeDeclaration decl, TypeMirror... typeArgs)
-    {
-		if( decl == null ) return null;
-	
-        final ITypeBinding outerBinding = getTypeBinding(containing);
-		final ITypeBinding memberBinding;
-		
-		if( containing == null )
-			memberBinding = getTypeBinding(decl);
-		else{
-			if( outerBinding.isGenericType() )
-	             throw new IllegalArgumentException("[containing], " + containing + ", is a generic type."); //$NON-NLS-1$ //$NON-NLS-2$
-			 // make sure 'decl' is a valid member of 'outerBinding'
-			memberBinding = findMemberType(outerBinding, decl.getSimpleName() );
-			if( memberBinding == null )        
-	            throw new IllegalArgumentException(decl + " is not a member type of " + containing ); //$NON-NLS-1$
-		}
-		
-		final int numArgs = typeArgs == null ? 0 : typeArgs.length;		
-		
-		if( memberBinding.isGenericType() ){
-			final String[] argKeys = numArgs == 0 ? NO_ARGS : new String[numArgs];
-			for( int i=0; i<numArgs; i++ ){		
-				final ITypeBinding binding = getTypeBinding(typeArgs[i]);
-				assert binding != null : "failed to get binding mirror type"; //$NON-NLS-1$
-				argKeys[i] = binding.getKey();
-			}
-			
-			final ITypeBinding[] typeParams = memberBinding.getTypeParameters();
-			final int numTypeParams = typeParams == null ? 0 : typeParams.length;
-			// if no argument then a raw type will be created, otherwise it's an error when the 
-			// number of type parameter and arguments don't agree.
-			if( numTypeParams != numArgs && numArgs != 0 )
-				throw new IllegalArgumentException("type, " + memberBinding.getQualifiedName() + ", require " + numTypeParams + " type arguments " + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-                        "but found " + numArgs ); //$NON-NLS-1$
-			
-			final String typeKey = BindingKey.createParameterizedTypeBindingKey(memberBinding.getKey(), argKeys);
-			final ITypeBinding resultBinding = _env.getTypeBinding(typeKey);
-			return Factory.createReferenceType(resultBinding, _env);
-		}
-		else{ 
-			if( numArgs != 0 )
-				throw new IllegalArgumentException("type, " + memberBinding + " is not a generic type and cannot have type arguments."); //$NON-NLS-1$ //$NON-NLS-2$
-			// simple case, turning a non-generic TypeDeclaration into a DeclaredType
-			return (DeclaredType)decl;
-		}	
-    }
-
-    public com.sun.mirror.type.DeclaredType getDeclaredType(TypeDeclaration decl, TypeMirror... typeArgs)
-    {
-		return getDeclaredType(null, decl, typeArgs);		
-    }
-
-    public TypeMirror getErasure(TypeMirror t)
-    {	
-        if( t == null ) return null;
-        
-        if(t instanceof EclipseMirrorImpl){
-            final EclipseMirrorImpl impl = (EclipseMirrorImpl)t;
-            final ITypeBinding binding;
-            switch( impl.kind() )
-            {
-                case TYPE_PRIMITIVE:
-                case TYPE_VOID:
-                case TYPE_ERROR:
-                    return t;
-                case TYPE_ARRAY:
-                    binding = ((ArrayTypeImpl)t).getArrayBinding();
-                    break;
-                case TYPE_WILDCARD:
-                    binding = ((WildcardTypeImpl)t).getWildcardBinding();                   
-                    break;
-                default:
-                    binding = ((TypeDeclarationImpl)t).getTypeBinding();
-            }
-            final ITypeBinding erasure = binding.getErasure();
-            if( erasure == binding ) return t;
-            TypeMirror m_erasure = Factory.createTypeMirror(erasure, impl.getEnvironment() );
-            if( m_erasure == null )
-                return Factory.createErrorClassType(erasure);
-            return m_erasure;
-        }
-
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + t.getClass().getName());	 //$NON-NLS-1$
-	}
-
-    public PrimitiveType getPrimitiveType(PrimitiveType.Kind kind)
-    {
-        if( kind == null ) return null;
-        switch(kind)
-        {
-            case BOOLEAN: return _env.getBooleanType();
-            case BYTE:    return _env.getByteType();
-            case CHAR:    return _env.getCharType();
-            case DOUBLE:  return _env.getDoubleType();
-            case FLOAT:   return _env.getFloatType();
-            case INT:     return _env.getIntType();
-            case LONG:    return _env.getLongType();
-            case SHORT:   return _env.getShortType();
-          
-            default: throw new IllegalStateException("unknown primitive kind : " + kind); //$NON-NLS-1$
-        }
-    }
-
-    public TypeVariable getTypeVariable(TypeParameterDeclaration tparam)
-    {
-        if( tparam == null ) return null;
-        if( tparam instanceof TypeParameterDeclarationImpl)
-            return (TypeVariable) tparam;
-
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + tparam.getClass().getName()); //$NON-NLS-1$
-    }
-
-    public VoidType getVoidType()
-    {
-        return _env.getVoidType();
-    }
-
-    public WildcardType getWildcardType(Collection<ReferenceType> upperBounds, Collection<ReferenceType> lowerBounds)
-    {		
-        final String boundKey;
-        final char boundKind;
-        final int upperBoundCount = upperBounds == null ? 0 : upperBounds.size();
-        final int lowerBoundCount = lowerBounds == null ? 0 : lowerBounds.size();
-        if( upperBoundCount == 0  && lowerBoundCount == 0 ){
-			boundKey = null;
-            boundKind = Signature.C_STAR;
-        }
-        else if( upperBoundCount == 1 && lowerBoundCount == 0){
-			final ITypeBinding binding = getTypeBinding(upperBounds.iterator().next());
-			boundKey = binding.getKey();
-            boundKind = Signature.C_EXTENDS;
-        }
-        else if(lowerBoundCount == 1 && upperBoundCount == 0){
-			final ITypeBinding binding = getTypeBinding(lowerBounds.iterator().next());
-			boundKey = binding.getKey();
-            boundKind = Signature.C_SUPER;
-        }
-        else
-            throw new IllegalArgumentException("Wildcard can only have a upper bound, a lower bound or be unbounded."); //$NON-NLS-1$
-
-		final String wildcardkey = BindingKey.createWilcardTypeBindingKey(boundKey, boundKind);
-		final ITypeBinding wildcard = _env.getTypeBinding(wildcardkey);
-        return (WildcardType)Factory.createTypeMirror(wildcard, _env);
-    }
-
-    /**
-     * @return true iff t2 = t1 does not require explicit casting and not cause an error.
-     */
-    public boolean isAssignable(TypeMirror t1, TypeMirror t2)
-    {
-        final ITypeBinding left = getTypeBinding(t1);
-        final ITypeBinding right = getTypeBinding(t2);
-        
-        if( left == right ) return true;
-        else if( left == null || right == null ) return false;
-        return right.isAssignmentCompatible(left);       
-    }
-
-    public boolean isSubtype(TypeMirror t1, TypeMirror t2)
-    {
-        final ITypeBinding b1 = getTypeBinding(t1);
-        final ITypeBinding b2 = getTypeBinding(t2);
-        if( b1 == null || b2 == null ) return false;
-
-        return b1.isSubTypeCompatible(b2);
-    }
-    
-    public static IPackageBinding getPackageBinding(PackageDeclaration pkg)
-    	throws NonEclipseImplementationException
-    {	
-        if(pkg == null) return null;
-        if( pkg instanceof EclipseMirrorImpl ){
-            final PackageDeclarationImpl impl = (PackageDeclarationImpl)pkg;
-            return impl.getPackageBinding();
-        }
-
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + pkg.getClass().getName()); //$NON-NLS-1$
-    }  
-
-    /**
-     * @return the binding correspond to the given type.
-     *         Return null if the type is an error marker.
-     * @throws NonEclipseImplementationException
-     */
-
-    public static ITypeBinding getTypeBinding(TypeMirror type)
-        throws NonEclipseImplementationException
-    {	
-        if(type == null ) return null;
-        if( type instanceof EclipseMirrorImpl ){
-            final EclipseMirrorImpl impl = (EclipseMirrorImpl)type;
-            switch(impl.kind() )
-            {
-                case TYPE_PRIMITIVE: return ((PrimitiveTypeImpl)type).getTypeBinding();
-                case TYPE_VOID:  	 return ((VoidTypeImpl)type).getTypeBinding();
-                case TYPE_ERROR: 	 return null;
-                case TYPE_ARRAY: 	 return ((ArrayTypeImpl)type).getArrayBinding();
-                case TYPE_WILDCARD:  return ((WildcardTypeImpl)type).getWildcardBinding();
-                default: return ((TypeDeclarationImpl)type).getTypeBinding();
-            }
-        }
-
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + type.getClass().getName()); //$NON-NLS-1$
-    }
-
-    /**
-     * @return the binding correspond to the given type.
-     * @throws NonEclipseImplementationException
-     */
-    public static ITypeBinding getTypeBinding(TypeDeclaration type)
-        throws NonEclipseImplementationException
-    {
-        if(type == null ) return null;
-        if( type instanceof EclipseMirrorImpl ){           
-            return ((TypeDeclarationImpl)type).getTypeBinding();
-        }
-        throw new NonEclipseImplementationException("only applicable to eclipse type system objects." + //$NON-NLS-1$
-                                                    " Found " + type.getClass().getName()); //$NON-NLS-1$
-    } 
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Visitors.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Visitors.java
deleted file mode 100644
index 04374f0..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/Visitors.java
+++ /dev/null
@@ -1,421 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.internal.util;
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.jdt.core.dom.ASTNode;
-import org.eclipse.jdt.core.dom.ASTVisitor;
-import org.eclipse.jdt.core.dom.Annotation;
-import org.eclipse.jdt.core.dom.AnnotationTypeDeclaration;
-import org.eclipse.jdt.core.dom.AnnotationTypeMemberDeclaration;
-import org.eclipse.jdt.core.dom.Block;
-import org.eclipse.jdt.core.dom.BodyDeclaration;
-import org.eclipse.jdt.core.dom.DoStatement;
-import org.eclipse.jdt.core.dom.EnumConstantDeclaration;
-import org.eclipse.jdt.core.dom.EnumDeclaration;
-import org.eclipse.jdt.core.dom.FieldDeclaration;
-import org.eclipse.jdt.core.dom.ForStatement;
-import org.eclipse.jdt.core.dom.IExtendedModifier;
-import org.eclipse.jdt.core.dom.IfStatement;
-import org.eclipse.jdt.core.dom.MarkerAnnotation;
-import org.eclipse.jdt.core.dom.MethodDeclaration;
-import org.eclipse.jdt.core.dom.NormalAnnotation;
-import org.eclipse.jdt.core.dom.SingleMemberAnnotation;
-import org.eclipse.jdt.core.dom.SingleVariableDeclaration;
-import org.eclipse.jdt.core.dom.TryStatement;
-import org.eclipse.jdt.core.dom.TypeDeclaration;
-
-/**
- * Home for ast visitors of various flavors.
- */
-public class Visitors {
-	
-	/**
-     * Traverse the ast looking for annotations at the declaration level.
-     * This visitor only operates at the declaration level. Method body
-     * and field initializers and static block will be ignored.
-     */
-    public static final class AnnotationVisitor extends ASTVisitor
-    {
-        private final List<Annotation> _annotations;
-        /**
-         * @param annotations to be populated by this visitor
-         */
-        public AnnotationVisitor(final List<Annotation> annotations)
-        { _annotations = annotations; }
-
-        public boolean visit(MarkerAnnotation annotation)
-        {
-            _annotations.add(annotation);
-            return false;
-        }
-
-        public boolean visit(SingleMemberAnnotation annotation)
-        {
-            _annotations.add(annotation);
-            return false;
-        }
-
-        public boolean visit(NormalAnnotation annotation)
-        {
-            _annotations.add(annotation);
-            return false;
-        }
-
-        // make sure we don't hit Arguments other than formal parameters.
-        public boolean visit(Block blk){ return false; }
-        public boolean visit(DoStatement doStatement){ return false; }
-        public boolean visit(ForStatement forStatement){ return false; }
-        public boolean visit(IfStatement ifStatement){ return false; }
-        public boolean visit(TryStatement tryStatement){ return false; }
-        
-        public void reset(){ _annotations.clear(); }
-    }
-    
-    /**
-     * Locate all the annotations and the declaration that they annotate.
-     * This visitor only operates at the declaration level. Method body
-     * and field initializers and static block will be ignored.
-     */
-    public static final class AnnotatedNodeVisitor extends ASTVisitor
-    {
-        private final Map<ASTNode, List<Annotation>> _result;
-        
-        /**
-         * @param map to be populated by this visitor. 
-         *        Key is the declaration ast node and the value is the list 
-         *        of annotation ast nodes that annotate the declaration.        
-         */
-        public AnnotatedNodeVisitor(Map<ASTNode, List<Annotation>> map)
-        {
-            _result = map;
-        }
-
-		/**
-		 * visit package declaration
-		 */
-        public boolean visit(org.eclipse.jdt.core.dom.PackageDeclaration node)
-        {
-			final List<Annotation> annotations = node.annotations();
-			if( !annotations.isEmpty() )
-				_result.put(node, annotations);
-
-            return false;
-        }
-
-		/**
-		 * visit class and interface declaration
-		 */
-        public boolean visit(org.eclipse.jdt.core.dom.TypeDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-		/**
-		 * visit annotation type declaration
-		 */
-        public boolean visit(org.eclipse.jdt.core.dom.AnnotationTypeDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-		/**
-		 * visit enum type declaration
-		 */
-        public boolean visit(org.eclipse.jdt.core.dom.EnumDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-		/**
-		 * visit field declaration
-		 */
-        public boolean visit(org.eclipse.jdt.core.dom.FieldDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-		/**
-		 * visit enum constant declaration
-		 */
-        public boolean visit(org.eclipse.jdt.core.dom.EnumConstantDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-		/**
-		 * visit method declaration
-		 */
-        public boolean visit(MethodDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-		/**
-		 * visit annotation type member
-		 */
-        public boolean visit(AnnotationTypeMemberDeclaration node)
-        {
-            visitBodyDeclaration(node);
-            return true;
-        }
-
-        private void visitBodyDeclaration(final BodyDeclaration node)
-        {
-            final List<IExtendedModifier> extMods = node.modifiers();
-			List<Annotation> annos = null;
-            for( IExtendedModifier extMod : extMods ){
-                if( extMod.isAnnotation() ){
-					if( annos == null ){
-                        annos = new ArrayList<Annotation>(2);
-                        _result.put(node, annos);
-					}
-                    annos.add((Annotation)extMod);
-                }
-            }
-        }
-
-		/**
-		 * visiting formal parameter declaration.
-		 */
-		public boolean visit(SingleVariableDeclaration node)
-		{
-			final List<IExtendedModifier> extMods = node.modifiers();
-			List<Annotation> annos = null;
-            for( IExtendedModifier extMod : extMods ){
-                if( extMod.isAnnotation() ){
-					if( annos == null ){
-                        annos = new ArrayList<Annotation>(2);
-                        _result.put(node, annos);
-					}
-                    annos.add((Annotation)extMod);
-                }
-            }
-			return false;
-		}
-
-		/**
-		 * @return false so we skip everything beyond declaration level.
-		 */
-        public boolean visit(Block node)
-        {   // so we don't look into anything beyond declaration level.
-            return false;
-        }
-        public boolean visit(MarkerAnnotation node){ return false; }
-        public boolean visit(NormalAnnotation node){ return false; }
-        public boolean visit(SingleMemberAnnotation node){ return false; }
-    }
-	
-    /**
-     * Given an annotation locate the declaration that its annotates. 
-     * This visitor only operates at the declaration level. Method body
-     * and field initializers and static block will be ignored.   
-     *
-     */
-    public static final class DeclarationFinder extends ASTVisitor
-    {
-    	private final Annotation _anno;
-    	// The declaration, could be a body declaration or a parameter
-    	// could also remain null if the annotation doesn't actually
-    	// annotates anything.
-    	private ASTNode _result = null;
-    	public DeclarationFinder(final Annotation annotation)
-    	{
-    		_anno = annotation;
-    	}
-    	
-    	/**
-    	 *  @return back the result of the search.
-    	 */
-    	public ASTNode getAnnotatedNode(){return _result;}
-    	
-    	/**
-    	 * We only visit nodes that can have annotations on them
-    	 */
-    	public boolean visit(AnnotationTypeDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(AnnotationTypeMemberDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(EnumDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(EnumConstantDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(FieldDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(MethodDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(TypeDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	public boolean visit(SingleVariableDeclaration node) {
-    		return internalVisit(node);
-    	}
-    	
-    	private boolean internalVisit(ASTNode node) {
-    		// terminate the search.
-    		if( _result != null ) return false;
-    		int nodeStart = node.getStartPosition();
-    		int nodeEnd = nodeStart + node.getLength();
-    		int annoStart = _anno.getStartPosition();
-    		int annoEnd = annoStart + _anno.getLength();
-    		
-    		if (nodeStart > annoEnd) {
-    			// We've passed our position. No need to search any further
-    			return false;
-    		}
-    		if (nodeEnd > annoStart) { // nodeStart <= annoEnd && nodeEnd > annoStart
-    			// This annotation declaration surrounds the offset
-    			List<IExtendedModifier> extendedModifiers;
-    			if (node.getNodeType() == ASTNode.SINGLE_VARIABLE_DECLARATION) {
-    				SingleVariableDeclaration declaration = (SingleVariableDeclaration)node;
-    				extendedModifiers = declaration.modifiers();
-    			}
-    			else {
-    				BodyDeclaration declaration = (BodyDeclaration)node;
-    				extendedModifiers = declaration.modifiers();
-    			}    			
-    			for (IExtendedModifier modifier : extendedModifiers) {
-    				// found what we came to look for.
-    				if( modifier == _anno ){
-    					_result = node;
-    					return false;
-    				}
-    			}   			
-    		}
-    		
-    		// Keep searching
-    		return true;
-    	}
-    	
-    	/**
-		 * @return false so we skip everything beyond declaration level.
-		 */
-        public boolean visit(Block node)
-        {   // so we don't look into anything beyond declaration level.
-            return false;
-        }
-        public boolean visit(MarkerAnnotation node){ return false; }
-        public boolean visit(NormalAnnotation node){ return false; }
-        public boolean visit(SingleMemberAnnotation node){ return false; }
-    }
-	/**
-	 * Responsible for finding the ending offset of the tighest ast node match that starts 
-	 * at a given offset. This ast visitor can operator on an array of offsets in one pass.   
-     * @author tyeung     
-     */
-    public static class EndingOffsetFinder extends ASTVisitor 
-    {
-    	private final int[] _sortedStartingOffset;
-    	/** 
-    	 * parallel to <code>_sortedOffsets</code> and contains 
-    	 * the ending offset of the ast node that has the tightest match for the 
-    	 * corresponding starting offset.
-    	 */
-    	private final int[] _endingOffsets;
-    	
-    	/**
-    	 * @param offsets the array of offsets which will be sorted.
-    	 * @throws IllegalArgumentException if <code>offsets</code> is <code>null</code>.
-    	 */
-    	public EndingOffsetFinder(int[] offsets)
-    	{
-    		if(offsets == null)
-    			throw new IllegalArgumentException("argument cannot be null."); //$NON-NLS-1$
-    		// sort the array first
-    		Arrays.sort(offsets);
-    	
-    		// look for duplicates.		
-    		int count = 0;	
-    		for( int i=0, len=offsets.length; i<len; i++){
-    			if( i == 0 ) ; // do nothing				
-    			else if( offsets[i-1] == offsets[i] )
-    				continue;			
-    			count ++;
-    		}	
-    	
-    		if( count != offsets.length ){
-    			_sortedStartingOffset = new int[count];
-    	
-    			int index = 0;
-    			for( int i=0, len=offsets.length; i<len; i++){
-    				if( i != 0 && offsets[i-1] == offsets[i] )
-    					continue;
-    				_sortedStartingOffset[index++] = offsets[i];
-    			}		
-    		}
-    		else{
-    			_sortedStartingOffset = offsets;
-    		}
-    		
-    		_endingOffsets = new int[count];
-    		for( int i=0; i<count; i++ )
-    			_endingOffsets[i] = 0;
-    	}
-    	
-    	public void preVisit(ASTNode node) 
-    	{
-    		final int startingOffset = node.getStartPosition();
-    		final int endingOffset = startingOffset + node.getLength();
-    		// starting offset is inclusive
-    		int startIndex = Arrays.binarySearch(_sortedStartingOffset, startingOffset);
-    		// ending offset is exclusive
-    		int endIndex = Arrays.binarySearch(_sortedStartingOffset, endingOffset);
-    		if( startIndex < 0 )
-    			startIndex = - startIndex - 1;		
-    		if( endIndex < 0 )
-    			endIndex = - endIndex - 1;
-    		else 
-    			// endIndex needs to be exclusive and we want to 
-    			// include the 'endIndex'th entry in our computation.
-    			endIndex ++; 
-    		if( startIndex >= _sortedStartingOffset.length )
-    			return;
-    		
-    		for( int i=startIndex; i<endIndex; i++ ){    			
-    			if( _endingOffsets[i] == 0 )
-    				_endingOffsets[i] = endingOffset;
-    			else if( endingOffset < _endingOffsets[i] )
-    				_endingOffsets[i] = endingOffset;
-    		}
-    	}
-    	
-    	
-    	public int getEndingOffset(final int startingOffset)
-    	{
-    		int index = Arrays.binarySearch(_sortedStartingOffset, startingOffset);
-    		if( index == -1 ) return 0;
-    		return _endingOffsets[index];
-    	}
-    }
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/messages.properties b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/messages.properties
deleted file mode 100644
index c42ebe8..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/internal/util/messages.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-FactoryPathUtil_status_ioException=I/O exception
-FactoryPathUtil_status_couldNotParse=Could not parse
-FactoryPathUtil_status_parserConfigError=Parser configuration error
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/messages.properties b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/messages.properties
deleted file mode 100644
index 1619830..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-AptPlugin_couldNotFindToolsDotJar=Could not find tools.jar in plugin directory: org.eclipse.jdt.apt.core will not load
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AnnotationScanner.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AnnotationScanner.java
deleted file mode 100644
index ab8738a..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AnnotationScanner.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.IOException;
-
-import static org.eclipse.jdt.apt.core.util.AnnotationScanner.State.*;
-
-/**
- * Utility scanner for quickly determining if a file contains annotations
- */
-public abstract class AnnotationScanner {
-
-	enum State {
-		NORMAL,
-		SEEN_SLASH,
-		IN_COMMENT,
-		IN_COMMENT_SEEN_STAR,
-		IN_SINGLE_LINE_COMMENT,
-		IN_SINGLE_QUOTE,
-		IN_DOUBLE_QUOTE
-	}
-	
-	public AnnotationScanner() {}
-	
-	public boolean containsAnnotations() throws IOException {
-		State state = NORMAL;
-		
-		// for escaping quotes -- need to ignore the next single character
-		// Since this applies to all states it's handled separately
-		boolean seenBackslash = false;
-		
-		int c = getNext();
-		while (c != -1) {
-			
-			if (seenBackslash) {
-				// Skip one character
-				seenBackslash = false;
-			}
-			else if (c == '\\') {
-				// Skip the next character
-				seenBackslash = true;
-			}
-			else {
-				// Handle the character based on state
-				switch (state) {
-				
-				case NORMAL :
-					if (c == '@')
-						return true;
-					if (c == '/') {
-						state = SEEN_SLASH;
-					}
-					else if (c == '\'') {
-						state = IN_SINGLE_QUOTE;
-					}
-					else if (c == '\"') {
-						state = IN_DOUBLE_QUOTE;
-					}
-					break;
-					
-				case SEEN_SLASH :
-					if (c == '*') {
-						state = IN_COMMENT;
-					}
-					else if (c == '/') {
-						state = IN_SINGLE_LINE_COMMENT;
-					}
-					else {
-						state = NORMAL;
-					}
-					break;
-				
-				case IN_COMMENT :
-					if (c == '*') {
-						state = IN_COMMENT_SEEN_STAR;
-					}
-					break;
-				
-				case IN_COMMENT_SEEN_STAR :
-					if (c == '/') {
-						state = NORMAL;
-					}
-					else {
-						state = IN_COMMENT;
-					}
-					break;
-					
-				case IN_SINGLE_LINE_COMMENT :
-					if (c == '\n' || c == '\r') {
-						state = NORMAL;
-					}
-					break;
-					
-				case IN_SINGLE_QUOTE :
-					if (c == '\'') {
-						state = NORMAL;
-					}
-					break;
-					
-				case IN_DOUBLE_QUOTE :
-					if (c == '\"') {
-						state = NORMAL;
-					}
-					break;
-					
-				default :
-					throw new IllegalStateException("Unhandled state: " + state);  //$NON-NLS-1$
-				}
-			}
-			c = getNext();
-		}
-		return false;
-	}
-	
-	/**
-	 * Returns -1 at the end of the input
-	 */
-	protected abstract int getNext() throws IOException;
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptConfig.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptConfig.java
deleted file mode 100644
index 024b975..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptConfig.java
+++ /dev/null
@@ -1,651 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com, wharley@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IPreferencesService;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPathUtil;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * Accesses configuration data for APT.
- * Note that some of the code in org.eclipse.jdt.ui reads and writes settings
- * data directly, rather than calling into the methods of this class. 
- * 
- * This class is static.  Instances should not be constructed.
- * 
- * Helpful information about the Eclipse preferences mechanism can be found at:
- * http://dev.eclipse.org/viewcvs/index.cgi/~checkout~/platform-core-home/documents/user_settings/faq.html
- */
-public class AptConfig {
-	
-	/*
-	 * Hide constructor; this is a static object
-	 */
-	private AptConfig() {}
-	
-	/**
-     * Add the equivalent of -Akey=val to the list of processor options.
-     * @param key must be a nonempty string.  It should only include the key;
-     * that is, it should not start with "-A".
-     * @param jproj a project, or null to set the option workspace-wide.
-     * @param val can be null (equivalent to -Akey).  This does not mean
-     * remove the key; for that functionality, @see #removeProcessorOption(IJavaProject, String).
-     */
-    public static void addProcessorOption(IJavaProject jproj, String key, String val) {
-    	if (key == null || key.length() < 1) {
-    		throw new IllegalArgumentException();
-    	}
-		IScopeContext context = (null != jproj) ? 
-				new ProjectScope(jproj.getProject()) : new InstanceScope();
-		IEclipsePreferences node = context.getNode(AptPlugin.PLUGIN_ID + "/" +  //$NON-NLS-1$
-				AptPreferenceConstants.APT_PROCESSOROPTIONS);
-		String nonNullVal = val == null ? AptPreferenceConstants.APT_NULLVALUE : val;
-		node.put(key, nonNullVal);
-		try {
-			node.flush();
-		} catch (BackingStoreException e) {
-			AptPlugin.log(e, "Unable to save annotation processor option" + key); //$NON-NLS-1$
-		}
-    }
-	
-	/**
-     * Remove an option from the list of processor options.
-     * @param jproj a project, or null to remove the option workspace-wide.
-     * @param key must be a nonempty string.  It should only include the key;
-     * that is, it should not start with "-A".
-     */
-    public static void removeProcessorOption(IJavaProject jproj, String key) {
-    	if (key == null || key.length() < 1) {
-    		throw new IllegalArgumentException();
-    	}
-    	IScopeContext context = (null != jproj) ? 
-				new ProjectScope(jproj.getProject()) : new InstanceScope();
-		IEclipsePreferences node = context.getNode(AptPlugin.PLUGIN_ID + "/" +  //$NON-NLS-1$
-				AptPreferenceConstants.APT_PROCESSOROPTIONS);
-		node.remove(key);
-		try {
-			node.flush();
-		} catch (BackingStoreException e) {
-			AptPlugin.log(e, "Unable to save annotation processor option" + key); //$NON-NLS-1$
-		}
-    }
-    
-	/**
-     * Get the options that are presented to annotation processors by the
-     * AnnotationProcessorEnvironment.  The -A and = are stripped out, so 
-     * (key, value) is the equivalent of -Akey=value.
-     * 
-     * This method returns some options which are set programmatically but 
-     * are not directly editable, are not displayed in the configuration GUI, 
-     * and are not persisted to the preference store.  This is meant to
-     * emulate the behavior of Sun's apt command-line tool, which passes
-     * most of its command line options to the processor environment.  The
-     * programmatically set options are:
-     *  -classpath [set to Java build path]
-     *  -sourcepath [set to Java source path]
-     *  -s [set to generated src dir]
-     *  -d [set to binary output dir]
-     *  -target [set to compiler target version]
-     *  -source [set to compiler source version]
-     * 
-     * @param jproj a project, or null to query the workspace-wide setting.
-     * @return a mutable, possibly empty, map of (key, value) pairs.  
-     * The value part of a pair may be null (equivalent to "-Akey").
-     * The value part can contain spaces, if it is quoted: -Afoo="bar baz".
-     */
-    public static Map<String, String> getProcessorOptions(IJavaProject jproj) {
-    	Map<String,String> options;
-    	options = getRawProcessorOptions(jproj);
-    	if (jproj == null) {
-    		// there are no programmatically set options at the workspace level
-    		return options;
-    	}
-    	
-    	IPath workspaceRootPath = jproj.getProject().getWorkspace().getRoot().getLocation();
-    	
-    	// Add sourcepath and classpath variables
-    	try {
-    		IClasspathEntry[] classpathEntries = jproj.getResolvedClasspath(true);
-    		StringBuilder classpathSB = new StringBuilder();
-    		StringBuilder sourcepathSB = new StringBuilder();
-    		boolean firstCP = true;
-    		boolean firstSP = true;
-    		for (IClasspathEntry entry : classpathEntries) {
-    			int kind = entry.getEntryKind();
-    			if (kind == IClasspathEntry.CPE_LIBRARY) {
-	    			if (firstCP) {
-	    				firstCP = false;
-	    			}
-	    			else {
-	    				classpathSB.append(File.pathSeparatorChar);
-	    			}
-	    			classpathSB.append(entry.getPath().makeAbsolute().toOSString());
-    			}
-    			else if (kind == IClasspathEntry.CPE_SOURCE) {
-    				if (firstSP) {
-    					firstSP = false;
-    				}
-    				else {
-    					sourcepathSB.append(File.separatorChar);
-    				}
-    				// Sourcepath is a bit odd -- it's workspace-relative
-    				IPath sourcepath = entry.getPath();
-    				sourcepathSB.append(workspaceRootPath.append(sourcepath).toOSString());
-    			}
-    		}
-    		// if you add options here, also add them in isAutomaticProcessorOption(),
-    		// and document them in docs/reference/automatic_processor_options.html.
-    		
-    		// Classpath and sourcepath
-    		options.put("-classpath",classpathSB.toString()); //$NON-NLS-1$
-    		options.put("-sourcepath", sourcepathSB.toString()); //$NON-NLS-1$
-    		
-    		// Get absolute path for generated source dir
-    		IFolder genSrcDir = jproj.getProject().getFolder(getGenSrcDir(jproj));
-    		options.put("-s", genSrcDir.getRawLocation().toOSString()); //$NON-NLS-1$
-    		
-    		// Absolute path for bin dir as well
-    		IPath binPath = jproj.getOutputLocation();
-    		IPath binDir = workspaceRootPath.append(binPath);
-    		options.put("-d", binDir.toOSString()); //$NON-NLS-1$
-    		
-    		String target = jproj.getOption(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, true);
-    		options.put("-target", target); //$NON-NLS-1$
-    		
-    		String source = jproj.getOption(JavaCore.COMPILER_SOURCE, true);
-    		options.put("-source", source); //$NON-NLS-1$
-    	}
-    	catch (JavaModelException jme) {
-    		AptPlugin.log(jme, "Could not get the classpath for project: " + jproj); //$NON-NLS-1$
-    	}
-    	
-    	return options;
-    }
-    
-    /**
-     * Set all the processor options in one call.  This will delete any
-     * options that are not passed in, so callers who do not wish to
-     * destroy pre-existing options should use addProcessorOption() instead.
-     * @param options a map of keys to values.  The keys should not include
-     * any automatic options (@see #isAutomaticProcessorOption(String)),
-     * and the "-A" should not be included.  That is, to perform the
-     * equivalent of the apt command line "-Afoo=bar", use the key "foo"
-     * and the value "bar".  Keys cannot contain spaces; values can
-     * contain anything at all.  Keys cannot be null, but values can be.
-     */
-    public static void setProcessorOptions(Map<String, String> options, IJavaProject jproj) {
-		IScopeContext context = (null != jproj) ? 
-				new ProjectScope(jproj.getProject()) : new InstanceScope();
-
-    	// TODO: this call is needed only for backwards compatibility with
-	    // settings files previous to 2005.11.13.  At some point it should be
-	    // removed.
-    	removeOldStyleSettings(context);
-
-		IEclipsePreferences node = context.getNode(AptPlugin.PLUGIN_ID + "/" +  //$NON-NLS-1$
-				AptPreferenceConstants.APT_PROCESSOROPTIONS);
-		try {
-			node.clear();
-			for (Entry<String, String> option : options.entrySet()) {
-				String nonNullVal = option.getValue() == null ? 
-						AptPreferenceConstants.APT_NULLVALUE : option.getValue();
-				node.put(option.getKey(), nonNullVal);
-			}
-			node.flush();
-		} catch (BackingStoreException e) {
-			AptPlugin.log(e, "Unable to save annotation processor options"); //$NON-NLS-1$
-		}
-    }
-
-    /**
-     * Is the named option automatically generated in getProcessorOptions(),
-     * or did it come from somewhere else, such as a -A processor option?
-     * @param key the name of an AnnotationProcessorEnvironment option
-     * @return true if the option is automatically set.
-     */
-	public static boolean isAutomaticProcessorOption(String key) {
-		if ("-classpath".equals(key)) //$NON-NLS-1$
-			return true;
-		if ("-sourcepath".equals(key)) //$NON-NLS-1$
-			return true;
-		if ("-s".equals(key)) //$NON-NLS-1$
-			return true;
-		if ("-d".equals(key)) //$NON-NLS-1$
-			return true;
-		if ("-target".equals(key)) //$NON-NLS-1$
-			return true;
-		if ("-source".equals(key)) //$NON-NLS-1$
-			return true;
-		return false;
-	}
-	
-	/**
-     * Get the options that are presented to annotation processors by the
-     * AnnotationProcessorEnvironment.  The -A and = are stripped out, so 
-     * (key, value) is the equivalent of -Akey=value.
-     * 
-     * This method differs from getProcessorOptions in that the options returned 
-     * by this method do NOT include any programmatically set options.  This 
-     * method returns only the options that are persisted to the preference
-     * store and that are displayed in the configuration GUI.
-     * 
-     * @param jproj a project, or null to query the workspace-wide setting.
-     * @return a mutable, possibly empty, map of (key, value) pairs.  
-     * The value part of a pair may be null (equivalent to "-Akey").
-     * The value part can contain spaces, if it is quoted: -Afoo="bar baz".
-     */
-	public static Map<String, String> getRawProcessorOptions(IJavaProject jproj) {
-		Map<String, String> options = new HashMap<String, String>();
-		
-	    // TODO: this code is needed only for backwards compatibility with
-	    // settings files previous to 2005.11.13.  At some point it should be
-	    // removed.
-		// If an old-style setting exists, add it into the mix for backward
-		// compatibility.
-		options.putAll(getOldStyleRawProcessorOptions(jproj));
-		
-		// Fall back from project to workspace scope on an all-or-nothing basis,
-		// not value by value.  (Never fall back to default scope; there are no
-		// default processor options.)
-		IScopeContext[] contexts;
-		if (jproj != null) {
-			contexts = new IScopeContext[] { 
-					new ProjectScope(jproj.getProject()), new InstanceScope() };
-		}
-		else {
-			contexts = new IScopeContext[] { new InstanceScope() };
-		}
-		for (IScopeContext context : contexts) {
-			IEclipsePreferences prefs = context.getNode(AptPlugin.PLUGIN_ID);
-			if (prefs != null) {
-				try {
-					IEclipsePreferences procOptionsNode = context.getNode(
-							AptPlugin.PLUGIN_ID + "/" + AptPreferenceConstants.APT_PROCESSOROPTIONS); //$NON-NLS-1$
-					if (procOptionsNode != null) {
-						for (String key : procOptionsNode.keys()) {
-							String nonNullVal = procOptionsNode.get(key, null);
-							String val = AptPreferenceConstants.APT_NULLVALUE.equals(nonNullVal) ?
-									null : nonNullVal;
-							options.put(key, val);
-						}
-					}
-				} catch (BackingStoreException e) {
-					AptPlugin.log(e, "Unable to load annotation processor options"); //$NON-NLS-1$
-				}
-				break;
-			}
-		}
-		return options;
-	}
-    
-	/**
-     * TODO: this code is needed only for backwards compatibility with
-     * settings files previous to 2005.11.13.  At some point it should be
-     * removed.
-     * Get the processor options as an APT-style string ("-Afoo=bar -Abaz=quux")
-	 */
-	private static Map<String, String> getOldStyleRawProcessorOptions(IJavaProject jproj) {
-		Map<String, String> options;
-		String allOptions = getString(jproj, AptPreferenceConstants.APT_PROCESSOROPTIONS);
-    	if (null == allOptions) {
-    		options = new HashMap<String, String>();
-    	}
-    	else {
-    		ProcessorOptionsParser op = new ProcessorOptionsParser(allOptions);
-    		options = op.parse();
-    	}
-		return options;
-	}
-    /**
-     * TODO: this code is needed only for backwards compatibility with
-     * settings files previous to 2005.11.13.  At some point it should be
-     * removed.
-     *   
-     * Used to parse an apt-style command line string into a map of key/value
-     * pairs.
-     * Parsing ignores errors and simply tries to gobble up as many well-formed
-     * pairs as it can find.
-     */
-    private static class ProcessorOptionsParser {
-    	final String _s;
-    	int _start; // everything before this is already parsed.
-    	boolean _hasVal; // does the last key found have a value token?
-    	
-    	public ProcessorOptionsParser(String s) {
-    		_s = s;
-    		_start = 0;
-    		_hasVal = false;
-    	}
-    	
-     	public Map<String, String> parse() {
-        	Map<String, String> options = new HashMap<String, String>();
-        	String key;
-        	while (null != (key = parseKey())) {
-       			options.put(key, parseVal());
-        	}
-         	return options;
-    	}
-    	
-    	/**
-    	 * Skip until a well-formed key (-Akey[=val]) is found, and
-    	 * return the key.  Set _start to the beginning of the value,
-    	 * or to the first character after the end of the key and
-    	 * delimiter, for a valueless key.  Set _hasVal according to
-    	 * whether a value was found.
-    	 * @return a key, or null if no well-formed keys can be found.
-    	 */
-    	private String parseKey() {
-    		String key;
-    		int spaceAt = -1;
-    		int equalsAt = -1;
-    		
-    		_hasVal = false;
-    		
-    		do {
-	        	_start = _s.indexOf("-A", _start); //$NON-NLS-1$
-	        	if (_start < 0) {
-	        		return null;
-	        	}
-	    		
-	    		// we found a -A.  The key is everything up to the next '=' or ' ' or EOL.
-	    		_start += 2;
-	    		if (_start >= _s.length()) {
-	    			// it was just a -A, nothing following.
-	    			return null;
-	    		}
-	    		
-	    		spaceAt = _s.indexOf(' ', _start);
-	    		equalsAt = _s.indexOf('=', _start);
-	    		if (spaceAt == _start || equalsAt == _start) {
-	    			// false alarm.  Keep trying.
-	    			++_start;
-	    			continue;
-	    		}
-    		} while (false);
-    		
-    		// We found a legitimate -A with some text after it.
-    		// Where does the key end?
-    		if (equalsAt > 0) {
-    			if (spaceAt < 0 || equalsAt < spaceAt) {
-    				// there is an equals, so there is a value.
-    				key = new String(_s.substring(_start, equalsAt));
-    				_start = equalsAt + 1;
-    				_hasVal = (_start < _s.length());
-    			}
-    			else {
-    				// the next thing is a space, so this is a valueless key
-    				key = new String(_s.substring(_start, spaceAt));
-    				_start = spaceAt + 1;
-    			}
-    		}
-    		else {
-	    		if (spaceAt < 0) {
-					// no equals sign and no spaces: a valueless key, up to the end of the string. 
-					key = new String(_s.substring(_start));
-					_start = _s.length();
-	    		}
-	    		else {
-    				// the next thing is a space, so this is a valueless key
-    				key = new String(_s.substring(_start, spaceAt));
-    				_start = spaceAt + 1;
-	    		}
-    		}
-        	return key;
-    	}
-    	
-    	/**
-    	 * A value token is delimited by a space; but spaces inside quoted
-    	 * regions are ignored.  A value may include multiple quoted regions.
-    	 * An unmatched quote is treated as if there was a matching quote at
-    	 * the end of the string.  Quotes are returned as part of the value.
-    	 * @return the value, up to the next nonquoted space or end of string.
-    	 */
-    	private String parseVal() {
-    		if (!_hasVal || _start < 0 || _start >= _s.length()) {
-    			return null;
-    		}
-    		boolean inQuotedRegion = false;
-    		int start = _start;
-    		int end = _start;
-    		while (end < _s.length()) {
-    			char c = _s.charAt(end);
-    			if (c == '"') {
-    				inQuotedRegion = !inQuotedRegion;
-    			}
-    			else if (!inQuotedRegion && c == ' ') {
-    				// end of token.
-    				_start = end + 1;
-    				break;
-    			}
-    			++end;
-    		}
- 
-    		return new String(_s.substring(start, end));
-    	}
-    }
-    
-    /**
-     * TODO: this code is needed only for backwards compatibility with
-     * settings files previous to 2005.11.13.  At some point it should be
-     * removed.
-     * Delete the key that saves annotation processor options as a single
-     * command-line-type string ("-Afoo=bar -Abaz=quux").
-     */
-    private static void removeOldStyleSettings(IScopeContext context) {
-		IEclipsePreferences node = context.getNode(AptPlugin.PLUGIN_ID);
-		node.remove(AptPreferenceConstants.APT_PROCESSOROPTIONS);
-    }
-
-    /**
-     * Flush unsaved preferences and perform any other config-related shutdown.
-     * This is called once, from AptPlugin.shutdown().
-     */
-    public static void dispose() {
-    	try {
-    		new InstanceScope().getNode(AptPlugin.PLUGIN_ID).flush();
-    	}
-    	catch (BackingStoreException e) {
-    		// log failure and continue
-    		AptPlugin.log(e, "Couldn't flush preferences to disk"); //$NON-NLS-1$
-    	}
-    }
-
-	/**
-	 * Initialize preferences lookups, and register change listeners.
-	 * This is called once, from AptPlugin.startup().
-	 */
-	public static void initialize() {
-		// If we cached workspace-level preferences, we would want to install
-		// some change listeners here. 
-	}
-	
-	/**
-	 * Is annotation processing turned on for this project?
-	 * @param jproject an IJavaProject, or null to request workspace preferences.
-	 * @return
-	 */
-	public static boolean isEnabled(IJavaProject jproject) {
-		return getBoolean(jproject, AptPreferenceConstants.APT_ENABLED);
-	}
-	
-	/**
-	 * Turn annotation processing on or off for this project.
-	 * @param jproject an IJavaProject, or null to set workspace preferences.
-	 * @param enabled
-	 */
-	public static void setEnabled(IJavaProject jproject, boolean enabled) {
-		setBoolean(jproject, AptPreferenceConstants.APT_ENABLED, enabled);
-	}
-	
-	private static boolean getBoolean(IJavaProject jproj, String optionName) {
-		IPreferencesService service = Platform.getPreferencesService();
-		IScopeContext[] contexts;
-		if (jproj != null) {
-			contexts = new IScopeContext[] { 
-					new ProjectScope(jproj.getProject()), new InstanceScope(), new DefaultScope() };
-		}
-		else {
-			contexts = new IScopeContext[] { new InstanceScope(), new DefaultScope() };
-		}
-		return service.getBoolean(
-				AptPlugin.PLUGIN_ID, 
-				optionName, 
-				Boolean.parseBoolean(AptPreferenceConstants.DEFAULT_OPTIONS_MAP.get(optionName)),  
-				contexts);
-	}
-	
-	/**
-	 * Get a factory path corresponding to the default values: if jproj is
-	 * non-null, return the current workspace factory path (workspace prefs
-	 * are the default for a project); if jproj is null, return the default 
-	 * list of plugin factories (which is the "factory default").
-	 */
-	public static IFactoryPath getDefaultFactoryPath(IJavaProject jproj) {
-		return FactoryPathUtil.getDefaultFactoryPath(jproj);
-	}
-	
-	/**
-	 * Get the factory path for a given project or for the workspace.
-	 * @param jproj the project, or null to get the factory path for the workspace.
-	 * @return a FactoryPath representing the current state of the specified project.
-	 * Note that changes made to the project after this call will not affect the
-	 * returned object - that is, it behaves like a value, not like a live link to
-	 * the project state.
-	 */
-	public static IFactoryPath getFactoryPath(IJavaProject jproj) {
-		return FactoryPathUtil.getFactoryPath(jproj);
-	}
-	
-	/**
-	 * Set the factory path for a given project or for the workspace.
-	 * Does not perform any validation on the path.
-	 * @param jproj the project, or null to set the factory path for the workspace.
-	 * @param path a factory path, or null to reset the factory path to the default.
-	 */
-	public static void setFactoryPath(IJavaProject jproj, IFactoryPath path)	
-			throws CoreException 
-	{
-		FactoryPath fp = (FactoryPath)path;
-		FactoryPathUtil.setFactoryPath(jproj, fp);
-		// Project-specific factory path files are resources, so changes
-		// get picked up by the resource listener.  Workspace changes aren't.
-		if (jproj == null) {
-			AnnotationProcessorFactoryLoader.getLoader().resetAll();
-		}
-	}
-
-	/**
-	 * Has an explicit factory path been set for the specified project, or
-	 * is it just defaulting to the workspace settings? 
-	 * @param project
-	 * @return true if there is a project-specific factory path.
-	 */
-	public static boolean hasProjectSpecificFactoryPath(IJavaProject jproj) {
-		if (null == jproj) {
-			// say no, even if workspace-level factory path does exist. 
-			return false;
-		}
-		return FactoryPathUtil.doesFactoryPathFileExist(jproj);
-	}
-
-	/**
-	 * Helper method to get a single preference setting, e.g., APT_GENSRCDIR.    
-	 * This is a different level of abstraction than the processor -A settings!
-	 * The -A settings are all contained under one single preference node, 
-	 * APT_PROCESSOROPTIONS.  Use @see #getProcessorOptions(IJavaProject) to 
-	 * get the -A settings; use @see #getOptions(IJavaProject) to get all the 
-	 * preference settings as a map; and use this helper method to get a single 
-	 * preference setting.
-	 * 
-	 * @param jproj the project, or null for workspace.
-	 * @param optionName a preference constant from @see AptPreferenceConstants.
-	 * @return
-	 */
-    public static String getString(IJavaProject jproj, String optionName) {
-		IPreferencesService service = Platform.getPreferencesService();
-		IScopeContext[] contexts;
-		if (jproj != null) {
-			contexts = new IScopeContext[] { 
-					new ProjectScope(jproj.getProject()), new InstanceScope(), new DefaultScope() };
-		}
-		else {
-			contexts = new IScopeContext[] { new InstanceScope(), new DefaultScope() };
-		}
-		return service.getString(
-				AptPlugin.PLUGIN_ID, 
-				optionName, 
-				AptPreferenceConstants.DEFAULT_OPTIONS_MAP.get(optionName), 
-				contexts);
-	}
-    
-    public static String getGenSrcDir(IJavaProject jproject) {
-    	String genSrcDir = getString(jproject, AptPreferenceConstants.APT_GENSRCDIR);
-    	if (genSrcDir == null) {
-    		throw new IllegalStateException("Generated Source Directory was null."); //$NON-NLS-1$
-    	}
-    	return genSrcDir;
-    }
-    
-    public static void setGenSrcDir(IJavaProject jproject, String dirString) {
-    	if (dirString == null) {
-    		throw new IllegalArgumentException("Cannot set the Generated Source Directory to null"); //$NON-NLS-1$
-    	}
-    	setString(jproject, AptPreferenceConstants.APT_GENSRCDIR, dirString);
-    }
-	
-	private static void setBoolean(IJavaProject jproject, String optionName, boolean value) {
-		IScopeContext context = (null != jproject) ? 
-				new ProjectScope(jproject.getProject()) : new InstanceScope();
-		IEclipsePreferences node = context.getNode(AptPlugin.PLUGIN_ID);
-		node.putBoolean(optionName, value);
-		flushPreference(optionName, node);
-	}
-	
-	private static void setString(IJavaProject jproject, String optionName, String value) {
-		IScopeContext context = (null != jproject) ? 
-				new ProjectScope(jproject.getProject()) : new InstanceScope();
-		IEclipsePreferences node = context.getNode(AptPlugin.PLUGIN_ID);
-		node.put(optionName, value);
-		flushPreference(optionName, node);
-	}
-
-	private static void flushPreference(String optionName, IEclipsePreferences node) {
-		try {
-			node.flush();
-		}
-		catch (BackingStoreException e){
-			AptPlugin.log(e, "Failed to save preference: " + optionName); //$NON-NLS-1$
-		}
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptPreferenceConstants.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptPreferenceConstants.java
deleted file mode 100644
index 5de9f82..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptPreferenceConstants.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   {INITIAL_AUTHOR} - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.util;
-
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * String constants used to access APT preference store
- */
-public class AptPreferenceConstants {
-	public static final String APT_STRING_BASE = "org.eclipse.jdt.apt"; //$NON-NLS-1$
-	public static final String APT_ENABLED = APT_STRING_BASE + ".aptEnabled"; //$NON-NLS-1$
-	public static final String APT_GENSRCDIR = APT_STRING_BASE + ".genSrcDir"; //$NON-NLS-1$
-	public static final String APT_PROCESSOROPTIONS = APT_STRING_BASE + ".processorOptions"; //$NON-NLS-1$
-	
-	// Used in preference to indicate null value for processor option
-	public static final String APT_NULLVALUE = APT_STRING_BASE + ".NULLVALUE"; //$NON-NLS-1$
-
-	public static final String DEFAULT_GENERATED_SOURCE_FOLDER_NAME = "__generated_src"; //$NON-NLS-1$
-	
-	public static Map<String,String> DEFAULT_OPTIONS_MAP;
-	
-	static {
-		Map<String,String> options = new HashMap<String,String>();
-		options.put(AptPreferenceConstants.APT_ENABLED, "false"); //$NON-NLS-1$
-		options.put(AptPreferenceConstants.APT_GENSRCDIR, DEFAULT_GENERATED_SOURCE_FOLDER_NAME);
-		options.put(AptPreferenceConstants.APT_PROCESSOROPTIONS, ""); //$NON-NLS-1$
-		DEFAULT_OPTIONS_MAP = Collections.unmodifiableMap(options);
-	}
-	
-	/**
-	 * Names of all apt settings that can be read from APT preference store.
-	 * Order is unimportant.  Note that not all "apt settings" may be in the
-	 * APT preference store - for instance, the factory path is kept in a
-	 * separate file.  This list only applies to the information available
-	 * from IPreferencesService.  See AptConfig for usage.
-	 */
-	public static final String[] OPTION_NAMES = {
-		APT_ENABLED,
-		APT_GENSRCDIR,
-		APT_PROCESSOROPTIONS
-	};
-	
-	/**
-	 * Number of apt settings in the APT preference store.
-	 */
-	public static final int NSETTINGS = OPTION_NAMES.length;
-}
-
-
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptUtil.java
deleted file mode 100644
index 88500b3..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/AptUtil.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import java.util.Collection;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.internal.AnnotationProcessorFactoryLoader;
-import org.eclipse.jdt.core.IJavaProject;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-public final class AptUtil {
-	
-	// Private c-tor to prevent construction
-	private AptUtil() {}
-	
-	/**
-	 * Returns the matching annotation processor factory for a given
-	 * annotation in a given project.
-	 * 
-	 * @param fullyQualifiedAnnotation the annotation for which a factory
-	 * is desired. This must be fully qualfied -- e.g. "org.eclipse.annotation.Foo"
-	 * @param project the project in which the annotation was found
-	 */
-	public static AnnotationProcessorFactory getFactoryForAnnotation(
-			final String fullyQualifiedAnnotation,
-			final IJavaProject jproj) {
-		
-		AnnotationProcessorFactoryLoader loader = AnnotationProcessorFactoryLoader.getLoader();
-		List<AnnotationProcessorFactory> factories = loader.getFactoriesForProject( jproj );
-		
-		for (AnnotationProcessorFactory factory : factories) {
-			Collection<String> supportedAnnos = factory.supportedAnnotationTypes();
-			for (String anno : supportedAnnos) {
-				if (anno.equals(fullyQualifiedAnnotation)) {
-					return factory;
-				}
-				else if ("*".equals(anno)) { //$NON-NLS-1$
-						return factory;
-				}
-				else if (anno.endsWith("*")) { //$NON-NLS-1$
-					final String prefix = anno.substring(0,
-							anno.length() - 2);
-					if (fullyQualifiedAnnotation.startsWith(prefix)) {
-						return factory;
-					}
-				}
-			}
-		}
-		
-		return null;
-	}
-	
-	
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/CharArrayAnnotationScanner.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/CharArrayAnnotationScanner.java
deleted file mode 100644
index 9aa580d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/CharArrayAnnotationScanner.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.IOException;
-
-public class CharArrayAnnotationScanner extends AnnotationScanner {
-
-	private final char[] _data;
-	private int index = 0;
-	
-	public CharArrayAnnotationScanner(final char[] data) {
-		_data = data;
-	}
-	
-	@Override
-	protected int getNext() throws IOException {
-		if (index == _data.length - 1) 
-			return -1;
-		return _data[index++];
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/EclipseMessager.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/EclipseMessager.java
deleted file mode 100644
index f7f1394..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/EclipseMessager.java
+++ /dev/null
@@ -1,160 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import org.eclipse.jdt.core.dom.ASTNode;
-
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * Extend the APT {@link Messager} to allow the registrating of diagnostics on ast nodes. 
- */
-public interface EclipseMessager extends Messager 
-{
-	/**
-	 * Problem ID for APT problems that do not have quick fixes
-	 */
-	public static final int APT_PROBLEM_ID = /*TODO: switch to IProblem.ExternalProblemNotFixable*/ 901;
-	
-	/** 
-	 * Problem ID for APT problems that have quick fixes.
-	 * If an APT plugin wants to write a quick-fix for their problems,
-	 * they should look for this ID.
-	 * 
-	 * @see org.eclipse.jdt.ui.text.java.IQuickAssistProcessor
-	 */
-	public static final int APT_QUICK_FIX_PROBLEM_ID = /* TODO: switch to IProblem.ExternalProblemFixable*/ 900;
-	
-	
-	/**
-	 * Print an error message on the given AST node. 
-	 * The AST node must came from the AST that is associated with the environment.
-	 * @param node
-	 * @param msg the error message
-	 * @throws IllegalArgumentException if <code>node</code> or <code>msg</code> is null.
-	 *         Also, if the node did not come from the ast in the environment.
-	 */	
-	void printError(ASTNode node, String msg);
-	
-	/**
-	 * Print a warning on the given AST node.
-	 * The AST node must came from the AST that is associated with the environment.
-	 * @param node
-	 * @param msg the warning message
-	 * @throws IllegalArgumentException if <code>node</code> or <code>msg</code> is null.
-	 * 		   Also, if the node did not come from the ast in the environment.
-	 */
-	void printWarning(ASTNode node, String msg);
-	
-	/**
-	 * Print a notice on the given AST node.
-	 * The AST node must came from the AST that is associated with the environment.
-	 * @param node
-	 * @param msg the warning message
-	 * @throws IllegalArgumentException if <code>node</code> or <code>msg</code> is null.
-	 *         Also, if the node did not come from the ast in the environment.
-	 */
-	void printNotice(ASTNode node, String msg);
-	
-	/**
-	 * Print an error including the given arguments for use
-	 * in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
-	 * registered with the provided pluginId and errorId will
-	 * then get called if the user attempt to quick-fix that error.
-	 * 
-	 * @param pos position of the error
-	 * @param msg message to display to the user
-	 * @param pluginId plugin which will provide an apt quick fix processor
-	 *        for this error. Cannot be null.
-	 * @param errorId a plugin-provided error code which will be meaningful
-	 *        to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
-	 *        Cannot be null.
-	 */
-	void printFixableError(SourcePosition pos, String msg, String pluginId, String errorId);
-	
-	/**
-	 * Print a warning including the given arguments for use
-	 * in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
-	 * registered with the provided pluginId and errorId will
-	 * then get called if the user attempt to quick-fix that warning.
-	 * 
-	 * @param pos position of the error
-	 * @param msg message to display to the user
-	 * @param pluginId plugin which will provide an apt quick fix processor
-	 *        for this error. Cannot be null.
-	 * @param errorId a plugin-provided error code which will be meaningful
-	 *        to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
-	 *        Cannot be null.
-	 */
-	void printFixableWarning(SourcePosition pos, String msg, String pluginId, String errorId);
-	
-	/**
-	 * Print a notice including the given arguments for use
-	 * in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
-	 * registered with the provided pluginId and errorId will
-	 * then get called if the user attempt to quick-fix that notice.
-	 * 
-	 * @param pos position of the error
-	 * @param msg message to display to the user
-	 * @param pluginId plugin which will provide an apt quick fix processor
-	 *        for this error. Cannot be null.
-	 * @param errorId a plugin-provided error code which will be meaningful
-	 *        to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
-	 *        Cannot be null.
-	 */
-	void printFixableNotice(SourcePosition pos, String msg, String pluginId, String errorId);
-	
-	/**
-	 * Print an error including the given arguments for use
-	 * in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
-	 * registered with the provided pluginId and errorId will
-	 * then get called if the user attempt to quick-fix that error.
-	 * 
-	 * @param msg message to display to the user
-	 * @param pluginId plugin which will provide an apt quick fix processor
-	 *        for this error. Cannot be null.
-	 * @param errorId a plugin-provided error code which will be meaningful
-	 *        to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
-	 *        Cannot be null.
-	 */
-	void printFixableError(String msg, String pluginId, String errorId);
-	
-	/**
-	 * Print a warning including the given arguments for use
-	 * in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
-	 * registered with the provided pluginId and errorId will
-	 * then get called if the user attempt to quick-fix that warning.
-	 * 
-	 * @param msg message to display to the user
-	 * @param pluginId plugin which will provide an apt quick fix processor
-	 *        for this error. Cannot be null.
-	 * @param errorId a plugin-provided error code which will be meaningful
-	 *        to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
-	 *        Cannot be null.
-	 */
-	void printFixableWarning(String msg, String pluginID, String errorId);
-	
-	/**
-	 * Print a notice including the given arguments for use
-	 * in quick-fixes. Any APT Quick Fix processors (@see IAPTQuickFixProcessor)
-	 * registered with the provided pluginId and errorId will
-	 * then get called if the user attempt to quick-fix that notice.
-	 * 
-	 * @param msg message to display to the user
-	 * @param pluginId plugin which will provide an apt quick fix processor
-	 *        for this error. Cannot be null.
-	 * @param errorId a plugin-provided error code which will be meaningful
-	 *        to the quick fix processor (e.g. "invalidAnnotationValue", etc.)
-	 *        Cannot be null.
-	 */
-	void printFixableNotice(String msg, String pluginID, String errorId);
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/IFactoryPath.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/IFactoryPath.java
deleted file mode 100644
index 1c1254d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/IFactoryPath.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.File;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-/**
- * A minimal API for manipulating the annotation processor factory path.
- * The factory path is an ordered list of containers, each of which has
- * certain attributes, e.g., isEnabled, runInBatchMode.
- * <p>
- * Clients should not implement this interface.
- */
-public interface IFactoryPath {
-	
-	/**
-	 * Add an external jar file (not in the workspace) to the head of the
-	 * factory path.  If the jar is already on the path, move it to the
-	 * head.  The jar will be added with default attributes, e.g.,
-	 * isEnabled=true, runInBatchMode=false.
-	 * @param jar a java.io.File representing the jar file.  Must not be null.
-	 */
-	public void addExternalJar(File jar);
-	
-	/**
-	 * Remove an external jar file from the factory path.
-	 * If the jar isn't on the path, do nothing.
-	 * @param jar must not be null.
-	 */
-	public void removeExternalJar(File jar);
-	
-	/**
-	 * Add a jar file in the workspace to the head of the
-	 * factory path.  If the jar is already on the path, move it to the
-	 * head.  The jar will be added with default attributes, e.g.,
-	 * isEnabled=true, runInBatchMode=false.
-	 * @param jarPath an Eclipse IPath representing the jar file; the path is
-	 * relative to the workspace root.  Must not be null.
-	 */
-	public void addWkspJar(IPath jarPath);
-	
-	/**
-	 * Remove a workspace-relative jar from the factory path.
-	 * If the jar isn't on the path, do nothing.
-	 * @param jarPath an Eclipse IPath representing the jar file; the path is
-	 * relative to the workspace root.  Must not be null.
-	 */
-	public void removeWkspJar(IPath jarPath);
-	
-	/**
-	 * Add a jar file in the workspace, specified with a classpath variable,
-	 * to the head of the factory path.  If the jar is already on the path, 
-	 * move it to the head.  The jar will be added with default attributes, 
-	 * e.g., isEnabled=true, runInBatchMode=false.
-	 * @param jarPath an Eclipse IPath representing the jar file; the first
-	 * segment of the path is assumed to be the variable name.  Must not
-	 * be null.
-	 */
-	public void addVarJar(IPath jarPath);
-	
-	/**
-	 * Remove from the factory path a jar file whose name is based on a 
-	 * classpath variable.  If the jar isn't on the path, do nothing.
-	 * @param jarPath an Eclipse IPath representing the jar file; the first
-	 * segment of the path is assumed to be the variable name.  Must not
-	 * be null.
-	 */
-	public void removeVarJar(IPath jarPath);
-	
-	/**
-	 * Enable a plugin on the factory path, and move it to the head of the
-	 * path.
-	 * @throws CoreException if the plugin is not installed.
-	 * @param pluginId the unique id of the processor plugin, e.g., 
-	 * "org.example.myProcessors"
-	 */
-	public void enablePlugin(String pluginId) throws CoreException;
-	
-	/**
-	 * Disable a plugin on the factory path.
-	 * If the plugin is not installed, do nothing.
-	 * @param pluginId the unique id of the processor plugin, e.g., 
-	 * "org.example.myProcessors"
-	 */
-	public void disablePlugin(String pluginId);
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/InputStreamAnnotationScanner.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/InputStreamAnnotationScanner.java
deleted file mode 100644
index 22345d6..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/InputStreamAnnotationScanner.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-public class InputStreamAnnotationScanner extends AnnotationScanner {
-
-	private final InputStream input;
-	
-	public InputStreamAnnotationScanner(final InputStream input) {
-		this.input = input;
-	}
-	
-	@Override
-	protected int getNext() throws IOException {
-		return input.read();
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ReaderAnnotationScanner.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ReaderAnnotationScanner.java
deleted file mode 100644
index d4cf90d..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ReaderAnnotationScanner.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.IOException;
-import java.io.InputStreamReader;
-
-public class ReaderAnnotationScanner extends AnnotationScanner {
-	
-	private final InputStreamReader _reader;
-	
-	public ReaderAnnotationScanner(final InputStreamReader reader) {
-		_reader = reader;
-	}
-
-	@Override
-	protected int getNext() throws IOException {
-		return _reader.read();
-	}
-}
diff --git a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ScannerUtil.java b/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ScannerUtil.java
deleted file mode 100644
index 6f732c7..0000000
--- a/org.eclipse.jdt.apt.core/src/org/eclipse/jdt/apt/core/util/ScannerUtil.java
+++ /dev/null
@@ -1,145 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.core.util;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.internal.env.ProcessorEnvImpl;
-import org.eclipse.jdt.core.IBuffer;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.ToolFactory;
-import org.eclipse.jdt.core.compiler.IScanner;
-import org.eclipse.jdt.core.compiler.ITerminalSymbols;
-import org.eclipse.jdt.core.compiler.InvalidInputException;
-
-public class ScannerUtil {
-
-	/**
-	 * scan the source code to see if there are any annotation tokens
-	 */
-	public static boolean hasAnnotationInstance( IFile f ) {
-		
-		InputStreamReader reader = null;
-		InputStream input = null;
-		try {
-			AnnotationScanner scanner;
-			// If this is a single byte encoding, we can deal directly 
-			// with the bytes, which is *much* faster
-			if (SINGLE_BYTE_ENCODINGS.contains(f.getCharset())) {
-				input = ProcessorEnvImpl.getInputStream(f);
-				scanner = new InputStreamAnnotationScanner(input);
-			}
-			else {
-				reader = ProcessorEnvImpl.getFileReader( f );
-				scanner = new ReaderAnnotationScanner(reader);
-			}
-			return scanner.containsAnnotations();
-		}
-		catch( Exception ioe ) {
-			return false;
-		}
-		finally {
-			if (reader != null) { try {reader.close();} catch (IOException ioe) {} }
-			if (input != null) { try {input.close();} catch (IOException ioe) {} }
-		}
-	}
-	
-	
-	public static boolean hasAnnotationInstance( ICompilationUnit cu ) {
-		try {
-			IBuffer b = cu.getBuffer();
-			if ( b == null )
-				return false;
-			char[] source = b.getCharacters();
-			return hasAnnotationInstance( source );
-		}
-		catch( JavaModelException jme ) {
-			return false;
-		}
-	}
-
-	
-	public static boolean hasAnnotationInstance( char[] source ) {
-		try {		
-			if ( source == null )
-				return false;
-			IScanner scanner = ToolFactory.createScanner( 
-				false, false, false, JavaCore.VERSION_1_5 );
-			scanner.setSource( source );
-			int token = scanner.getNextToken();
-			while ( token != ITerminalSymbols.TokenNameEOF ) {
-				token = scanner.getNextToken();
-				if ( token == ITerminalSymbols.TokenNameAT )
-				{
-					//
-					// found an @ sign, see if next token is "interface"
-					// @interface is an annotation decl and not an annotation
-					// instance.  
-					//
-					token = scanner.getNextToken();
-					if ( token != ITerminalSymbols.TokenNameinterface )
-						return true;
-				}
-			}
-			return false;
-		}
-		catch( InvalidInputException iie )
-		{
-			// lex error, so report false
-			return false;
-		}
-		catch( Exception e )
-		{
-			AptPlugin.log(e, "Failure scanning source: \n" + new String(source)); //$NON-NLS-1$
-			// TODO:  deal with this exception
-			return false;
-		}
-	}
-	
-	private static final String[] SINGLE_BYTE_ENCODING_ARRAY = {
-		"ASCII", //$NON-NLS-1$
-		"Cp1250", //$NON-NLS-1$
-		"Cp1251", //$NON-NLS-1$
-		"Cp1252", //$NON-NLS-1$
-		"Cp1253", //$NON-NLS-1$
-		"Cp1254", //$NON-NLS-1$
-		"Cp1257", //$NON-NLS-1$
-		"ISO8859_1", //$NON-NLS-1$
-		"ISO8859_2", //$NON-NLS-1$
-		"ISO8859_4", //$NON-NLS-1$
-		"ISO8859_5", //$NON-NLS-1$
-		"ISO8859_7", //$NON-NLS-1$
-		"ISO8859_9", //$NON-NLS-1$
-		"ISO8859_13", //$NON-NLS-1$
-		"ISO8859_15", //$NON-NLS-1$
-		"UTF8" //$NON-NLS-1$
-	};
-	
-	private static final Set<String> SINGLE_BYTE_ENCODINGS = 
-		new HashSet<String>(SINGLE_BYTE_ENCODING_ARRAY.length);
-		
-	static {
-		for (String encoding : SINGLE_BYTE_ENCODING_ARRAY) {
-			SINGLE_BYTE_ENCODINGS.add(encoding);
-		}
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/.classpath b/org.eclipse.jdt.apt.tests/.classpath
deleted file mode 100644
index a0c1a7d..0000000
--- a/org.eclipse.jdt.apt.tests/.classpath
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry output="binext" kind="src" path="srcext"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JRE 1.5.0"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.jdt.apt.tests/.cvsignore b/org.eclipse.jdt.apt.tests/.cvsignore
deleted file mode 100755
index d30794a..0000000
--- a/org.eclipse.jdt.apt.tests/.cvsignore
+++ /dev/null
@@ -1,2 +0,0 @@
-bin
-binext
diff --git a/org.eclipse.jdt.apt.tests/.project b/org.eclipse.jdt.apt.tests/.project
deleted file mode 100644
index c6eff21..0000000
--- a/org.eclipse.jdt.apt.tests/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt.apt.tests</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index dfbf52a..0000000
--- a/org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,12 +0,0 @@
-#Fri Oct 14 11:24:46 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 8bdd4c9..0000000
--- a/org.eclipse.jdt.apt.tests/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Tue Jun 28 11:32:33 PDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/org.eclipse.jdt.apt.tests/build.properties b/org.eclipse.jdt.apt.tests/build.properties
deleted file mode 100644
index cb94525..0000000
--- a/org.eclipse.jdt.apt.tests/build.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-source.apt.jar = src/, \
-				srcext/
-output.apt.jar = bin/
-bin.includes = plugin.xml,\
-               test.xml,\
-               perf-test-project.zip,\
-               bin/,\
-               binext/,\
-               srcext/,\
-               src/
-jars.compile.order = apt.jar
diff --git a/org.eclipse.jdt.apt.tests/plugin.xml b/org.eclipse.jdt.apt.tests/plugin.xml
deleted file mode 100644
index f4a2371..0000000
--- a/org.eclipse.jdt.apt.tests/plugin.xml
+++ /dev/null
@@ -1,86 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin
-   id="org.eclipse.jdt.apt.tests"
-   name="APT Tests"
-   version="1.0.0"
-
-   class="org.eclipse.jdt.apt.tests.plugin.AptTestsPlugin">
-   <runtime>
-      <library name="apt.jar">
-         <export name="*"/>
-      </library>
-   </runtime>
-   <requires>
-      <import plugin="org.junit"/>
-      <import plugin="org.eclipse.jdt.apt.core"/>
-      <import plugin="org.eclipse.jdt.apt.ui"/>
-      <import plugin="org.eclipse.jdt.core"/>
-      <import plugin="org.eclipse.jdt.core.tests.builder"/>
-      <import plugin="org.eclipse.jdt.core.tests.compiler"/>
-      <import plugin="org.eclipse.jdt.core.tests.model"/>
-      <import plugin="org.eclipse.jdt.core.tests.performance"/>
-      <import plugin="org.eclipse.core.resources"/>
-      <import plugin="org.eclipse.core.runtime"/>
-      <import plugin="org.eclipse.test.performance"/>
-   </requires>
-
-     <extension
-         point="org.eclipse.jdt.apt.core.annotationProcessorFactory">
-      <factories enableDefault="true">
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldWildcardAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.extradependency.ExtraDependencyAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.noop.NoOpAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorTestAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.nestedhelloworld.NestedHelloWorldAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.readannotation.ReadAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorDeclarationTestAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorUtilTestAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.valueconversion.ValueConversionProcessorFactory">
-	      </factory>
-       <factory class="org.eclipse.jdt.apt.tests.annotations.readAnnotationType.ReadAnnotationTypeProcessorFactory"/>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.filegen.FileGenLocationAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.filegen.FirstGenAnnotationProcessorFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.filegen.SecondGenAnnotationProcessorFactory">
-	      </factory>
-          <factory 
-             class="org.eclipse.jdt.apt.tests.annotations.messager.MessagerAnnotationProcessorFactory">
-          </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.aptrounding.Round1GenAnnotationFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.aptrounding.Round2GenAnnotationFactory">
-	      </factory>
-	      <factory
-	         class="org.eclipse.jdt.apt.tests.annotations.mirrortest.DefaultConstantAnnotationFactory">
-	      </factory>
-	   </factories>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APITests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APITests.java
deleted file mode 100644
index aafe226..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APITests.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.ILogListener;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.util.AptUtil;
-import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;
-import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotationProcessorFactory;
-import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldWildcardAnnotationProcessorFactory;
-import org.eclipse.jdt.apt.tests.annotations.messager.MessagerAnnotationProcessor;
-import org.eclipse.jdt.apt.tests.annotations.messager.MessagerCodeExample;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.tests.builder.Problem;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-public class APITests extends APTTestBase {
-	
-	private class LogListener implements ILogListener {
-		private final List<IStatus> _messages = new ArrayList<IStatus>();
-		
-		public void logging(IStatus status, String plugin) {
-			_messages.add(status);
-		}
-		
-		public void clear() {
-			_messages.clear();
-		}
-		
-		public List<IStatus> getList() {
-			return _messages;
-		}
-	}
-	
-	private LogListener _logListener;
-	
-	public APITests(final String name) {
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( APITests.class );
-	}
-
-	@Override
-	public void setUp() throws Exception {
-		super.setUp();
-		
-		_logListener = new LogListener();
-		AptPlugin.getPlugin().getLog().addLogListener(_logListener);
-	}
-	
-	@Override
-	protected void tearDown() throws Exception {
-		super.tearDown();
-		AptPlugin.getPlugin().getLog().removeLogListener(_logListener);
-		_logListener = null;
-	}
-	
-	public void testAptUtil() throws Exception {
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		
-		// Check getting a known annotation
-		AnnotationProcessorFactory factory = 
-			AptUtil.getFactoryForAnnotation(HelloWorldAnnotation.class.getName(), jproj);
-		assertEquals(factory.getClass(), HelloWorldAnnotationProcessorFactory.class);
-		
-		// Check getting an annotation with a wildcard
-		factory = 
-			AptUtil.getFactoryForAnnotation(HelloWorldAnnotation.class.getName() + "qwerty", jproj); //$NON-NLS-1$
-		assertEquals(factory.getClass(), HelloWorldWildcardAnnotationProcessorFactory.class);
-	}
-	
-	public void testMessagerAPI() throws Exception {
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		IPath code = env.addClass(srcRoot, MessagerCodeExample.CODE_PACKAGE, MessagerCodeExample.CODE_CLASS_NAME, MessagerCodeExample.CODE1);
-		Problem prob1 = new Problem("", MessagerAnnotationProcessor.PROBLEM_TEXT_WARNING, code, //$NON-NLS-1$ 
-				MessagerCodeExample.WARNING_START,
-				MessagerCodeExample.WARNING_END); 
-		Problem prob2 = new Problem("", MessagerAnnotationProcessor.PROBLEM_TEXT_ERROR, code, //$NON-NLS-1$
-				MessagerCodeExample.ERROR_START,
-				MessagerCodeExample.ERROR_END); 
-		Problem[] problems = new Problem[] { prob1, prob2 };
-		
-		// Code example with info, warning, and error messages
-		_logListener.clear();
-		fullBuild( project.getFullPath() );
-		expectingOnlySpecificProblemsFor(code, problems, true);
-		checkMessagerAnnotationLogEntry(
-				MessagerAnnotationProcessor.PROBLEM_TEXT_INFO, 
-				MessagerCodeExample.INFO_START,
-				MessagerCodeExample.INFO_END);
-
-		// Code example with info and warning messages
-		env.removeClass(code, MessagerCodeExample.CODE_CLASS_NAME);
-		code = env.addClass(srcRoot, MessagerCodeExample.CODE_PACKAGE, MessagerCodeExample.CODE_CLASS_NAME, MessagerCodeExample.CODE2);
-		_logListener.clear();
-		fullBuild( project.getFullPath() );
-		problems = new Problem[] { prob1 };
-		expectingOnlySpecificProblemsFor(code, problems, true);
-		checkMessagerAnnotationLogEntry(
-				MessagerAnnotationProcessor.PROBLEM_TEXT_INFO, 
-				MessagerCodeExample.INFO_START,
-				MessagerCodeExample.INFO_END);
-		
-		// Code example with only a warning message
-		env.removeClass(code, MessagerCodeExample.CODE_CLASS_NAME);
-		code = env.addClass(srcRoot, MessagerCodeExample.CODE_PACKAGE, MessagerCodeExample.CODE_CLASS_NAME, MessagerCodeExample.CODE3);
-		_logListener.clear();
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		checkMessagerAnnotationLogEntry(
-				MessagerAnnotationProcessor.PROBLEM_TEXT_INFO, 
-				MessagerCodeExample.INFO_START,
-				MessagerCodeExample.INFO_END);
-		
-		// Code example with no problems
-		env.removeClass(code, MessagerCodeExample.CODE_CLASS_NAME);
-		code = env.addClass(srcRoot, MessagerCodeExample.CODE_PACKAGE, MessagerCodeExample.CODE_CLASS_NAME, MessagerCodeExample.CODE4);
-		_logListener.clear();
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		assertTrue(_logListener.getList().isEmpty());
-	}
-	
-	/**
-	 * Check that there are exactly [targetCount] messages in the log that contain
-	 * [targetMsg] and also contain "starting offset=[start]; ending offset=[end]".
-	 */
-	private void checkMessagerAnnotationLogEntry(String targetMsg, int start, int end) {
-		int count = 0;
-		final String offsetMsg = "starting offset=" + start + "; ending offset=" + end;
-		for (IStatus status : _logListener.getList()) {
-			String logMessage = status.getMessage();
-			if (logMessage.contains(targetMsg) && logMessage.contains(offsetMsg)) {
-				++count;
-			}
-		}
-		assertEquals(1, count);
-	}
-	
-	/** 
-	 * Verifies that the given element has specifics problems and
-	 * only the given problems.
-	 * @see Tests#expectingOnlySpecificProblemsFor(IPath, Problem[]), and
-	 * @see Tests#expectingSpecificProblemsFor(IPath, Problem[], boolean).
-	 * Unfortunately this variant isn't implemented there.
-	 */
-	protected void expectingOnlySpecificProblemsFor(IPath root, Problem[] expectedProblems, boolean storeRange) {
-		if (DEBUG)
-			printProblemsFor(root);
-
-		Problem[] rootProblems = env.getProblemsFor(root, storeRange);
-	
-		for (int i = 0; i < expectedProblems.length; i++) {
-			Problem expectedProblem = expectedProblems[i];
-			boolean found = false;
-			for (int j = 0; j < rootProblems.length; j++) {
-				if(expectedProblem.equals(rootProblems[j])) {
-					found = true;
-					rootProblems[j] = null;
-					break;
-				}
-			}
-			if (!found) {
-				printProblemsFor(root);
-			}
-			assertTrue("problem not found: " + expectedProblem.toString(), found); //$NON-NLS-1$
-		}
-		for (int i = 0; i < rootProblems.length; i++) {
-			if(rootProblems[i] != null) {
-				printProblemsFor(root);
-				assertTrue("unexpected problem: " + rootProblems[i].toString(), false); //$NON-NLS-1$
-			}
-		}
-	}
-
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APTTestBase.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APTTestBase.java
deleted file mode 100644
index c4533ee..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/APTTestBase.java
+++ /dev/null
@@ -1,183 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests;
-
-import java.util.HashSet;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.core.tests.builder.Tests;
-import org.eclipse.jdt.core.tests.util.Util;
-
-/** 
- * Setup a project for common APT testing.
- */
-public abstract class APTTestBase extends Tests{
-	
-	public APTTestBase(final String name)
-	{
-		super(name);
-	}
-	
-	/**
-	 * Set up a basic project with the following properties.
-	 * - java compliances level is 1.5  
-	 * - 'src' is the source folder
-	 * - 'bin' is the output folder	  
-	 * - add java class library into teh build class path
-	 * - create and add an annotation jar.
-	 */
-	public void setUp() throws Exception
-	{	
-		ProcessorTestStatus.reset();
-		
-		super.setUp();
-
-		env.resetWorkspace();
-
-		// project will be deleted by super-class's tearDown() method
-		final String projectName = getProjectName();
-		if( projectName == null )
-			throw new IllegalStateException();
-		IPath projectPath = env.addProject( getProjectName(), "1.5" );
-		env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-		//fullBuild( projectPath );
-
-		// remove old package fragment root so that names don't collide
-		env.removePackageFragmentRoot( projectPath, "" ); //$NON-NLS-1$
-		env.addPackageFragmentRoot( projectPath, "src" ); //$NON-NLS-1$
-		env.setOutputFolder( projectPath, "bin" ); //$NON-NLS-1$
-		
-		AptConfig.setEnabled(null, true);
-		TestUtil.createAndAddAnnotationJar( env.getJavaProject( projectPath ) );
-	}
-	
-	protected void tearDown()
-		throws Exception
-	{
-		AptPlugin.trace("Tearing down " + getProjectName() );
-		super.tearDown();
-	}
-	
-	public String getProjectName()
-	{
-		return this.getClass().getName() + "Project"; //$NON-NLS-1$
-	}
-
-	public IPath getSourcePath()
-	{
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "src" ); //$NON-NLS-1$
-		IPath srcRoot = srcFolder.getFullPath();
-		return srcRoot;
-	}
-	
-	private String concate(String[] messages){
-		final int len = messages == null ? 0 : messages.length;
-		StringBuilder buffer = new StringBuilder();
-		for(int i=0; i<len; i++ ){
-			buffer.append(messages[i]);
-			buffer.append('\n');
-		}
-		return buffer.toString();
-	}
-	
-	private String concate(IMarker[] markers){
-		final int len = markers == null ? 0 : markers.length;
-		StringBuilder buffer = new StringBuilder();
-		for(int i=0; i<len; i++ ){
-			try{
-				buffer.append(markers[i].getAttribute(IMarker.MESSAGE));
-			}
-			catch(CoreException ce){
-				assertTrue("unexpected core exception" + ce.getMessage(), false); //$NON-NLS-1$
-			}
-			buffer.append('\n');
-		}
-		return buffer.toString();
-	}
-	
-	protected void expectingMarkers(String[] messages)
-	{	
-		final IMarker[] markers = getAPTBuildMarkerFor(env.getWorkspaceRootPath());
-		final Set<String> expectedMessages = new HashSet<String>();
-		for(String msg : messages ){
-			expectedMessages.add(msg);
-		}
-		boolean fail = false;
-		try{
-			for( IMarker marker : markers ){
-				final String markerMsg = (String)marker.getAttribute(IMarker.MESSAGE);
-				if( expectedMessages.contains(markerMsg) )
-					expectedMessages.remove(markerMsg);
-				else{
-					fail = true;
-					break;
-				}
-			}
-			if( !expectedMessages.isEmpty() )
-				fail = true;
-		}catch(CoreException ce){
-			assertTrue("unexpected core exception" + ce.getMessage(), false); //$NON-NLS-1$
-		}
-		if( fail )
-			assertEquals(concate(messages), concate(markers));
-	}
-	
-	protected void expectingNoMarkers() {
-		expectingNoMarkers(env.getWorkspaceRootPath());
-	}
-	
-	protected void expectingNoMarkers(IPath path)
-	{
-		final IMarker[] markers = getAPTBuildMarkerFor(path);
-		
-		if( markers != null && markers.length != 0 ){
-			try{
-				assertTrue("unexpected marker(s) : " + markers[0].getAttribute(IMarker.MESSAGE), false); //$NON-NLS-1$
-			}
-			catch(CoreException ce){
-				assertTrue("unexpected core exception" + ce.getMessage(), false); //$NON-NLS-1$
-			}
-		}
-	}
-	
-	@SuppressWarnings("unchecked")
-	protected IMarker[] getAPTBuildMarkerFor(IPath path){
-		IResource resource;
-		if(path.equals(env.getWorkspaceRootPath())){
-			resource = env.getWorkspace().getRoot();
-		} else {
-			IProject p = env.getProject(path);
-			if(p != null && path.equals(p.getFullPath())) {
-				resource = env.getProject(path.lastSegment());
-			} else if(path.getFileExtension() == null) {
-				resource = env.getWorkspace().getRoot().getFolder(path);
-			} else {
-				resource = env.getWorkspace().getRoot().getFile(path);
-			}
-		}
-		try {
-			return resource.findMarkers("org.eclipse.jdt.apt.core.marker", true, IResource.DEPTH_INFINITE);
-		} catch(CoreException e){
-			return null;
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AnnotationValueConversionTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AnnotationValueConversionTests.java
deleted file mode 100644
index f7906ea..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AnnotationValueConversionTests.java
+++ /dev/null
@@ -1,433 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.core.tests.util.Util;
-
-public class AnnotationValueConversionTests extends APTTestBase 
-{
-	private int counter = 0;
-	private String projectName = null;
-	public AnnotationValueConversionTests(final String name) {
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( AnnotationValueConversionTests.class );
-	}
-	
-	public String getUniqueProjectName(){
-		projectName = AnnotationValueConversionTests.class.getName() + "Project" + counter; //$NON-NLS-1$
-		counter ++;
-		return projectName;
-	}
-	
-
-	public IPath getSourcePath() {
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "src" ); //$NON-NLS-1$
-		IPath srcRoot = srcFolder.getFullPath();
-		return srcRoot;
-	}
-	
-	public IPath getBinaryPath(){
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "binary" ); //$NON-NLS-1$
-		IPath lib = srcFolder.getFullPath();
-		return lib;
-	}
-	
-	public IPath getOutputPath(){
-		IProject project = env.getProject( getProjectName() );
-		IFolder binFolder = project.getFolder( "bin" ); //$NON-NLS-1$
-		IPath bin = binFolder.getFullPath();
-		return bin;
-	}
-	
-	private IProject setupTest() throws Exception
-	{				
-		ProcessorTestStatus.reset();
-		// project will be deleted by super-class's tearDown() method
-		IPath projectPath = env.addProject( getUniqueProjectName(), "1.5" ); //$NON-NLS-1$
-		env.setOutputFolder(projectPath, "bin"); //$NON-NLS-1$ 
-		env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-		fullBuild( projectPath );
-
-		// remove old package fragment root so that names don't collide
-		env.removePackageFragmentRoot( projectPath, "" ); //$NON-NLS-1$
-
-		env.addPackageFragmentRoot( projectPath, "src" ); //$NON-NLS-1$
-		return env.getProject(getProjectName());
-	}
-	
-	/**
-	 * Test conversion on byte. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testByteConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(b=(byte)0,\n" +
-			"				  s=(byte)0,\n" + 
-			"				  i=(byte)0,\n" +
-			"                 l=(byte)0,\n" +
-			"	 	 	      f=(byte)0,\n" +
-			"			      d=(byte)0,\n" +
-			"				  c=(byte)0)\n\n" + 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +
-			"		char c();  \n" +
-			"       byte b();  \n" +
-			"		short s(); \n" +
-			"		int i();   \n" +
-			"       long l();  \n" +
-			"		float f(); \n" +
-			"		double d();\n" +
-			"	}\n" +	
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/**
-	 * Test conversion on short. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testShortConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(b=(short)0,\n" +
-			"				  s=(short)0,\n" + 
-			"				  i=(short)0,\n" +
-			"                 l=(short)0,\n" +
-			"	 	 	      f=(short)0,\n" +
-			"			      d=(short)0,\n" +
-			"				  c=(short)0)\n\n" + 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +
-			"		char c();  \n" +
-			"       byte b();  \n" +
-			"		short s(); \n" +
-			"		int i();   \n" +
-			"       long l();  \n" +
-			"		float f(); \n" +
-			"		double d();\n" +
-			"	}\n" +	
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/**
-	 * Test conversion on char. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testCharConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(b=(char)0,\n" +
-			"				  s=(char)0,\n" + 
-			"				  i=(char)0,\n" +
-			"                 l=(char)0,\n" +
-			"	 	 	      f=(char)0,\n" +
-			"			      d=(char)0,\n" +
-			"				  c=(char)0)\n\n" + 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +
-			"		char c();  \n" +
-			"       byte b();  \n" +
-			"		short s(); \n" +
-			"		int i();   \n" +
-			"       long l();  \n" +
-			"		float f(); \n" +
-			"		double d();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/**
-	 * Test conversion on int. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testIntConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(b=(int)0,\n" +
-			"				  s=(int)0,\n" + 
-			"				  i=(int)0,\n" +
-			"                 l=(int)0,\n" +
-			"	 	 	      f=(int)0,\n" +
-			"			      d=(int)0,\n" +
-			"				  c=(int)0)\n\n" + 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +
-			"		char c();  \n" +
-			"       byte b();  \n" +
-			"		short s(); \n" +
-			"		int i();   \n" +
-			"       long l();  \n" +
-			"		float f(); \n" +
-			"		double d();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/**
-	 * Test conversion on long. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testLongConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(l=(long)0,\n" +			
-			"	 	 	      f=(long)0,\n" +
-			"			      d=(long)0)\n" +
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +		
-			"       long l();  \n" +
-			"		float f(); \n" +
-			"		double d();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/**
-	 * Test conversion on Float. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testFloatConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(f=(float)0,\n" +
-			"			      d=(float)0)\n" +
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +		
-			"		float f(); \n" +
-			"		double d();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/**
-	 * Test conversion on double. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testDoubleConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(d=(double)0)\n" +			 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +		
-			"		double d();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}	
-	
-	/**
-	 * Test conversion on double. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testAutoBoxing() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(bytes=(byte)0,\n" +
-			"				  shorts=(byte)0,\n" + 
-			"				  ints=(byte)0,\n" +
-			"                 longs=(byte)0,\n" +
-			"	 	 	      floats=(byte)0,\n" +
-			"			      doubles=(byte)0,\n" +
-			"				  chars=(byte)0)\n\n" + 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +
-			"		char[]   chars(); \n" +
-			"       byte[]   bytes(); \n" +
-			"		short[]  shorts();\n" +
-			"		int[]    ints();  \n" +
-			"       long[]   longs(); \n" +
-			"		float[]  floats();\n" +
-			"		double[] doubles();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}	
-	
-	/**
-	 * Test conversion on double. No boxing testing.
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testArrayElementConversion() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		IPath srcRoot = getSourcePath();		
-		
-		String content =  
-			"package sample; \n\n" + 
-			"@Test.Annotation(bytes=  {(byte)0,(byte)1}, \n" +
-			"				  shorts= {(byte)0,(byte)1},\n" + 
-			"				  ints=   {(byte)0,(byte)1},\n" +
-			"                 longs=  {(byte)0,(byte)1},\n" +
-			"	 	 	      floats= {(byte)0,(byte)1},\n" +
-			"			      doubles={(byte)0,(byte)1},\n" +
-			"				  chars=  {(byte)0,(byte)1})\n\n" + 
-			"public class Test {\n" +
-			"	public @interface Annotation\n" +
-			"	{\n" +
-			"		char[]   chars(); \n" +
-			"       byte[]   bytes(); \n" +
-			"		short[]  shorts();\n" +
-			"		int[]    ints();  \n" +
-			"       long[]   longs(); \n" +
-			"		float[]  floats();\n" +
-			"		double[] doubles();\n" +
-			"	}\n" +
-			"}\n";
-		
-		env.addClass( 
-				srcRoot, 
-				"sample", 
-				"Test",
-				content );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptBuilderTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptBuilderTests.java
deleted file mode 100644
index ad8b71d..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptBuilderTests.java
+++ /dev/null
@@ -1,537 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.core.tests.builder.Problem;
-import org.eclipse.jdt.core.tests.util.Util;
-
-public class AptBuilderTests extends APTTestBase
-{
-
-	public AptBuilderTests(String name)
-	{
-		super( name );
-	}
-
-	public static Test suite()
-	{
-		return new TestSuite( AptBuilderTests.class );
-	}
-
-	public void setUp() throws Exception
-	{
-		super.setUp();
-		
-		//
-		// project will be deleted by super-class's tearDown() method
-		// create a project with a src directory as the project root directory
-		//
-		IPath projectPath = env.addProject( getProjectName_ProjectRootAsSrcDir(), "1.5" );
-		env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-		fullBuild( projectPath );
-
-		// remove old package fragment root so that names don't collide
-		env.setOutputFolder( projectPath, "bin" ); //$NON-NLS-1$
-
-		TestUtil.createAndAddAnnotationJar( env
-			.getJavaProject( projectPath ) );
-		
-	}
-
-	public static String getProjectName_ProjectRootAsSrcDir()
-	{
-		return AptBuilderTests.class.getName() + "NoSrcProject"; //$NON-NLS-1$
-	}
-	
-	public IPath getSourcePath( String projectName )
-	{
-		if ( getProjectName_ProjectRootAsSrcDir().equals( projectName) )
-			return new Path( "/" + getProjectName_ProjectRootAsSrcDir() );
-		else
-		{
-			IProject project = env.getProject( getProjectName() );
-			IFolder srcFolder = project.getFolder( "src" ); //$NON-NLS-1$
-			IPath srcRoot = srcFolder.getFullPath();
-			return srcRoot;
-		}
-	}
-	public void testGeneratedFileInBuilder() throws Exception
-	{
-		_testGeneratedFileInBuilder( getProjectName() );
-	}
-	
-	/**
-	 *  Regresses Buzilla 103745 & 95661
-	 */
-
-	public void testGeneratedFileInBuilder_ProjectRootAsSourceDir() throws Exception
-	{
-		_testGeneratedFileInBuilder( getProjectName_ProjectRootAsSrcDir() );
-	}
-
-	@SuppressWarnings("nls")
-	private void _testGeneratedFileInBuilder( String projectName )
-	{
-		IProject project = env.getProject( projectName );
-		IPath srcRoot = getSourcePath( projectName );
-		
-		String code = "package p1;\n"
-			+ "//import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    //@HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		
-		IPath p1aPath = env.addClass( srcRoot, "p1", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			code );
-
-		fullBuild( project.getFullPath() );
-
-		expectingOnlyProblemsFor( p1aPath );
-		expectingOnlySpecificProblemFor( p1aPath, new Problem(
-			"A", "generatedfilepackage cannot be resolved", p1aPath ) ); //$NON-NLS-1$ //$NON-NLS-2$	
-
-		code = "package p1;\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    @HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		env.addClass( srcRoot, "p1", "A", code );
-		fullBuild( project.getFullPath() );
-
-		expectingOnlyProblemsFor( new IPath[0] );
-	}
-	
-	/**
-	 *  This test makes sure we run apt on generated files during build
-	 */
-
-	@SuppressWarnings("nls")
-	public void testNestedGeneratedFileInBuilder() throws Exception
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath( getProjectName() );
-		
-		String code = "package p1;\n"
-			+ "//import org.eclipse.jdt.apt.tests.annotations.nestedhelloworld.NestedHelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    //@NestedHelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		
-		IPath p1aPath = env.addClass( srcRoot, "p1", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			code );
-
-		fullBuild( project.getFullPath() );
-
-		expectingOnlyProblemsFor( p1aPath );
-		expectingOnlySpecificProblemFor( p1aPath, new Problem(
-			"A", "generatedfilepackage cannot be resolved", p1aPath ) ); //$NON-NLS-1$ //$NON-NLS-2$	
-
-		code = "package p1;\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.nestedhelloworld.NestedHelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    @NestedHelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		env.addClass( srcRoot, "p1", "A", code );
-		fullBuild( project.getFullPath() );
-
-		expectingOnlyProblemsFor( new IPath[0] );
-	}
-		
-	
-	/**
-	 *   This test makes sure that our extra-dependency stuff is hooked up in the build.  
-	 *   Specifically, we test to make sure that Extra dependencies only appear when 
-	 *   an annotation processor looks up a type by name.  We also test that expected
-	 *   build output is there because of the dependency.
-	 */
-
-	@SuppressWarnings("nls")	
-	public void testExtraDependencies()
-	{
-		String codeA = "package p1.p2.p3.p4;\n"
-			+  "public class A { B b; D d; }";
-		
-		String codeB1 = "package p1.p2.p3.p4;\n"
-			+  "public class B { }";
-		
-		String codeB2 = "package p1.p2.p3.p4;\n"
-			+  "public class B { public static void main( String[] argv ) {} }";
-		
-		String codeC = "package p1.p2.p3.p4;\n"
-			+  "public class C { }";
-		
-		String codeD = "package p1.p2.p3.p4;\n"
-			+  "public class D { }";
-		 
-		String codeE = "package p1.p2.p3.p4;\n"
-			+  "public class E { }";
-		
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath( getProjectName() );
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			codeA );
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			codeB1 );
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "C", //$NON-NLS-1$ //$NON-NLS-2$
-			codeC );
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "D", //$NON-NLS-1$ //$NON-NLS-2$
-			codeD );
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "E", //$NON-NLS-1$ //$NON-NLS-2$
-			codeE );
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		// touch B - make sure its public shape changes.
-		env.addClass( srcRoot, "p1.p2.p3.p4", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			codeB2 );
-		
-		incrementalBuild( project.getFullPath() );
-		expectingNoProblems();
-		expectingCompiledClasses(new String[]{"p1.p2.p3.p4.B", "p1.p2.p3.p4.A"}); //$NON-NLS-1$ //$NON-NLS-2$
-		expectingCompilingOrder(new String[]{"p1.p2.p3.p4.B", "p1.p2.p3.p4.A"}); //$NON-NLS-1$ //$NON-NLS-2$
-
-		//
-		//  Now have p1.p2.p3.p4.A w/ an anontation whose processor looks up p1.p2.p3.p4.C by name 
-		//
-		
-		// new code for A with an annotation processor that should introduce a dep on C
-		codeA = "package p1.p2.p3.p4;\n"
-			+  "import org.eclipse.jdt.apt.tests.annotations.extradependency.ExtraDependencyAnnotation;" + "\n" 
-			+  "@ExtraDependencyAnnotation" + "\n" 
-			+  "public class A { B b; D d; }";
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			codeA );
-		env.addClass( srcRoot, "p1.p2.p3.p4", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			codeB1 );
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		// touch B
-		env.addClass( srcRoot, "p1.p2.p3.p4", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			codeB2 );
-		
-		incrementalBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		//
-		// Note that p1.p2.p3.p4.A is showing up twice because it has annotations, and we need to 
-		// parse the source, parsing runs through the compiler, and this registers the 
-		// file a second time with the Compiler#DebugRequestor 
-		//
-		expectingCompiledClasses(new String[]{"p1.p2.p3.p4.B", "p1.p2.p3.p4.A", "p1.p2.p3.p4.A", "p1.p2.p3.p4.C"}); //$NON-NLS-1$ //$NON-NLS-2$
-		expectingCompilingOrder(new String[]{"p1.p2.p3.p4.B", "p1.p2.p3.p4.A", "p1.p2.p3.p4.C", "p1.p2.p3.p4.A"}); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		//
-		// now make sure that p1.p2.p3.p4.C is not compiled when A uses NoOp Annotation
-		//
-		
-		// new code for A with an annotation processor that should introduce a dep on C
-		codeA = "package p1.p2.p3.p4;\n"
-			+  "import org.eclipse.jdt.apt.tests.annotations.noop.NoOpAnnotation;" + "\n" 
-			+  "@NoOpAnnotation" + "\n" 
-			+  "public class A { B b; D d; }";
-		
-		env.addClass( srcRoot, "p1.p2.p3.p4", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			codeA );
-		env.addClass( srcRoot, "p1.p2.p3.p4", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			codeB1 );
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		// touch B
-		env.addClass( srcRoot, "p1.p2.p3.p4", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			codeB2 );
-		
-		incrementalBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		//
-		// Note that p1.p2.p3.p4.A is showing up twice because it has annotations, and we need to 
-		// parse the source, parsing runs through the compiler, and this registers the 
-		// file a second time with the Compiler#DebugRequestor 
-		//
-		expectingCompiledClasses(new String[]{"p1.p2.p3.p4.B", "p1.p2.p3.p4.A", "p1.p2.p3.p4.A" }); //$NON-NLS-1$ //$NON-NLS-2$
-		expectingCompilingOrder(new String[]{"p1.p2.p3.p4.B", "p1.p2.p3.p4.A", "p1.p2.p3.p4.A" }); //$NON-NLS-1$ //$NON-NLS-2$
-	}
-
-	/**
-	 *   Test that we do not recompile generated files that are
-	 *   not changed even as their parent is modified.
-	 */
-
-	@SuppressWarnings("nls")
-	public void testCaching()
-	{
-		String code = "package p1;\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    @HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" 
-			+ "    }" 
-			+ "\n" 
-			+ "}" 
-			+ "\n";
-		
-		String modifiedCode = "package p1;\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    @HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" 
-			+ "    }" 
-			+ "\n" 
-			+ "    public static void otherMethod()" + "\n" + "    {"
-			+ "        System.out.println();\n"
-			+ "    }"
-			+ "}" 
-			+ "\n";
-		
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath( getProjectName() );
-		
-		env.addClass( srcRoot, "p1", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			code );
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		expectingCompiledClasses(new String[] {"p1.A", "p1.A", "generatedfilepackage.GeneratedFileTest"}); //$NON-NLS-1 //$NON_NLS-2$
-		
-		// touch A - make sure its public shape changes.
-		env.addClass( srcRoot, "p1", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			modifiedCode );
-		incrementalBuild( project.getFullPath() );
-		expectingNoProblems();
-		expectingCompiledClasses(new String[]{"p1.A", "p1.A"}); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-	}
-
-	/**
-	 * This test makes sure that we delete generated files when the parent file 
-	 * is deleted.  We also make sure that multi-parent support is working.
-	 */
-
-	@SuppressWarnings("nls")
-	public void testDeletedParentFile() throws Exception
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath( getProjectName() );
-
-		String a1Code = "package p1; " + "\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n"
-			+ "@HelloWorldAnnotation" + "\n"
-			+ "public class A1 {}";
-		String a2Code = "package p1; " + "\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n"
-			+ "@HelloWorldAnnotation" + "\n"
-			+ "public class A2 {}";
-		String bCode = "package p1; " + "\n"
-			+ "public class B { generatedfilepackage.GeneratedFileTest gft; }";
-
-		IPath p1a1Path = env.addClass( srcRoot, "p1", "A1", //$NON-NLS-1$ //$NON-NLS-2$
-			a1Code );
-		IPath p1a2Path = env.addClass( srcRoot, "p1", "A2", //$NON-NLS-1$ //$NON-NLS-2$
-			a2Code );
-		IPath p1bPath = env.addClass( srcRoot, "p1", "B", //$NON-NLS-1$ //$NON-NLS-2$
-			bCode );
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		// now delete file A1 and make sure we still have no problems
-		env.removeFile( p1a1Path );
-		
-		// sleep to let the resource-change event fire
-		sleep( 1000 );
-		
-		incrementalBuild( project.getFullPath() );
-		
-		expectingNoProblems();
-		
-		// now delete file A2 and make sure we have a problem on B
-		env.removeFile( p1a2Path );
-
-		// sleep to let the resource-change event fire
-		sleep( 1000 );
-
-		incrementalBuild( project.getFullPath() );
-		expectingOnlyProblemsFor( p1bPath );
-		expectingOnlySpecificProblemFor( p1bPath, new Problem(
-			"B", "generatedfilepackage cannot be resolved to a type", p1bPath ) ); //$NON-NLS-1$ //$NON-NLS-2$	
-	}
-	
-	public void testStopGeneratingFileInBuilder_FullBuild()
-	{
-		internalTestStopGeneratingFileInBuilder( true );
-	}
-
-	public void testStopGeneratingFileInBuilder_IncrementalBuild()
-	{
-		internalTestStopGeneratingFileInBuilder( false );
-	}
-	
-	@SuppressWarnings("nls")
-	private void internalTestStopGeneratingFileInBuilder( boolean fullBuild )
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath( getProjectName() );
-		
-		String code = "package p1;\n"
-			+ "//import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    //@HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		
-		IPath p1aPath = env.addClass( srcRoot, "p1", "A", //$NON-NLS-1$ //$NON-NLS-2$
-			code );
-
-		if ( fullBuild )
-			fullBuild( project.getFullPath() );
-		else
-			incrementalBuild( project.getFullPath() );
-		
-
-		expectingOnlyProblemsFor( p1aPath );
-		expectingOnlySpecificProblemFor( p1aPath, new Problem(
-			"A", "generatedfilepackage cannot be resolved", p1aPath ) ); //$NON-NLS-1$ //$NON-NLS-2$	
-
-		code = "package p1;\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    @HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		env.addClass( srcRoot, "p1", "A", code );
-		if ( fullBuild )
-			fullBuild( project.getFullPath() );
-		else
-			incrementalBuild( project.getFullPath() );
-		
-		expectingOnlyProblemsFor( new IPath[0] );
-
-		// do a full build again.  This is necessary because generating the file
-		// caused a classpath change, so the next inremental build will end up being
-		// a full build because of the classpath change
-		if ( ! fullBuild )
-			fullBuild( project.getFullPath() );
-		
-		// now remove the annotation.  The generated file should go away
-		// and we should see errors again
-		code = "package p1;\n"
-			+ "//import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;"
-			+ "\n" + "public class A " + "\n" + "{"
-			+ "    //@HelloWorldAnnotation" + "\n"
-			+ "    public static void main( String[] argv )" + "\n" + "    {"
-			+ "\n"
-			+ "        generatedfilepackage.GeneratedFileTest.helloWorld();"
-			+ "\n" + "    }" + "\n" + "}" + "\n";
-
-		env.addClass( srcRoot, "p1", "A", code );
-		
-		if ( fullBuild )
-			fullBuild( project.getFullPath() );
-		else
-			incrementalBuild( project.getFullPath() );
-		
-		expectingOnlyProblemsFor( p1aPath );
-		String expectedError;
-		if ( fullBuild )
-			expectedError = "generatedfilepackage cannot be resolved";
-		else
-			expectedError = "generatedfilepackage.GeneratedFileTest cannot be resolved to a type";
-
-		expectingOnlySpecificProblemFor( p1aPath, 
-					new Problem( "A", expectedError, p1aPath ) ); //$NON-NLS-1$ 
-	}
-	
-	public void testAPTRounding()
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath( getProjectName()  );
-		
-		String codeX = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.annotations.aptrounding.*;"
-			+ "\n@GenBean\n"
-			+ "public class X {}\n";
-		
-		env.addClass( srcRoot, "p1", "X", codeX );
-		
-		String codeY = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.annotations.aptrounding.*;"
-			+ "public class Y { @GenBean2 test.Bean _bean = null; }\n";
-		
-		env.addClass( srcRoot, "p1", "Y", codeY );
-
-		fullBuild( project.getFullPath() );
-		
-		expectingNoProblems();
-	}
-	
-	private static void sleep( long millis )
-	{	
-		long end = System.currentTimeMillis() + millis;
-		while ( millis > 0 )
-		{
-			try
-			{
-				Thread.sleep( millis );
-			}
-			catch ( InterruptedException ie )
-			{}
-			millis = end - System.currentTimeMillis();
-		}
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptReconcileTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptReconcileTests.java
deleted file mode 100644
index 5b96d70..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/AptReconcileTests.java
+++ /dev/null
@@ -1,442 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.jdt.apt.core.internal.generatedfile.GeneratedFileManager;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaModelException;
-import org.eclipse.jdt.core.WorkingCopyOwner;
-import org.eclipse.jdt.core.tests.model.ModifyingResourceTests;
-
-public class AptReconcileTests extends ModifyingResourceTests
-{
-	public AptReconcileTests(String name)
-	{
-		super( name );
-	}
-	
-	public static Test suite() {
-		return new TestSuite(AptReconcileTests.class);
-	}
-	
-	@SuppressWarnings("nls")
-	public void testGeneratedFile() throws Throwable
-	{
-		String fname = TEST_FOLDER + "/A.java";
-		try
-		{
-			
-			//
-			//  first make sure errors are present when the annotation
-			// is commented out
-			//
-			String codeWithErrors = "package test;" + "\n" +
-				"//import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" + 
-				"public class A " +  "\n" +
-				"{" +  "\n" +
-				"    //@HelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			createFile( fname, codeWithErrors );
-			this._problemRequestor = new ProblemRequestor();
-			
-			setUpWorkingCopy( fname, codeWithErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-				null );
-			
-			String expectedProblems = "----------\n" + 
-				"1. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage cannot be resolved\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"2. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage cannot be resolved\n" + 
-				"----------\n";
-			
-			assertProblems( "Unexpected problems", expectedProblems );
-			
-			
-			//
-			// now make sure errors go away when annotations are present
-			//
-			String codeWithOutErrors = "package test;" + "\n" +
-			    "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" + 
-			    "public class A " +  "\n" +
-			    "{" +  "\n" +
-			    "    @HelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			setWorkingCopyContents( codeWithOutErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-					null );
-			
-			assertProblems( "UnexpectedProblems", "----------\n----------\n" );
-			
-		}
-		catch( Throwable e )
-		{
-			e.printStackTrace();
-			throw e;
-		}
-		finally
-		{
-			deleteFile( fname );
-		}
-	}
-
-	
-	/**
-	 *   This tests an annotation that generates a file with an annotation that
-	 *   generates a file that should fix an error in the parent file.
-	 * @throws Throwable
-	 */
-	// This stopped working when reconcile changed to be in-memory only.  We should investigate why this stopped 
-	// (I think it is consistent with the reconcile/build model, just need to convince myself it is true.) 
-	@SuppressWarnings("nls")
-	public void disabled_testNestedGeneratedFile() throws Throwable
-	{
-		String fname = TEST_FOLDER + "/A.java";
-		try
-		{
-			
-			//
-			//  first make sure errors are present when the annotation
-			// is commented out
-			//
-			String codeWithErrors = "package test;" + "\n" +
-				"//import org.eclipse.jdt.apt.tests.annotations.nestedhelloworld.NestedHelloWorldAnnotation;" + "\n" + 
-				"public class A " +  "\n" +
-				"{" +  "\n" +
-				"    //@NestedHelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			createFile( fname, codeWithErrors );
-			this._problemRequestor = new ProblemRequestor();
-			
-			setUpWorkingCopy( fname, codeWithErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-				null );
-			
-			String expectedProblems = "----------\n" + 
-				"1. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage cannot be resolved\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"2. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage cannot be resolved\n" + 
-				"----------\n";
-			
-			assertProblems( "Unexpected problems", expectedProblems );
-			
-			
-			//
-			// now make sure errors go away when annotations are present
-			//
-			String codeWithOutErrors = "package test;" + "\n" +
-			    "import org.eclipse.jdt.apt.tests.annotations.nestedhelloworld.NestedHelloWorldAnnotation;" + "\n" + 
-			    "public class A " +  "\n" +
-			    "{" +  "\n" +
-			    "    @NestedHelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			setWorkingCopyContents( codeWithOutErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-					null );
-			
-			assertProblems( "UnexpectedProblems", "----------\n----------\n" );
-			
-		}
-		catch( Throwable e )
-		{
-			e.printStackTrace();
-			throw e;
-		}
-		finally
-		{
-			deleteFile( fname );
-		}
-	}
-
-
-	@SuppressWarnings("nls")
-	public void testStopGeneratingFileInReconciler() throws Exception
-	{
-		String fname = TEST_FOLDER + "/A.java";
-		try
-		{
-			
-			//
-			//  first make sure errors are present when the annotation
-			// is commented out
-			//
-			String codeWithErrors = "package test;" + "\n" +
-				"//import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" + 
-				"public class A " +  "\n" +
-				"{" +  "\n" +
-				"    //@HelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			createFile( fname, codeWithErrors );
-			this._problemRequestor = new ProblemRequestor();
-				
-			setUpWorkingCopy( fname, codeWithErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-				null );
-				
-			String expectedProblems = "----------\n" + 
-				"1. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage cannot be resolved\n" + 
-				"----------\n" + 
-				"----------\n" + 
-				"2. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage cannot be resolved\n" + 
-				"----------\n";
-				
-			assertProblems( "Unexpected problems", expectedProblems );
-					
-			//
-			// now make sure errors go away when annotations are present
-			//
-			String codeWithOutErrors = "package test;" + "\n" +
-			    "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" + 
-			    "public class A " +  "\n" +
-			    "{" +  "\n" +
-			    "    @HelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			setWorkingCopyContents( codeWithOutErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-					null );
-				
-			assertProblems( "UnexpectedProblems", "----------\n----------\n" );
-			
-			//
-			// now make sure errors come back when annotations are taken away
-			//
-			setWorkingCopyContents( codeWithErrors );
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-					null );
-				
-			// error will be different from first one because the package will
-			// exist since we only removed the file. 
-			String expectedProblems2 = 	"----------\n" + 
-				"1. ERROR in /org.eclipse.jdt.apt.tests.AptReconcileTestsProject/src/test/A.java (at line 8)\n" + 
-				"	generatedfilepackage.GeneratedFileTest.helloWorld();\n" + 
-				"	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n" + 
-				"generatedfilepackage.GeneratedFileTest cannot be resolved to a type\n" + 
-				"----------\n";
-			assertProblems( "Unexpected problems", expectedProblems2 );
-		}
-		catch (Exception e )
-		{
-			e.printStackTrace();
-			throw e;
-		}
-	}
-
-	/**
-	 * Tests that when a working copy is discarded, we clean up any cached data in the
-	 * GeneratedFileManager.
-	 */
-	@SuppressWarnings("nls")	
-	public void testDiscardParentWorkingCopy()
-	 	throws Throwable
-	{
-		String fname = TEST_FOLDER + "/A.java";
-		try
-		{
-			String codeWithOutErrors = "package test;" + "\n" +
-			    "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" + 
-			    "public class A " +  "\n" +
-			    "{" +  "\n" +
-			    "    @HelloWorldAnnotation" + "\n" + 
-				"    public static void main( String[] argv )" + "\n" +
-				"    {" + "\n" +
-				"        generatedfilepackage.GeneratedFileTest.helloWorld();" + "\n" +
-				"    }" + "\n" +
-				"}";
-
-			createFile( fname, codeWithOutErrors );
-			this._problemRequestor = new ProblemRequestor();
-			setUpWorkingCopy( fname, codeWithOutErrors );
-			
-			// use new problem requestor to remove any errors that occurred in setUpWorkingCopy()
-			this._problemRequestor = new ProblemRequestor();
-			this._workingCopy.reconcile( ICompilationUnit.NO_AST, true, null,
-				null );
-			
-			assertProblems( "UnexpectedProblems", "" );
-			
-			IProject p = _workingCopy.getJavaProject().getProject();
-			GeneratedFileManager gfm = GeneratedFileManager.getGeneratedFileManager( p );
-			
-			if ( !gfm.containsWorkingCopyMapEntriesForParent((IFile)_workingCopy.getResource()))
-				fail( "Expected to find map entries in GeneratedFileManager");
-			
-			_workingCopy.discardWorkingCopy();
-
-			if ( gfm.containsWorkingCopyMapEntriesForParent( (IFile)_workingCopy.getResource() ) )
-				fail( "Unexpected map entries in GeneratedFileManager!");
-		}
-		finally
-		{
-			deleteFile( fname );
-		}	
-	}
-
-	@SuppressWarnings("nls")
-	public void setUp() throws Exception 
-	{
-		try 
-		{
-			super.setUp();			
-			this._problemRequestor = new ProblemRequestor();
-
-			final IJavaProject project = createJavaProject( TEST_PROJECT,
-					new String[] { "src" }, new String[] { "JCL15_LIB" },
-					"bin", "1.5" );
-			project.getProject().refreshLocal( IResource.DEPTH_INFINITE, null );
-			AptConfig.setEnabled(project, true);
-			
-			// make sure generated source folder exists in the project.  This is necessary
-			// for reconcile-time type-generation to work
-			GeneratedFileManager.getGeneratedFileManager( project.getProject() );
-			
-			_classesJarFile = TestUtil.createAndAddAnnotationJar( project );
-
-			IFolder testFolder = createFolder( TEST_FOLDER );
-			if ( !testFolder.exists() )
-				testFolder.create( true, false, null );
-			
-			// disable auto-build.  We don't want build-time type-generation interfering with
-			// our reconcile tests.
-			String key = ResourcesPlugin.PREF_AUTO_BUILDING;
-			boolean value = false;
-			ResourcesPlugin.getPlugin().getPluginPreferences().setValue(key, value);
-		} 
-		catch ( Exception t ) 
-		{
-			t.printStackTrace();
-			throw t;
-		} 
-		catch ( Throwable t ) 
-		{
-			t.printStackTrace();
-			throw new RuntimeException( t ); 
-		}
-	}
-
-	public void tearDown() throws Exception
-	{
-		if( this._workingCopy != null )
-			this._workingCopy.discardWorkingCopy();
-
-		deleteFile( _classesJarFile );
-		deleteFolder( TEST_FOLDER );
-		deleteProject( TEST_PROJECT );
-		super.tearDown();
-	}
- 
-	/***************************************************************************
-	 * 
-	 * copied from ReconcilerTests...
-	 * 
-	 */
-
-	private void setWorkingCopyContents(String contents)
-		throws JavaModelException
-	{
-		this._workingCopy.getBuffer().setContents( contents );
-		this._problemRequestor.initialize( contents.toCharArray() );
-	}
-
-	private void setUpWorkingCopy(String path, String contents)
-		throws JavaModelException
-	{
-		if( this._workingCopy != null )
-			this._workingCopy.discardWorkingCopy();
-		this._workingCopy = getCompilationUnit( path ).getWorkingCopy(
-			new WorkingCopyOwner()
-			{}, this._problemRequestor, null );
-		setWorkingCopyContents( contents );
-		this._workingCopy.makeConsistent( null );
-	}
-
-	protected void assertProblems(String message, String expected)
-	{
-		assertProblems( message, expected, this._problemRequestor );
-	}
-
-	/** *********************************************************************** */
-
-
-	protected ICompilationUnit	_workingCopy;
-
-	protected ProblemRequestor	_problemRequestor;
-
-	public static final String	TEST_PROJECT	= AptReconcileTests.class.getName() + "Project"; //$NON-NLS-1$
-	
-	public static final String	TEST_FOLDER		= "/" + TEST_PROJECT //$NON-NLS-1$
-													+ "/src/test"; //$NON-NLS-1$
-	
-	private File				_classesJarFile;
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FactoryLoaderTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FactoryLoaderTests.java
deleted file mode 100644
index 76ac3c7..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FactoryLoaderTests.java
+++ /dev/null
@@ -1,144 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.core.util.IFactoryPath;
-import org.eclipse.jdt.apt.tests.external.annotations.classloader.ColorAnnotationProcessor;
-import org.eclipse.jdt.apt.tests.external.annotations.classloader.ColorTestCodeExample;
-import org.eclipse.jdt.apt.tests.external.annotations.loadertest.LoaderTestAnnotationProcessor;
-import org.eclipse.jdt.apt.tests.external.annotations.loadertest.LoaderTestCodeExample;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-
-/**
- * 
- */
-public class FactoryLoaderTests extends APTTestBase {
-	
-	private File _extJar; // external annotation jar
-	private IPath _extVarJar; // external annotation jar, as a classpath-var-relative path
-	
-	private final static String TEMPJARDIR_CPVAR = "FACTORYLOADERTEST_TEMP"; //$NON-NLS-1$
-	
-	public FactoryLoaderTests(String name)
-	{
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( FactoryLoaderTests.class );
-	}
-
-	public void setUp() throws Exception {
-		super.setUp();
-		
-		// project will be deleted by super-class's tearDown() method
-		IPath projectPath = env.getProject( getProjectName() ).getFullPath(); //$NON-NLS-1$
-		
-		_extJar = TestUtil.createAndAddExternalAnnotationJar(
-				env.getJavaProject( projectPath ));
-		// This file will be locked until GC takes care of unloading the
-		// annotation processor classes, so we can't delete it ourselves.
-		_extJar.deleteOnExit();
-		
-		// Create a classpath variable for the same jar file, so we can
-		// refer to it that way.
-		File canonicalJar = _extJar.getCanonicalFile();
-		IPath jarDir = new Path( canonicalJar.getParent() );
-		String extJarName = canonicalJar.getName();
-		IPath varPath = new Path( TEMPJARDIR_CPVAR );
-		_extVarJar = varPath.append( extJarName );
-		JavaCore.setClasspathVariable( TEMPJARDIR_CPVAR, jarDir, null );
-
-		IPath srcRoot = getSourcePath();
-		String code = LoaderTestCodeExample.CODE;
-		env.addClass(srcRoot, LoaderTestCodeExample.CODE_PACKAGE, LoaderTestCodeExample.CODE_CLASS_NAME, code);
-		
-		code = ColorTestCodeExample.CODE;
-		env.addClass(srcRoot, ColorTestCodeExample.CODE_PACKAGE, ColorTestCodeExample.CODE_CLASS_NAME, code);
-	}
-
-	public void testExternalJarLoader() throws Exception {
-		LoaderTestAnnotationProcessor.clearLoaded();
-		IProject project = env.getProject( getProjectName() );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		assertFalse(LoaderTestAnnotationProcessor.isLoaded());
-		
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		IFactoryPath ifp = AptConfig.getFactoryPath(jproj);
-		
-		// add _extJar to the factory list as an external jar, and rebuild.
-		ifp.addExternalJar(_extJar);
-		AptConfig.setFactoryPath(jproj, ifp);
-		
-		// rebuild and verify that the processor was loaded
-		LoaderTestAnnotationProcessor.clearLoaded();
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		assertTrue(LoaderTestAnnotationProcessor.isLoaded());
-		
-		// Verify that we were able to run the ColorAnnotationProcessor successfully
-		assertTrue(ColorAnnotationProcessor.wasSuccessful());
-		
-		// restore to the original
-		ifp.removeExternalJar(_extJar);
-		AptConfig.setFactoryPath(jproj, ifp);
-		
-		// rebuild and verify that the processor was not loaded.
-		LoaderTestAnnotationProcessor.clearLoaded();
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		assertFalse(LoaderTestAnnotationProcessor.isLoaded());
-		
-		// add _extJar to the factory list as a class-path-relative jar, and rebuild.
-		ifp.addVarJar(_extVarJar);
-		AptConfig.setFactoryPath(jproj, ifp);
-		
-		// rebuild and verify that the processor was loaded
-		LoaderTestAnnotationProcessor.clearLoaded();
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		assertTrue(LoaderTestAnnotationProcessor.isLoaded());
-		
-		// restore to the original
-		ifp.removeVarJar(_extVarJar);
-		AptConfig.setFactoryPath(jproj, ifp);
-		
-		// rebuild and verify that the processor was not loaded.
-		LoaderTestAnnotationProcessor.clearLoaded();
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		assertFalse(LoaderTestAnnotationProcessor.isLoaded());
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.core.tests.builder.Tests#tearDown()
-	 */
-	@Override
-	protected void tearDown() throws Exception {
-		JavaCore.removeClasspathVariable( TEMPJARDIR_CPVAR, null );
-		_extJar = null;
-		_extVarJar = null;
-		super.tearDown();
-	}
-	
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FileGenerationTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FileGenerationTests.java
deleted file mode 100644
index 85eab2c..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/FileGenerationTests.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.core.IJavaProject;
-
-public class FileGenerationTests extends APTTestBase {
-
-	public FileGenerationTests(final String name)
-	{
-		super(name);
-	}
-
-	public static Test suite()
-	{
-		return new TestSuite(FileGenerationTests.class);
-	}
-	
-	public void testFileGenPackages() throws Exception
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		
-		String code = 
-				"package test;" + "\n" +
-				"import org.eclipse.jdt.apt.tests.annotations.filegen.FileGenLocationAnnotation;" + "\n" +
-				"@FileGenLocationAnnotation" + "\n" +
-				"public class Test" + "\n" +
-				"{" + "\n" +
-				"}";
-
-		env.addClass(srcRoot, "test", "Test", code);
-
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-
-	public void testFileGenOverwrite() throws Exception
-	{
-		//IJavaProject jproj = env.getJavaProject( getProjectName() );
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-
-		String code = 
-			"package test;" + "\n" +
-			"import org.eclipse.jdt.apt.tests.annotations.filegen.FirstGenAnnotation;" + "\n" +
-			"@FirstGenAnnotation" + "\n" +
-			"public class Test" + "\n" +
-			"{" + "\n" +
-			"}";
-
-		env.addClass(srcRoot, "test", "Test", code);
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-
-	public void testFileGenAfterDirChange() throws Exception
-	{
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-
-		String code = 
-			"package test;" + "\n" +
-			"import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" +
-			"@HelloWorldAnnotation" + "\n" +
-			"public class Test" + "\n" +
-			"{" + "\n" +
-			"	generatedfilepackage.GeneratedFileTest gft;" + "\n" +
-			"}";
-
-		AptConfig.setGenSrcDir(jproj, "__foo_src");
-		env.addClass(srcRoot, "test", "Test", code);
-
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-
-		Map<String,String> options = AptConfig.getProcessorOptions(jproj);
-		String sourcepath = options.get("-sourcepath");
-		
-		assertTrue(sourcepath.contains("__foo_src"));
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	/*
-	 * disabled due to bug that prevents creation of a nested generated source directory
-	 */
-	public void testFileGenSubDir() throws Exception
-	{
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-
-		String code = 
-			"package test;" + "\n" +
-			"import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n" +
-			"@HelloWorldAnnotation" + "\n" +
-			"public class Test" + "\n" +
-			"{" + "\n" +
-			"	generatedfilepackage.GeneratedFileTest gft;" + "\n" +
-			"}";
-
-		AptConfig.setGenSrcDir(jproj, "gen/foo");
-		env.addClass(srcRoot, "test", "Test", code);
-
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/JavaVersionTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/JavaVersionTests.java
deleted file mode 100644
index 624c8f6..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/JavaVersionTests.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.CodeExample;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorTestAnnotationProcessor;
-import org.eclipse.jdt.core.tests.builder.Tests;
-import org.eclipse.jdt.core.tests.util.Util;
-
-/**
- * Test that processors do not get invoked on pre-1.5 projects
- */
-public class JavaVersionTests extends Tests {
-	
-	public JavaVersionTests(final String name) {
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( JavaVersionTests.class );
-	}
-
-	public void setUp() throws Exception {
-		super.setUp();
-		
-		// project will be deleted by super-class's tearDown() method
-		IPath projectPath = env.addProject( getProjectName(), "1.4" ); //$NON-NLS-1$
-		env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-		fullBuild( projectPath );
-
-		// remove old package fragment root so that names don't collide
-		env.removePackageFragmentRoot( projectPath, "" ); //$NON-NLS-1$
-
-		env.addPackageFragmentRoot( projectPath, "src" ); //$NON-NLS-1$
-		env.setOutputFolder( projectPath, "bin" ); //$NON-NLS-1$
-
-		TestUtil.createAndAddAnnotationJar( env
-			.getJavaProject( projectPath ) );
-	}
-	
-	public static String getProjectName() {
-		return JavaVersionTests.class.getName() + "Project"; //$NON-NLS-1$
-	}
-
-	public IPath getSourcePath() {
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "src" ); //$NON-NLS-1$
-		IPath srcRoot = srcFolder.getFullPath();
-		return srcRoot;
-	}
-	
-	/**
-	 * Runs the MirrorTestAnnotationProcessor, which contains
-	 * the actual tests
-	 */
-	public void testMirror() throws Exception {
-		MirrorTestAnnotationProcessor._processRun = false;
-		
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		
-		String code = CodeExample.CODE;
-
-		env.addClass( 
-				srcRoot, 
-				CodeExample.CODE_PACKAGE, 
-				CodeExample.CODE_CLASS_NAME,
-				code );
-
-		fullBuild( project.getFullPath() );
-		
-		assertFalse("Processor was run", MirrorTestAnnotationProcessor._processRun); //$NON-NLS-1$
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorDeclarationTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorDeclarationTests.java
deleted file mode 100644
index 25cf9ec..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorDeclarationTests.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorDeclarationCodeExample;
-
-public class MirrorDeclarationTests extends APTTestBase {
-
-	public MirrorDeclarationTests(final String name)
-	{
-		super(name);
-	}
-
-	public static Test suite()
-	{
-		return new TestSuite(MirrorDeclarationTests.class);
-	}
-	
-	public void setUp() throws Exception
-	{
-		super.setUp();
-		
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		String code = MirrorDeclarationCodeExample.CODE;
-		env.addClass(srcRoot, MirrorDeclarationCodeExample.CODE_PACKAGE, MirrorDeclarationCodeExample.CODE_CLASS_NAME, code);
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-	}
-	
-	public void testMirrorDeclaration() throws Exception
-	{
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-	public void testDefaultAndConstant() throws Exception
-	{	
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		String codeTrigger =
-			"package test;\n" +
-			"public @interface Trigger{}";
-		
-		env.addClass(srcRoot, "test", "Trigger", codeTrigger);
-		
-		String codeEntryPoint = "package test;\n" +
-								"@Trigger\n" +
-								"public class EntryPoint {\n" +
-								"    ClassWithNestedAnnotation nestedAnno;\n}";
-		
-		env.addClass(srcRoot, "test", "EntryPoint", codeEntryPoint);	
-		
-		String codeClassWithNestedAnnotation = 
-			"package test; \n" +
-			"public class ClassWithNestedAnnotation {\n" +
-			"	public final int FOUR = 4; \n " +
-			"	public @interface NestedAnnotation{\n" +
-			"		public enum Character{ \n" +
-			"			Winnie, Tiger, Piglet, Eore; \n" +
-			"		}\n"+
-			"		Character value() default Character.Eore; \n" +
-			"	}\n" +
-			"}";
-		
-		env.addClass(srcRoot, "test", "ClassWithNestedAnnotation", codeClassWithNestedAnnotation);
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorTests.java
deleted file mode 100644
index 1bd5338..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorTests.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.CodeExample;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorTestAnnotationProcessor;
-
-public class MirrorTests extends APTTestBase {
-	
-	public MirrorTests(final String name) {
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( MirrorTests.class );
-	}
-	
-	/**
-	 * Runs the MirrorTestAnnotationProcessor, which contains
-	 * the actual tests
-	 */
-	public void testMirror() throws Exception {
-		MirrorTestAnnotationProcessor._processRun = false;
-		
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		
-		String code = CodeExample.CODE;
-
-		env.addClass( 
-				srcRoot, 
-				CodeExample.CODE_PACKAGE, 
-				CodeExample.CODE_CLASS_NAME,
-				code );
-
-		fullBuild( project.getFullPath() );
-
-		expectingNoProblems();
-		
-		assertTrue("Processor was not run", MirrorTestAnnotationProcessor._processRun); //$NON-NLS-1$
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorUtilTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorUtilTests.java
deleted file mode 100644
index 640768f..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MirrorUtilTests.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorUtilTestAnnotationProcessor;
-import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorUtilTestCodeExample;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.tests.builder.Problem;
-
-public class MirrorUtilTests extends APTTestBase {
-
-	public MirrorUtilTests(final String name)
-	{
-		super(name);
-	}
-
-	public static Test suite()
-	{
-		return new TestSuite(MirrorUtilTests.class);
-	}
-	
-	public void setUp() throws Exception
-	{	
-		super.setUp();		
-		
-		IProject project = env.getProject( getProjectName() );
-		IJavaProject jproj = env.getJavaProject(project.getFullPath());
-		addEnvOptions(jproj);
-		IPath srcRoot = getSourcePath();
-		String code = MirrorUtilTestCodeExample.CODE;
-		env.addClass(srcRoot, MirrorUtilTestCodeExample.CODE_PACKAGE, MirrorUtilTestCodeExample.CODE_CLASS_NAME, code);
-		fullBuild( project.getFullPath() );
-		assertNoUnexpectedProblems();
-	}
-	
-	/**
-	 * Add options which the AnnotationProcessorEnvironment should see.
-	 * The options will be verified within the processor code.
-	 */
-	private void addEnvOptions(IJavaProject jproj) {
-		for (int i = 0; i < MirrorUtilTestAnnotationProcessor.ENV_KEYS.length; ++i) {
-			AptConfig.addProcessorOption(jproj, 
-					MirrorUtilTestAnnotationProcessor.ENV_KEYS[i], 
-					MirrorUtilTestAnnotationProcessor.ENV_VALUES[i]);
-		}
-	}
-
-	/**
-	 * 
-	 */
-	private void assertNoUnexpectedProblems() {
-		Problem[] problems = env.getProblems();
-		for (Problem problem : problems) {
-			if (problem.getMessage().startsWith("The field DeclarationsTestClass")) { //$NON-NLS-1$
-				continue;
-			}
-			fail("Found unexpected problem: " + problem); //$NON-NLS-1$
-		}
-	}
-	
-	public void testMirrorUtils() throws Exception
-	{
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MixedModeTesting.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MixedModeTesting.java
deleted file mode 100644
index a7a75de..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/MixedModeTesting.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests;
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPathUtil;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.IJavaProject;
-
-public class MixedModeTesting extends APTTestBase{
-	
-	private File _extJar; // external annotation jar	
-	
-	public MixedModeTesting(String name){
-		super(name);
-	}
-	
-	
-	public static Test suite()
-	{	
-		return new TestSuite( MixedModeTesting.class );
-	}
-	
-	public void setUp() throws Exception
-	{
-		super.setUp();
-		IJavaProject javaProj = env.getJavaProject( getProjectName() );
-		_extJar = TestUtil.createAndAddExternalAnnotationJar(javaProj);
-				
-		// This file will be locked until GC takes care of unloading the
-		// annotation processor classes, so we can't delete it ourselves.
-		_extJar.deleteOnExit();
-		
-		FactoryPath fp = (FactoryPath)AptConfig.getFactoryPath(javaProj);
-		FactoryContainer fc = FactoryPathUtil.newExtJarFactoryContainer(_extJar);
-		fp.addEntryToHead(fc, /*isEnabled=*/ true, /*runInBatchMode=*/ true);
-		AptConfig.setFactoryPath(javaProj, fp);
-	}
-	
-	/**
-	 * Only one batch processor is involved 
-	 * This test the processor environment and that it returns the correct
-	 * set of declared types.
-	 */	
-	public void testSimpleBatchProcessing() throws Exception
-	{	
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		
-		String codeA = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.external.annotations.batch.*;"
-			+ "\n@Batch\n"
-			+ "public class A {}\n";
-		
-		env.addClass( srcRoot, "p1", "A", codeA );
-		
-		String codeB = "package p1;\n"
-			+ "\n@Deprecated\n"
-			+ "public class B {}\n";
-		
-		env.addClass( srcRoot, "p1", "B", codeB );
-		
-		String codeC = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.external.annotations.batch.*;"
-			+ "\n@Batch\n"
-			+ "public class C {}\n";
-		
-		env.addClass( srcRoot, "p1", "C", codeC );
-		
-		// This one doesn't have annotations.
-		String codeD = "package p1; public class D{}";
-		env.addClass( srcRoot, "p1", "D", codeD );
-
-		fullBuild( project.getFullPath() );		
-		expectingNoProblems();
-		expectingMarkers(new String[]{"CompletedSuccessfully"});
-	}
-	
-	/**
-	 * What this tests test.
-	 * This makes sure the internal apt rounding occurs correctly in batch mode.
-	 * @throws CoreException
-	 */
-	public void testAPTRoundingInMixedMode0() throws CoreException
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		
-		String codeX = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.annotations.aptrounding.*;"
-			+ "\n@GenBean\n"
-			+ "public class X {}\n";
-		
-		env.addClass( srcRoot, "p1", "X", codeX );
-		
-		String codeY = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.annotations.aptrounding.*;"
-			+ "public class Y { @GenBean2 test.Bean _bean = null; }\n";
-		
-		env.addClass( srcRoot, "p1", "Y", codeY );
-		
-		String codeA = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.external.annotations.batch.*;"
-			+ "\n@Batch\n"
-			+ "public class A {}\n";
-		
-		env.addClass( srcRoot, "p1", "A", codeA );
-		
-		String codeB = "package p1;\n"
-			+ "\n@Deprecated\n"
-			+ "public class B {}\n";
-		
-		env.addClass( srcRoot, "p1", "B", codeB );
-		
-		String codeC = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.external.annotations.batch.*;"
-			+ "\n@Batch\n"
-			+ "public class C {}\n";
-		
-		env.addClass( srcRoot, "p1", "C", codeC );
-		
-		// This one doesn't have annotations.
-		String codeD = "package p1; public class D{}";
-		env.addClass( srcRoot, "p1", "D", codeD );
-
-		fullBuild( project.getFullPath() );
-		expectingMarkers(new String[]{"CompletedSuccessfully", "Called 2 times."});
-		
-		expectingNoProblems();
-		
-		// Now run it again to verify that the classloader was successfully bounced
-		fullBuild( project.getFullPath() );
-		expectingMarkers(new String[]{"CompletedSuccessfully", "Called 2 times."});
-		
-		expectingNoProblems();
-	}
-	
-	/* 
-	 * What this test tests.
-	 * There should be a total of 3 rounds. 
-	 * -The first round starts because of the "BatchGen" annotations.
-	 *  This round creates the gen.Class0 type
-	 * -The second round starts because of a batch processor being dispatched in a previous round
-	 * and a new type is generated. 
-	 *  This round creates the gen.Class1 type
-	 * -The third round starts for the exact same reason as round 2.
-	 *  This is a no-op round.
-	 */
-
-	public void testAPTRoundingInMixedMode1() throws CoreException
-	{
-		IProject project = env.getProject( getProjectName() );
-		IPath srcRoot = getSourcePath();
-		
-		String codeA = "package p1;\n"
-			+ "\n import org.eclipse.jdt.apt.tests.external.annotations.batch.*;"
-			+ "\n@BatchGen\n"
-			+ "public class A {" 
-			+ "   gen.Class0 clazz0;\n"
-			+ "   gen.Class1 clazz1;\n" 
-			+ "}\n";
-		
-		env.addClass( srcRoot, "p1", "A", codeA );
-		
-		// drop something to possibily fire off an incremental build
-		String codeB = "package p1;\n"
-			+ "public class B {}\n";
-		
-		env.addClass( srcRoot, "p1", "B", codeB );
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		expectingMarkers(new String[]{"Called the third time."});
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java
deleted file mode 100644
index 3c35bfa..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PerfTests.java
+++ /dev/null
@@ -1,161 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.zip.ZipInputStream;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.tests.builder.Problem;
-import org.eclipse.jdt.core.tests.builder.Tests;
-
-public class PerfTests extends Tests
-{
-	
-	private IPath projectPath;
-
-	public PerfTests(String name)
-	{
-		super( name );
-	}
-
-	public static Test suite()
-	{
-		return new TestSuite( PerfTests.class );
-	}
-
-	public void setUp() throws Exception
-	{
-		super.setUp();
-		
-		IWorkspace ws = env.getWorkspace();
-		IWorkspaceRoot root = ws.getRoot();
-		IPath path = root.getLocation();
-		File destRoot = path.toFile();
-		
-		URL platformURL = Platform.getBundle("org.eclipse.jdt.apt.tests").getEntry("/");  //$NON-NLS-1$//$NON-NLS-2$
-		File f = new File(Platform.asLocalURL(platformURL).getFile());
-		f = new File(f, "perf-test-project.zip"); //$NON-NLS-1$
-
-		
-		//InputStream in = PerfTests.class.getClassLoader().getResourceAsStream("perf-test-project.zip");
-		InputStream in = new FileInputStream(f);
-		ZipInputStream zipIn = new ZipInputStream(in);
-		try {
-			TestUtil.unzip(zipIn, destRoot);
-		}
-		finally {
-			zipIn.close();
-		}
-		
-		// project will be deleted by super-class's tearDown() method
-		projectPath = env.addProject( "org.eclipse.jdt.core", "1.4" ); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		System.out.println("Performing full build..."); //$NON-NLS-1$
-		fullBuild( projectPath );
-		System.out.println("Completed build."); //$NON-NLS-1$
-		
-		assertNoUnexpectedProblems();
-		
-	}
-	
-	/**
-	 * JDT Core has one warning on the use of IWorkingCopy, and a number
-	 * of TODOs, XXXs and FIXMEs.
-	 */
-	@SuppressWarnings("nls")
-	private void assertNoUnexpectedProblems() {
-		Problem[] problems = env.getProblems();
-		for (Problem problem : problems) {
-			if (problem.getMessage().startsWith("TODO") || 
-				problem.getMessage().startsWith("XXX") ||
-				problem.getMessage().startsWith("FIXME")) {
-				continue;
-			}
-			else {
-				if (problem.getMessage().equals("The type IWorkingCopy is deprecated"))
-					continue;
-			}
-			fail("Found unexpected problem: " + problem);
-		}
-	}
-	
-	public static String getProjectName()
-	{
-		return PerfTests.class.getName() + "Project"; //$NON-NLS-1$
-	}
-
-	public IPath getSourcePath()
-	{
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "src" ); //$NON-NLS-1$
-		IPath srcRoot = srcFolder.getFullPath();
-		return srcRoot;
-	}
-	
-	@SuppressWarnings("nls")
-	public void testBuilding() throws Throwable {
-		IProject proj = env.getProject(projectPath);
-		IJavaProject jproj = JavaCore.create(proj); // doesn't actually create anything
-		
-		assertNoUnexpectedProblems();
-		
-		// Start with APT turned off
-		AptConfig.setEnabled(jproj, false);
-		proj.build(IncrementalProjectBuilder.CLEAN_BUILD, null);
-		
-		assertNoUnexpectedProblems();
-		
-		System.out.println("Performing full build without apt...");
-		long start = System.currentTimeMillis();
-		proj.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		long totalWithoutAPT = System.currentTimeMillis() - start;
-		System.out.println("Completed full build without APT in " + totalWithoutAPT + "ms.");
-		
-		assertNoUnexpectedProblems();
-		
-		// Now turn on APT
-		AptConfig.setEnabled(jproj, true);
-		proj.build(IncrementalProjectBuilder.CLEAN_BUILD, null);
-		
-		assertNoUnexpectedProblems();
-		
-		System.out.println("Performing full build with apt...");
-		start = System.currentTimeMillis();
-		proj.build(IncrementalProjectBuilder.FULL_BUILD, null);
-		long totalWithAPT = System.currentTimeMillis() - start;
-		System.out.println("Completed full build with APT in " + totalWithAPT + "ms.");
-		
-		assertNoUnexpectedProblems();
-		
-		if (totalWithAPT > totalWithoutAPT * 1.15) {
-			fail("APT performance degradation greater than 15%");
-		}
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PreferencesTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PreferencesTests.java
deleted file mode 100644
index bed7ce3..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/PreferencesTests.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.io.File;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.Map;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPathUtil;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer.FactoryType;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.core.util.AptPreferenceConstants;
-import org.eclipse.jdt.core.IJavaProject;
-
-public class PreferencesTests extends APTTestBase {
-	
-	public PreferencesTests(final String name) {
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( PreferencesTests.class );
-	}	
-	
-	public void testFactoryPathEncodingAndDecoding() throws Exception {
-		//encode
-		Map<FactoryContainer, FactoryPath.Attributes> factories = new LinkedHashMap<FactoryContainer, FactoryPath.Attributes>();
-		FactoryContainer jarFactory1 = FactoryPathUtil.newExtJarFactoryContainer(new File("C:/test1.jar")); //$NON-NLS-1$
-		FactoryPath.Attributes jarFPA1 = new FactoryPath.Attributes(true, false);
-		FactoryContainer jarFactory2 = FactoryPathUtil.newExtJarFactoryContainer(new File("C:/test2.jar")); //$NON-NLS-1$
-		FactoryPath.Attributes jarFPA2 = new FactoryPath.Attributes(true, true);
-		FactoryContainer pluginFactory = FactoryPathUtil.getPluginFactoryContainer("org.eclipse.jdt.apt.tests"); //$NON-NLS-1$
-		FactoryPath.Attributes pluginFPA = new FactoryPath.Attributes(false, false);
-		factories.put(jarFactory1, jarFPA1);
-		factories.put(jarFactory2, jarFPA2);
-		factories.put(pluginFactory, pluginFPA);
-		String xml = FactoryPathUtil.encodeFactoryPath(factories);
-		assertEquals(serializedFactories, xml);
-		
-		// decode
-		factories = FactoryPathUtil.decodeFactoryPath(xml);
-		assertEquals(3, factories.size());
-
-		int index=0;
-		for (Map.Entry<FactoryContainer, FactoryPath.Attributes> entry : factories.entrySet()) {
-			FactoryContainer container = entry.getKey();
-			switch (index) {
-			case 0:
-				// jar1
-				assertEquals(FactoryType.EXTJAR, container.getType());
-				assertTrue(entry.getValue().isEnabled());
-				assertFalse(entry.getValue().runInBatchMode());
-				break;
-			case 1:
-				// jar2
-				assertEquals(FactoryType.EXTJAR, container.getType());
-				assertTrue(entry.getValue().isEnabled());
-				assertTrue(entry.getValue().runInBatchMode());
-				break;
-			case 2:
-				// plugin
-				assertEquals(FactoryType.PLUGIN, container.getType());
-				assertFalse(entry.getValue().isEnabled());
-				assertEquals("org.eclipse.jdt.apt.tests", container.getId()); //$NON-NLS-1$
-				break;
-			default:
-				fail("FactoryPath had an unexpected number of entries: " + (index + 1));
-			}
-		
-			index++;
-		}
-	}
-	
-	@SuppressWarnings("nls")
-	private static final String serializedFactories = 
-		"<factorypath>\n" + 
-		"    <factorypathentry kind=\"EXTJAR\" id=\"C:\\test1.jar\" enabled=\"true\" runInBatchMode=\"false\"/>\n" + 
-		"    <factorypathentry kind=\"EXTJAR\" id=\"C:\\test2.jar\" enabled=\"true\" runInBatchMode=\"true\"/>\n" + 
-		"    <factorypathentry kind=\"PLUGIN\" id=\"org.eclipse.jdt.apt.tests\" enabled=\"false\" runInBatchMode=\"false\"/>\n" + 
-		"</factorypath>\n";
-	
-	/**
-	 * Test the config API for settings other than factory path
-	 * @throws Exception
-	 */
-	@SuppressWarnings("nls")
-	public void testSimpleConfigApi() throws Exception {
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		
-		// aptEnabled
-		AptConfig.setEnabled(jproj, false);
-		AptConfig.setEnabled(null, true);
-		assertFalse(AptConfig.isEnabled(jproj));
-		assertTrue(AptConfig.isEnabled(null));
-		AptConfig.setEnabled(null, true);
-		AptConfig.setEnabled(jproj, false);
-		assertFalse(AptConfig.isEnabled(jproj));
-		assertTrue(AptConfig.isEnabled(null));
-		
-		// processorOptions
-		Map<String, String> wkspOpts = new HashMap<String, String>(3);
-		wkspOpts.put("b", "bVal");
-		wkspOpts.put("another option", "and\\more \"punctuation!\"");
-		AptConfig.setProcessorOptions(wkspOpts, null);
-		Map<String, String> retrievedWkspOpts = AptConfig.getRawProcessorOptions(null);
-		assertTrue("getRawProcessorOptions() should return the values set in setProcessorOptions()", 
-				wkspOpts.equals(retrievedWkspOpts));
-
-		Map<String, String> projOpts = new HashMap<String, String>(3);
-		projOpts.put("a", "aVal");
-		projOpts.put("with spaces", "value also has spaces");
-		projOpts.put("foo", "bar");
-		AptConfig.setProcessorOptions(projOpts, jproj);
-		Map<String, String> retrievedProjOpts = AptConfig.getRawProcessorOptions(jproj);
-		assertTrue("getRawProcessorOptions() should return the values set in setProcessorOptions()", 
-				projOpts.equals(retrievedProjOpts));
-
-		wkspOpts.clear();
-		wkspOpts.put("noodle", "nubble");
-		wkspOpts.put("spoo/mack", "wumpus");
-		AptConfig.setProcessorOptions(wkspOpts, null);
-		retrievedWkspOpts = AptConfig.getRawProcessorOptions(null);
-		assertTrue("getRawProcessorOptions() should return the values set in setProcessorOptions()", 
-				wkspOpts.equals(retrievedWkspOpts));
-
-		projOpts.clear();
-		projOpts.put("smurf", "more smurfs\\=bad");
-		projOpts.put("baz/quack", "quux");
-		AptConfig.setProcessorOptions(projOpts, jproj);
-		retrievedProjOpts = AptConfig.getRawProcessorOptions(jproj);
-		assertTrue("getRawProcessorOptions() should return the values set in setProcessorOptions()", 
-				projOpts.equals(retrievedProjOpts));
-
-		AptConfig.addProcessorOption(jproj, "foo", "bar");
-		AptConfig.addProcessorOption(jproj, "space", "\"text with spaces\"");
-		AptConfig.addProcessorOption(jproj, "quux", null);
-		AptConfig.addProcessorOption(jproj, "quux", null); // adding twice should have no effect
-		Map<String, String> options = AptConfig.getProcessorOptions(jproj);
-		String val = options.get("foo");
-		assertEquals(val, "bar");
-		val = options.get("quux");
-		assertNull(val);
-		val = options.get("space");
-		assertEquals(val, "\"text with spaces\"");
-		AptConfig.removeProcessorOption(jproj, "foo");
-		options = AptConfig.getProcessorOptions(jproj);
-		assertFalse(options.containsKey("foo"));
-		assertTrue(options.containsKey("quux"));
-		AptConfig.removeProcessorOption(jproj, "quux");
-		AptConfig.removeProcessorOption(jproj, "anOptionThatDoesn'tExist");
-		
-		AptConfig.addProcessorOption(null, "workspace option", "corresponding value");
-		AptConfig.addProcessorOption(null, "foo", "whatever");
-		AptConfig.removeProcessorOption(null, "foo");
-		options = AptConfig.getProcessorOptions(null);
-		assertFalse(options.containsKey("foo"));
-		assertTrue(options.containsKey("workspace option"));
-		AptConfig.removeProcessorOption(null, "workspace option");
-	}
-	
-	/**
-	 * Test the config API for automatically generated options.
-	 */
-	@SuppressWarnings("nls")
-	public void testAutomaticOptions() throws Exception {
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		Map<String,String> options = AptConfig.getProcessorOptions(jproj);
-		
-		String classpath = options.get("-classpath");
-		assertNotNull(classpath);
-		assertTrue(classpath.length() > 0);
-		
-		String sourcepath = options.get("-sourcepath");
-		assertNotNull(sourcepath);
-		assertTrue(sourcepath.length() > 0);
-		
-		String target = options.get("-target");
-		assertEquals(target, "1.5");
-		
-		String source = options.get("-source");
-		assertEquals(source, "1.5");
-		
-		String bindir = options.get("-d");
-		assertNotNull(bindir);
-		assertTrue(bindir.length() > 0);
-		
-		String gensrcdirAuto = options.get("-s");
-		assertNotNull(gensrcdirAuto);
-		assertTrue(gensrcdirAuto.length() > 0);
-	}
-	
-	public void testGenSrcDir() throws Exception {
-		IJavaProject jproj = env.getJavaProject( getProjectName() );
-		String genSrcDir = AptConfig.getGenSrcDir(jproj);
-		assertEquals(AptPreferenceConstants.DEFAULT_GENERATED_SOURCE_FOLDER_NAME, genSrcDir);
-		
-		final String newDir = "gen/src";
-		AptConfig.setGenSrcDir(jproj, newDir);
-		genSrcDir = AptConfig.getGenSrcDir(jproj);
-		
-		assertEquals(newDir, genSrcDir);
-		
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests.java
deleted file mode 100644
index 94a8a40..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/ReadAnnotationTests.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests;
-
-import java.io.File;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-import org.eclipse.jdt.apt.tests.annotations.readannotation.CodeExample;
-import org.eclipse.jdt.apt.tests.plugin.AptTestsPlugin;
-import org.eclipse.jdt.core.tests.builder.Tests;
-import org.eclipse.jdt.core.tests.util.Util;
-
-public class ReadAnnotationTests extends Tests 
-{
-	private int counter = 0;
-	private String projectName = null;
-	public ReadAnnotationTests(final String name) {
-		super( name );
-	}
-
-	public static Test suite() {
-		return new TestSuite( ReadAnnotationTests.class );
-	}
-	
-	public String getProjectName() {
-		return projectName;
-	}
-	
-	public String getUniqueProjectName(){
-		projectName = ReadAnnotationTests.class.getName() + "Project" + counter; //$NON-NLS-1$
-		counter ++;
-		return projectName;
-	}
-	
-
-	public IPath getSourcePath() {
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "src" ); //$NON-NLS-1$
-		IPath srcRoot = srcFolder.getFullPath();
-		return srcRoot;
-	}
-	
-	public IPath getBinaryPath(){
-		IProject project = env.getProject( getProjectName() );
-		IFolder srcFolder = project.getFolder( "binary" ); //$NON-NLS-1$
-		IPath lib = srcFolder.getFullPath();
-		return lib;
-	}
-	
-	public IPath getOutputPath(){
-		IProject project = env.getProject( getProjectName() );
-		IFolder binFolder = project.getFolder( "bin" ); //$NON-NLS-1$
-		IPath bin = binFolder.getFullPath();
-		return bin;
-	}
-	
-	private void addAllSources()
-	{
-		addQuestionSources();
-		addTriggerSource();
-	}
-	
-	private void addQuestionSources()
-	{
-		IPath srcRoot = getSourcePath();
-		// SimpleAnnotation.java
-		env.addClass( 
-				srcRoot, 
-				CodeExample.PACKAGE_QUESTION, 
-				CodeExample.SIMPLE_ANNOTATION_CLASS,
-				CodeExample.SIMPLE_ANNOTATION_CODE );
-		
-		// RTVisibleAnnotation.java
-		env.addClass(
-				srcRoot,
-				CodeExample.PACKAGE_QUESTION, 
-				CodeExample.RTVISIBLE_CLASS,
-				CodeExample.RTVISIBLE_ANNOTATION_CODE);
-		
-		// RTInvisibleAnnotation.java
-		env.addClass(
-				srcRoot,
-				CodeExample.PACKAGE_QUESTION, 
-				CodeExample.RTINVISIBLE_CLASS,
-				CodeExample.RTINVISIBLE_ANNOTATION_CODE);
-		
-		// package-info.java
-		env.addClass(
-				srcRoot,
-				CodeExample.PACKAGE_QUESTION, 
-				CodeExample.PACKAGE_INFO_CLASS,
-				CodeExample.PACKAGE_INFO_CODE);
-		
-		// Color.java
-		env.addClass(
-				srcRoot,
-				CodeExample.PACKAGE_QUESTION, 
-				CodeExample.COLOR_CLASS,
-				CodeExample.COLOR_CODE);
-		
-		// AnnotationTest.java
-		env.addClass(
-				srcRoot,
-				CodeExample.PACKAGE_QUESTION, 
-				CodeExample.ANNOTATION_TEST_CLASS,
-				CodeExample.ANNOTATION_TEST_CODE);
-	}
-	
-	private void addTriggerSource()
-	{
-		IPath srcRoot = getSourcePath();
-		// MyMarkerAnnotation.java
-		env.addClass(srcRoot,
-				CodeExample.PACKAGE_TRIGGER,
-				CodeExample.MYMARKERANNOTATION_CLASS,
-				CodeExample.MYMARKERANNOTATION_CODE);
-		
-		// Trigger.java
-		env.addClass(srcRoot,
-				CodeExample.PACKAGE_TRIGGER,
-				CodeExample.TRIGGER_CLASS,
-				CodeExample.TRIGGER_CODE);
-	}
-	
-	private IProject setupTest() throws Exception
-	{				
-		ProcessorTestStatus.reset();
-		// project will be deleted by super-class's tearDown() method
-		IPath projectPath = env.addProject( getUniqueProjectName(), "1.5" ); //$NON-NLS-1$
-		env.setOutputFolder(projectPath, "bin"); //$NON-NLS-1$ 
-		env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-		fullBuild( projectPath );
-
-		// remove old package fragment root so that names don't collide
-		env.removePackageFragmentRoot( projectPath, "" ); //$NON-NLS-1$
-
-		env.addPackageFragmentRoot( projectPath, "src" ); //$NON-NLS-1$
-		return env.getProject(getProjectName());
-	}
-	
-	/**
-	 * Set up all the source files for testing.
-	 * Runs the AnnotationReaderProcessor, which contains
-	 * the actual testing.
-	 */
-
-	public void test0() throws Exception {
-		// reset the error reset the error;
-		IProject project = setupTest();	
-		addAllSources();	
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}
-
-	/**
-	 * Set up the jar file for testing.
-	 * Runs the AnnotationReaderProcessor, which contains
-	 * the actual testing.
-	 */
-	public void test1() throws Exception 
-	{	
-		IProject project = setupTest();
-		final File jar = 
-			TestUtil.getFileInPlugin(AptTestsPlugin.getDefault(), 
-									 new Path("/src/org/eclipse/jdt/apt/tests/annotations/readannotation/lib/question.jar")); //$NON-NLS-1$
-		final String path = jar.getAbsolutePath();
-		env.addExternalJar(project.getFullPath(), path);
-				
-		addTriggerSource();
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-
-		assertEquals(ProcessorTestStatus.NO_ERRORS, ProcessorTestStatus.getErrors());
-	}	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/RegressionTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/RegressionTests.java
deleted file mode 100644
index 018f194..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/RegressionTests.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
-import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.tests.builder.Tests;
-import org.eclipse.jdt.core.tests.util.Util;
-
-/**
- * 
- */
-public class RegressionTests extends Tests {
-
-	public RegressionTests(String name) {
-		super(name);
-	}
-
-	public static Test suite()
-	{
-		return new TestSuite( RegressionTests.class );
-	}
-
-	public static String getProjectName()
-	{
-		return RegressionTests.class.getName() + "Project"; //$NON-NLS-1$
-	}
-
-	public void setUp() throws Exception
-	{
-		super.setUp();
-		AptConfig.setEnabled(null, true);
-	}
-	
-	/**
-	 * Bugzilla 104032: NPE when deleting project that has APT settings.
-	 */
-	@SuppressWarnings("nls")
-	public void testBugzilla104032() throws Exception
-	{
-		// set up project with unique name
-		final String projName = RegressionTests.class.getName() + "104032.Project"; //$NON-NLS-1$
-		IPath projectPath = env.addProject( projName, "1.5" ); //$NON-NLS-1$
-		env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-
-		env.removePackageFragmentRoot( projectPath, "" ); //$NON-NLS-1$
-		env.addPackageFragmentRoot( projectPath, "src" ); //$NON-NLS-1$
-		env.setOutputFolder( projectPath, "bin" ); //$NON-NLS-1$
-
-		TestUtil.createAndAddAnnotationJar( env
-			.getJavaProject( projectPath ) );
-		IProject project = env.getProject( projName );
-		IFolder srcFolder = project.getFolder( "src" );
-		IPath srcRoot = srcFolder.getFullPath();
-
-		String a1Code = "package p1; " + "\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n"
-			+ "@HelloWorldAnnotation" + "\n"
-			+ "public class A1 {}";
-		String a2Code = "package p1; " + "\n"
-			+ "import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;" + "\n"
-			+ "@HelloWorldAnnotation" + "\n"
-			+ "public class A2 {}";
-		String bCode = "package p1; " + "\n"
-			+ "public class B { generatedfilepackage.GeneratedFileTest gft; }";
-		env.addClass( srcRoot, "p1", "A1", a1Code ); //$NON-NLS-1$ //$NON-NLS-2$
-		env.addClass( srcRoot, "p1", "A2", a2Code ); //$NON-NLS-1$ //$NON-NLS-2$
-		env.addClass( srcRoot, "p1", "B", bCode ); //$NON-NLS-1$ //$NON-NLS-2$
-		
-		// Set some per-project preferences
-		IJavaProject jproj = env.getJavaProject( projName );
-		AptConfig.addProcessorOption(jproj, "test.104032.a", "foo");
-		
-		fullBuild( project.getFullPath() );
-		expectingNoProblems();
-		
-		// Now delete the project!
-		ResourcesPlugin.getWorkspace().delete(new IResource[] { project }, true, null);
-
-	}
-    
-	/**
-	 * Tests annotation proxies
-	 */
-    public void testBugzilla106541() throws Exception
-    {
-        final String projName = RegressionTests.class.getName() + "104032.Project"; //$NON-NLS-1$
-        IPath projectPath = env.addProject( projName, "1.5" ); //$NON-NLS-1$
-        env.addExternalJars( projectPath, Util.getJavaClassLibs() );
-
-        env.removePackageFragmentRoot( projectPath, "" ); //$NON-NLS-1$
-        env.addPackageFragmentRoot( projectPath, "src" ); //$NON-NLS-1$
-        env.setOutputFolder( projectPath, "bin" ); //$NON-NLS-1$
-
-        IJavaProject javaProject = env.getJavaProject( projectPath ) ;
-        TestUtil.createAndAddAnnotationJar(javaProject);
-        IProject project = env.getProject( projName );
-        IFolder srcFolder = project.getFolder( "src" );
-        IPath srcRoot = srcFolder.getFullPath();
-
-        String code = "package p1; " + "\n"
-        + "import org.eclipse.jdt.apt.tests.annotations.readAnnotationType.SimpleAnnotation;" + "\n"
-        + "@SimpleAnnotation(SimpleAnnotation.Name.HELLO)" + "\n"
-        + "public class MyClass { \n"
-        + " public test.HELLOGen _gen;"
-        + " }";
-        
-        env.addClass( srcRoot, "p1", "MyClass", code );
-        
-        fullBuild( project.getFullPath() );
-        expectingNoProblems();
-        
-        // Now delete the project!
-        ResourcesPlugin.getWorkspace().delete(new IResource[] { project }, true, null);
-
-    }
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestAll.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestAll.java
deleted file mode 100644
index f0d9d58..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestAll.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Run all annotation processor tests.
- * Annotation processors may be registered by using this test plugin to extend 
- * <code>org.eclipse.jdt.apt.core.annotationProcessorFactory</code>, providing
- * the name of an annotation processor factory class implemented in this plugin.
- */
-public class TestAll extends TestCase {
-	
-	public TestAll(String testName) 
-	{
-		super(testName);
-	}
-	
-	public static Test suite() 
-	{
-		TestSuite suite = new TestSuite();
-		
-		// Comment out reconcile tests. No reconcile time codegen.
-		//suite.addTest(AptReconcileTests.suite());
-		suite.addTest(AptBuilderTests.suite() );
-		suite.addTest(APITests.suite());
-		suite.addTest(MirrorTests.suite());
-		suite.addTest(ReadAnnotationTests.suite());
-		suite.addTest(PreferencesTests.suite());
-		suite.addTest(FactoryLoaderTests.suite());
-		suite.addTest(MirrorDeclarationTests.suite());
-		suite.addTest(MirrorUtilTests.suite());
-		suite.addTest(AnnotationValueConversionTests.suite());
-		suite.addTest(JavaVersionTests.suite());
-		suite.addTest(RegressionTests.suite());
-		suite.addTest(FileGenerationTests.suite());
-		suite.addTest(MixedModeTesting.suite());
-	
-		return suite;
-		
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestUtil.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestUtil.java
deleted file mode 100644
index 9f03b63..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/TestUtil.java
+++ /dev/null
@@ -1,337 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 BEA Systems, Inc, IBM Corporation, and others
- *
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests;
-
-import java.io.ByteArrayOutputStream;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-import java.net.URL;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Collections;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-import java.util.zip.ZipInputStream;
-import java.util.zip.ZipOutputStream;
-
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Plugin;
-import org.eclipse.jdt.apt.core.internal.util.FileSystemUtil;
-import org.eclipse.jdt.apt.tests.plugin.AptTestsPlugin;
-import org.eclipse.jdt.core.IClasspathEntry;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.core.JavaModelException;
-
-public class TestUtil
-{
-
-	/**
-	 * creates the annotation jar.  
-	 * @return the java.io.File of the jar that was created.
-	 */
-	public static File createAndAddAnnotationJar( IJavaProject project )
-		throws IOException, JavaModelException
-	{
-		//
-		//   add annotations jar as part of the project
-		//
-		IPath projectPath = getProjectPath( project );
-		File jarFile = new File( projectPath.toFile(), "Classes.jar" ); //$NON-NLS-1$
-		String classesJarPath = jarFile.getAbsolutePath();
-		FileFilter filter = new PackageFileFilter(
-				ANNOTATIONS_PKG, getPluginClassesDir());
-		Map<File, FileFilter> files = Collections.singletonMap(
-				new File(getPluginClassesDir()), filter);
-		zip( classesJarPath, files );
-		addLibraryEntry( project, new Path(classesJarPath), null /*srcAttachmentPath*/, 
-			null /*srcAttachmentPathRoot*/, true );
-		return new File(classesJarPath);
-	}
-	
-	/**
-	 * Creates an annotation jar containing annotations and processors
-	 * from the "external.annotations" package, and adds it to the project.
-	 * Classes will be found under [project]/binext, and manifest will be
-	 * drawn from [project]/srcext/META-INF.  
-	 * This jar is meant to represent an annotation jar file not 
-	 * wrapped within a plugin.  Note that adding a jar to a project makes
-	 * its classes visible to the compiler but does NOT automatically cause 
-	 * its annotation processors to be loaded.
-	 * @return the java.io.File of the jar that was created.
-	 */
-	public static File createAndAddExternalAnnotationJar( 
-			IJavaProject project  )
-		throws IOException, JavaModelException
-	{
-		File jarFile = File.createTempFile("org.eclipse.jdt.apt.tests.TestUtil", ".jar");  //$NON-NLS-1$//$NON-NLS-2$
-		String classesJarPath = jarFile.getAbsolutePath();
-		FileFilter classFilter = new PackageFileFilter(
-				EXTANNOTATIONS_PKG, getPluginExtClassesDir());
-		FileFilter manifestFilter = new PackageFileFilter(
-				"META-INF", getPluginExtSrcDir()); //$NON-NLS-1$
-		Map<File, FileFilter> files = new HashMap<File, FileFilter>(2);
-		files.put(new File( getPluginExtClassesDir() ), classFilter);
-		files.put(new File( getPluginExtSrcDir() ), manifestFilter);
-		zip( classesJarPath, files );
-		addLibraryEntry( project, new Path(classesJarPath), null /*srcAttachmentPath*/, 
-			null /*srcAttachmentPathRoot*/, true );
-		return new File(classesJarPath);
-	}
-	
-	public static IPath getProjectPath( IJavaProject project )
-	{
-		return project.getResource().getLocation();
-	}
-	
-	public static String getPluginClassesDir()
-	{
-		return getFileInPlugin( AptTestsPlugin.getDefault(), new Path( "/bin" ) ) //$NON-NLS-1$
-			.getAbsolutePath();
-	}
-
-	public static String getPluginExtClassesDir()
-	{
-		return getFileInPlugin( AptTestsPlugin.getDefault(), new Path( "/binext" ) ) //$NON-NLS-1$
-			.getAbsolutePath();
-	}
-
-	public static String getPluginExtSrcDir()
-	{
-		return getFileInPlugin( AptTestsPlugin.getDefault(), new Path( "/srcext" ) ) //$NON-NLS-1$
-			.getAbsolutePath();
-	}
-
-	public static java.io.File getFileInPlugin(Plugin plugin, IPath path)
-	{
-		try
-		{
-			URL installURL = plugin.getBundle().getEntry( path.toString() );
-			URL localURL = Platform.asLocalURL( installURL );
-			return new java.io.File( localURL.getFile() );
-		}
-		catch( IOException e )
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Create a zip file and add contents.
-	 * @param zipPath the zip file
-	 * @param input a map of root directories and corresponding filters.  Each
-	 * root directory will be searched, and any files that pass the filter will
-	 * be added to the zip file.
-	 * @throws IOException
-	 */
-	public static void zip(String zipPath, Map<File, FileFilter> input)
-		throws IOException
-	{
-		ZipOutputStream zip = null;
-		try
-		{
-			zip = new ZipOutputStream( new FileOutputStream( zipPath ) );
-			// +1 for last slash
-			for (Map.Entry<File, FileFilter> e : input.entrySet()) {
-				zip( zip, e.getKey(), e.getKey().getPath().length() + 1, e.getValue() );
-			}
-		}
-		finally
-		{
-			if( zip != null )
-			{
-				zip.close();
-			}
-		}
-	}
-	
-	private static void zip(ZipOutputStream zip, File dir, int rootPathLength,
-		FileFilter filter) throws IOException
-	{
-		String[] list = dir.list();
-		if( list != null )
-		{
-			for( int i = 0, length = list.length; i < length; i++ )
-			{
-				String name = list[i];
-				File file = new File( dir, name );
-				if( filter == null || filter.accept( file ) )
-				{
-					if( file.isDirectory() )
-					{
-						zip( zip, file, rootPathLength, filter );
-					}
-					else
-					{
-						String path = file.getPath();
-						path = path.substring( rootPathLength );
-						ZipEntry entry = new ZipEntry( path.replace( '\\', '/' ) );
-						zip.putNextEntry( entry );
-						zip.write( getBytesFromFile( file ) );
-						zip.closeEntry();
-					}
-				}
-			}
-		}
-	}
-	
-	private static byte[] getBytesFromFile( File f )
-		throws IOException
-	{
-		FileInputStream fis = null;
-		ByteArrayOutputStream baos = null;
-		byte[] rtrn = new byte[0]; 
-		try
-		{
-			fis = new FileInputStream( f );
-			baos = new ByteArrayOutputStream();
-			int b;
-			while ( ( b = fis.read() ) != -1)
-				baos.write( b );
-			rtrn = baos.toByteArray();
-		}
-		finally
-		{
-			if ( fis != null ) fis.close();
-			if ( baos != null ) baos.close();
-		}
-		return rtrn;
-	
-	}
-	
-	public static void unzip (File srcZip, File destDir) throws IOException {
-		ZipFile zf = new ZipFile(srcZip);
-		for (Enumeration<? extends ZipEntry> entries = zf.entries(); entries.hasMoreElements();) {
-			ZipEntry entry = entries.nextElement();
-			String name = entry.getName();
-			File dest = new File(destDir, name);
-			if (entry.isDirectory()) {
-				FileSystemUtil.mkdirs(dest);
-			}
-			else {
-				File parent = dest.getParentFile();
-				FileSystemUtil.mkdirs(parent);
-				InputStream from = null;
-	            OutputStream to = null;
-	            try {
-	                from = zf.getInputStream(entry);
-	                to = new FileOutputStream(dest);
-	                byte[] buffer = new byte[4096];
-	                int bytesRead;
-	                while ((bytesRead = from.read(buffer)) != -1) {
-	                    to.write(buffer, 0, bytesRead);
-	                }
-	            }
-	            finally {
-	                if (from != null) try {from.close();} catch (IOException ioe){}
-	                if (to != null) try {to.close();} catch (IOException ioe) {}
-	            }
-			}
-		}
-	}
-	
-	public static void unzip (ZipInputStream srcZip, File destDir) throws IOException {
-		ZipEntry entry;
-		while ((entry = srcZip.getNextEntry()) != null) {
-			String name = entry.getName();
-			File dest = new File(destDir, name);
-			if (entry.isDirectory()) {
-				FileSystemUtil.mkdirs(dest);
-			}
-			else {
-				File parent = dest.getParentFile();
-				FileSystemUtil.mkdirs(parent);
-	            OutputStream to = null;
-	            try {
-	                to = new FileOutputStream(dest);
-	                byte[] buffer = new byte[4096];
-	                int bytesRead;
-	                while ((bytesRead = srcZip.read(buffer)) != -1) {
-	                    to.write(buffer, 0, bytesRead);
-	                }
-	            }
-	            finally {
-                    srcZip.closeEntry();
-	                if (to != null) try {to.close();} catch (IOException ioe) {}
-	            }
-			}
-		}
-	}
-	
-	
-
-	public static void addLibraryEntry(IJavaProject project, IPath path, IPath srcAttachmentPath, IPath srcAttachmentPathRoot, boolean exported) throws JavaModelException{
-		IClasspathEntry[] entries = project.getRawClasspath();
-		int length = entries.length;
-		System.arraycopy(entries, 0, entries = new IClasspathEntry[length + 1], 1, length);
-		entries[0] = JavaCore.newLibraryEntry(
-			path, 
-			srcAttachmentPath, 
-			srcAttachmentPathRoot, 
-			exported);
-		project.setRawClasspath(entries, null);
-	}
-	
-	
-	private static class PackageFileFilter implements FileFilter {
-		private final String[] _packageParts;
-		private final Path _binDir;
-		
-		/**
-		 * Select only those files under a certain package.
-		 * @param packageSubset a partial package name, such as 
-		 * "org.eclipse.jdt.apt.tests.annotations".
-		 * @param binDir the absolute path of the directory 
-		 * in which the compiled classes are to be found.
-		 */
-		public PackageFileFilter(String packageSubset, String binDir) {
-			_packageParts = packageSubset.split("\\."); //$NON-NLS-1$
-			_binDir = new Path(binDir);
-		}
-		
-		public boolean accept(File pathname)
-		{
-			IPath f = new Path( pathname.getAbsolutePath() );
-
-			int nsegments = f.matchingFirstSegments( _binDir );
-			boolean ok = true;
-			int min = Math.min( f.segmentCount() - nsegments,
-					_packageParts.length );
-			for( int i = nsegments, j = 0; j < min; i++, j++ )
-			{
-				if( !f.segment( i ).equals( _packageParts[j] ) )
-				{
-					ok = false;
-					break;
-				}
-			}
-			return ok;
-		}
-	}
-	
-	public static final String ANNOTATIONS_PKG = 
-		"org.eclipse.jdt.apt.tests.annotations"; //$NON-NLS-1$
-
-	public static final String EXTANNOTATIONS_PKG = 
-		"org.eclipse.jdt.apt.tests.external.annotations"; //$NON-NLS-1$
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseFactory.java
deleted file mode 100644
index 209ca39..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseFactory.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-
-/**
- * Base class for annotation factories. Takes care of supported
- * annotations and supported options.
- */
-public abstract class BaseFactory implements AnnotationProcessorFactory {
-
-	private final Collection<String> _supportedAnnotations;
-	
-	/**
-	 * Pass in supported annotations. At least one is required,
-	 * the rest are optional.
-	 * 
-	 * @param anno main annotation
-	 * @param otherAnnos other supported annotations. Not necessary if 
-	 * no extra annotations are supported.
-	 */
-	public BaseFactory(String anno, String... otherAnnos) {
-		_supportedAnnotations = new ArrayList<String>(1 + otherAnnos.length);
-		_supportedAnnotations.add(anno);
-		for (String s : otherAnnos) {
-			_supportedAnnotations.add(s);
-		}
-	}
-	
-	public Collection<String> supportedOptions() {
-		return Collections.emptyList();
-	}
-
-	public Collection<String> supportedAnnotationTypes() {
-		return _supportedAnnotations;
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseProcessor.java
deleted file mode 100644
index 6535e74..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/BaseProcessor.java
+++ /dev/null
@@ -1,25 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-
-public abstract class BaseProcessor implements AnnotationProcessor {
-
-	protected final AnnotationProcessorEnvironment _env;
-	
-	public BaseProcessor(final AnnotationProcessorEnvironment env) {
-		_env = env;
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/ProcessorTestStatus.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/ProcessorTestStatus.java
deleted file mode 100644
index 0251bb2..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/ProcessorTestStatus.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations;
-
-/**
- * Utility class to hold results of processor-based tests.
- * All methods are static.
- */
-public final class ProcessorTestStatus {
-	
-	/** 
-	 * Marker string to indicate that no errors were encountered.
-	 */
-	public static final String NO_ERRORS = "NO ERRORS";
-	
-	/** Error status. Will be == NO_ERRORS if no errors were encountered **/
-	private static String s_errorStatus = NO_ERRORS;
-	
-	/** An expected condition failed. Record the error **/
-	public static void failWithoutException(final String error) {
-		s_errorStatus = error;
-	}
-	
-	/** Returns true if any errors were encountered **/
-	public static boolean hasErrors() {
-		return s_errorStatus == NO_ERRORS;
-	}
-	
-	/** Get the error string. Will be NO_ERRORS if none were encountered **/
-	public static String getErrors() {
-		return s_errorStatus;
-	}
-	
-	/** Reset the status. Needs to be called before each set of tests that could fail **/
-	public static void reset() {
-		s_errorStatus = NO_ERRORS;
-	}
-	
-	// Private c-tor to prevent construction
-	private ProcessorTestStatus() {}
-
-	public static void assertEquals(String reason, Object expected, Object actual) {
-		if (expected == actual)
-			return;
-		if (expected != null && expected.equals(actual))
-			return;
-		ProcessorTestStatus.fail("Expected " + expected + ", but saw " + actual + ". Reason: " + reason);
-	}
-
-	public static void assertEquals(String reason, String expected, String actual) {
-		if (expected == actual)
-			return;
-		if (expected != null && expected.equals(actual))
-			return;
-		ProcessorTestStatus.fail("Expected " + expected + ", but saw " + actual + ". Reason: " + reason);
-	}
-
-	public static void assertEquals(String reason, int expected, int actual) {
-		if (expected == actual)
-			return;
-		ProcessorTestStatus.fail("Expected " + expected + ", but saw " + actual + ". Reason: " + reason);
-	}
-
-	public static void assertTrue(String reason, boolean expected) {
-		if (!expected)
-			ProcessorTestStatus.fail(reason);
-	}
-
-	public static void fail(final String reason) {
-		failWithoutException(reason);
-		throw new IllegalStateException("Failed during test: " + reason);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean.java
deleted file mode 100644
index 27ab60c..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.aptrounding;
-
-public @interface GenBean {
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean2.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean2.java
deleted file mode 100644
index 8ce17ec..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/GenBean2.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.aptrounding;
-
-public @interface GenBean2 {
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationFactory.java
deleted file mode 100644
index 0a7fd81..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.aptrounding;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class Round1GenAnnotationFactory implements AnnotationProcessorFactory{
-	
-	public static final List<String> SUPPORTED_TYPES;
-	
-	static{
-		SUPPORTED_TYPES = new ArrayList<String>();
-		SUPPORTED_TYPES.add(GenBean.class.getName());	
-	}
-	
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> decls, AnnotationProcessorEnvironment env) {
-		return new Round1GenAnnotationProcessor(env);
-	}
-	
-	public Collection<String> supportedAnnotationTypes() {
-		return SUPPORTED_TYPES;
-	}
-	
-	public Collection<String> supportedOptions() {		
-		return Collections.emptyList();
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationProcessor.java
deleted file mode 100644
index 322ea74..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round1GenAnnotationProcessor.java
+++ /dev/null
@@ -1,53 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.aptrounding;
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Collection;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-public class Round1GenAnnotationProcessor implements AnnotationProcessor{
-
-	private final AnnotationProcessorEnvironment _env;
-	Round1GenAnnotationProcessor(AnnotationProcessorEnvironment env)
-	{
-		_env = env;
-	}
-	
-	public void process() {
-		final TypeDeclaration beanType = _env.getTypeDeclaration("test.Bean");
-		final Filer filer = _env.getFiler();
-		if( beanType == null ){
-			try{
-				PrintWriter writer = filer.createSourceFile("test.Bean");
-				writer.print("package test;\n");
-				writer.print("public class Bean{}\n");
-				writer.close();
-			}
-			catch(IOException io){}
-		}
-		
-		final Collection<TypeDeclaration> typeDecls = _env.getTypeDeclarations();
-		final Messager msger = _env.getMessager();
-		if( typeDecls.size() == 1 ){
-			final TypeDeclaration type = typeDecls.iterator().next();
-			if( !type.getQualifiedName().equals( "p1.X") )
-				msger.printError("Expected to find p1.X but got " + type.getQualifiedName() ); 
-		}
-		else
-			msger.printError("expected one type declaration but got " + typeDecls );	
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationFactory.java
deleted file mode 100644
index 724f21b..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationFactory.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.aptrounding;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class Round2GenAnnotationFactory implements AnnotationProcessorFactory{
-	
-	public static final List<String> SUPPORTED_TYPES;
-	
-	static{
-		SUPPORTED_TYPES = new ArrayList<String>();
-		SUPPORTED_TYPES.add(GenBean2.class.getName());	
-	}
-	
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> decls, AnnotationProcessorEnvironment env) {
-		return new Round2GenAnnotationProcessor(env);
-	}
-	
-	public Collection<String> supportedAnnotationTypes() {
-		return SUPPORTED_TYPES;
-	}
-	
-	public Collection<String> supportedOptions() {		
-		return Collections.emptyList();
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationProcessor.java
deleted file mode 100644
index 743fa7a..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/aptrounding/Round2GenAnnotationProcessor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.aptrounding;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-public class Round2GenAnnotationProcessor implements AnnotationProcessor {
-	private final AnnotationProcessorEnvironment _env;
-	Round2GenAnnotationProcessor(AnnotationProcessorEnvironment env)
-	{
-		_env = env;
-	}
-	
-	public void process() {
-		final TypeDeclaration beanType = _env.getTypeDeclaration("test.Bean");
-		final Filer filer = _env.getFiler();
-		if( beanType != null ){
-			try{
-				PrintWriter writer = filer.createSourceFile("test.BeanBean");
-				writer.print("package test;\n");
-				writer.print("public class BeanBean{ public Bean bean = null; }\n");
-				writer.close();
-			}
-			catch(IOException io){}
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotation.java
deleted file mode 100644
index 0a7a1d2..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.extradependency;
-
-public @interface ExtraDependencyAnnotation
-{
-	String value() default "";  //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessor.java
deleted file mode 100644
index 15c8aff..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessor.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.extradependency;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-
-public class ExtraDependencyAnnotationProcessor extends BaseProcessor {
-
-	public ExtraDependencyAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process() {
-		_env.getTypeDeclaration( "p1.p2.p3.p4.C" ); //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessorFactory.java
deleted file mode 100644
index dd80009..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/extradependency/ExtraDependencyAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.extradependency;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class ExtraDependencyAnnotationProcessorFactory extends BaseFactory {
-
-	public ExtraDependencyAnnotationProcessorFactory() {
-		super(ExtraDependencyAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) {
-		
-		return new ExtraDependencyAnnotationProcessor( env );
-	}
-	
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotation.java
deleted file mode 100644
index aaf337a..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-public @interface FileGenLocationAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessor.java
deleted file mode 100644
index fbff957..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessor.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-
-public class FileGenLocationAnnotationProcessor extends BaseProcessor {
-
-	public FileGenLocationAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process()
-	{
-		try
-		{
-			Filer f = _env.getFiler();
-
-			PrintWriter pwa = f.createSourceFile("test.A"); //$NON-NLS-1$
-			pwa.print(CODE_GEN_IN_PKG);
-			pwa.close();
-
-			PrintWriter pwb = f.createSourceFile("B"); //$NON-NLS-1$
-			pwb.print(CODE_GEN_AT_PROJ_ROOT);
-			pwb.close();
-			
-		}
-		catch( IOException ioe )
-		{
-			ioe.printStackTrace();
-		}
-	}
-
-	@SuppressWarnings("nls")
-	protected String CODE_GEN_IN_PKG = 
-		"package test;" + "\n" +
-		"public class A" + "\n" +
-		"{" + "\n" +
-		"}";
-
-	@SuppressWarnings("nls")
-	protected String CODE_GEN_AT_PROJ_ROOT = 
-		"public class B" + "\n" +
-		"{" + "\n" +
-		"    test.A a;" + "\n" +
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessorFactory.java
deleted file mode 100644
index 9363c29..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FileGenLocationAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class FileGenLocationAnnotationProcessorFactory extends BaseFactory {
-	
-	public FileGenLocationAnnotationProcessorFactory() {
-		super(FileGenLocationAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new FileGenLocationAnnotationProcessor( env );
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotation.java
deleted file mode 100644
index a2906fa..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-public @interface FirstGenAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessor.java
deleted file mode 100644
index 0ca59e0..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessor.java
+++ /dev/null
@@ -1,52 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-
-public class FirstGenAnnotationProcessor extends BaseProcessor {
-
-	public FirstGenAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process()
-	{
-		try
-		{
-			Filer f = _env.getFiler();
-			PrintWriter pw = f.createSourceFile("duptest.DupFile"); //$NON-NLS-1$
-			pw.print(CODE);
-			pw.close();
-		}
-		catch( IOException e )
-		{
-			e.printStackTrace();
-		}
-	}
-
-	@SuppressWarnings("nls")
-	protected String CODE =
-		"package duptest;" + "\n" +
-		"import org.eclipse.jdt.apt.tests.annotations.filegen.SecondGenAnnotation;" + "\n" +
-		"@SecondGenAnnotation" + "\n" +
-		"public class DupFile" + "\n" +
-		"{" + "\n" +
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessorFactory.java
deleted file mode 100644
index 1f06bf9..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/FirstGenAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class FirstGenAnnotationProcessorFactory extends BaseFactory {
-	
-	public FirstGenAnnotationProcessorFactory() {
-		super(FirstGenAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new FirstGenAnnotationProcessor( env );
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotation.java
deleted file mode 100644
index a8fbd21..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-public @interface SecondGenAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessor.java
deleted file mode 100644
index 0177867..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessor.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-
-public class SecondGenAnnotationProcessor extends BaseProcessor {
-
-	public SecondGenAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process()
-	{
-		try
-		{
-			Filer f = _env.getFiler();
-			PrintWriter pw = f.createSourceFile("duptest.DupFile"); //$NON-NLS-1$
-			pw.print(CODE_OVERWRITE);
-			pw.close();
-
-			Filer fr = _env.getFiler();
-			PrintWriter pwr = fr.createSourceFile("reftest.RefFile"); //$NON-NLS-1$
-			pwr.print(CODE_REF);
-			pwr.close();
-		}
-		catch( IOException e )
-		{
-			e.printStackTrace();
-		}
-	}
-
-	@SuppressWarnings("nls")
-	protected String CODE_OVERWRITE =
-		"package duptest;" + "\n" +
-		"public class DupFile" + "\n" +
-		"{" + "\n" +
-		"    public class Inner" + "\n" +
-		"    {" + "\n" +
-		"    }" + "\n" +
-		"}";
-
-	@SuppressWarnings("nls")
-	protected String CODE_REF =
-		"package reftest;" + "\n" +
-		"public class RefFile" + "\n" +
-		"{" + "\n" +
-		"    duptest.DupFile.Inner i;" + "\n" +
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessorFactory.java
deleted file mode 100644
index 0560ed4..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/filegen/SecondGenAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.filegen;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class SecondGenAnnotationProcessorFactory extends BaseFactory {
-	
-	public SecondGenAnnotationProcessorFactory() {
-		super(SecondGenAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new SecondGenAnnotationProcessor( env );
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotation.java
deleted file mode 100644
index 1b75d8e..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.helloworld;
-
-public @interface HelloWorldAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessor.java
deleted file mode 100644
index adf7c11..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessor.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.helloworld;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-
-public class HelloWorldAnnotationProcessor extends BaseProcessor {
-
-	public HelloWorldAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process()
-	{
-		try
-		{
-			Filer f = _env.getFiler();
-			PrintWriter pw = f
-				.createSourceFile( getPackageName() + "." + getTypeName() ); //$NON-NLS-1$
-			pw.print( getCode() );
-			pw.close();
-		}
-		catch( IOException ioe )
-		{
-			ioe.printStackTrace();
-		}
-	}
-
-	public String getCode() { return CODE; }
-	public String getPackageName() { return "generatedfilepackage"; } //$NON-NLS-1$
-	public String getTypeName() { return "GeneratedFileTest"; } //$NON-NLS-1$
-
-	protected final static String	PACKAGE_NAME	= ""; //$NON-NLS-1$
-
-	protected final static String	TYPE_NAME		= ""; //$NON-NLS-1$
-
-	@SuppressWarnings("nls")
-	protected String	CODE			= "package "
-														+ getPackageName()
-														+ ";"
-														+ "\n"
-														+ "public class "
-														+ getTypeName()
-														+ "\n"
-														+ "{"
-														+ "\n"
-														+ "    public static void helloWorld()"
-														+ "\n"
-														+ "    {"
-														+ "\n"
-														+ "        System.out.println( \"Hello, world!  I am a generated file!\" ); "
-														+ "\n" + "    }" + "\n"
-														+ "}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessorFactory.java
deleted file mode 100644
index 0bef2bc..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.helloworld;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class HelloWorldAnnotationProcessorFactory extends BaseFactory {
-	
-	public HelloWorldAnnotationProcessorFactory() {
-		super(HelloWorldAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new HelloWorldAnnotationProcessor( env );
-	}
-	
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldWildcardAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldWildcardAnnotationProcessorFactory.java
deleted file mode 100644
index 826f177..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/helloworld/HelloWorldWildcardAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.helloworld;
-
-import java.util.Collection;
-import java.util.Collections;
-
-/**
- * Processor factory that claims annotations with a wildcard 
- * ("org.eclipse.jdt.apt.tests.annotations.helloworld.*")
- */
-public class HelloWorldWildcardAnnotationProcessorFactory extends
-		HelloWorldAnnotationProcessorFactory {
-
-	
-	public Collection<String> supportedAnnotationTypes() {
-		return Collections.singletonList("org.eclipse.jdt.apt.tests.annotations.helloworld.*"); //$NON-NLS-1$
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotation.java
deleted file mode 100644
index 1e0e92a..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotation.java
+++ /dev/null
@@ -1,21 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.messager;
-
-/**
- *
- */
-public @interface MessagerAnnotation {
-	enum Severity { ERROR, WARNING, INFO, OK };
-	
-	Severity severity();
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessor.java
deleted file mode 100644
index 791a35f..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessor.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.messager;
-
-import java.util.Collection;
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.util.SourcePosition;
-
-/**
- * Used to test the Messager interface.  Processing @MessagerAnnotation
- * causes messages to be posted.
- */
-public class MessagerAnnotationProcessor extends BaseProcessor {
-
-	private final AnnotationTypeDeclaration _annotationDecl;
-	
-	// Text of problems created
-	public static final String PROBLEM_TEXT_INFO = "Annotated with MessagerAnnotation(INFO)"; //$NON-NLS-1$
-	public static final String PROBLEM_TEXT_WARNING = "Annotated with MessagerAnnotation(WARNING)"; //$NON-NLS-1$
-	public static final String PROBLEM_TEXT_ERROR = "Annotated with MessagerAnnotation(ERROR)"; //$NON-NLS-1$
-
-	public MessagerAnnotationProcessor(
-			Set<AnnotationTypeDeclaration> decls, AnnotationProcessorEnvironment env) {
-		super(env);
-        assert decls.size() == 1;
-        _annotationDecl = decls.iterator().next();
-	}
-
-	/* (non-Javadoc)
-	 * @see com.sun.mirror.apt.AnnotationProcessor#process()
-	 */
-	public void process() {
-        Collection<Declaration> annotatedDecls = _env.getDeclarationsAnnotatedWith(_annotationDecl);
-        Messager m = _env.getMessager();
-        for (Declaration decl : annotatedDecls) {
-        	MessagerAnnotation a = decl.getAnnotation(MessagerAnnotation.class);
-        	SourcePosition sp = decl.getPosition();
-        	MessagerAnnotation.Severity sev = a.severity();
-        	switch (sev) {
-        	case ERROR :
-        		m.printError(sp, PROBLEM_TEXT_ERROR);
-        		break;
-        	case WARNING :
-        		m.printWarning(sp, PROBLEM_TEXT_WARNING);
-        		break;
-        	case INFO :
-        		m.printNotice(sp, PROBLEM_TEXT_INFO);
-        		break;
-        	}
-        }
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessorFactory.java
deleted file mode 100644
index 1b3f279..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.messager;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class MessagerAnnotationProcessorFactory extends BaseFactory {
-
-	private final static String annotationName = "org.eclipse.jdt.apt.tests.annotations.messager.MessagerAnnotation";
-	public MessagerAnnotationProcessorFactory() {
-		super(annotationName);
-	}
-
-	/* (non-Javadoc)
-	 * @see com.sun.mirror.apt.AnnotationProcessorFactory#getProcessorFor(java.util.Set, com.sun.mirror.apt.AnnotationProcessorEnvironment)
-	 */
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> decls, 
-			AnnotationProcessorEnvironment env) {
-		return new MessagerAnnotationProcessor(decls, env);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerCodeExample.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerCodeExample.java
deleted file mode 100644
index 4f5dca5..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/messager/MessagerCodeExample.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.messager;
-
-
-/**
- * Code examples for tests of Messager interface
- */
-@SuppressWarnings("nls")
-public class MessagerCodeExample {
-
-	public static final String CODE_PACKAGE = "messagertestpackage";
-	public static final String CODE_CLASS_NAME = "MessagerTestClass";
-	public static final String CODE_FULL_NAME = CODE_PACKAGE + "." + CODE_CLASS_NAME;
-	
-	// These offsets work for each code example, as long as the examples are cumulative
-	public static final int INFO_START = 219;
-	public static final int INFO_END = 222;
-	public static final int WARNING_START = 319;
-	public static final int WARNING_END = 322;
-	public static final int ERROR_START = 417;
-	public static final int ERROR_END = 421;
-
-	private static final String HEADER_CHUNK = 
-		"package messagertestpackage;\n" +
-		"import org.eclipse.jdt.apt.tests.annotations.messager.MessagerAnnotation;" + "\n" +
-		"public class MessagerTestClass {" + "\n";
-
-	private static final String INFO_CHUNK =
-		"    @MessagerAnnotation(severity=MessagerAnnotation.Severity.INFO)" + "\n" +
-		"    public void Foo() {" + "\n" +
-		"    }" + "\n";
-
-	private static final String WARNING_CHUNK =
-		"    @MessagerAnnotation(severity=MessagerAnnotation.Severity.WARNING)" + "\n" +
-		"    public void Bar() {" + "\n" +
-		"    }" + "\n";
-
-	private static final String ERROR_CHUNK =
-		"    @MessagerAnnotation(severity=MessagerAnnotation.Severity.ERROR)" + "\n" +
-		"    public void Quux() {" + "\n" +
-		"    }" + "\n";
-	
-	private static final String OK_CHUNK =
-		"    @MessagerAnnotation(severity=MessagerAnnotation.Severity.OK)" + "\n" +
-		"    public void Foo() {" + "\n" +
-		"    }" + "\n";
-
-	/** Code example with INFO, WARNING, and ERROR severities */
-	public static final String CODE1 = 
-		HEADER_CHUNK +
-		INFO_CHUNK +
-		WARNING_CHUNK +
-		ERROR_CHUNK +
-		"}";
-
-	/** Code example with INFO and WARNING severities */
-	public static final String CODE2 = 
-		HEADER_CHUNK +
-		INFO_CHUNK +
-		WARNING_CHUNK +
-		"}";
-	
-	/** Code example with INFO severity only */
-	public static final String CODE3 = 
-		HEADER_CHUNK +
-		INFO_CHUNK +
-		"}";
-	
-	/** Code example with INFO severity only */
-	public static final String CODE4 = 
-		HEADER_CHUNK +
-		OK_CHUNK +
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/CodeExample.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/CodeExample.java
deleted file mode 100644
index 1ef9baa..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/CodeExample.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-/**
- * Holds information for the mirror tests.
- */
-@SuppressWarnings("nls")
-public class CodeExample {
-	
-	public static final String CODE_PACKAGE = "mirrortestpackage";
-	
-	public static final String CODE_CLASS_NAME = "MirrorTestClass";
-	
-	public static final String CODE_FULL_NAME = CODE_PACKAGE + "." + CODE_CLASS_NAME;
-	
-	public static final String CODE = 
-		"package mirrortestpackage;\n" +
-        "\n" +
-        "import java.io.Serializable;\n" +
-        "import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorTestAnnotation;\n" +
-        "\n" +
-        "public class MirrorTestClass implements Serializable {\n" +
-        "\n" +
-        "    public static final String STATIC_FIELD = \"Static Field\";\n" +
-        "\n" +
-        "    private static final long serialVersionUID = 42L;\n" +
-        "\n" +
-        "    public String field;\n" +
-        "\n" +
-        "    public MirrorTestClass() {\n" +
-        "        field = \"Field\";\n" +
-        "    }\n" +
-        "\n" +
-        "    @MirrorTestAnnotation\n" +
-        "    public static Object staticMethod() {\n" +
-        "        return null;\n" +
-        "    }\n" +
-        "\n" +
-        "    public String stringMethod() {\n" +
-        "        return null;\n" +
-        "    }\n" +
-        "\n" +
-		"\n" +
-        "    public String toString() {\n" +
-        "        return null;\n" +
-        "    }\n" +
-        "\n" +
-        "    public static class InnerClass extends MirrorTestClass {\n" +
-		"\n" +
-        "        private static final long serialVersionUID = 148L;\n" +
-        "\n" +
-        "        public static Object staticMethod() {\n" +
-        "            return null;\n" +
-        "        }\n" +
-        "\n" +
-        "    }\n" +
-        "}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantAnnotationFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantAnnotationFactory.java
deleted file mode 100644
index 8321617..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantAnnotationFactory.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class DefaultConstantAnnotationFactory extends BaseFactory{
-	
-	public DefaultConstantAnnotationFactory(){
-		super("test.Trigger");
-	}
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> decls, AnnotationProcessorEnvironment env) {
-		return new DefaultConstantProcessor(env);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantProcessor.java
deleted file mode 100644
index 9484dc3..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/DefaultConstantProcessor.java
+++ /dev/null
@@ -1,89 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.type.DeclaredType;
-
-public class DefaultConstantProcessor extends BaseProcessor {
-	public DefaultConstantProcessor(AnnotationProcessorEnvironment env){
-		super(env);
-	}
-	public void process() {
-		final AnnotationTypeDeclaration trigger = (AnnotationTypeDeclaration)_env.getTypeDeclaration("test.Trigger");
-		
-		final Messager msger = _env.getMessager();
-		if( trigger == null)
-			msger.printError("cannot find test.Trigger");
-		
-		final Collection<Declaration> decls = _env.getDeclarationsAnnotatedWith(trigger);
-		for(Declaration decl : decls ){
-			if( decl instanceof TypeDeclaration ){
-				final TypeDeclaration typeDecl = (TypeDeclaration)decl;
-				if( "test.EntryPoint".equals(typeDecl.getQualifiedName()) ){
-					final Collection<FieldDeclaration> fields = typeDecl.getFields();
-					for( FieldDeclaration field : fields ){
-						final String name = field.getSimpleName();
-						if( "nestedAnno".equals(name)){
-							final DeclaredType fieldType = (DeclaredType)field.getType();
-							final Collection<TypeDeclaration> nestedTypes = fieldType.getDeclaration().getNestedTypes();
-							for(TypeDeclaration nestedType : nestedTypes ){
-								if( "NestedAnnotation".equals(nestedType.getSimpleName()) ){
-									final Collection<? extends MethodDeclaration> annotationMethods = nestedType.getMethods();
-									for( MethodDeclaration annotationMethod : annotationMethods ){
-										if( "value".equals(annotationMethod.getSimpleName()) ){
-											final AnnotationTypeElementDeclaration value = 
-												(AnnotationTypeElementDeclaration)annotationMethod;
-											final String defaultString = value.getDefaultValue() == null ? "" :
-												value.getDefaultValue().toString();
-											final String expected = "Eore";
-											if(!defaultString.equals(expected) )
-												msger.printError("expecting default=" + expected + " but got " +defaultString);
-										}
-									}
-								}
-							}
-							
-							final Collection<FieldDeclaration> nestedAnnoFields = fieldType.getDeclaration().getFields();
-							for(FieldDeclaration nestedAnnoField : nestedAnnoFields ){
-								if(nestedAnnoField.getSimpleName().equals("FOUR")){
-									final Object constant = nestedAnnoField.getConstantValue();
-									final String expected = "4";
-									final String constantStr = constant == null ? "" : constant.toString();
-									if(!constantStr.equals(expected) )
-										msger.printError("expecting constant=" + expected + " but got " + constantStr);
-								}
-							}
-							continue;
-						}
-						else{
-							msger.printError("found unexpected field " + field );
-						}
-						
-					}
-					
-					continue;
-				}
-			}
-			msger.printError("found unexpected declaration " + decl );
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationCodeExample.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationCodeExample.java
deleted file mode 100644
index 9208678..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationCodeExample.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-@SuppressWarnings("nls")
-public class MirrorDeclarationCodeExample
-{
-	public static final String CODE_PACKAGE = "mirrortestpackage";
-	public static final String CODE_CLASS_NAME = "DeclarationTestClass";
-	public static final String CODE_FULL_NAME = CODE_PACKAGE + "." + CODE_CLASS_NAME;
-
-	public static final String CODE = 
-		"package mirrortestpackage;\n" +
-		"import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorDeclarationTestAnnotation;" + "\n" +
-		"@MirrorDeclarationTestAnnotation(s=\"fred\", value=5)" + "\n" +
-		"public class DeclarationTestClass {" + "\n" +
-		"    public class ClassDec {" + "\n" +
-		"	     public ClassDec() {}" + "\n" +
-		"	     public ClassDec(int j) {}" + "\n" +
-		"	     public static final int i = 1;" + "\n" +
-		"	     public float f;" + "\n" +
-		"	     public static final String s = \"hello\";" + "\n" +
-		"	     public java.util.GregorianCalendar gc;" + "\n" +
-		"        public void methodDec(int k, String... t) throws Exception {}" + "\n" +
-		"        public void methodDecNoArg(){}" + "\n" +
-		"    }" + "\n" +
-    	"    public enum EnumDec {" + "\n" +
-		"        aardvark, anteater" + "\n" +
-		"    }" + "\n" +
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotation.java
deleted file mode 100644
index 2ae16c4..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-public @interface MirrorDeclarationTestAnnotation {
-	String s() default "bob"; //$NON-NLS-1$
-	int value() default 3;
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessor.java
deleted file mode 100644
index e5887a9..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessor.java
+++ /dev/null
@@ -1,320 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-//TODO AnnotationMirror.ElementValues()
-//TODO AnnotationMirror.getPosition()
-//TODO AnnotationValue.getPosition()
-//TODO AnnotationValue.toString()
-//TODO Declaration
-//TODO ExecutableDeclaration
-//TODO TypeDeclaration
-//TODO InterfaceDeclaration
-//TODO MemberDeclaration
-//TODO MethodDeclaration.getFormalTypeParameters()
-//TODO PackageDeclaration
-//TODO TypeParameterDeclaration
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.declaration.ClassDeclaration;
-import com.sun.mirror.declaration.ConstructorDeclaration;
-import com.sun.mirror.declaration.EnumConstantDeclaration;
-import com.sun.mirror.declaration.EnumDeclaration;
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.Modifier;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.type.AnnotationType;
-import com.sun.mirror.type.ClassType;
-import com.sun.mirror.type.ReferenceType;
-
-@SuppressWarnings("nls")
-public class MirrorDeclarationTestAnnotationProcessor extends BaseProcessor {
-	
-	public MirrorDeclarationTestAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process() {
-		try {
-			Collection<TypeDeclaration> decls = _env.getSpecifiedTypeDeclarations();
-			TypeDeclaration testClass = null;
-			ClassDeclaration testClassDec = null;
-			for(TypeDeclaration decl : decls) {
-	            if(decl.toString().endsWith("DeclarationTestClass")) { //$NON-NLS-1$
-	            	testClass = decl;
-	            }
-	            if(decl.toString().endsWith("ClassDec")) { //$NON-NLS-1$
-	            	testClassDec = (ClassDeclaration)decl;
-	            }
-			}
-
-			testAnnotationImplementations(testClass);
-			testClassDeclaration(testClassDec);
-			testEnumImplementations(testClass);
-			testFieldDeclaration(testClassDec);
-			testMethodDeclaration(testClassDec);
-		}
-		catch (Throwable t) {
-			if (!ProcessorTestStatus.hasErrors()) {
-				ProcessorTestStatus.failWithoutException(t.toString());
-			}
-			t.printStackTrace();
-		}
-	}
-	
-	
-	/**
-	 * Tests for:
-	 * Annotation Mirror
-	 * AnnotationTypeDeclaration
-	 * AnnotationTypeElementDeclaration
-	 * AnnotationValue
-	 * 
-	 * @param testClass TypeDeclaration
-	 * 
-	 */
-	private void testAnnotationImplementations(TypeDeclaration testClass) {
-		
-		//AnnotationMirror tests
-		Collection<AnnotationMirror> annoMirrors = testClass.getAnnotationMirrors();
-		ProcessorTestStatus.assertEquals("Number of annotation mirrors", 1, annoMirrors.size());
-		
-        AnnotationMirror annoMirror = annoMirrors.iterator().next();
-        ProcessorTestStatus.assertTrue("Annotation mirror contents", annoMirror.toString().startsWith("@MirrorDeclarationTestAnnotation"));
-        
-        AnnotationType annoType = annoMirror.getAnnotationType();
-        ProcessorTestStatus.assertTrue("AnnotationType name", annoType.toString().endsWith("mirrortest.MirrorDeclarationTestAnnotation"));
-        
-
-        //AnnotationTypeDeclaration tests
-        AnnotationTypeDeclaration annoTypeDecl = annoType.getDeclaration();
-        ProcessorTestStatus.assertEquals("AnnotationTypeDeclaration same as AnnotationType", annoType, annoTypeDecl);
-        
-        
-        //AnnotationTypeElementDeclaration and AnnotationValue tests
-        Collection<AnnotationTypeElementDeclaration> elementDeclarations = annoTypeDecl.getMethods();
-        ProcessorTestStatus.assertEquals("Number of methods on annotation", 2, elementDeclarations.size());
-
-        AnnotationTypeElementDeclaration elementString = null;
-        AnnotationTypeElementDeclaration elementInt = null;
-        for(AnnotationTypeElementDeclaration ated : elementDeclarations) {
-        	if(ated.toString().startsWith("S"))
-        		elementString = ated;
-        	if(ated.toString().startsWith("i"))
-        		elementInt = ated;
-        }
-        ProcessorTestStatus.assertEquals("declaring type same as AnnotationTypeDeclaration", annoTypeDecl, elementString.getDeclaringType());
-        ProcessorTestStatus.assertEquals("declaring type same as AnnotationTypeDeclaration", annoTypeDecl, elementInt.getDeclaringType());
-
-        AnnotationValue valueString = elementString.getDefaultValue();
-        AnnotationValue valueInt = elementInt.getDefaultValue();
-        ProcessorTestStatus.assertEquals("", "bob", valueString.getValue());
-        ProcessorTestStatus.assertEquals("", new Integer(3), valueInt.getValue());
-        ProcessorTestStatus.assertEquals("", "bob", valueString.toString());
-        ProcessorTestStatus.assertEquals("", "3", valueInt.toString());
-	}
-	
-	/**
-	 * Tests for:
-	 * ClassDeclaration
-	 * ConstructorDeclaration
-	 * 
-	 * @param testClass
-	 */
-	private void testClassDeclaration(ClassDeclaration testClassDec) {
-			
-		//ClassDeclaration tests
-		Collection<ConstructorDeclaration> constructDecls = testClassDec.getConstructors();
-		ProcessorTestStatus.assertEquals("Number of constructors", 2, constructDecls.size());
-
-		ConstructorDeclaration constructNoArg = null;
-		ConstructorDeclaration constructIntArg = null;
-		for(ConstructorDeclaration construct : constructDecls) {
-			if(construct.toString().endsWith("()"))
-				constructNoArg = construct;
-			if(construct.toString().endsWith("(int j)"))
-				constructIntArg = construct;
-		}
-		ProcessorTestStatus.assertTrue("constructor with no args", constructNoArg != null);
-		ProcessorTestStatus.assertTrue("constructor with one (int) arg", constructIntArg != null);
-		
-		Collection<MethodDeclaration> methodDecls = testClassDec.getMethods();
-		ProcessorTestStatus.assertEquals("Number of methods", 2, methodDecls.size());
-
-		MethodDeclaration methodDecl = null;
-		methodDecl = methodDecls.iterator().next();
-		ProcessorTestStatus.assertTrue("method declaration exists", methodDecl != null);
-		
-		ClassType superClass = testClassDec.getSuperclass();
-		ProcessorTestStatus.assertEquals("Object is only super", "java.lang.Object", superClass.toString());	
-	}
-	
-	/**
-	 * Tests for:
-	 * EnumConstantDeclaration
-	 * EnumDeclaration 
-	 * 
-	 * @param testClass
-	 */
-	private void testEnumImplementations(TypeDeclaration testClass) {
-		
-		//EnumDeclaration tests
-		Collection<TypeDeclaration> nestedTypes = testClass.getNestedTypes();
-		EnumDeclaration enumDecl = null;
-		for(TypeDeclaration decl : nestedTypes) {
-			if(decl.toString().endsWith("EnumDec"))
-				enumDecl = (EnumDeclaration)decl;
-		}
-		ProcessorTestStatus.assertTrue("EnumDeclaration exists", enumDecl != null);
-
-		Collection<EnumConstantDeclaration> enumConstDecls = enumDecl.getEnumConstants();
-		ProcessorTestStatus.assertEquals("Number of enum constants", 2, enumConstDecls.size());
-		EnumConstantDeclaration enumConstAardvark = null;
-		EnumConstantDeclaration enumConstAnteater = null;
-		for(EnumConstantDeclaration enumConst : enumConstDecls) {
-			if(enumConst.toString().equals("aardvark"))
-				enumConstAardvark = enumConst;
-			if(enumConst.toString().equals("anteater"))
-				enumConstAnteater = enumConst;
-		}
-		ProcessorTestStatus.assertTrue("enum constant \"aardvark\" exists", enumConstAardvark != null);
-		ProcessorTestStatus.assertTrue("enum constant \"anteater\" exists", enumConstAnteater != null);
-		
-		//EnumConstantDeclaration tests
-		EnumDeclaration declaringTypeAardvark = enumConstAardvark.getDeclaringType();
-		EnumDeclaration declaringTypeAnteater = enumConstAnteater.getDeclaringType();
-		ProcessorTestStatus.assertEquals("Declaring type is EnumDec", "mirrortestpackage.DeclarationTestClass.EnumDec", declaringTypeAardvark.toString());
-		ProcessorTestStatus.assertEquals("Declaring type is EnumDec", "mirrortestpackage.DeclarationTestClass.EnumDec", declaringTypeAnteater.toString());
-		
-		
-		//Modifier tests
-		Modifier[] valuesArray = Modifier.values();
-		int valuesArrayLength = valuesArray.length;
-		ProcessorTestStatus.assertEquals("Modifier.values() array length", 11, valuesArrayLength);
-
-		ProcessorTestStatus.assertEquals("Modifier.ABSTRACT", "abstract", Modifier.ABSTRACT.toString());
-		ProcessorTestStatus.assertEquals("Modifier.FINAL", "final", Modifier.FINAL.toString());
-		ProcessorTestStatus.assertEquals("Modifier.NATIVE", "native", Modifier.NATIVE.toString());
-		ProcessorTestStatus.assertEquals("Modifier.PRIVATE", "private", Modifier.PRIVATE.toString());
-		ProcessorTestStatus.assertEquals("Modifier.PROTECTED", "protected", Modifier.PROTECTED.toString());
-		ProcessorTestStatus.assertEquals("Modifier.PUBLIC", "public", Modifier.PUBLIC.toString());
-		ProcessorTestStatus.assertEquals("Modifier.STATIC", "static", Modifier.STATIC.toString());
-		ProcessorTestStatus.assertEquals("Modifier.STRICTFP", "strictfp", Modifier.STRICTFP.toString());
-		ProcessorTestStatus.assertEquals("Modifier.SYNCHRONIZED", "synchronized", Modifier.SYNCHRONIZED.toString());
-		ProcessorTestStatus.assertEquals("Modifier.TRANSIENT", "transient", Modifier.TRANSIENT.toString());
-		ProcessorTestStatus.assertEquals("Modifier.VOLATILE", "volatile", Modifier.VOLATILE.toString());
-		ProcessorTestStatus.assertEquals("Modifier.valueOf(\"PUBLIC\")", Modifier.PUBLIC, Modifier.valueOf("PUBLIC"));
-	}
-	
-	/**
-	 * Tests for:
-	 * FieldDeclaration
-	 * 
-	 * @param testClassDec
-	 */
-	private void testFieldDeclaration(ClassDeclaration testClassDec) {
-		
-		//FieldDeclaration tests
-		Collection<FieldDeclaration> fieldDecls = testClassDec.getFields();
-		ProcessorTestStatus.assertEquals("Number of fields", 4, fieldDecls.size());
-		FieldDeclaration fieldI = null;
-		FieldDeclaration fieldF = null;
-		FieldDeclaration fieldS = null;
-		FieldDeclaration fieldGC = null;
-		for(FieldDeclaration field : fieldDecls) {
-			if(field.toString().equals("i"))
-				fieldI = field;
-			if(field.toString().equals("f"))
-				fieldF = field;
-			if(field.toString().equals("s"))
-				fieldS = field;
-			if(field.toString().equals("gc"))
-				fieldGC = field;
-		}
-		ProcessorTestStatus.assertTrue("Field i exists", fieldI != null);
-		ProcessorTestStatus.assertEquals("Field i constant expression is 1", "1", fieldI.getConstantExpression());
-		ProcessorTestStatus.assertEquals("Field i constant value is 1", "1", fieldI.getConstantValue().toString());
-		ProcessorTestStatus.assertEquals("Field i type is int", "int", fieldI.getType().toString());
-		ProcessorTestStatus.assertTrue("Field f exists", fieldF != null);
-		ProcessorTestStatus.assertEquals("Field f constant expression is null", null, fieldF.getConstantExpression());
-		ProcessorTestStatus.assertEquals("Field f constant value is null", null, fieldF.getConstantValue());
-		ProcessorTestStatus.assertEquals("Field f type is float", "float", fieldF.getType().toString());
-		ProcessorTestStatus.assertTrue("Field s exists", fieldS != null);
-		ProcessorTestStatus.assertEquals("Field s constant expression is hello", "hello", fieldS.getConstantExpression());
-		ProcessorTestStatus.assertEquals("Field s constant value is hello", "hello", fieldS.getConstantValue().toString());
-		ProcessorTestStatus.assertEquals("Field s type is java.lang.String", "java.lang.String", fieldS.getType().toString());
-		ProcessorTestStatus.assertTrue("Field gc exists", fieldGC != null);
-		ProcessorTestStatus.assertEquals("Field gc constant expression is null", null, fieldGC.getConstantExpression());
-		ProcessorTestStatus.assertEquals("Field gc constant value is null", null, fieldGC.getConstantValue());
-		ProcessorTestStatus.assertEquals("Field gc type is java.util.GregorianCalendar", "java.util.GregorianCalendar", fieldGC.getType().toString());
-	}
-	
-	/**
-	 * Tests for:
-	 * MethodDeclaration
-	 * ParameterDeclaration
-	 * 
-	 * @param testClassDec
-	 */
-	private void testMethodDeclaration(ClassDeclaration testClassDec) {
-		
-		//Tests for MethodDeclaration
-		Collection<MethodDeclaration> methodDecls = testClassDec.getMethods();
-		MethodDeclaration methodDec = null;
-		MethodDeclaration methodDecNoArg = null;
-		for(MethodDeclaration method : methodDecls) {
-			if(method.toString().endsWith("methodDec(int k, String... t)"))
-				methodDec = method;
-			if(method.toString().endsWith("methodDecNoArg()"))
-				methodDecNoArg = method;
-		}
-		ProcessorTestStatus.assertTrue("Method methodDec exists", methodDec != null);
-
-		Collection<ReferenceType> thrownTypes = methodDec.getThrownTypes();
-		ProcessorTestStatus.assertEquals("Number of types thrown", 1, thrownTypes.size());
-		
-		ReferenceType thrownType = thrownTypes.iterator().next();
-		ProcessorTestStatus.assertEquals("methodDec throws Exception", "java.lang.Exception", thrownType.toString());
-		ProcessorTestStatus.assertTrue("methodDec is varargs", methodDec.isVarArgs());
-		ProcessorTestStatus.assertTrue("Method methodDecNoArg exists", methodDecNoArg != null);
-		ProcessorTestStatus.assertEquals("Number of types thrown", 0, methodDecNoArg.getThrownTypes().size());
-		ProcessorTestStatus.assertTrue("methodDecNoArg is not varargs", !methodDecNoArg.isVarArgs());
-
-		
-		//Tests for ParameterDeclaration
-		Collection<ParameterDeclaration> paramDecls = methodDec.getParameters();
-		ParameterDeclaration paramDeclInt = null;
-		ParameterDeclaration paramDeclString = null;
-		for(ParameterDeclaration param : paramDecls) {
-			if(param.toString().startsWith("int"))
-				paramDeclInt = param;
-			if(param.toString().startsWith("String..."))
-				paramDeclString = param;
-		}
-		ProcessorTestStatus.assertTrue("int parameter exists", paramDeclInt != null);
-		ProcessorTestStatus.assertEquals("Parameter type is int", "int", paramDeclInt.getType().toString());
-		ProcessorTestStatus.assertTrue("String... parameter exists", paramDeclString != null);
-		ProcessorTestStatus.assertEquals("Parameter type is String[]", "java.lang.String[]", paramDeclString.getType().toString());
-		ProcessorTestStatus.assertEquals("Number of parameters in methodDecNoArg", 0, methodDecNoArg.getParameters().size());
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessorFactory.java
deleted file mode 100644
index db5b08b..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorDeclarationTestAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class MirrorDeclarationTestAnnotationProcessorFactory extends BaseFactory 
-{
-	
-	public MirrorDeclarationTestAnnotationProcessorFactory() {
-		super(MirrorDeclarationTestAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds, AnnotationProcessorEnvironment env)
-	{
-		return new MirrorDeclarationTestAnnotationProcessor(env);
-	}
-
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotation.java
deleted file mode 100644
index ecb1e72..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotation.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-/**
- * Annotation for testing the Mirror API implementation.
- * Work takes place in the MirrorTestAnnotationProcessor.
- *
- */
-public @interface MirrorTestAnnotation {
-
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessor.java
deleted file mode 100644
index 1bb2d6b..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessor.java
+++ /dev/null
@@ -1,137 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Collection;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.ClassDeclaration;
-import com.sun.mirror.declaration.EnumDeclaration;
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.declaration.InterfaceDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.PackageDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.declaration.TypeParameterDeclaration;
-import com.sun.mirror.type.InterfaceType;
-import com.sun.mirror.util.Declarations;
-
-@SuppressWarnings("nls")
-public class MirrorTestAnnotationProcessor extends BaseProcessor {
-	
-	public static boolean _processRun = false;
-	
-	public MirrorTestAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		super(env);
-	}
-
-	public void process() {
-		_processRun = true;
-		try {
-			Collection<TypeDeclaration> decls = _env.getSpecifiedTypeDeclarations();
-			TypeDeclaration decl = null;
-			for (TypeDeclaration declTemp : decls) {
-				if (CodeExample.CODE_FULL_NAME.equals(declTemp.getQualifiedName()))
-					decl = declTemp;
-			}
-			testTypeDecl(decl);
-			testDeclarationsUtil(decl);
-			testPackageImpl();
-		}
-		catch (Throwable t) {
-			if (!ProcessorTestStatus.hasErrors()) {
-				ProcessorTestStatus.failWithoutException(t.toString());
-			}
-			t.printStackTrace();
-		}
-	}
-	
-	private void testTypeDecl(TypeDeclaration typeDecl) {
-		ProcessorTestStatus.assertEquals("Type name", 
-				CodeExample.CODE_PACKAGE + "." + CodeExample.CODE_CLASS_NAME,
-				typeDecl.getQualifiedName());
-		
-		PackageDeclaration pkg = typeDecl.getPackage();
-		ProcessorTestStatus.assertEquals("Package", CodeExample.CODE_PACKAGE, pkg.getQualifiedName());
-		
-		Collection<FieldDeclaration> fields = typeDecl.getFields();
-		ProcessorTestStatus.assertEquals("Number of fields: " + fields, 3, fields.size());
-		
-		Collection<TypeParameterDeclaration> typeParams = typeDecl.getFormalTypeParameters();
-		ProcessorTestStatus.assertEquals("Number of type params", 0, typeParams.size());
-		
-		Collection<? extends MethodDeclaration> methods = typeDecl.getMethods();
-		ProcessorTestStatus.assertEquals("Number of methods", 3, methods.size());
-		
-		Collection<TypeDeclaration> nestedTypes = typeDecl.getNestedTypes();
-		ProcessorTestStatus.assertEquals("Number of nested types", 1, nestedTypes.size());
-		
-		Collection<InterfaceType> supers = typeDecl.getSuperinterfaces();
-		ProcessorTestStatus.assertEquals("Number of supers", 1, supers.size());
-	}
-	
-	private void testPackageImpl() {
-		PackageDeclaration pkg = _env.getPackage("org.eclipse.jdt.apt.tests.annotations.mirrortest");
-		ProcessorTestStatus.assertEquals("Package name", "org.eclipse.jdt.apt.tests.annotations.mirrortest", pkg.getQualifiedName());
-		// Not sure if this is the best way to test -- can we count on the number of classes 
-		// remaining the same in java.util?
-		
-		pkg = _env.getPackage("java");
-		ProcessorTestStatus.assertEquals("Package name", "java", pkg.getQualifiedName());
-		ProcessorTestStatus.assertEquals("Number of classes in java", 0, pkg.getClasses().size());
-		
-		pkg = _env.getPackage("java.util");
-		ProcessorTestStatus.assertEquals("Package name", "java.util", pkg.getQualifiedName());
-		
-		Collection<ClassDeclaration> classes = pkg.getClasses();
-		ProcessorTestStatus.assertEquals("Number of classes in java.util", 79, classes.size());
-		
-		Collection<EnumDeclaration> enums = pkg.getEnums();
-		ProcessorTestStatus.assertEquals("Number of enums in java.util", 0, enums.size());
-		
-		Collection<InterfaceDeclaration> interfaces = pkg.getInterfaces();
-		ProcessorTestStatus.assertEquals("Number of interfaces in java.util", 15, interfaces.size());
-	}
-	
-	private void testDeclarationsUtil(TypeDeclaration typeDecl) {
-		Declarations utils = _env.getDeclarationUtils();
-		TypeDeclaration objType = _env.getTypeDeclaration("java.lang.Object");
-		
-		// Test negative case
-		ProcessorTestStatus.assertTrue("Class hides Object", !utils.hides(typeDecl, objType));
-		
-		// Test positive case
-		TypeDeclaration innerClass = typeDecl.getNestedTypes().iterator().next();
-		
-		MethodDeclaration innerMethod = null;
-		for (MethodDeclaration method : innerClass.getMethods()) {
-			if (method.getSimpleName().equals("staticMethod")) {
-				innerMethod = method;
-				break;
-			}
-		}
-		
-		MethodDeclaration outerMethod = null;
-		for (MethodDeclaration method : typeDecl.getMethods()) {
-			if (method.getSimpleName().equals("staticMethod")) {
-				outerMethod = method;
-				break;
-			}
-		}
-		ProcessorTestStatus.assertTrue("inner's staticMethod() should hide MirrorTestClass'", utils.hides(innerMethod, outerMethod));
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessorFactory.java
deleted file mode 100644
index f40b782..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorTestAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class MirrorTestAnnotationProcessorFactory extends BaseFactory {
-
-	public MirrorTestAnnotationProcessorFactory() {
-		super(MirrorTestAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> typeDecls, AnnotationProcessorEnvironment env) {
-		return new MirrorTestAnnotationProcessor(env);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotation.java
deleted file mode 100644
index 0249f1e..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotation.java
+++ /dev/null
@@ -1,6 +0,0 @@
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-public @interface MirrorUtilTestAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessor.java
deleted file mode 100644
index 36149a5..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessor.java
+++ /dev/null
@@ -1,178 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.io.File;
-import java.util.Map;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-@SuppressWarnings("nls")
-public class MirrorUtilTestAnnotationProcessor extends BaseProcessor
-{
-
-	// Environment options test cases
-		// no-translation cases
-	public static final int EC_NORMAL = 0;
-	public static final int EC_NORMALPATH = 1;
-	public static final int EC_BOGUSCPVAR = 2;
-	public static final int EC_BADPROJ = 3;
-		// end of no-translation cases
-	public static final int EC_NUM_NOTRANSLATIONCASES = 4;
-		// expected-translation cases
-	public static final int EC_CPVAR = 4;
-	public static final int EC_CPVARPATH = 5;
-	public static final int EC_CPVARFILE = 6;
-	public static final int EC_PROJ = 7;
-	public static final int EC_PROJFILE = 8;
-	
-	private static final String ENVPREFIX = "apt.tests.annotations.mirrortest.";
-	public static final String[] ENV_KEYS = {
-			// no-translation
-		ENVPREFIX + "normal",
-		ENVPREFIX + "normalPath",
-		ENVPREFIX + "boguscpvar",
-		ENVPREFIX + "badProj",
-			// expected-translation
-		ENVPREFIX + "cpvar",
-		ENVPREFIX + "cpvarPath",
-		ENVPREFIX + "cpvarFile",
-		ENVPREFIX + "proj",
-		ENVPREFIX + "projFile"
-	};
-	public static final String[] ENV_VALUES = {
-			// no-translation
-		"normal",
-		"normal\\foo.bar",
-		"%NOSUCH\\VARNAME%",
-		"%ROOT%\\someOtherProject\\foo\\nonexistent.txt",
-			// expected-translation
-		"%ECLIPSE_HOME%",
-		"%ECLIPSE_HOME%\\plugins",
-		"%ECLIPSE_HOME%\\startup.jar",
-		"%ROOT%\\org.eclipse.jdt.apt.tests.MirrorUtilTestsProject",
-		"%ROOT%\\org.eclipse.jdt.apt.tests.MirrorUtilTestsProject\\.classpath"
-	};
-	
-	public MirrorUtilTestAnnotationProcessor(AnnotationProcessorEnvironment env)
-	{
-		super(env);
-	}
-
-	public void process()
-	{
-		testHidesOverrides();
-		testEnvOptions();
-	}
-	
-
-	@SuppressWarnings("unused")
-	private void testHidesOverrides()
-	{
-		//set the type declarations
-		TypeDeclaration type_EnvTestClass = null;
-		TypeDeclaration type_A = null;
-		TypeDeclaration type_B = null;
-		TypeDeclaration type_C = null;
-		TypeDeclaration type_D = null;
-		TypeDeclaration type_I = null;
-		TypeDeclaration type_J = null;
-		TypeDeclaration type_K = null;
-		for(TypeDeclaration type : _env.getTypeDeclarations())
-		{
-			if(type.toString().endsWith("EnvTestClass"))
-				type_EnvTestClass = type;
-			if(type.toString().endsWith("A"))
-				type_A = type;
-			if(type.toString().endsWith("B"))
-				type_B = type;
-			if(type.toString().endsWith("C"))
-				type_C = type;
-			if(type.toString().endsWith("D"))
-				type_D = type;
-			if(type.toString().endsWith("I"))
-				type_I = type;
-			if(type.toString().endsWith("J"))
-				type_J = type;
-			if(type.toString().endsWith("K"))
-				type_K = type;
-		}
-		
-		//set the method declarations
-		MethodDeclaration method_A = type_A.getMethods().iterator().next();
-		MethodDeclaration method_B = type_B.getMethods().iterator().next();
-		MethodDeclaration method_C = type_C.getMethods().iterator().next();
-		MethodDeclaration method_D = type_D.getMethods().iterator().next();
-		MethodDeclaration method_I = type_I.getMethods().iterator().next();
-		MethodDeclaration method_K = type_K.getMethods().iterator().next();
-		
-		//set the field declarations
-		FieldDeclaration field_A = type_A.getFields().iterator().next();
-		FieldDeclaration field_B = type_B.getFields().iterator().next();
-		FieldDeclaration field_C = type_C.getFields().iterator().next();
-		FieldDeclaration field_D = type_D.getFields().iterator().next();
-		FieldDeclaration field_I = type_I.getFields().iterator().next();
-		FieldDeclaration field_K = type_K.getFields().iterator().next();
-
-		//overrides positive tests
-		ProcessorTestStatus.assertTrue("Expect B.method() to override A.method()", _env.getDeclarationUtils().overrides(method_B, method_A));
-		ProcessorTestStatus.assertTrue("Expect K.method() to override I.method()", _env.getDeclarationUtils().overrides(method_K, method_I));
-		
-		//overrides negative tests
-		ProcessorTestStatus.assertTrue("Expect B.method() to not override C.method()", !_env.getDeclarationUtils().overrides(method_B, method_C));
-    	ProcessorTestStatus.assertTrue("Expect D.method(String s) to not override A.method()", !_env.getDeclarationUtils().overrides(method_D, method_A));
-		
-		//hides positive tests
-		ProcessorTestStatus.assertTrue("Expect B.field to hide A.field", _env.getDeclarationUtils().hides(field_B, field_A));
-		ProcessorTestStatus.assertTrue("Expect D.field to hide A.field", _env.getDeclarationUtils().hides(field_D, field_A));
-		ProcessorTestStatus.assertTrue("Expect K.field to hide I.field", _env.getDeclarationUtils().hides(field_K, field_I));
-		
-    	//hides negative test
-		ProcessorTestStatus.assertTrue("Expect B.field to not hide C.field", !_env.getDeclarationUtils().hides(field_B, field_C));
-	}
-	
-	private void testEnvOptions() {
-		Map<String, String> options = _env.getOptions();
-		// no-translation cases should be unchanged
-		for (int i = 0; i < EC_NUM_NOTRANSLATIONCASES; ++i) {
-			ProcessorTestStatus.assertEquals(ENV_KEYS[i], options.get(ENV_KEYS[i]), ENV_VALUES[i]);
-		}
-		// translation cases should be changed
-		for (int i = EC_NUM_NOTRANSLATIONCASES; i < ENV_KEYS.length; ++i) {
-			ProcessorTestStatus.assertTrue(ENV_KEYS[i], !ENV_VALUES[i].equals(options.get(ENV_KEYS[i])) );
-		}
-		// the files should exist at the specified absolute location
-		String name = options.get(ENV_KEYS[EC_CPVARFILE]);
-		File file;
-		if (name == null) {
-			ProcessorTestStatus.fail(ENV_KEYS[EC_CPVARFILE] + " was not in options map");
-		} else {
-			file = new File(name);
-			ProcessorTestStatus.assertTrue(ENV_KEYS[EC_CPVARFILE] + " was not found", file != null && file.exists());
-		}
-		
-		name = options.get(ENV_KEYS[EC_PROJFILE]);
-		if (name == null) {
-			ProcessorTestStatus.fail(ENV_KEYS[EC_PROJFILE] + " was not in options map");
-		} else {
-			file = new File(name);
-			ProcessorTestStatus.assertTrue(ENV_KEYS[EC_PROJFILE] + " was not found", file != null && file.exists());
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessorFactory.java
deleted file mode 100644
index a10bc2a..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class MirrorUtilTestAnnotationProcessorFactory extends BaseFactory 
-{
-	
-	public MirrorUtilTestAnnotationProcessorFactory() {
-		super(MirrorUtilTestAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> atds, AnnotationProcessorEnvironment env)
-	{
-		return new MirrorUtilTestAnnotationProcessor(env);
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestCodeExample.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestCodeExample.java
deleted file mode 100644
index eef9d31..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/mirrortest/MirrorUtilTestCodeExample.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    sbandow@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.mirrortest;
-
-/**
- * Holds information for the mirror tests.
- */
-@SuppressWarnings("nls")
-public class MirrorUtilTestCodeExample {
-	
-	public static final String CODE_PACKAGE = "testpackage";
-	
-	public static final String CODE_CLASS_NAME = "DeclarationsTestClass";
-
-	public static final String CODE_FULL_NAME = CODE_PACKAGE + "." + CODE_CLASS_NAME;
-	
-	public static final String CODE = 
-		"package testpackage;" + "\n" +
-	    "import org.eclipse.jdt.apt.tests.annotations.mirrortest.MirrorUtilTestAnnotation;" + "\n" +
-	    "@MirrorUtilTestAnnotation" + "\n" +
-	    "public class DeclarationsTestClass" + "\n" +
-	    "{" + "\n" +
-		"    public class A" + "\n" +
-		"    {" + "\n" +
-		"        public int field; " + "\n" +
-		"        public void method(){}" + "\n" +
-		"    }" + "\n" +
-		"    public class B extends A" + "\n" +
-		"    {" + "\n" +
-		"        public int field; " + "\n" +
-		"        public void method(){}" + "\n" +
-		"    }" + "\n" +
-		"    public class C" + "\n" +
-		"    {" + "\n" +
-		"        public int field; " + "\n" +
-		"        public void method(){}" + "\n" +
-		"    }" + "\n" +
-		"    public class D extends A" + "\n" +
-		"    {" + "\n" +
-		"    	public Object field;" + "\n" +
-		"    	public void method(String s){}" + "\n" +
-		"    }" + "\n" +
-		"    public interface I" + "\n" +
-		"    {" + "\n" +
-		"    	public int field = 1;" + "\n" +
-		"       public void method();" + "\n" +
-		"    }" + "\n" +
-		"    public interface J" + "\n" +
-		"    {" + "\n" +
-		"    	public int field = 2;" + "\n" +
-		"    }" + "\n" +
-		"    public class K implements I, J" + "\n" +
-		"    {" + "\n" +
-		"    	public int field;" + "\n" +
-		"       public void method(){}" + "\n" +
-		"    }" + "\n" +
-	    "}";
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotation.java
deleted file mode 100644
index 3b267ed..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.nestedhelloworld;
-
-public @interface NestedHelloWorldAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessor.java
deleted file mode 100644
index 37d5d08..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessor.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests.annotations.nestedhelloworld;
-
-import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotation;
-import org.eclipse.jdt.apt.tests.annotations.helloworld.HelloWorldAnnotationProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-
-
-public class NestedHelloWorldAnnotationProcessor extends
-		HelloWorldAnnotationProcessor {
-
-	public NestedHelloWorldAnnotationProcessor(AnnotationProcessorEnvironment env)
-	{
-		super( env );
-	}
-
-	public String getCode() { return CODE; }
-	
-	@SuppressWarnings("nls")
-	private final String CODE = 
-		"package " + getPackageName() + ";" + "\n" + 
-		"@" + HelloWorldAnnotation.class.getName() + "\n" + 
-		"public class NestedHelloWorldAnnotationGeneratedClass " + "\n" +
-		"{  }";
-		
-		public String getPackageName() { return "nested.hello.world.generatedclass.pkg"; } //$NON-NLS-1$
-		public String getTypeName() { return "NestedHelloWorldAnnotationGeneratedClass"; } //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessorFactory.java
deleted file mode 100644
index 72a2125..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/nestedhelloworld/NestedHelloWorldAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-
-package org.eclipse.jdt.apt.tests.annotations.nestedhelloworld;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class NestedHelloWorldAnnotationProcessorFactory extends BaseFactory
-{
-	public NestedHelloWorldAnnotationProcessorFactory() {
-		super(NestedHelloWorldAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new NestedHelloWorldAnnotationProcessor( env );
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotation.java
deleted file mode 100644
index 80e807f..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotation.java
+++ /dev/null
@@ -1,18 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.noop;
-
-public @interface NoOpAnnotation
-{
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessor.java
deleted file mode 100644
index 33cdb62..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessor.java
+++ /dev/null
@@ -1,20 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.noop;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-
-public class NoOpAnnotationProcessor implements AnnotationProcessor
-{
-	public void process(){}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessorFactory.java
deleted file mode 100644
index ea5b98a..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/noop/NoOpAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.annotations.noop;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class NoOpAnnotationProcessorFactory extends BaseFactory 
-{
-	
-	public NoOpAnnotationProcessorFactory() {
-		super(NoOpAnnotation.class.getName());
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new NoOpAnnotationProcessor();
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/AnnotationReader.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/AnnotationReader.java
deleted file mode 100644
index 85d9764..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/AnnotationReader.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package org.eclipse.jdt.apt.tests.annotations.readAnnotationType;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Collection;
-
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.Declaration;
-
-public class AnnotationReader {
-    public void createClassFilesForAnnotatedDeclarations(
-            Collection<Declaration> declarations,
-            AnnotationProcessorEnvironment env) throws IOException {
-        assert declarations.size() == 1;
-        for (Declaration dec : declarations) {
-
-            PrintWriter writer = null;
-            try {
-                SimpleAnnotation annotation = dec
-                        .getAnnotation(SimpleAnnotation.class);
-                String value = annotation.value().name();
-                //Class annotationType = annotation.annotationType();
-                String className = value + "Gen";
-                writer = env.getFiler().createSourceFile("test/" + className);
-                writer.println("package test;");
-                writer.println("public class " + className);
-                writer.println("{}");
-            } finally {
-                if (writer != null) {
-                    writer.close();
-                }
-            }
-        }
-    }
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessor.java
deleted file mode 100644
index 6564376..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessor.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package org.eclipse.jdt.apt.tests.annotations.readAnnotationType;
-
-import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.Declaration;
-
-public class ReadAnnotationTypeProcessor extends BaseProcessor {
-
-    private AnnotationTypeDeclaration _annotationType;
-    
-    public ReadAnnotationTypeProcessor(Set<AnnotationTypeDeclaration> declarationTypes, AnnotationProcessorEnvironment env) {
-        super(env);
-        assert declarationTypes.size() == 1;
-        _annotationType = declarationTypes.iterator().next();
-    }
-
-    public void process() {
-        PrintWriter writer = null;
-        try
-        {
-            Collection<Declaration> declarations = _env.getDeclarationsAnnotatedWith(_annotationType);     
-            assert declarations.size() == 1;
-            new AnnotationReader().createClassFilesForAnnotatedDeclarations(declarations, _env);
-        } catch (Throwable e)
-        {
-            e.printStackTrace();
-            _env.getMessager().printError(e.getMessage());
-        } finally
-        {
-            if (writer != null)
-            {
-                writer.close();
-            }
-        }
-    }
-    
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessorFactory.java
deleted file mode 100644
index e43d590..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/ReadAnnotationTypeProcessorFactory.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package org.eclipse.jdt.apt.tests.annotations.readAnnotationType;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class ReadAnnotationTypeProcessorFactory extends BaseFactory {
-
-    public ReadAnnotationTypeProcessorFactory() {
-        super(SimpleAnnotation.class.getName());
-    }
-
-    public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> declarations, AnnotationProcessorEnvironment env) {
-        return new ReadAnnotationTypeProcessor(declarations, env);
-    }
-
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/SimpleAnnotation.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/SimpleAnnotation.java
deleted file mode 100644
index d977341..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readAnnotationType/SimpleAnnotation.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.eclipse.jdt.apt.tests.annotations.readAnnotationType;
-
-public @interface SimpleAnnotation {
-    
-    enum Name
-    {
-        HELLO, GOOD_BYE
-    }
-    
-    public Name value();
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/CodeExample.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/CodeExample.java
deleted file mode 100644
index c2bfcc3..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/CodeExample.java
+++ /dev/null
@@ -1,157 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.readannotation;
-
-@SuppressWarnings("nls")
-public class CodeExample {
-	
-	public static final String PACKAGE_QUESTION = "question";
-	
-	public static final String ANNOTATION_TEST_CLASS = "AnnotationTest";
-	public static final String ANNOTATION_TEST_CODE = 
-			"package question;\n" +
-	        "\n" +
-	        "@Deprecated\n" +
-	        "@RTVisibleAnno(anno=@SimpleAnnotation(\"test\"), clazzes={})\n" +
-	        "@RTInvisibleAnno(\"question\")\n" +        
-	        "public interface AnnotationTest{\n" +
-	        "\n" +
-	        "    @RTVisibleAnno(name = \"Foundation\",\n" +
-	        "                   boolValue   = false, \n"  +
-	        "                   byteValue   = 0x10,  \n"  +
-	        "                   charValue   = 'c', \n"    +
-	        "                   doubleValue = 99.0, \n"   +
-	        "                   floatValue  = (float)9.0, \n"    +
-	        "                   intValue    = 999, \n"    +
-	        "                   longValue = 3333,  \n"    +
-	        "                   shortValue = 3,    \n"    +
-	        "                   colors ={ Color.RED, Color.BLUE }, \n"    +
-	        "                   anno = @SimpleAnnotation(\"core\"),\n"    +
-	        "                   simpleAnnos = {@SimpleAnnotation(\"org\"),    \n" + 
-			"              	                   @SimpleAnnotation(\"eclipse\"),\n" +
-			"        		                   @SimpleAnnotation(\"jdt\") },  \n" +
-			"                   clazzes = {Object.class, String.class},\n " +
-			"		            clazz = Object.class)\n " +
-	        "    @RTInvisibleAnno(\"org.eclipse.jdt.core\")\n " +
-		    "    @Deprecated \n " +
-		    "    public int field0 = 0; \n" +
-	        "\n" +
-	        "    @Deprecated \n" +
-	    	"    public int field1 = 1; \n" +
-	    	"\n" +
-	    	"    @RTVisibleAnno(anno=@SimpleAnnotation(\"field\"), clazzes={})\n " +
-	    	"    @RTInvisibleAnno(\"2\") \n " +
-	    	"    public int field2 = 2; \n" +	
-	    	"\n" +
-	    	"    @RTInvisibleAnno(\"3\") \n" +
-	    	"    public int field3 = 3; \n"  +
-	    	"\n" +
-	    	"    @SimpleAnnotation(\"4\") \n" +
-	    	"    public int field4 = 4; \n" +
-	    	"\n" +
-	    	"    @RTVisibleAnno(anno=@SimpleAnnotation(\"method0\"), clazzes={}) \n" +
-	    	"    @RTInvisibleAnno(\"0\") \n" +
-	    	"    @Deprecated \n " +
-	    	"    public int method0();  \n " +
-	    	"\n" +
-	    	"    @Deprecated \n " +
-	    	"    public int method1(); \n " +
-	    	"\n" +
-	    	"    @RTVisibleAnno(anno=@SimpleAnnotation(\"method2\"), clazzes={}) \n " +
-	    	"    @RTInvisibleAnno(\"2\") \n" +
-	    	"    public int method2(); \n" +
-	    	"\n" +
-	    	"   @RTInvisibleAnno(\"3\") \n" +
-	    	"   public int method3(); \n" +
-	    	"\n" +
-	    	"   @SimpleAnnotation(\"method4\") \n" +
-	    	"   public int method4(); \n" +
-	    	"\n" +
-	    	"   public int method5(int p0, \n" +
-	    	"   				   @Deprecated  \n" +
-	    	"   				   int p1, \n" +
-	    	"   				   @RTVisibleAnno(anno=@SimpleAnnotation(\"param2\"), clazzes={}) \n" +
-	    	"   				   @RTInvisibleAnno(\"2\") \n" +
-	    	"   				   int p2); \n" +
-	    	"\n" +
-	    	"   public int method6(int p0, int p1, int p2); \n" +
-	    	"\n }";
-
-	public static final String COLOR_CLASS = "Color";
-	public static final String COLOR_CODE = 
-		"package question;\n" +
-		"\n" +
-		"public enum Color { RED, WHITE, BLUE; } ";				
-	
-	public static final String PACKAGE_INFO_CLASS = "package-info";
-	public static final String PACKAGE_INFO_CODE = 
-		"@Deprecated package question; ";
-	
-	public static final String RTINVISIBLE_CLASS = "RTInvisibleAnno";
-	public static final String RTINVISIBLE_ANNOTATION_CODE = 
-		"package question;  \n" +
-		"\n" +
-		"   public @interface RTInvisibleAnno{  \n" +		
-		"   	String value(); \n" +
-		"   }";
-	
-	public static final String RTVISIBLE_CLASS = "RTVisibleAnno";
-	public static final String RTVISIBLE_ANNOTATION_CODE = 
-		"package question; \n" +
-		"\n" +
-		"import java.lang.annotation.*; \n" +
-		"\n" +
-		"@Retention(value=RetentionPolicy.RUNTIME) \n" +
-		"public @interface RTVisibleAnno  \n" +
-		"{	\n" +	
-		"	String name() default \"eclipse\"; \n" +
-		"	boolean boolValue() default true; \n" +
-		"	byte byteValue() default 0x0001; \n" +
-		"	char charValue() default 'e'; \n" +
-		"	double doubleValue() default 0.0; \n" +
-		"	float floatValue()  default 0; \n" +
-		"	int intValue() default 17; \n" +
-		"	long longValue() default 43; \n" +
-		"	short shortValue() default 1; \n" +
-		"	Color[] colors() default {Color.RED, Color.WHITE, Color.BLUE}; \n" +
-		"	SimpleAnnotation anno(); \n" +
-		"	SimpleAnnotation[] simpleAnnos() default { @SimpleAnnotation(\"org.eclipse.org\") }; \n" +
-		"	Class[] clazzes(); \n" +
-		"	Class clazz() default java.lang.String.class; \n" +
-		"\n }";
-	
-	public static final String SIMPLE_ANNOTATION_CLASS = "SimpleAnnotation";
-	public static final String SIMPLE_ANNOTATION_CODE = 
-		"package question; \n" +
-		"\n" +
-		"import java.lang.annotation.Retention; \n" +
-		"import java.lang.annotation.RetentionPolicy; \n" +
-		"\n" +
-		"@Retention(value=RetentionPolicy.RUNTIME) \n" +
-		"public @interface SimpleAnnotation { \n" +
-		"\n" +	
-		"	String value(); \n" +
-		"}";
-	
-	public static final String PACKAGE_TRIGGER = "trigger";
-	public static final String TRIGGER_CLASS = "Trigger";
-	public static final String TRIGGER_CODE = 
-		"package trigger; \n" +
-		"\n" +
-		"@MyMarkerAnnotation \n" +
-		"public class Trigger {}";
-	
-	public static final String MYMARKERANNOTATION_CLASS = "MyMarkerAnnotation";
-	public static final String MYMARKERANNOTATION_CODE = 
-		"package trigger; \n" +
-		"\n" +		
-		"public @interface MyMarkerAnnotation {}";
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessor.java
deleted file mode 100644
index f017252..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessor.java
+++ /dev/null
@@ -1,193 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.readannotation;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import junit.framework.ComparisonFailure;
-import junit.framework.TestCase;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.FieldDeclaration;
-import com.sun.mirror.declaration.MethodDeclaration;
-import com.sun.mirror.declaration.ParameterDeclaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-public class ReadAnnotationProcessor extends BaseProcessor
-{
-	private static final String[] NO_ANNOTATIONS = new String[0];
-	
-	public ReadAnnotationProcessor(AnnotationProcessorEnvironment env)
-	{
-		super(env);
-	}
-
-	@SuppressWarnings("nls")
-	public void process()
-	{	
-		try{			
-			TypeDeclaration typeDecl = _env.getTypeDeclaration("question.AnnotationTest");		
-			TestCase.assertNotNull("failed to locate type 'question.AnnotationTest'", typeDecl);
-			if( typeDecl != null){			
-				TestCase.assertEquals("Type name mismatch", "question.AnnotationTest", typeDecl.getQualifiedName());			
-				
-				final String[] expectedPkgAnnos = new String[]{ "@Deprecated()" };
-				assertAnnotation(expectedPkgAnnos, typeDecl.getPackage().getAnnotationMirrors() );				
-				
-				final String[] expectedTypeAnnos = new String[]{ "@Deprecated()",
-														  	     "@RTVisibleAnno(anno = @SimpleAnnotation(value = test), clazzes = {})",
-															     "@RTInvisibleAnno(value = question)" };
-				assertAnnotation(expectedTypeAnnos, typeDecl.getAnnotationMirrors());	
-				
-				final Collection<FieldDeclaration> fieldDecls = typeDecl.getFields();
-				
-				int counter = 0;
-				TestCase.assertEquals(5, fieldDecls.size());
-				for(FieldDeclaration fieldDecl : fieldDecls ){
-					final String name = "field" + counter;				
-					
-					TestCase.assertEquals("field name mismatch", name, fieldDecl.getSimpleName());
-					final String[] expected;
-					switch(counter){				
-					case 0:		
-						expected = new String[] { "@RTVisibleAnno(name = Foundation, boolValue = false, byteValue = 16, charValue = c, doubleValue = 99.0, floatValue = 9.0, intValue = 999, longValue = 3333, shortValue = 3, colors = {question.Color RED, question.Color BLUE}, anno = @SimpleAnnotation(value = core), simpleAnnos = {@SimpleAnnotation(value = org), @SimpleAnnotation(value = eclipse), @SimpleAnnotation(value = jdt)}, clazzes = {Object.class, String.class}, clazz = Object.class)",
-										          "@RTInvisibleAnno(value = org.eclipse.jdt.core)",
-										          "@Deprecated()" };
-						break;	
-					case 1:
-						expected = new String[] { "@Deprecated()" };
-						break;
-					case 2:
-						expected = new String[] { "@RTVisibleAnno(anno = @SimpleAnnotation(value = field), clazzes = {})",
-												  "@RTInvisibleAnno(value = 2)" };
-						break;
-					case 3:
-						expected = new String[] { "@RTInvisibleAnno(value = 3)" };
-						break;
-					case 4:
-						expected = new String[] { "@SimpleAnnotation(value = 4)" };
-						break;
-					default:
-						expected = NO_ANNOTATIONS;
-					}
-					
-					assertAnnotation(expected, fieldDecl.getAnnotationMirrors());
-					counter ++;
-				}			
-				
-				final Collection<? extends MethodDeclaration> methodDecls = typeDecl.getMethods();
-				counter = 0;
-				TestCase.assertEquals(7, methodDecls.size());
-				for(MethodDeclaration methodDecl : methodDecls ){
-					final String name = "method" + counter;				
-					
-					TestCase.assertEquals("method name mismatch", name, methodDecl.getSimpleName());
-					final String[] expected;
-					switch(counter)
-					{
-					case 0:
-						expected = new String[] { "@RTVisibleAnno(anno = @SimpleAnnotation(value = method0), clazzes = {})",
-							                      "@RTInvisibleAnno(value = 0)",
-							                      "@Deprecated()" };				
-						break;
-					case 1:
-						expected = new String[] { "@Deprecated()" };
-						break;
-					case 2:
-						expected = new String[] { "@RTVisibleAnno(anno = @SimpleAnnotation(value = method2), clazzes = {})",
-												  "@RTInvisibleAnno(value = 2)" };
-						break;
-					case 3:
-						expected = new String[] { "@RTInvisibleAnno(value = 3)" };
-						break;
-					case 4:
-						expected = new String[] { "@SimpleAnnotation(value = method4)" };
-						break;
-					case 5:
-					case 6:
-					default:
-						expected = NO_ANNOTATIONS;
-					}
-					
-					assertAnnotation(expected, methodDecl.getAnnotationMirrors());
-					
-					if( counter == 5 ){
-						Collection<ParameterDeclaration> paramDecls = methodDecl.getParameters();				
-						int pCounter = 0;
-						for( ParameterDeclaration paramDecl : paramDecls ){
-							final String[] expectedParamAnnotations;
-							switch( pCounter )
-							{
-							case 1:
-								expectedParamAnnotations = new String[] { "@Deprecated()" };
-								break;
-							case 2:							
-								expectedParamAnnotations = new String[] { "@RTVisibleAnno(anno = @SimpleAnnotation(value = param2), clazzes = {})",
-																	      "@RTInvisibleAnno(value = 2)" };							
-								break;						
-							default:
-								expectedParamAnnotations = NO_ANNOTATIONS;						
-							}
-							assertAnnotation(expectedParamAnnotations, paramDecl.getAnnotationMirrors());
-							pCounter ++;
-						}
-						
-					}
-					counter ++;
-				}
-			}
-		}
-		catch( ComparisonFailure failure ){			
-			if (!ProcessorTestStatus.hasErrors()) {
-				ProcessorTestStatus.failWithoutException(failure.toString());
-			}
-			throw failure;
-		}
-		catch( junit.framework.AssertionFailedError error ){
-			if (!ProcessorTestStatus.hasErrors()) {
-				ProcessorTestStatus.failWithoutException(error.toString());
-			}
-			throw error;
-		}
-	}
-	
-	private void assertAnnotation(final String[] expected, Collection<AnnotationMirror> annotations)
-	{
-		final int expectedLen = expected.length;		
-		TestCase.assertEquals("annotation number mismatch", expected.length, annotations.size()); //$NON-NLS-1$
-		
-		final HashSet<String> expectedSet = new HashSet<String>(expectedLen * 4 / 3 + 1);
-		for( int i=0; i<expectedLen; i++ )
-			expectedSet.add(expected[i]);
-			
-		int counter = 0;
-		for( AnnotationMirror mirror : annotations ){
-			if( counter >= expectedLen )
-				TestCase.assertEquals("", mirror.toString()); //$NON-NLS-1$
-			else{
-				final String mirrorToString = mirror.toString();
-				final boolean contains = expectedSet.contains(mirrorToString);
-				if( !contains ){					
-					System.err.println(mirrorToString);
-					System.err.println(expectedSet);
-				}
-				TestCase.assertTrue("unexpected annotation " + mirrorToString, contains); //$NON-NLS-1$
-				expectedSet.remove(mirrorToString);
-			}
-			counter ++;
-		}
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessorFactory.java
deleted file mode 100644
index 1639d77..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/ReadAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.readannotation;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class ReadAnnotationProcessorFactory extends BaseFactory
-{
-
-	public ReadAnnotationProcessorFactory() {
-		super("trigger.MyMarkerAnnotation"); //$NON-NLS-1$
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new ReadAnnotationProcessor( env );
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/lib/question.jar b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/lib/question.jar
deleted file mode 100644
index bb21cdc..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/readannotation/lib/question.jar
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessor.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessor.java
deleted file mode 100644
index 77cf649..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessor.java
+++ /dev/null
@@ -1,159 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.valueconversion;
-
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-
-import junit.framework.ComparisonFailure;
-import junit.framework.TestCase;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseProcessor;
-import org.eclipse.jdt.apt.tests.annotations.ProcessorTestStatus;
-
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationMirror;
-import com.sun.mirror.declaration.AnnotationTypeElementDeclaration;
-import com.sun.mirror.declaration.AnnotationValue;
-import com.sun.mirror.declaration.TypeDeclaration;
-import com.sun.mirror.type.AnnotationType;
-
-public class ValueConversionProcessor extends BaseProcessor {
-	
-	public ValueConversionProcessor(AnnotationProcessorEnvironment env)
-	{
-		super(env);
-	}
-	
-	@SuppressWarnings("nls")
-	public void process() 
-	{
-		try{
-			final TypeDeclaration test = _env.getTypeDeclaration("sample.Test");
-			if( test == null )
-				TestCase.assertNotNull("failed to locate type 'sample.Test'", test);
-			
-			final Collection<AnnotationMirror> annotations = test.getAnnotationMirrors();
-			final int numAnnotations = annotations == null ? 0 : annotations.size();
-			TestCase.assertEquals("annotation number mismatch", 1, numAnnotations);
-			
-			final AnnotationMirror annotation = annotations.iterator().next();
-			final AnnotationType annotationType = annotation.getAnnotationType();
-			
-			TestCase.assertEquals(
-					"annotation type mismatch", 
-					"sample.Test.Annotation", 
-					annotationType.getDeclaration().getQualifiedName());
-			
-			final Map<AnnotationTypeElementDeclaration, AnnotationValue> elementValues =
-				annotation.getElementValues();
-			
-			for( Map.Entry<AnnotationTypeElementDeclaration, AnnotationValue> entry : 
-				 elementValues.entrySet() ){
-				
-				AnnotationTypeElementDeclaration elementDecl = entry.getKey();
-				final String name = elementDecl.getSimpleName();
-				final AnnotationValue value = entry.getValue();
-				
-				if( name.length() == 1 )
-				{
-					final Class expectedType;
-					switch(name.charAt(0))
-					{
-					case 'b':
-						expectedType = Byte.class;
-						break;					
-					case 'c':
-						expectedType = Character.class;
-						break;
-					case 's':
-						expectedType = Short.class;
-						break;
-					case 'i':
-						expectedType = Integer.class;
-						break;
-					case 'l':
-						expectedType = Long.class;
-						break;
-					case 'f':
-						expectedType = Float.class;
-						break;
-					case 'd':
-						expectedType = Double.class;
-						break;
-					default:
-						TestCase.assertNotNull("unexpected member " + name, null);
-						throw new IllegalStateException(); // won't get here.
-					}
-					assertValueTypeMatch(name, value.getValue(), expectedType);
-				}	
-				else{
-					@SuppressWarnings("unused")
-					final Class expectedElementType;
-					if( "chars".equals(name) )
-						expectedElementType = Character.class;
-					else if( "bytes".equals(name) )
-						expectedElementType = Byte.class;
-					else if( "shorts".equals(name) )
-						expectedElementType = Short.class;
-					else if( "ints".equals(name) )
-						expectedElementType = Integer.class;
-					else if( "longs".equals(name) )
-						expectedElementType = Long.class;
-					else if( "floats".equals(name) )
-						expectedElementType = Float.class;
-					else if( "doubles".equals(name) )
-						expectedElementType = Double.class;
-					else{
-						TestCase.assertNotNull("unexpected member " + name, null);
-						throw new IllegalStateException(); // won't get here.
-					}
-				}
-			}
-		}
-		catch( ComparisonFailure failure ){			
-			if (!ProcessorTestStatus.hasErrors()) {
-				ProcessorTestStatus.failWithoutException(failure.toString());
-			}
-			throw failure;
-		}
-		catch( junit.framework.AssertionFailedError error ){
-			if (!ProcessorTestStatus.hasErrors()) {
-				ProcessorTestStatus.failWithoutException(error.toString());
-			}
-			throw error;
-		}
-	}
-	
-	private void assertValueTypeMatch(final String name, final Object value, final Class expectedType)
-	{
-		TestCase.assertEquals(
-				"value type mismatch for member " + name,  //$NON-NLS-1$
-				expectedType, 
-				value.getClass());
-	}
-			
-	
-	@SuppressWarnings("unused") //$NON-NLS-1$
-	private void assertArrayValueTypeMatch(final String name, final Object value, final Class expectedElementType)
-	{	
-		TestCase.assertEquals(
-				"annotation value type mismatch",  //$NON-NLS-1$
-				List.class.getName(), 
-				value.getClass().getName());
-		
-		@SuppressWarnings("unchecked") //$NON-NLS-1$
-		final List<AnnotationValue> values = (List<AnnotationValue>)value;
-		for( AnnotationValue av : values )
-			assertValueTypeMatch(name, av.getValue(), expectedElementType );
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessorFactory.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessorFactory.java
deleted file mode 100644
index ce79faf..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/annotations/valueconversion/ValueConversionProcessorFactory.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.annotations.valueconversion;
-
-import java.util.Set;
-
-import org.eclipse.jdt.apt.tests.annotations.BaseFactory;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class ValueConversionProcessorFactory extends BaseFactory {
-
-	public ValueConversionProcessorFactory() {
-		super("sample.Test.Annotation"); 
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) 
-	{
-		return new ValueConversionProcessor( env );
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/jdtcoretests/AllJdtCoreTests.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/jdtcoretests/AllJdtCoreTests.java
deleted file mode 100644
index 3bb339e..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/jdtcoretests/AllJdtCoreTests.java
+++ /dev/null
@@ -1,47 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.jdtcoretests;
-
-
-public class AllJdtCoreTests extends org.eclipse.jdt.core.tests.RunJDTCoreTests {
-
-    public AllJdtCoreTests(String testName) { super(testName); }
- }
-
-/*
- * NOTE - sometimes, we have observed failures that were resolved by changing
- * the order in which the jdt-core tests are run.  If you ever get weird errors
- * in the jdt-core tests, then you may want to experiment with changing this class
- * to be something like the following.  
- * 
- *
-public class AllJdtCoreTests extends TestCase {
-	
-	public AllJdtCoreTests(String testName) 
-	{
-		super(testName);
-	}
-	
-		public static Test suite() {
-			TestSuite suite = new TestSuite(RunJDTCoreTests.class.getName());
-			suite.addTest(RunModelTests.suite());
-			suite.addTest(RunBuilderTests.suite());
-			suite.addTest(RunCompilerTests.suite());
-			suite.addTest(RunDOMTests.suite());
-			suite.addTest(RunFormatterTests.suite());
-
-			return suite;
-		}
-}
-	*/
-
diff --git a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/plugin/AptTestsPlugin.java b/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/plugin/AptTestsPlugin.java
deleted file mode 100644
index 07847e8..0000000
--- a/org.eclipse.jdt.apt.tests/src/org/eclipse/jdt/apt/tests/plugin/AptTestsPlugin.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    mkaufman@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.plugin;
-
-import org.eclipse.core.runtime.Plugin;
-import org.osgi.framework.BundleContext;
-
-public class AptTestsPlugin extends Plugin {
-
-	public AptTestsPlugin() {
-		_default = this;
-	}
-
-	public void start(BundleContext context) throws Exception {
-		super.start( context );
-	}
-
-	public void stop(BundleContext context) throws Exception {
-		super.stop( context );
-	}
-
-	public static AptTestsPlugin getDefault() {
-		return _default;
-	}
-
-	private static AptTestsPlugin	_default;
-
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory b/org.eclipse.jdt.apt.tests/srcext/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
deleted file mode 100644
index 1a676f0..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/META-INF/services/com.sun.mirror.apt.AnnotationProcessorFactory
+++ /dev/null
@@ -1,4 +0,0 @@
-org.eclipse.jdt.apt.tests.external.annotations.loadertest.LoaderTestAnnotationProcessorFactory
-org.eclipse.jdt.apt.tests.external.annotations.classloader.ColorAnnotationProcessorFactory
-org.eclipse.jdt.apt.tests.external.annotations.batch.BatchAnnotationFactory
-org.eclipse.jdt.apt.tests.external.annotations.batch.BatchGenAnnotationFactory
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/Batch.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/Batch.java
deleted file mode 100644
index 92bc9e1..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/Batch.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.batch;
-
-public @interface Batch {
-
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchAnnotationFactory.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchAnnotationFactory.java
deleted file mode 100644
index 524ecdc..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchAnnotationFactory.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.batch;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class BatchAnnotationFactory implements AnnotationProcessorFactory{
-	
-	private static final List<String> SUPPORTED_TYPES = 
-		Collections.singletonList(Batch.class.getName());
-	
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> decls, 
-			AnnotationProcessorEnvironment env) {
-		return new BatchProcessor(env);
-	}
-	
-	public Collection<String> supportedAnnotationTypes() {
-		return SUPPORTED_TYPES;
-	}
-	public Collection<String> supportedOptions() {
-		return Collections.emptyList();
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGen.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGen.java
deleted file mode 100644
index 6dc81a4..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGen.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.batch;
-
-public @interface BatchGen {
-
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGenAnnotationFactory.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGenAnnotationFactory.java
deleted file mode 100644
index 70bc735..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchGenAnnotationFactory.java
+++ /dev/null
@@ -1,100 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.batch;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.List;
-import java.util.Set;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class BatchGenAnnotationFactory implements AnnotationProcessorFactory {
-	
-	private static int ROUND = 0;
-	private static final List<String> SUPPORTED_TYPES = 
-		Collections.singletonList(BatchGen.class.getName());
-	
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> decls, 
-			AnnotationProcessorEnvironment env) {
-		if( ROUND == 0 ){
-			ROUND ++;
-			return new BatchGen0AnnotationProcessor(env);
-		}
-		else if( ROUND == 1){
-			ROUND ++;
-			if( !decls.isEmpty() )
-				env.getMessager().printError("Expecting empty set but got " + decls );
-				
-			return new BatchGen1AnnotationProcessor(env);
-		}
-		else if( ROUND == 2 ){ // NO-OP
-			env.getMessager().printError("Called the third time.");
-			return null; 
-		}
-		// This is to make sure we aren't bouncing the class loader without a full build.
-		else
-			env.getMessager().printError("Calling BatchGenAnnotionFactory too many times. Round=" + ROUND );
-		return null;
-	}
-	
-	public Collection<String> supportedAnnotationTypes() {
-		return SUPPORTED_TYPES;
-	}
-	public Collection<String> supportedOptions() {
-		return Collections.emptyList();
-	}
-	
-	static class BatchGen0AnnotationProcessor implements AnnotationProcessor {
-		
-		final AnnotationProcessorEnvironment _env;
-		BatchGen0AnnotationProcessor(AnnotationProcessorEnvironment env){
-			_env = env;
-		}
-		public void process() {
-			// a generated file will cause BatchGenAnnotationFactory to be 
-			// called again.
-			try{
-				final PrintWriter writer = _env.getFiler().createSourceFile("gen.Class0");
-				writer.print("package gen;\n");
-				writer.print("public class Class0{}");
-				writer.close();
-			}
-			catch(IOException e){
-				_env.getMessager().printError(e.getMessage());
-			}
-		}
-	}
-	
-	static class BatchGen1AnnotationProcessor implements AnnotationProcessor {
-		final AnnotationProcessorEnvironment _env;
-		BatchGen1AnnotationProcessor(AnnotationProcessorEnvironment env){
-			_env = env;
-		}
-		public void process(){
-			try{
-				final PrintWriter writer = _env.getFiler().createSourceFile("gen.Class1");
-				writer.print("package gen;\n");
-				writer.print("public class Class1{}");
-				writer.close();
-			}
-			catch(IOException e){
-				_env.getMessager().printError(e.getMessage());
-			}
-		}
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchProcessor.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchProcessor.java
deleted file mode 100644
index 1bb3ec5..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/batch/BatchProcessor.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    tyeung@bea.com - initial API and implementation
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.batch;
-
-import java.util.Collection;
-import java.util.HashSet;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Messager;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-import com.sun.mirror.declaration.Declaration;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-public class BatchProcessor implements AnnotationProcessor {
-	
-	// Store how often we've been called in order to 
-	// test classloader resetting
-	private static int TIMES_CALLED = 0;
-	
-	private final AnnotationProcessorEnvironment _env;
-	BatchProcessor(AnnotationProcessorEnvironment env){
-		_env = env;
-	}
-	public void process() {
-		
-		final Messager msger = _env.getMessager();
-		if( TIMES_CALLED == 0 ){
-			
-			final Collection<String> expectedList = new HashSet<String>();
-			expectedList.add("p1.A");
-			expectedList.add("p1.B");
-			expectedList.add("p1.C");
-			expectedList.add("p1.D");
-			final Collection<TypeDeclaration> allTypes = _env.getSpecifiedTypeDeclarations();
-			for( TypeDeclaration type : allTypes ){
-				expectedList.remove(type.getQualifiedName());
-			}
-			
-			if( !expectedList.isEmpty() ){
-				msger.printError("failed to find type " + expectedList);
-			}
-			
-			final Collection<String> expectedAnnotated = new HashSet<String>();
-			expectedList.add("p1.A");
-			expectedList.add("p1.C");
-			final AnnotationTypeDeclaration batchAnnoDecl = 
-				(AnnotationTypeDeclaration)_env.getTypeDeclaration(Batch.class.getName());
-			final Collection<Declaration> decls = _env.getDeclarationsAnnotatedWith(batchAnnoDecl);
-			for( Declaration decl : decls  ){
-				if( decl instanceof TypeDeclaration )
-					expectedAnnotated.remove( ((TypeDeclaration)decl).getQualifiedName() );
-			}
-			if( !expectedAnnotated.isEmpty() ){
-				msger.printError("failed to find annotated type " + expectedAnnotated );			
-			}
-			
-			msger.printWarning("CompletedSuccessfully");
-		}
-		else{
-			msger.printWarning("Called " + (TIMES_CALLED + 1) + " times.");
-		}
-		
-		TIMES_CALLED++;
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/Color.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/Color.java
deleted file mode 100644
index b91b3ec..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/Color.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.classloader;
-
-public enum Color {
-	RED, GREEN, BLUE;
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotation.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotation.java
deleted file mode 100644
index 1f09626..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotation.java
+++ /dev/null
@@ -1,17 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.classloader;
-
-
-public @interface ColorAnnotation {
-	Color color();
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessor.java
deleted file mode 100644
index 9201ec1..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessor.java
+++ /dev/null
@@ -1,62 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.classloader;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.declaration.TypeDeclaration;
-
-public class ColorAnnotationProcessor implements AnnotationProcessor {
-	
-	public static final String PROP_KEY = "ColorAnnotationProcessor";
-	public static final String SUCCESS_VALUE = "success";
-
-	private final AnnotationProcessorEnvironment _env;
-	
-	public ColorAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		_env = env;
-	}
-	
-	public void process() {
-		System.setProperty(PROP_KEY, "Beginning processing");
-		try {
-			TypeDeclaration typeDecl = _env.getTypeDeclaration("colortestpackage.ColorTest");
-			
-			ColorAnnotation colorAnno = typeDecl.getAnnotation(ColorAnnotation.class);
-			
-			Color color = colorAnno.color();
-			
-			if (color != Color.RED)
-				throw new IllegalStateException("Expecting red, but got: " + color);
-			
-			ColorWrapper colorWrapper = typeDecl.getAnnotation(ColorWrapper.class);
-			ColorAnnotation[] colorAnnoArray = colorWrapper.colors();
-			
-			if (colorAnnoArray[0].color() != Color.GREEN)
-				throw new IllegalStateException("Expecting green, but got: " + color);
-			
-			if (colorAnnoArray[1].color() != Color.BLUE)
-				throw new IllegalStateException("Expecting blue, but got: " + color);
-		}
-		catch (Throwable t) {
-			t.printStackTrace();
-			System.setProperty(PROP_KEY, "Failed");
-		}
-		System.setProperty(PROP_KEY, SUCCESS_VALUE);
-		
-	}
-	
-	public static boolean wasSuccessful() {
-		return SUCCESS_VALUE.equals(System.getProperty(PROP_KEY));
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessorFactory.java
deleted file mode 100644
index b186274..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.classloader;
-
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-public class ColorAnnotationProcessorFactory implements AnnotationProcessorFactory {
-
-	public Collection<String> supportedOptions() {
-		return Collections.emptyList();
-	}
-
-	public Collection<String> supportedAnnotationTypes() {
-		return Collections.singleton("org.eclipse.jdt.apt.tests.external.annotations.classloader.ColorAnnotation");
-	}
-
-	public AnnotationProcessor getProcessorFor(Set<AnnotationTypeDeclaration> decls, AnnotationProcessorEnvironment env) {
-		return new ColorAnnotationProcessor(env);
-	}
-
-	
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorTestCodeExample.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorTestCodeExample.java
deleted file mode 100644
index 2ecf456..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorTestCodeExample.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.classloader;
-
-public class ColorTestCodeExample {
-
-	public static final String CODE_PACKAGE = "colortestpackage";
-	public static final String CODE_CLASS_NAME = "ColorTest";
-	public static final String CODE_FULL_NAME = CODE_PACKAGE + "." + CODE_CLASS_NAME;
-	
-	public static final String CODE = 
-		"package colortestpackage;\r\n" + 
-		"\r\n" + 
-		"import org.eclipse.jdt.apt.tests.external.annotations.classloader.Color;\r\n" + 
-		"import org.eclipse.jdt.apt.tests.external.annotations.classloader.ColorAnnotation;\r\n" + 
-		"import org.eclipse.jdt.apt.tests.external.annotations.classloader.ColorWrapper;\r\n" + 
-		"\r\n" + 
-		"@ColorAnnotation(color = Color.RED)\r\n" + 
-		"@ColorWrapper(colors = {@ColorAnnotation(color = Color.GREEN), @ColorAnnotation(color = Color.BLUE)})\r\n" + 
-		"public class ColorTest {\r\n" + 
-		"\r\n" + 
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorWrapper.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorWrapper.java
deleted file mode 100644
index 0116bec..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/classloader/ColorWrapper.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.tests.external.annotations.classloader;
-
-public @interface ColorWrapper {
-	ColorAnnotation[] colors();
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotation.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotation.java
deleted file mode 100644
index 83aa06c..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotation.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.external.annotations.loadertest;
-
-/**
- * Used to test whether this annotation processor is successfully loaded.
- */
-public @interface LoaderTestAnnotation {
-	String value() default ""; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessor.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessor.java
deleted file mode 100644
index 1d931a2..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessor.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.external.annotations.loadertest;
-
-import java.io.IOException;
-import java.io.PrintWriter;
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.Filer;
-
-/**
- * Used to test loading an annotation processor from a jar file.
- */
-public class LoaderTestAnnotationProcessor implements AnnotationProcessor {
-	
-	private static String getClassName() {
-		return getPackageName() + "." + getTypeName(); //$NON-NLS-1$
-	}
-	
-	private final AnnotationProcessorEnvironment _env;
-
-	/**
-	 * Has an instance of this class been constructed in this VM?
-	 * This is implemented in such a way that the answer does not
-	 * depend on sharing a classloader.
-	 */
-	public static boolean isLoaded() {
-		return "loaded".equals(System.getProperty(getClassName())); //$NON-NLS-1$
-	}
-
-	/**
-	 * Clear the "isLoaded" setting.  After this, isLoaded() will
-	 * return false until the next time an instance is constructed.
-	 */
-	public static void clearLoaded() {
-		System.clearProperty(getClassName());
-	}
-
-	public LoaderTestAnnotationProcessor(AnnotationProcessorEnvironment env) {
-		System.setProperty(getClassName(), "loaded"); //$NON-NLS-1$
-		_env = env;
-	}
-
-	public void process() {
-		try
-		{
-			Filer f = getEnvironment().getFiler();
-			PrintWriter pw = f
-				.createSourceFile( getClassName() );
-			pw.print( getCode() );
-			pw.close();
-		}
-		catch( IOException ioe )
-		{
-			ioe.printStackTrace();
-		}
-	}
-
-	public AnnotationProcessorEnvironment getEnvironment()
-	{
-		return _env;
-	}
-	
-	protected static String getCode() {
-		return CODE; 
-	}
-	
-	protected static String getPackageName() {
-		return "generatedfilepackage";  //$NON-NLS-1$
-	}
-	
-	protected static String getTypeName() { 
-		return "LoadFactoryFromJarTest";  //$NON-NLS-1$
-	}
-
-	@SuppressWarnings("nls")
-	protected final static String CODE			= 
-		"package " + getPackageName() + ";\n" +
-		"public class "	+ getTypeName()	+ "\n"	+ 
-		"{\n" +
-		"    public static void helloWorld() {\n" +
-		"        System.out.println( \"Hello, world!  I am a generated file!\" ); \n" +
-		"    }\n" +
-		"}\n";
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessorFactory.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessorFactory.java
deleted file mode 100644
index d117276..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestAnnotationProcessorFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.external.annotations.loadertest;
-
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Set;
-
-
-import com.sun.mirror.apt.AnnotationProcessor;
-import com.sun.mirror.apt.AnnotationProcessorEnvironment;
-import com.sun.mirror.apt.AnnotationProcessorFactory;
-import com.sun.mirror.declaration.AnnotationTypeDeclaration;
-
-/**
- * Used to test loading an annotation processor from a jar file.
- */
-public class LoaderTestAnnotationProcessorFactory implements
-		AnnotationProcessorFactory {
-
-	private static ArrayList<String> annotations = new ArrayList<String>();
-	
-	{
-		annotations.add( LoaderTestAnnotation.class.getName() );
-	}
-	
-	public Collection<String> supportedOptions() {
-		return Collections.emptyList();
-	}
-
-	public Collection<String> supportedAnnotationTypes() {
-		return annotations;
-	}
-
-	public AnnotationProcessor getProcessorFor(
-			Set<AnnotationTypeDeclaration> atds,
-			AnnotationProcessorEnvironment env) {
-		return new LoaderTestAnnotationProcessor( env );
-	}
-}
diff --git a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestCodeExample.java b/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestCodeExample.java
deleted file mode 100644
index 3145e69..0000000
--- a/org.eclipse.jdt.apt.tests/srcext/org/eclipse/jdt/apt/tests/external/annotations/loadertest/LoaderTestCodeExample.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.tests.external.annotations.loadertest;
-
-/**
- * Code example used to test the annotation processor factory loader.
- */
-@SuppressWarnings("nls")
-public class LoaderTestCodeExample {
-	public static final String CODE_PACKAGE = "loadertestpackage";
-	public static final String CODE_CLASS_NAME = "LoaderTestClass";
-	public static final String CODE_FULL_NAME = CODE_PACKAGE + "." + CODE_CLASS_NAME;
-
-	public static final String CODE = 
-		"package loadertestpackage;\n" +
-		"import org.eclipse.jdt.apt.tests.external.annotations.loadertest.LoaderTestAnnotation;" + "\n" +
-		"@LoaderTestAnnotation" + "\n" +
-		"public class LoaderTestClass {" + "\n" +
-		"    public static void SayHello() {" + "\n" +
-		"        System.out.println(\"hello\");" + "\n" +
-		"    }" + "\n" +
-		"}";
-}
diff --git a/org.eclipse.jdt.apt.tests/test.xml b/org.eclipse.jdt.apt.tests/test.xml
deleted file mode 100644
index 6c0f169..0000000
--- a/org.eclipse.jdt.apt.tests/test.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0"?>
-
-<project name="testsuite" default="run" basedir=".">
-  <!-- The property ${eclipse-home} should be passed into this script -->
-  <!-- Set a meaningful default value for when it is not. -->
-  <property name="eclipse-home" value="${basedir}\..\.."/>
-
-  <!-- sets the properties eclipse-home, and library-file -->
-  <property name="plugin-name" value="org.eclipse.jdt.apt.tests"/>
-  <property name="library-file"
-            value="${eclipse-home}/plugins/${org.eclipse.test}/library.xml"/>
-
-  <!-- This target holds all initialization code that needs to be done for -->
-  <!-- all tests that are to be run. Initialization for individual tests -->
-  <!-- should be done within the body of the suite target. -->
-  <target name="init">
-    <tstamp/>
-    <delete>
-      <fileset dir="${eclipse-home}" includes="org*.xml"/>
-    </delete>
-  </target>
-
-  <!-- This target defines the tests that need to be run. -->
-  <target name="suite">
-  	
-  	<property name="apt-folder" value="${eclipse-home}/apt_folder"/>
-  	<delete dir="${apt-folder}" quiet="true"/>
-  	
-  	<ant target="ui-test" antfile="${library-file}" dir="${eclipse-home}">
-  	      <property name="data-dir" value="${apt-folder}"/>
-  	      <property name="plugin-name" value="${plugin-name}"/>
-  	      <property name="classname" value="org.eclipse.jdt.apt.tests.TestAll"/>
-  	</ant>
-  	
-  </target>
-
-  <!-- This target holds code to cleanup the testing environment after -->
-  <!-- after all of the tests have been run. You can use this target to -->
-  <!-- delete temporary files that have been created. -->
-  <target name="cleanup">
-  </target>
-
-  <!-- This target runs the test suite. Any actions that need to happen -->
-  <!-- after all the tests have been run should go here. -->
-  <target name="run" depends="init,suite,cleanup">
-    <ant target="collect" antfile="${library-file}" dir="${eclipse-home}">
-      <property name="includes" value="org*.xml"/>
-      <property name="output-file" value="${plugin-name}.xml"/>
-    </ant>
-  </target>
-
-  <!-- This target runs the performance test suites. -->
-  <target name="performance">
-  </target>
-
-</project>
diff --git a/org.eclipse.jdt.apt.ui/.classpath b/org.eclipse.jdt.apt.ui/.classpath
deleted file mode 100644
index 390be69..0000000
--- a/org.eclipse.jdt.apt.ui/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JRE 1.5.0"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.jdt.apt.ui/.cvsignore b/org.eclipse.jdt.apt.ui/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.jdt.apt.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.jdt.apt.ui/.project b/org.eclipse.jdt.apt.ui/.project
deleted file mode 100644
index ce8878d..0000000
--- a/org.eclipse.jdt.apt.ui/.project
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.jdt.apt.ui</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.ManifestBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.pde.SchemaBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.jdt.apt.ui/.settings/org.eclipse.core.resources.prefs b/org.eclipse.jdt.apt.ui/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 37df87e..0000000
--- a/org.eclipse.jdt.apt.ui/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,6 +0,0 @@
-#Thu Jul 28 10:31:48 PDT 2005
-eclipse.preferences.version=1
-encoding//src/org/eclipse/jdt/apt/ui/internal/preferences/messages.properties=8859_1
-encoding//src/org/eclipse/jdt/apt/ui/internal/quickfix/messages.properties=8859_1
-encoding//src/org/eclipse/jdt/apt/ui/internal/util/messages.properties=8859_1
-encoding//src/org/eclipse/jdt/apt/ui/messages.properties=8859_1
diff --git a/org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 06b5a32..0000000
--- a/org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,57 +0,0 @@
-#Mon Jul 18 10:04:25 PDT 2005
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.5
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
-org.eclipse.jdt.core.compiler.problem.deprecation=warning
-org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
-org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=ignore
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
-org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
-org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
-org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
-org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
-org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
-org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
-org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
-org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
-org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
-org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
-org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
-org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
-org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=warning
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
-org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
-org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
-org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
-org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
-org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
-org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
-org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
-org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
diff --git a/org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 328c856..0000000
--- a/org.eclipse.jdt.apt.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,3 +0,0 @@
-#Wed Jun 22 17:00:28 PDT 2005
-eclipse.preferences.version=1
-internal.default.compliance=default
diff --git a/org.eclipse.jdt.apt.ui/META-INF/MANIFEST.MF b/org.eclipse.jdt.apt.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index a14a2d1..0000000
--- a/org.eclipse.jdt.apt.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,18 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: JDT APT UI
-Bundle-SymbolicName: org.eclipse.jdt.apt.ui; singleton:=true
-Bundle-Version: 3.1.1.apt02
-Bundle-Activator: org.eclipse.jdt.apt.ui.AptUIPlugin
-Bundle-Localization: plugin
-Require-Bundle: org.eclipse.jdt.apt.core,
- org.eclipse.jdt.ui,
- org.eclipse.jdt.core,
- org.eclipse.ui,
- org.eclipse.core.runtime,
- org.eclipse.core.resources,
- org.eclipse.help,
- org.eclipse.ui.forms
-Eclipse-AutoStart: true
-Export-Package: org.eclipse.jdt.apt.ui.quickfix
-Bundle-Vendor: Eclipse.org
diff --git a/org.eclipse.jdt.apt.ui/about.html b/org.eclipse.jdt.apt.ui/about.html
deleted file mode 100644
index 5f888df..0000000
--- a/org.eclipse.jdt.apt.ui/about.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
-<html><head><title>About</title>
-
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"></head>
-
-<body lang="EN-US">
-<h2>About This Content</h2>
- 
-<p>February 24, 2005</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in
-("Content"). Unless otherwise indicated below, the Content is provided
-to you under the terms and conditions of the
-Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is
-available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-For purposes of the EPL, "Program" will mean the Content.</p>
-
-<p>If you did not receive this Content directly from the Eclipse
-Foundation, the Content is being redistributed by another party
-("Redistributor") and different terms and conditions may
-apply to your use of any object code in the Content. Check the
-Redistributor's license that was provided with the Content. If no such
-license exists, contact the Redistributor. Unless otherwise
-indicated below, the terms and conditions of the EPL still apply to any
-source code in the Content.</p>
-
-</body></html>
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.ui/build.properties b/org.eclipse.jdt.apt.ui/build.properties
deleted file mode 100644
index c0ba296..0000000
--- a/org.eclipse.jdt.apt.ui/build.properties
+++ /dev/null
@@ -1,7 +0,0 @@
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               docs/,\
-               plugin.xml,\
-               toc.xml
diff --git a/org.eclipse.jdt.apt.ui/docs/Building_with_apt.html b/org.eclipse.jdt.apt.ui/docs/Building_with_apt.html
deleted file mode 100644
index ddfe91a..0000000
--- a/org.eclipse.jdt.apt.ui/docs/Building_with_apt.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<html>
-<head>
-<title>Headless Building with APT in Eclipse</title>
-</head>
-
-<body>
-<h1>Headless Building with APT in Eclipse</h2>
-<h2>Instructions for building workspaces from the command-line directly or with ant</h3>
-
-<p>
-The APT plugin can be used in conjunction with Eclipse to build your preconfigured 
-workspace, either directly from the command-line or via ant with its built-in ant task.
-</p>
-
-<h3>Building from the command-line</h3>
-Given an installation of Eclipse with the APT plugin installed, you can invoke the command-line builder
-with the following command (with no line breaks):
-
-<pre>
-java -cp %ECLIPSE_HOME%/startup.jar org.eclipse.core.launcher.Main
-   -noupdate -application org.eclipse.jdt.apt.core.aptBuild -data %WORKSPACE%
-</pre>
-
-This invokes Eclipse in headless mode and builds the workspace as provided on the command-line.
-Any configuration for the provided workspace will be observed in the build. 
-<p>
-
-<h3>Building with Ant</h3>
-Again, you will need an installation of Eclipse with the APT plugin installed. Given this, the "apt"
-task can be invoked with the following xml in your build.xml file:
-
-<pre>
-&lt;project name="test_eclipse" default="build" basedir=".">
-
-    &lt;taskdef name="apt" classname="org.eclipse.jdt.apt.core.build.JdtApt"/>
-    
-    &lt;target name="build">
-        &lt;apt workspace="%WORKSPACE%" eclipseHome="%ECLIPSE_HOME%"/>
-    &lt;/target>
-    
-&lt;/project>
-</pre>
-
-You will need to add the jar for APT to your ant installation's <b>lib</b> directory, or place it on 
-the classpath when invoking ant. The jar lives in 
-<pre>%ECLIPSE_HOME%/plugins/org.eclipse.jdt.apt.core_X/aptcore.jar</pre>
-
diff --git a/org.eclipse.jdt.apt.ui/docs/Getting_started.html b/org.eclipse.jdt.apt.ui/docs/Getting_started.html
deleted file mode 100644
index dd92787..0000000
--- a/org.eclipse.jdt.apt.ui/docs/Getting_started.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<html>
-<head>
-<title>Getting started with APT in Eclipse</title>
-</head>
-
-<body>
-<h1>Getting Started</h2>
-<h2>APT in Eclipse</h3>
-
-<p>
-The APT plugin adds Java 5 annotation processing support to Eclipse, by running annotation
-processors written to use the 
-<a href="http://java.sun.com/j2se/1.5.0/docs/guide/apt/mirror/index.html">Mirror APIs</a>
-inside Eclipse.
-<p>
-These annotation processors will then get triggered as you type inside Eclipse, provide
-errors and warnings directly inside the editor, and producing normal build artifacts
-just as if you were running Sun's apt tool from the commandline.
-
-<p>
-For more detailed information about how the plugin works, 
-you can view the <a href="http://www.eclipse.org/jdt/apt/index.html">JDT-APT project web site</a>.
-</p>
-
-<h3>Turning on Annotation Processing</h3>
-You must have your project's compiler configured to use Java 5.0-level compliance
-in the preferences, under Java->Compiler:
-<p>
-<img src="compiler_dialog.png">
-<p>
-Next you need to enable annotation processing under Java->Compiler->Annotation Processing:
-<p>
-<img src="annotation_processing.gif">
-<p>
-In this dialog you can also specify the generated source directory if desired,
-and provide any processor options that are necessary.
-<p>
-<b>Note: "-Aclasspath" and "-Asourcepath" options are automatically passed
-to all your processors by eclipse, so it is unnecessary to provide those.</b>
-
-<h3>Adding Annotation Processors</h3>
-You can add annotation processors to your project under Java->Compiler->Annotation Processing->Factory Path:
-
-<p>
-<img src="factory_path.gif">
-<p>
-
-<h3>Factory Path and Source Control</h3>
-
-The factory path is similar to the classpath in the way it interacts with source control.
-In order to avoid hard-coding paths to factory jars, you can either use project-relative jars
-via the "Add Jars..." button, or use a classpath variable via the "Add Variable..." button.
-<p>
-
-<h3>Processor Options and Source Control</h3>
-
-You may need to use paths as some of the options passed to your annotation processors.
-Again, by avoiding hard-coding of absolute paths you'll be able to share your configuration
-in source control.
-
-<p>
-To do this, we support classpath variables inside of processor options.
-Variables must be delimited on both sides by %, and must be the 
-first segment of a path.
-<p>
-
-So, if FOO is a classpath variable that points to d:/foo, then %FOO%/bar.txt 
-will resolve to d:/foo/bar.txt.  Classpath resolution depends on the existence 
-of the classpath variable; if it doesn't exist, the raw string will be added to 
-the environment options.  However, bar.txt (in this example) does not need to 
-exist.
-<p>
-
-The reserved variable ROOT is given special meaning: it is the workspace root, 
-and introduces a project resource.  So, for instance, if quux is the name of a 
-project, then %ROOT%/quux will resolve to the absolute path of quux and %
-ROOT%/quux/.classpath will resolve to the absolute path to quux/.classpath.  When 
-using ROOT, the first segment of the path must actually exist: in the example, 
-the project quux must exist, but .classpath need not.
-
-
-
-
diff --git a/org.eclipse.jdt.apt.ui/docs/Quick_fix_with_apt.html b/org.eclipse.jdt.apt.ui/docs/Quick_fix_with_apt.html
deleted file mode 100644
index 99d65b2..0000000
--- a/org.eclipse.jdt.apt.ui/docs/Quick_fix_with_apt.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<html>
-<head>
-<title>Quick Assist with APT</title>
-</head>
-
-<body>
-<h1>Creating a Quick-Fix processor for APT</h2>
-<h2>Instructions for creating an Eclipse Quick Fix Processor</h3>
-
-<p>
-It is possible to write quick-fix processors to fix errors that your APT processor
-detects. To do that, you must do two things:
-
-<ol>
-<li>Print errors indicating that they are fixable</li>
-<li>Write an APT quick fix processor and register it with APT</li>
-</ol> 
-</p>
-
-<h3>1. Print errors indicating that they are fixable</h3>
-
-When running inside Eclipse, you may downcast the Messager object that you get from
-the AnnotationProcessorEnvironment's <code>getMessager()</code> method. Inside Eclipse,
-that object will also be an <code>org.eclipse.jdt.apt.core.util.EclipseMessager</code>, which
-declares some additional methods over the standard Messager, like the following:
-
-<code>
-<ul>
-<li>printFixableError(SourcePosition pos, String msg, String pluginId, String errorId)</li>
-<li>printFixableError(String msg, String pluginId, String errorId)</li>
-</ul>
-</code>
-
-The pluginId should be the ID of the plugin within which you will be creating your
-quick fix processor. The errorId should be a String that will make sense in the context of
-your quick fix processor, say, "requiredAnnotationValueMissing", or whatever will provide
-the necessary information to provide your quick fix.
-
-<p>
-
-<h3>2. Create an APT Quick Fix Processor</h3>
-
-Begin by creating a class that implements <code>org.eclipse.jdt.apt.ui.quickfix.IAPTQuickFixProvider</code>, 
-which has only one method:
-
-<code>
-<ul>
-<li>public IJavaCompletionProposal [] getProposals(IInvocationContext context, 
-IProblemLocation [] locations) throws CoreException;
-</ul>
-</code>
-
-You'll notice this is very similar to the standard Eclipse quick fix processor API,
-but you will only get called for problems that you created.</p>
-
-Once you've created your quick fix processor implementation, you can register it with an extension
-point on the APT UI plugin, aptQuickFixProvider. Here is an example of what to put in your
-plugin's plugin.xml:
-
-<pre>
-&lt;extension
-         point="org.eclipse.jdt.apt.ui.aptQuickFixProvider">
-      &lt;quickFixProvider
-            className="com.foo.MyAptQuickFixProvider"
-            errorCode="com.foo.AptErrors"
-            pluginId="com.foo.Apt"/>
-&lt;/extension>
-</pre>
-
-That's it! Once your plugin is running inside Eclipse, your APT Quick Fix Provider
-will get called each time the user attempts to quick-fix one of the errors
-your processor created.
diff --git a/org.eclipse.jdt.apt.ui/docs/annotation_processing.gif b/org.eclipse.jdt.apt.ui/docs/annotation_processing.gif
deleted file mode 100644
index ac8ae0b..0000000
--- a/org.eclipse.jdt.apt.ui/docs/annotation_processing.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.jdt.apt.ui/docs/compiler_dialog.png b/org.eclipse.jdt.apt.ui/docs/compiler_dialog.png
deleted file mode 100644
index 501bbd4..0000000
--- a/org.eclipse.jdt.apt.ui/docs/compiler_dialog.png
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.jdt.apt.ui/docs/contexts_APT.xml b/org.eclipse.jdt.apt.ui/docs/contexts_APT.xml
deleted file mode 100644
index 52e54e2..0000000
--- a/org.eclipse.jdt.apt.ui/docs/contexts_APT.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?NLS TYPE="org.eclipse.help.contexts"?>
-<contexts>
-
-    <!-- Dialogs -->
-
-    <context id="advanced_factory_path_options_dialog_context">
-    	<description>A dialog for configuring factory path options that do not normally need to be changed.</description>
-    	<topic label="Advanced factory path options dialog" href="docs/reference/factorypathoptions.html"/>
-    </context>
-    <context id="processor_option_input_dialog_context">
-    	<description>A dialog for adding or editing an annotation processor option.</description>
-    	<topic label="Processor option input dialog" href="docs/reference/processor_options_input.html"/>
-    </context>
-    
-    <!-- Preference pages -->
-
-    <context id="apt_configuration_preference_page_context">
-        <description>Configure general Java annotation processing settings.</description>
-        <topic label="Java annotation processing preferences" href="docs/reference/apt_config.html"/>
-    </context>
-    <context id="factory_path_preference_page_context">
-        <description>Configure the factory path for Java annotation processing.</description>
-        <topic label="Java annotation processing factory path preferences" href="docs/reference/factorypath.html"/>
-    </context>
-    
-</contexts>
-    
\ No newline at end of file
diff --git a/org.eclipse.jdt.apt.ui/docs/factory_path.gif b/org.eclipse.jdt.apt.ui/docs/factory_path.gif
deleted file mode 100644
index f3f97bb..0000000
--- a/org.eclipse.jdt.apt.ui/docs/factory_path.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.jdt.apt.ui/docs/reference/apt_config.html b/org.eclipse.jdt.apt.ui/docs/reference/apt_config.html
deleted file mode 100644
index b553e37..0000000
--- a/org.eclipse.jdt.apt.ui/docs/reference/apt_config.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-	<meta name="copyright" content="Copyright (c) 2005 BEA Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html" >
-    <title>
-      Annotation Processing Preferences
-    </title>
-  </head>
-  <body>
-    <h1>
-      Annotation Processing
-    </h1>
-    <p>Annotation processors can generate additional Java code or other files, and produce problem markers,
-    based on Java 5 (JSR-175) annotations.  The Annotation Processing preference pane permits configuration 
-    of preferences that apply to all processors in a project or workspace.  The <a href="factorypath.html">
-    Factory Path preference pane</a> specifies which processors are enabled and permits configuration of 
-    individual processors.
-    <h2>
-    	Generated source directory
-    </h2>
-    <p>Files will be generated on disk relative to the specified directory.  By default this directory
-    is named &quot;.apt_generated&quot;, which causes it to be filtered out of the Package Explorer view.  
-    The contents of this directory will be deleted when the project is cleaned, so it is important to only
-    use this directory for files generated by processors.  Do not place any manually created files under
-    this directory.
-    <p>The generated source directory can only be changed in project-specific settings.  This field is
-    not displayed when configuring workspace preferences.
-    <h2>
-    	Processor options
-    </h2>
-    <p>Options entered here will be available to the processors via the AnnotationProcessorEnvironment
-    interface.  Certain options are automatically provided to the processors; entering them in this dialog
-    will have no effect, since the automatically provided values will override any values set here.  
-    The automatic options are described <a href="automatic_processor_options.html">here</a>. More
-    information about processor options is in the topic on <a href="processor_options_input.html">the
-    Processor Options input dialog</a>.
-  </body>
-</html>
-
diff --git a/org.eclipse.jdt.apt.ui/docs/reference/automatic_processor_options.html b/org.eclipse.jdt.apt.ui/docs/reference/automatic_processor_options.html
deleted file mode 100644
index 1e389a8..0000000
--- a/org.eclipse.jdt.apt.ui/docs/reference/automatic_processor_options.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-	<meta name="copyright" content="Copyright (c) 2005 BEA Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html" >
-    <title>
-      Automatic Processor Options
-    </title>
-  </head>
-  <body>
-    <h1>
-      Automatic Processor Options
-    </h1>
-    <p>Annotation processor options are configured in the 
-    <a href="apt_config.html">Annotation Processing preference dialog</a>.  Certain options 
-    are automatically provided to the processors; entering them in the Annotation Processing 
-    preference dialog will have no effect, since the automatically provided values will 
-    override any values set there.  The automatic options include the following:
-    <dl>
-    	<dt><strong>-classpath</strong></dt>
-    	<dd>
-    		The compiler classpath.  All entries are absolute paths, not workspace-relative.
-    	</dd>
-    	<dt><strong>-sourcepath</strong></dt>
-    	<dd>
-    		The compiler source path.  All entries are absolute paths, not workspace-relative.
-    	</dd>
-    	<dt><strong>-d</strong></dt>
-    	<dd>
-    		The absolute path of the compiler binary output directory, into which .class files are 
-    		built.
-    	</dd>
-    	<dt><strong>-s</strong></dt>
-    	<dd>
-    		The absolute path of the generated source directory, into which annotation processors 
-    		will generate files.
-    	</dd>
-    	<dt><strong>-source</strong></dt>
-    	<dd>
-    		The compiler -source option.  Typically a string such as &quot;5.0&quot;.
-    	</dd>
-    	<dt><strong>-target</strong></dt>
-    	<dd>
-    		The compiler -target option.  Typically a string such as &quot;5.0&quot;.
-    	</dd>
-    </dl>
-  </body>
-</html>
-
diff --git a/org.eclipse.jdt.apt.ui/docs/reference/factorypath.html b/org.eclipse.jdt.apt.ui/docs/reference/factorypath.html
deleted file mode 100644
index 1cd351b..0000000
--- a/org.eclipse.jdt.apt.ui/docs/reference/factorypath.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-	<meta name="copyright" content="Copyright (c) 2005 BEA Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html" >
-    <title>
-      Factory Path Preferences
-    </title>
-  </head>
-  <body>
-    <h1>
-      Factory Path Preferences
-    </h1>
-    <p>Annotation processors can generate additional Java code or other files, and produce problem markers,
-    based on Java 5 (JSR-175) annotations.  The <a href="apt_config.html">Annotation Processing preference
-    pane</a> permits configuration of preferences that apply to all processors in a project or workspace.  
-    The Factory Path preference pane specifies which processors are enabled and permits configuration of 
-    individual processors.
-    <p>The pane displays a list of all the plugins and jar files that contain annotation processors that
-    may be applied to the project.  To add or remove jar files from the list, use the corresponding buttons.
-    Jar files may be specified by absolute path using the Add External Jars... button, or by path relative
-    to a classpath variable using the Add Variable... button.  All installed plugins that extend the
-    org.eclipse.jdt.apt.annotationProcessorFactory extension point are also displayed in the list.
-    <p>To enable a particular plugin or jar file, select the corresponding checkbox within the list.
-    Processors within plugins and jars that are not checked will not be executed.  If more than one processor
-    claims the same annotation, only first one on the list will be served that annotation.  To reorder the
-    list, use the Up and Down buttons.
-    <p>The Advanced... button leads to the <a href="factorypathoptions.html">Advanced Factory Path Options
-    dialog</a>, which is used to view the individual processor factories within a plugin or jar file
-    and to configure additional options.
-  </body>
-</html>
-
diff --git a/org.eclipse.jdt.apt.ui/docs/reference/factorypathoptions.html b/org.eclipse.jdt.apt.ui/docs/reference/factorypathoptions.html
deleted file mode 100644
index 9a892d2..0000000
--- a/org.eclipse.jdt.apt.ui/docs/reference/factorypathoptions.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-	<meta name="copyright" content="Copyright (c) 2005 BEA Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html" >
-    <title>
-      Advanced Factory Path Options Dialog
-    </title>
-  </head>
-  <body>
-    <h1>
-      Advanced Factory Path Options Dialog
-    </h1>
-    <p>The Advanced Factory Path Options dialog is reached from the <a href="factorypath.html">Factory Path</a>
-    preferences pane.  It is used to view the individual processor factories within a plugin or jar file
-    and to configure additional options.  Options on this dialog do not normally need to be changed from
-    the default.
-    <p>
-    <dl>
-    <dt><strong>Run this container's processors in batch mode</strong></dt>
-    <dd>
-    When this option is selected, the processors and processor factories in this jar will be run in  
-    a mode that enhances compatibility with the Sun&trade; command-line tool apt.  In this mode, 
-    processor classes are loaded at the beginning of a build, executed over the full set of Java types,
-    and then unloaded, as they would be when running apt at the command line.  Processors run in this
-    mode are only run during a full build, not during incremental builds.
-    This option is only configurable for jar files; for plugins it is always set to false.  
-    </dd>
-    </dl>
-    
-  </body>
-</html>
diff --git a/org.eclipse.jdt.apt.ui/docs/reference/processor_options_input.html b/org.eclipse.jdt.apt.ui/docs/reference/processor_options_input.html
deleted file mode 100644
index 300b629..0000000
--- a/org.eclipse.jdt.apt.ui/docs/reference/processor_options_input.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-  <head>
-	<meta name="copyright" content="Copyright (c) 2005 BEA Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html" >
-    <title>
-      Processor Option Input Dialog
-    </title>
-  </head>
-  <body>
-    <h1>
-      Processor Option Input Dialog
-    </h1>
-    <p>The Processor Option input dialog is reached from the <a href="apt_config.html">Annotation Processing
-    preferences pane</a>.  It allows processor options to be added or modified.  
-    <p>Options entered here will be presented to the processors through the AnnotationProcessorEnvironment
-    interface.  Each option will be presented in two forms: as a key/value pair, and as a combined
-    key corresponding to the command-line form of the option, namely &quot;-Akey=value&quot;.
-    For instance, an option with key &quot;foo&quot; and value &quot;bar&quot; would be presented
-    both that way and as key &quot;-Afoo=bar&quot;, value null.
-    <p>Option values representing paths may begin with a percent-delimited token such as <code>%FOO%/</code>.  
-    If the token is the name of a classpath variable, it will be replaced with the current
-    value of the variable at processor execution time.  The special value <code>ROOT</code> expands
-    to the absolute path of the workspace.  For example, <code>%ROOT%/foo/bar.xml</code> might 
-    expand to <code>d:/my_workspace/foo/bar.xml</code>, and <code>%JRE_LIB%/rt.jar</code> might 
-    expand to <code>c:/jdk1.5.0/lib/rt.jar</code>.
-    <p>Certain options are automatically provided to the processors; entering them in this dialog
-    will have no effect, since the automatically provided values will override any values set here.  
-    The automatic options are described <a href="automatic_processor_options.html">here</a>.
-  </body>
-</html>
diff --git a/org.eclipse.jdt.apt.ui/plugin.xml b/org.eclipse.jdt.apt.ui/plugin.xml
deleted file mode 100644
index 6a9d043..0000000
--- a/org.eclipse.jdt.apt.ui/plugin.xml
+++ /dev/null
@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.0"?>
-<plugin>
-   <extension-point id="aptQuickFixProvider" name="APT Quick Fix Provider" schema="schema/aptQuickFixProvider.exsd"/>
-
-<!-- =================================================================================== -->
-<!-- Extension: Preferences                                                              -->
-<!-- =================================================================================== -->
-   <extension
-         point="org.eclipse.ui.preferencePages">
-      <page
-            category="org.eclipse.jdt.ui.preferences.CompliancePreferencePage"
-            class="org.eclipse.jdt.apt.ui.internal.preferences.AptPreferencePage"
-            id="org.eclipse.jdt.apt.ui.preferences.aptPreferences"
-            name="Annotation Processing"/>
-      <page
-            category="org.eclipse.jdt.apt.ui.preferences.aptPreferences"
-            class="org.eclipse.jdt.apt.ui.internal.preferences.FactoryPathPreferencePage"
-            id="org.eclipse.jdt.apt.ui.preferences.factoryPathPreferences"
-            name="Factory Path"/>
-   </extension>
-   <extension
-         point="org.eclipse.ui.propertyPages">
-      <page
-            category="org.eclipse.jdt.ui.propertyPages.CompliancePreferencePage"
-            class="org.eclipse.jdt.apt.ui.internal.preferences.AptPreferencePage"
-            id="org.eclipse.jdt.apt.ui.propertyPages.aptPreferences"
-            name="Annotation Processing"
-            objectClass="org.eclipse.core.resources.IProject">
-         <filter
-               name="nature"
-               value="org.eclipse.jdt.core.javanature">
-         </filter>
-      </page>            
-      <page
-            category="org.eclipse.jdt.ui.propertyPages.CompliancePreferencePage"
-            class="org.eclipse.jdt.apt.ui.internal.preferences.AptPreferencePage"
-            id="org.eclipse.jdt.apt.ui.propertyPages.aptPreferences"
-            name="Annotation Processing"
-            objectClass="org.eclipse.jdt.core.IJavaProject">
-         <filter
-               name="nature"
-               value="org.eclipse.jdt.core.javanature">
-         </filter>
-      </page>
-      <page
-            category="org.eclipse.jdt.apt.ui.propertyPages.aptPreferences"
-            class="org.eclipse.jdt.apt.ui.internal.preferences.FactoryPathPreferencePage"
-            id="org.eclipse.jdt.apt.ui.propertyPages.factoryPathPreferences"
-            name="Factory Path"
-            objectClass="org.eclipse.core.resources.IProject">
-         <filter
-               name="nature"
-               value="org.eclipse.jdt.core.javanature"/>
-      </page>
-      <page
-            category="org.eclipse.jdt.apt.ui.propertyPages.aptPreferences"
-            class="org.eclipse.jdt.apt.ui.internal.preferences.FactoryPathPreferencePage"
-            id="org.eclipse.jdt.apt.ui.propertyPages.factoryPathPreferences"
-            name="Factory Path"
-            objectClass="org.eclipse.jdt.core.IJavaProject">
-         <filter
-               name="nature"
-               value="org.eclipse.jdt.core.javanature"/>
-      </page>            
-   </extension>
-   
-<!-- =================================================================================== -->
-<!-- Extension: Docs                                                                     -->
-<!-- =================================================================================== -->
-<extension
-      point="org.eclipse.help.toc">
-   <toc file="toc.xml" primary="true"/>
-</extension>
-<extension
-      point="org.eclipse.help.contexts">
-   <contexts
-         file="docs/contexts_APT.xml"
-         plugin="org.eclipse.jdt.apt.ui"/>
-</extension>
-
-<!-- =================================================================================== -->
-<!-- Extension: QuickFixProcessor                                                                     -->
-<!-- =================================================================================== -->
-<extension
-      point="org.eclipse.jdt.ui.quickFixProcessors">
-   <quickFixProcessor
-         class="org.eclipse.jdt.apt.ui.internal.quickfix.APTQuickFixProcessor"
-         id="org.eclipse.jdt.apt.ui.internal.quickfix.APTQuickFixProcessor"
-         name="APTQuickFixProcessor"/>
-</extension>
-
-</plugin>
diff --git a/org.eclipse.jdt.apt.ui/schema/aptQuickFixProvider.exsd b/org.eclipse.jdt.apt.ui/schema/aptQuickFixProvider.exsd
deleted file mode 100644
index bc2debe..0000000
--- a/org.eclipse.jdt.apt.ui/schema/aptQuickFixProvider.exsd
+++ /dev/null
@@ -1,119 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.jdt.apt.ui">
-<annotation>
-      <appInfo>
-         <meta.schema plugin="org.eclipse.jdt.apt.ui" id="aptQuickFixProvider" name="APT Quick Fix Provider"/>
-      </appInfo>
-      <documentation>
-         [Enter description of this extension point.]
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <complexType>
-         <sequence>
-            <element ref="quickFixProvider" minOccurs="1" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="point" type="string" use="required">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appInfo>
-                  <meta.attribute translatable="true"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="quickFixProvider">
-      <complexType>
-         <attribute name="pluginId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The ID of the APT plugin that is generating messages. Only message from this plugin will be delivered to the provider.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="className" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The class implementing org.eclipse.jdt.apt.ui.quickfix.IAPTQuickFixProvider that will provide IJavaCompletionProposals.
-               </documentation>
-               <appInfo>
-                  <meta.attribute kind="java"/>
-               </appInfo>
-            </annotation>
-         </attribute>
-         <attribute name="errorCode" type="string">
-            <annotation>
-               <documentation>
-                  An optional error code. If no error code is specified, the provider will be provided with all errors for the plugin id provided.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="since"/>
-      </appInfo>
-      <documentation>
-         [Enter the first release in which this extension point appears.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="examples"/>
-      </appInfo>
-      <documentation>
-         [Enter extension point usage example here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="apiInfo"/>
-      </appInfo>
-      <documentation>
-         [Enter API information here.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="implementation"/>
-      </appInfo>
-      <documentation>
-         [Enter information about supplied implementation of this extension point.]
-      </documentation>
-   </annotation>
-
-   <annotation>
-      <appInfo>
-         <meta.section type="copyright"/>
-      </appInfo>
-      <documentation>
-         
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.jdt.apt.ui/scripts/exportplugin.xml b/org.eclipse.jdt.apt.ui/scripts/exportplugin.xml
deleted file mode 100644
index 4313f06..0000000
--- a/org.eclipse.jdt.apt.ui/scripts/exportplugin.xml
+++ /dev/null
@@ -1,62 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!-- 
- Build script to create the apt.ui plugin. 
- This script assumes that the classes have already been compiled,
- and exist in the 'bin' subdirectory of the plugin project.
- The directory structure assumed by this script is as follows:
-    [dev root]/
-        [workspace]/
-            [plugins]/
-                org.eclipse.jdt.apt.ui/
-                    bin/
-                    src/
-                    scripts/          // contains this script
-            plugin-export/            // will be created if necessary
-                org.eclipse.jdt.apt.cui_[version]/
-            org.eclipse.jdt.apt.ui_[version].zip  // will be created
-        
--->
-
-<project name="${plugin}" default="export plug-in [_1.0.0]" basedir="..">
-
-<target name="export plug-in [_1.0.0]">
-	<antcall target="zz_internal_export">
-		<param name="plugin_version" value="3.1.1.apt02"/>
-	</antcall>
-</target>
-
-<target name="zz_internal_export">
-
-	<tstamp/>
-	<property name="export-dir" value="../../plugin-export" />
-	<property name="plugin" value="org.eclipse.jdt.apt.ui" />
-	<property name="plugin-dir" value="${export-dir}/${plugin}_${plugin_version}"/>
-
-	<echo message="TARGET: ${export-dir}" />
-	<mkdir dir="${export-dir}" />
-	<delete dir="${plugin-dir}" />
-	<mkdir dir="${plugin-dir}" />
-
-	<echo message="UPDATE ${plugin}_${plugin_version}.jar" />
-	<zip zipfile="${plugin-dir}/${plugin}_${plugin_version}.jar">
-		<fileset dir=".">
-		  <include name="plugin.xml" />
-		  <include name="plugin.properties" />
-		  <include name="META-INF/**" />
-        </fileset>
-        <fileset dir="bin" />
-	</zip>
-	
-	<echo message="UPDATE aptui src.zip" />
-	<zip zipfile="${plugin-dir}/src.zip">
-	    <fileset dir="src" />
-	</zip>		
-
-	<echo message="UPDATE ${export-dir}/../${plugin}_${plugin_version}.zip" />
-	<zip zipfile="${export-dir}/../${plugin}_${plugin_version}.zip"
-	    basedir="${export-dir}" 
-	    includes="${plugin}_${plugin_version}/**"	/>		
-</target>
-
-</project>
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/AptUIPlugin.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/AptUIPlugin.java
deleted file mode 100644
index 4b05ac2..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/AptUIPlugin.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package org.eclipse.jdt.apt.ui;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.plugin.AbstractUIPlugin;
-import org.osgi.framework.BundleContext;
-
-/**
- * The main plugin class to be used in the desktop.
- */
-public class AptUIPlugin extends AbstractUIPlugin {
-
-	//The shared instance.
-	private static AptUIPlugin plugin;
-	
-	// The plugin ID
-	public static final String PLUGIN_ID = "org.eclipse.jdt.apt.ui"; //$NON-NLS-1$
-	
-	/**
-	 * Status IDs for system log entries.  Must be unique per plugin.
-	 */
-	public static final int STATUS_EXCEPTION = 1;
-	public static final int INTERNAL_ERROR = 2;
-
-	/**
-	 * The constructor.
-	 */
-	public AptUIPlugin() {
-		plugin = this;
-	}
-
-	/**
-	 * This method is called upon plug-in activation
-	 */
-	public void start(BundleContext context) throws Exception {
-		super.start(context);
-	}
-
-	/**
-	 * This method is called when the plug-in is stopped
-	 */
-	public void stop(BundleContext context) throws Exception {
-		super.stop(context);
-		plugin = null;
-	}
-
-	/**
-	 * Returns the shared instance.
-	 */
-	public static AptUIPlugin getDefault() {
-		return plugin;
-	}
-
-	public static IWorkbenchWindow getActiveWorkbenchWindow() {
-		return getDefault().getWorkbench().getActiveWorkbenchWindow();
-	}
-	
-	public static Shell getActiveWorkbenchShell() {
-		 IWorkbenchWindow window= getActiveWorkbenchWindow();
-		 if (window != null) {
-		 	return window.getShell();
-		 }
-		 return null;
-	}
-	
-	/**
-	 * Returns an image descriptor for the image file at the given
-	 * plug-in relative path.
-	 *
-	 * @param path the path
-	 * @return the image descriptor
-	 */
-	public static ImageDescriptor getImageDescriptor(String path) {
-		return AbstractUIPlugin.imageDescriptorFromPlugin(PLUGIN_ID, path);
-	}
-	
-	public static void log(IStatus status) {
-		getDefault().getLog().log(status);
-	}
-	
-	public static void log(Throwable e) {
-		log(new Status(IStatus.ERROR, PLUGIN_ID, STATUS_EXCEPTION, Messages.AptUIPlugin_exceptionThrown, e)); 
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/Messages.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/Messages.java
deleted file mode 100644
index 71ca010..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.ui.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String AptUIPlugin_exceptionThrown;
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AdvancedFactoryPathOptionsDialog.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AdvancedFactoryPathOptionsDialog.java
deleted file mode 100644
index dfad3d4..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AdvancedFactoryPathOptionsDialog.java
+++ /dev/null
@@ -1,129 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import java.io.IOException;
-
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.ui.internal.util.ExceptionHandler;
-import org.eclipse.jdt.apt.ui.internal.util.IAptHelpContextIds;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ListViewer;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Dialog to display "advanced options" on a FactoryPathEntry,
- * typically in the context of the factory path config UI.
- * Advanced options are those which do not normally need to
- * be configured, and which may require deeper-than-usual
- * understanding of the annotation processing architecture.
- */
-public class AdvancedFactoryPathOptionsDialog extends Dialog {
-	
-	private final static int LIST_WIDTH= 70; // width (in chars) of factory list
-	private final static int LIST_HEIGHT= 10; // number of lines in factory list
-	
-	private class FieldAdapter implements IDialogFieldListener {
-		public void dialogFieldChanged(DialogField field) {
-		}
-	}
-	
-	// shallow copies, because they are not changed by this code
-	private final FactoryContainer _fc;
-	private final FactoryPath.Attributes _attr;
-	
-	// Dialog controls
-	private SelectionButtonDialogField _batchModeField;
-	private Text _contentsLabelField;
-	private ListViewer _contentsField;
-	
-	public AdvancedFactoryPathOptionsDialog(
-			Shell parent, FactoryContainer fc, FactoryPath.Attributes attr) {
-		super(parent);
-		setShellStyle(getShellStyle() | SWT.RESIZE);
-		_fc= fc;
-		_attr= attr;
-	}
-	
-    protected void configureShell(Shell shell) {
-        super.configureShell(shell);
-        shell.setText(Messages.AdvancedFactoryPathOptionsDialog_advancedOptions);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(shell, IAptHelpContextIds.ADVANCED_FACTORYPATH_OPTIONS_DIALOG);
-    }
-    
-	protected Control createDialogArea(Composite parent) {
-		Composite dlgArea= (Composite) super.createDialogArea(parent);
-		
-		// Set up "batch mode" checkbox.
-		FieldAdapter adapter = new FieldAdapter();
-		_batchModeField = new SelectionButtonDialogField(SWT.CHECK);
-		_batchModeField.setSelection(_attr.runInBatchMode());
-		_batchModeField.setLabelText(Messages.AdvancedFactoryPathOptionsDialog_batchMode);
-		_batchModeField.setDialogFieldListener(adapter);
-		_batchModeField.doFillIntoGrid(dlgArea, 2);
-			// Plugins can't run in APT compatibility mode.
-		boolean isPlugin = _fc.getType() == FactoryContainer.FactoryType.PLUGIN;
-		_batchModeField.setEnabled(!isPlugin);
-		
-		DialogField.createEmptySpace(dlgArea, 1);
-
-		// Set up label for processor contents list
-		Label description= new Label(dlgArea, SWT.WRAP);
-		description.setText(Messages.AdvancedFactoryPathOptionsDialog_label_processorsInThisContainer); 
-		GridData gdLabel= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gdLabel.horizontalSpan= 2;
-		description.setLayoutData(gdLabel);
-
-		// Set up processor contents list
-		_contentsField= new ListViewer(dlgArea, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
-        GridData data = new GridData(SWT.FILL, SWT.FILL, true, true);
-        data.heightHint = convertHeightInCharsToPixels(LIST_HEIGHT);
-        data.widthHint = convertWidthInCharsToPixels(LIST_WIDTH);
-        _contentsField.getList().setLayoutData(data);
-        _contentsField.getList().setFont(parent.getFont());
-        try {
-	        for (String name : _fc.getFactoryNames()) {
-	        	_contentsField.add(name);
-	        }
-        }
-        catch (IOException e) {
-			final String message = "Unable to load factory names from container [" + _fc.getId() + "]"; //$NON-NLS-1$ //$NON-NLS-2$
-			ExceptionHandler.log(e, message);
-        }
-        _contentsField.setSelection(null, false);
-        
-		applyDialogFont(dlgArea);		
-		return dlgArea;
-	}
-		
-	/**
-	 * Return a new Attributes representing the original value updated
-	 * with any changes made by the user.  Changes will be included even
-	 * if the dialog was cancelled, so this should only be called if the
-	 * dialog returned OK.
-	 */
-	public FactoryPath.Attributes getResult() {
-		boolean batchMode = _batchModeField.isSelected();
-		return new FactoryPath.Attributes(_attr.isEnabled(), batchMode);
-	}
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
deleted file mode 100644
index eac50b6..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptConfigurationBlock.java
+++ /dev/null
@@ -1,456 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     BEA Systems Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.jdt.apt.core.AptPlugin;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.core.util.AptPreferenceConstants;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
-import org.eclipse.jdt.internal.ui.util.PixelConverter;
-import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.SelectionButtonDialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.viewers.Viewer;
-import org.eclipse.jface.viewers.ViewerSorter;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * Preference pane for most APT (Java annotation processing) settings.
- * @see org.eclipse.jdt.ui.internal.preferences.TodoTaskConfigurationBlock
- * for the conceptual source of some of this code.
- * <p>
- * 
- */
-public class AptConfigurationBlock extends BaseConfigurationBlock {
-		
-	private static final Key KEY_APTENABLED= getKey(AptPlugin.PLUGIN_ID, AptPreferenceConstants.APT_ENABLED);
-	private static final Key KEY_GENSRCDIR= getKey(AptPlugin.PLUGIN_ID, AptPreferenceConstants.APT_GENSRCDIR);
-	
-	private static Key[] getAllKeys() {
-		return new Key[] {
-				KEY_APTENABLED, KEY_GENSRCDIR
-		};	
-	}
-	
-	private static final int IDX_ADD= 0;
-	private static final int IDX_EDIT= 1;
-	private static final int IDX_REMOVE= 2;
-	
-	private final IJavaProject fJProj;
-
-	private SelectionButtonDialogField fAptEnabledField;
-	private StringDialogField fGenSrcDirField;
-	private ListDialogField fProcessorOptionsField;
-	
-	private PixelConverter fPixelConverter;
-	private Composite fBlockControl;
-	
-	private Map<String, String> fOriginalProcOptions; // cache of saved values
-	
-	/**
-	 * Event handler for Processor Options list control.
-	 */
-	private class ProcessorOptionsAdapter implements IListAdapter, IDialogFieldListener {
-		
-		public void customButtonPressed(ListDialogField field, int index) {
-			switch (index) {
-			case IDX_ADD:
-				editOrAddProcessorOption(null);
-				break;
-			case IDX_EDIT:
-				tryToEdit(field);
-				break;
-			}
-		}
-
-		public void selectionChanged(ListDialogField field) {
-			List selectedElements= field.getSelectedElements();
-			field.enableButton(IDX_EDIT, canEdit(selectedElements));
-		}
-			
-		public void doubleClicked(ListDialogField field) {
-			tryToEdit(field);
-		}
-
-		public void dialogFieldChanged(DialogField field) {
-			updateModel(field);
-		}			
-
-		private boolean canEdit(List selectedElements) {
-			return selectedElements.size() == 1;
-		}
-		
-		private void tryToEdit(ListDialogField field) {
-			List<ProcessorOption> selection= getListSelection();
-			if (canEdit(selection)) {
-				editOrAddProcessorOption(selection.get(0));
-			}
-		}
-	}
-	
-	/**
-	 * An entry in the Processor Options list control.
-	 */
-	public static class ProcessorOption {
-		public String key;
-		public String value;
-	}
-
-	/**
-	 * Sorts items in the Processor Options list control.
-	 */
-	private static class ProcessorOptionSorter extends ViewerSorter {
-		public int compare(Viewer viewer, Object e1, Object e2) {
-			return collator.compare(((ProcessorOption) e1).key, ((ProcessorOption) e2).key);
-		}
-	}
-	
-	/**
-	 * Controls display of items in the Processor Options list control.
-	 */
-	private class ProcessorOptionsLabelProvider extends LabelProvider implements ITableLabelProvider {
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnImage(java.lang.Object, int)
-		 */
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-		
-		/* (non-Javadoc)
-		 * @see org.eclipse.jface.viewers.ITableLabelProvider#getColumnText(java.lang.Object, int)
-		 */
-		public String getColumnText(Object element, int columnIndex) {
-			ProcessorOption o = (ProcessorOption) element;
-			if (columnIndex == 0) {
-				return o.key;
-			}
-			else if (columnIndex == 1) {
-				return o.value;
-			}
-			else {
-				return ""; //$NON-NLS-1$
-			}
-		}
-	}
-
-	public AptConfigurationBlock(IStatusChangeListener context, IProject project, IWorkbenchPreferenceContainer container) {
-		super(context, project, getAllKeys(), container);
-		
-		fJProj = JavaCore.create(project);
-		
-		UpdateAdapter adapter= new UpdateAdapter();
-		
-		fAptEnabledField= new SelectionButtonDialogField(SWT.CHECK);
-		fAptEnabledField.setDialogFieldListener(adapter);
-		fAptEnabledField.setLabelText(Messages.AptConfigurationBlock_enable);
-		
-		fGenSrcDirField = new StringDialogField();
-		fGenSrcDirField.setDialogFieldListener(adapter);
-		fGenSrcDirField.setLabelText(Messages.AptConfigurationBlock_generatedSrcDir);
-		
-		String[] buttons= new String[] {
-			Messages.AptConfigurationBlock_add,
-			Messages.AptConfigurationBlock_edit,
-			Messages.AptConfigurationBlock_remove
-		};
-		ProcessorOptionsAdapter optionsAdapter = new ProcessorOptionsAdapter();
-		fProcessorOptionsField = new ListDialogField(optionsAdapter, buttons, new ProcessorOptionsLabelProvider());
-		fProcessorOptionsField.setDialogFieldListener(optionsAdapter);
-		fProcessorOptionsField.setRemoveButtonIndex(IDX_REMOVE);
-		String[] columnHeaders= new String[] {
-			Messages.AptConfigurationBlock_key,
-			Messages.AptConfigurationBlock_value
-		};
-		fProcessorOptionsField.setTableColumns(new ListDialogField.ColumnsDescription(columnHeaders, true));
-		fProcessorOptionsField.setViewerSorter(new ProcessorOptionSorter());
-		fProcessorOptionsField.setLabelText(Messages.AptConfigurationBlock_options);
-		
-		updateControls();
-		
-		if (fProcessorOptionsField.getSize() > 0) {
-			fProcessorOptionsField.selectFirstElement();
-		} else {
-			fProcessorOptionsField.enableButton(IDX_EDIT, false);
-		}
-	}
-	
-	/*
-	 * Helper to eliminate unchecked-conversion warning
-	 */
-	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	private List<ProcessorOption> getListElements() {
-		return fProcessorOptionsField.getElements();
-	}
-	
-	/*
-	 * Helper to eliminate unchecked-conversion warning
-	 */
-	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	private List<ProcessorOption> getListSelection() {
-		return fProcessorOptionsField.getSelectedElements();
-	}
-	
-	private void editOrAddProcessorOption(ProcessorOption original) {
-		ProcessorOptionInputDialog dialog= new ProcessorOptionInputDialog(getShell(), original, getListElements());
-		if (dialog.open() == Window.OK) {
-			if (original != null) {
-				fProcessorOptionsField.replaceElement(original, dialog.getResult());
-			} else {
-				fProcessorOptionsField.addElement(dialog.getResult());
-			}
-		}
-	}
-	
-	@Override
-	protected Control createContents(Composite parent) {
-		setShell(parent.getShell());
-		
-		fPixelConverter= new PixelConverter(parent);
-		
-		fBlockControl = new Composite(parent, SWT.NONE);
-		fBlockControl.setFont(parent.getFont());
-		
-		GridLayout layout= new GridLayout();
-		layout.numColumns= 2;
-		layout.marginWidth= 0;
-		layout.marginHeight= 0;
-		
-		fBlockControl.setLayout(layout);
-		
-		DialogField[] fields = new DialogField[] {
-			fAptEnabledField,
-			fGenSrcDirField,
-			fProcessorOptionsField,
-		};
-		LayoutUtil.doDefaultLayout(fBlockControl, fields, true, SWT.DEFAULT, SWT.DEFAULT);
-		LayoutUtil.setHorizontalGrabbing(fProcessorOptionsField.getListControl(null));
-
-		Label description= new Label(fBlockControl, SWT.WRAP);
-		description.setText(Messages.AptConfigurationBlock_classpathAddedAutomaticallyNote); 
-		GridData gdLabel= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gdLabel.horizontalSpan= 2;
-		gdLabel.widthHint= fPixelConverter.convertWidthInCharsToPixels(60);
-		description.setLayoutData(gdLabel);
-		
-		Dialog.applyDialogFont(fBlockControl);
-		
-		validateSettings(null, null, null);
-		
-		return fBlockControl;
-	}
-	
-	@Override
-	protected void cacheOriginalValues() {
-		super.cacheOriginalValues();
-		fOriginalProcOptions= AptConfig.getRawProcessorOptions(fJProj);
-	}
-
-	protected void initContents() {
-		loadProcessorOptions(fJProj);
-	}
-
-	@Override
-	protected void saveSettings() {
-		List<ProcessorOption> elements;
-		if ((fJProj != null) && !fBlockControl.isEnabled()) {
-			// We're in a project properties pane but the entire configuration 
-			// block control is disabled.  That means the per-project settings checkbox 
-			// is unchecked.  To save that state, we'll clear the proc options map.
-			elements = Collections.<ProcessorOption>emptyList();
-		}
-		else {
-			elements = getListElements();
-		}
-		saveProcessorOptions(elements);
-		super.saveSettings();
-	}
-
-	/**
-	 * Check whether any processor options have changed, as well as
-	 * any of the settings tracked in the "normal" way (as Keys).
-	 */
-	@Override
-	protected boolean settingsChanged(IScopeContext currContext) {
-		Map<String, String> savedProcOptions = new HashMap<String, String>(fOriginalProcOptions);
-		for (ProcessorOption o : getListElements()) {
-			final String savedVal = savedProcOptions.get(o.key);
-			if (savedVal != null && savedVal.equals(o.value)) {
-				savedProcOptions.remove(o.key);
-			}
-			else {
-				// found an unsaved option in the list
-				return true;
-			}
-		}
-		if (!savedProcOptions.isEmpty()) {
-			// found a saved option that has been removed
-			return true;
-		}
-		return super.settingsChanged(currContext);
-	}
-
-	/**
-	 * Call after updating key values, to warn user if new values are invalid.
-	 * @param changedKey may be null, e.g. if called from createContents.
-	 * @param oldValue may be null
-	 * @param newValue may be null
-	 */
-	@Override
-	protected void validateSettings(Key changedKey, String oldValue, String newValue) {
-		IStatus status = null;
-		
-		status = validateGenSrcDir();
-		if (status.getSeverity() == IStatus.OK) {
-			status = validateProcessorOptions();
-		}
-
-		fContext.statusChanged(status);
-	}	
-	
-	/**
-	 * Validate "generated source directory" setting.  It must be a valid
-	 * pathname relative to a project, and must not be a source directory.
-	 * @return
-	 */
-	private IStatus validateGenSrcDir() {
-		// TODO: this check should be delegated to a validation routine in apt.core.
-		String dirName = fGenSrcDirField.getText();
-		Path path = null;
-		if (dirName != null) {
-			path= new Path(dirName);
-		}
-		if (path == null || 
-				path.isAbsolute() || 
-				path.isEmpty() || 
-				!path.isValidPath(dirName) ||
-				!dirName.trim().equals(dirName)) {
-			return new StatusInfo(IStatus.ERROR, Messages.AptConfigurationBlock_genSrcDirMustBeValidRelativePath);
-		}
-		// TODO: how can we tell whether dirName points to a "normal" src directory?
-		return new StatusInfo();
-	}
-
-	/**
-	 * Validate the currently set processor options.  We do this by
-	 * looking at the table contents rather than the packed string,
-	 * just because it's easier.
-	 * @return a StatusInfo containing a warning if appropriate.
-	 */
-	private IStatus validateProcessorOptions() {
-		List<ProcessorOption> elements = getListElements();
-		for (ProcessorOption o : elements) {
-			if (AptConfig.isAutomaticProcessorOption(o.key)) {
-				return new StatusInfo(IStatus.WARNING, 
-						Messages.AptConfigurationBlock_warningIgnoredOptions + ": " + o.key); //$NON-NLS-1$
-			}
-		}
-		return new StatusInfo();
-	}
-	
-	/**
-	 * Update the UI based on the values presently stored in the keys.
-	 */
-	@Override
-	protected void updateControls() {
-		boolean aptEnabled= Boolean.valueOf(getValue(KEY_APTENABLED)).booleanValue();
-		fAptEnabledField.setSelection(aptEnabled);
-		String str= getValue(KEY_GENSRCDIR);
-		fGenSrcDirField.setText(str == null ? "" : str); //$NON-NLS-1$
-	}	
-	
-	/**
-	 * Update the values stored in the keys based on the UI.
-	 */
-	protected final void updateModel(DialogField field) {
-		
-		if (field == fAptEnabledField) {
-			String newVal = String.valueOf(fAptEnabledField.isSelected());
-			setValue(KEY_APTENABLED, newVal);
-		} else if (field == fGenSrcDirField) {
-			String newVal = fGenSrcDirField.getText();
-			setValue(KEY_GENSRCDIR, newVal);
-		} 
-		validateSettings(null, null, null); // params are ignored
-	}
-
-	/**
-	 * Save the contents of the options list.
-	 */
-	private void saveProcessorOptions(List<ProcessorOption> elements) {
-		Map<String, String> map = new LinkedHashMap<String, String>(elements.size());
-		for (ProcessorOption o : elements) {
-			map.put(o.key, o.value);
-		}
-		AptConfig.setProcessorOptions(map, fJProj);
-	}
-
-	/**
-	 * Set the processor options list contents
-	 */
-	private void loadProcessorOptions(IJavaProject jproj) {
-		List<ProcessorOption> options= new ArrayList<ProcessorOption>();
-		Map<String, String> parsedOptions = AptConfig.getRawProcessorOptions(jproj);
-		for (Map.Entry<String, String> entry : parsedOptions.entrySet()) {
-			ProcessorOption o = new ProcessorOption();
-			o.key = entry.getKey();
-			o.value = entry.getValue();
-			options.add(o);
-		}
-		fProcessorOptionsField.setElements(options);
-	}
-
-	@Override
-	public void performDefaults() {
-		if (fJProj != null) {
-			// If project-specific, load workspace settings
-			loadProcessorOptions(null);
-		}
-		else {
-			// If workspace, load "factory default," which is empty.
-			fProcessorOptionsField.removeAllElements();
-		}
-		super.performDefaults();
-	}
-
-}
-
-
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptPreferencePage.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptPreferencePage.java
deleted file mode 100644
index 516c100..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/AptPreferencePage.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *     BEA Systems Inc. - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import org.eclipse.jdt.apt.ui.AptUIPlugin;
-import org.eclipse.jdt.apt.ui.internal.util.IAptHelpContextIds;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/*
- * The page to configure the naming style options.
- */
-public class AptPreferencePage extends BasePreferencePage {
-
-	private static final String PREF_ID= "org.eclipse.jdt.apt.ui.preferences.aptPreferences"; //$NON-NLS-1$
-	private static final String PROP_ID= "org.eclipse.jdt.apt.ui.propertyPages.aptPreferences"; //$NON-NLS-1$
-
-	public AptPreferencePage() {
-		setPreferenceStore(AptUIPlugin.getDefault().getPreferenceStore());
-		//setDescription(Messages.AptPreferencePage_preferences);
-		
-		// only used when page is shown programatically
-		setTitle(Messages.AptPreferencePage_preferencesTitle);
-	}
-
-	/*
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		IWorkbenchPreferenceContainer container= (IWorkbenchPreferenceContainer) getContainer();
-		setConfigurationBlock(new AptConfigurationBlock(getNewStatusChangedListener(), getProject(), container));
-		
-		super.createControl(parent);
-	}
-
-	@Override
-	protected String getContextHelpId() {
-		return IAptHelpContextIds.APTCONFIGURATION_PREFERENCE_PAGE;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage#getPreferencePageID()
-	 */
-	protected String getPreferencePageID() {
-		return PREF_ID;
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage#getPropertyPageID()
-	 */
-	protected String getPropertyPageID() {
-		return PROP_ID;
-	}
-	
-	
-
-}
-
-
-
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BaseConfigurationBlock.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BaseConfigurationBlock.java
deleted file mode 100644
index b6e5380..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BaseConfigurationBlock.java
+++ /dev/null
@@ -1,919 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   {INITIAL_AUTHOR} - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.IdentityHashMap;
-import java.util.Map;
-import java.util.StringTokenizer;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.ProjectScope;
-import org.eclipse.core.runtime.preferences.DefaultScope;
-import org.eclipse.core.runtime.preferences.IEclipsePreferences;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.core.runtime.preferences.InstanceScope;
-import org.eclipse.jdt.apt.ui.internal.util.ExceptionHandler;
-import org.eclipse.jdt.internal.ui.JavaPlugin;
-import org.eclipse.jdt.internal.ui.preferences.ScrolledPageContent;
-import org.eclipse.jdt.internal.ui.util.CoreUtility;
-import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.IDialogSettings;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Combo;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Scrollable;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.Widget;
-import org.eclipse.ui.forms.events.ExpansionAdapter;
-import org.eclipse.ui.forms.events.ExpansionEvent;
-import org.eclipse.ui.forms.widgets.ExpandableComposite;
-import org.eclipse.ui.internal.preferences.WorkingCopyManager;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-import org.eclipse.ui.preferences.IWorkingCopyManager;
-import org.osgi.service.prefs.BackingStoreException;
-
-/**
- * The ConfigurationBlock hierarchy is used to organize controls and keys 
- * within a property/preference page.  The implementor derives from this
- * class and creates dialog controls, layout, and response code.
- * <p>
- * This code is largely a copy of OptionsConfigurationBlock (JDT UI), modified
- * to fix bugs and to improve extensibility for preference pages that contain
- * a mix of preference-based and externally serialized data.
- */
-public abstract class BaseConfigurationBlock {
-
-	protected static class ControlData {
-		private Key fKey;
-		private String[] fValues;
-		
-		public ControlData(Key key, String[] values) {
-			fKey= key;
-			fValues= values;
-		}
-		
-		public Key getKey() {
-			return fKey;
-		}
-		
-		public int getSelection(String value) {
-			if (value != null) {
-				for (int i= 0; i < fValues.length; i++) {
-					if (value.equals(fValues[i])) {
-						return i;
-					}
-				}
-			}
-			return fValues.length -1; // assume the last option is the least severe
-		}
-		
-		public String getValue(boolean selection) {
-			int index= selection ? 0 : 1;
-			return fValues[index];
-		}		
-		
-		public String getValue(int index) {
-			return fValues[index];
-		}
-	}
-	
-	public static final class Key {
-		
-		private String fKey;
-		private String fQualifier;
-		
-		public Key(String qualifier, String key) {
-			fQualifier= qualifier;
-			fKey= key;
-		}
-		
-		public String getName() {
-			return fKey;
-		}
-		
-		private IEclipsePreferences getNode(IScopeContext context, IWorkingCopyManager manager) {
-			IEclipsePreferences node= context.getNode(fQualifier);
-			if (manager != null) {
-				return manager.getWorkingCopy(node);
-			}
-			return node;
-		}
-		
-		public String getQualifier() {
-			return fQualifier;
-		}
-		
-		public String getStoredValue(IScopeContext context, IWorkingCopyManager manager) {
-			return getNode(context, manager).get(fKey, null);
-		}
-		
-		public String getStoredValue(IScopeContext[] lookupOrder, boolean ignoreTopScope, IWorkingCopyManager manager) {
-			for (int i= ignoreTopScope ? 1 : 0; i < lookupOrder.length; i++) {
-				String value= getStoredValue(lookupOrder[i], manager);
-				if (value != null) {
-					return value;
-				}
-			}
-			return null;
-		}
-			
-		public void setStoredValue(IScopeContext context, String value, IWorkingCopyManager manager) {
-			if (value != null) {
-				getNode(context, manager).put(fKey, value);
-			} else {
-				getNode(context, manager).remove(fKey);
-			}
-		}
-
-		/* (non-Javadoc)
-		 * @see java.lang.Object#toString()
-		 */
-		public String toString() {
-			return fQualifier + '/' + fKey;
-		}
-
-	}
-	
-	protected class UpdateAdapter implements IDialogFieldListener {
-		
-		public void dialogFieldChanged(DialogField field) {
-			updateModel(field);
-		}
-	}
-	
-	private static final String SETTINGS_EXPANDED= "expanded"; //$NON-NLS-1$
-
-	protected final Key[] fAllKeys;
-	private boolean fOriginallyHadProjectSettings; // updated in cacheOriginalValues
-	private Map<Key, String> fDisabledProjectSettings; // null when project specific settings are turned off
-	protected IScopeContext[] fLookupOrder;
-	protected final IWorkingCopyManager fManager;
-
-	protected final ArrayList<Button> fCheckBoxes;
-	protected final ArrayList<Combo> fComboBoxes;
-	protected final ArrayList<ExpandableComposite> fExpandedComposites;
-	protected final HashMap<Scrollable, Label> fLabels;
-	protected final ArrayList<Text> fTextBoxes;
-	
-	private ModifyListener fTextModifyListener;
-	protected IStatusChangeListener fContext;
-	private SelectionListener fSelectionListener;
-	
-	protected final IProject fProject; // project or null
-
-	private IWorkbenchPreferenceContainer fContainer;
-	private Shell fShell;
-
-	private Control fBlockControl;
-	
-	protected static Key getKey(String plugin, String name) {
-		return new Key(plugin, name);
-	}
-	
-	public BaseConfigurationBlock(IStatusChangeListener context, IProject project, Key[] keys, IWorkbenchPreferenceContainer container) {
-		fContext= context;
-		fProject= project;
-		fAllKeys= keys;
-		fContainer= container;
-		/*
-		if (container == null) {
-			fManager= new WorkingCopyManager();
-		} else {
-			fManager= container.getWorkingCopyManager();
-		}
-		*/
-		// Workaround for Bugzilla 115731 - always use our own WCM.
-		fManager = new WorkingCopyManager();
-		
-		if (fProject != null) {
-			fLookupOrder= new IScopeContext[] {
-				new ProjectScope(fProject),
-				new InstanceScope(),
-				new DefaultScope()
-			};
-		} else {
-			fLookupOrder= new IScopeContext[] {
-				new InstanceScope(),
-				new DefaultScope()
-			};
-		}
-		
-		testIfOptionsComplete(keys);
-		if (fProject == null || hasProjectSpecificOptionsNoCache(fProject)) {
-			fDisabledProjectSettings= null;
-		} else {
-			fDisabledProjectSettings= new IdentityHashMap<Key, String>();
-			for (int i= 0; i < keys.length; i++) {
-				Key curr= keys[i];
-				fDisabledProjectSettings.put(curr, curr.getStoredValue(fLookupOrder, false, fManager));
-			}
-		}
-		
-		settingsUpdated();
-		
-		fCheckBoxes= new ArrayList<Button>();
-		fComboBoxes= new ArrayList<Combo>();
-		fTextBoxes= new ArrayList<Text>(2);
-		fLabels= new HashMap<Scrollable, Label>();
-		fExpandedComposites= new ArrayList<ExpandableComposite>();
-	}
-	
-	protected Button addCheckBox(Composite parent, String label, Key key, String[] values, int indent) {
-		ControlData data= new ControlData(key, values);
-		
-		GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		gd.horizontalSpan= 3;
-		gd.horizontalIndent= indent;
-		
-		Button checkBox= new Button(parent, SWT.CHECK);
-		checkBox.setFont(JFaceResources.getDialogFont());
-		checkBox.setText(label);
-		checkBox.setData(data);
-		checkBox.setLayoutData(gd);
-		checkBox.addSelectionListener(getSelectionListener());
-		
-		makeScrollableCompositeAware(checkBox);
-		
-		String currValue= getValue(key);
-		checkBox.setSelection(data.getSelection(currValue) == 0);
-		
-		fCheckBoxes.add(checkBox);
-		
-		return checkBox;
-	}
-	
-	protected Combo addComboBox(Composite parent, String label, Key key, String[] values, String[] valueLabels, int indent) {
-		GridData gd= new GridData(GridData.FILL, GridData.CENTER, true, false, 2, 1);
-		gd.horizontalIndent= indent;
-				
-		Label labelControl= new Label(parent, SWT.LEFT);
-		labelControl.setFont(JFaceResources.getDialogFont());
-		labelControl.setText(label);
-		labelControl.setLayoutData(gd);
-				
-		Combo comboBox= newComboControl(parent, key, values, valueLabels);
-		comboBox.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-
-		fLabels.put(comboBox, labelControl);
-		
-		return comboBox;
-	}
-	
-	protected Combo addInversedComboBox(Composite parent, String label, Key key, String[] values, String[] valueLabels, int indent) {
-		GridData gd= new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
-		gd.horizontalIndent= indent;
-		gd.horizontalSpan= 3;
-		
-		Composite composite= new Composite(parent, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.marginHeight= 0;
-		layout.marginWidth= 0;
-		layout.numColumns= 2;
-		composite.setLayout(layout);
-		composite.setLayoutData(gd);
-		
-		Combo comboBox= newComboControl(composite, key, values, valueLabels);
-		comboBox.setFont(JFaceResources.getDialogFont());
-		comboBox.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_FILL));
-		
-		Label labelControl= new Label(composite, SWT.LEFT | SWT.WRAP);
-		labelControl.setText(label);
-		labelControl.setLayoutData(new GridData());
-		
-		fLabels.put(comboBox, labelControl);
-		return comboBox;
-	}
-	
-	protected Text addTextField(Composite parent, String label, Key key, int indent, int widthHint) {	
-		Label labelControl= new Label(parent, SWT.WRAP);
-		labelControl.setText(label);
-		labelControl.setFont(JFaceResources.getDialogFont());
-		labelControl.setLayoutData(new GridData());
-				
-		Text textBox= new Text(parent, SWT.BORDER | SWT.SINGLE);
-		textBox.setData(key);
-		textBox.setLayoutData(new GridData());
-		
-		makeScrollableCompositeAware(textBox);
-		
-		fLabels.put(textBox, labelControl);
-		
-		String currValue= getValue(key);	
-		if (currValue != null) {
-			textBox.setText(currValue);
-		}
-		textBox.addModifyListener(getTextModifyListener());
-
-		GridData data= new GridData(GridData.HORIZONTAL_ALIGN_FILL);
-		if (widthHint != 0) {
-			data.widthHint= widthHint;
-		}
-		data.horizontalIndent= indent;
-		data.horizontalSpan= 2;
-		textBox.setLayoutData(data);
-
-		fTextBoxes.add(textBox);
-		return textBox;
-	}	
-			
-	protected boolean checkValue(Key key, String value) {
-		return value.equals(getValue(key));
-	}
-	
-	protected void controlChanged(Widget widget) {
-		ControlData data= (ControlData) widget.getData();
-		String newValue= null;
-		if (widget instanceof Button) {
-			newValue= data.getValue(((Button)widget).getSelection());			
-		} else if (widget instanceof Combo) {
-			newValue= data.getValue(((Combo)widget).getSelectionIndex());
-		} else {
-			return;
-		}
-		String oldValue= setValue(data.getKey(), newValue);
-		validateSettings(data.getKey(), oldValue, newValue);
-	}	
-	
-	/**
-	 * Called from BasePreferencePage#createPreferenceContent.
-	 */
-	public final Control createPreferenceContent(Composite parent) {
-		fBlockControl = createContents(parent);
-		if (fBlockControl != null) {
-			cacheOriginalValues();
-			initContents();
-		}
-		return fBlockControl;
-	}
-
-	/**
-	 * Derived classes must override this in order to create
-	 * their visual content.  After this is called, initContents()
-	 * will be called.
-	 * @return a Composite representing the entire pane.
-	 */
-	protected abstract Control createContents(Composite parent);
-
-	/**
-	 * This will be called when settings are first loaded and
-	 * whenever changes are applied.
-	 * Derived classes may use this to cache the saved settings 
-	 * values, for later comparison to see if anything changed.
-	 */
-	protected void cacheOriginalValues() {
-		fOriginallyHadProjectSettings= hasProjectSpecificOptionsNoCache(fProject);
-	}
-
-	/**
-	 * This will be called exactly once during initialization, after
-	 * createContents() and cacheOriginalValues().
-	 * Derived classes may override this to initialize any fields
-	 * that are not based on a Key.
-	 */
-	protected void initContents() {
-		// Base method does nothing.
-	}
-
-	protected ExpandableComposite createStyleSection(Composite parent, String label, int nColumns) {
-		ExpandableComposite excomposite= new ExpandableComposite(parent, SWT.NONE, ExpandableComposite.TWISTIE | ExpandableComposite.CLIENT_INDENT);
-		excomposite.setText(label);
-		excomposite.setExpanded(false);
-		excomposite.setFont(JFaceResources.getFontRegistry().getBold(JFaceResources.DIALOG_FONT));
-		excomposite.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, false, nColumns, 1));
-		excomposite.addExpansionListener(new ExpansionAdapter() {
-			public void expansionStateChanged(ExpansionEvent e) {
-				expandedStateChanged((ExpandableComposite) e.getSource());
-			}
-		});
-		fExpandedComposites.add(excomposite);
-		makeScrollableCompositeAware(excomposite);
-		return excomposite;
-	}
-
-	/**
-	 * Called from BasePreferencePage#dispose().
-	 * Derived classes may override.
-	 */
-	public void dispose() {
-	}
-	
-	protected final void expandedStateChanged(ExpandableComposite expandable) {
-		ScrolledPageContent parentScrolledComposite= getParentScrolledComposite(expandable);
-		if (parentScrolledComposite != null) {
-			parentScrolledComposite.reflow(true);
-		}
-	}
-
-	protected Control findControl(Key key) {
-		Combo comboBox= getComboBox(key);
-		if (comboBox != null) {
-			return comboBox;
-		}
-		Button checkBox= getCheckBox(key);
-		if (checkBox != null) {
-			return checkBox;
-		}
-		Text text= getTextControl(key);
-		if (text != null) {
-			return text;
-		}
-		return null;
-	}
-	
-	protected boolean getBooleanValue(Key key) {
-		return Boolean.valueOf(getValue(key)).booleanValue();
-	}
-	
-	protected Button getCheckBox(Key key) {
-		for (int i= fCheckBoxes.size() - 1; i >= 0; i--) {
-			Button curr= fCheckBoxes.get(i);
-			ControlData data= (ControlData) curr.getData();
-			if (key.equals(data.getKey())) {
-				return curr;
-			}
-		}
-		return null;		
-	}
-	
-	protected Combo getComboBox(Key key) {
-		for (int i= fComboBoxes.size() - 1; i >= 0; i--) {
-			Combo curr= fComboBoxes.get(i);
-			ControlData data= (ControlData) curr.getData();
-			if (key.equals(data.getKey())) {
-				return curr;
-			}
-		}
-		return null;		
-	}
-	
-	/**
-	 * Provide the strings needed to ask the user whether to rebuild.
-	 * Derived classes can override this to change the strings, or to
-	 * return null, in which case the dialog will not be shown and the
-	 * rebuild will not be triggered.
-	 * @param workspaceSettings true if workspace settings have changed,
-	 * false if only project-specific settings have changed.
-	 * @return an array whose first entry is the dialog title, and whose 
-	 * second entry is a query asking the user whether to rebuild.
-	 */
-	protected String[] getFullBuildDialogStrings(boolean workspaceSettings) {
-		String[] strings= new String[2];
-		strings[0] = Messages.BaseConfigurationBlock_settingsChanged;
-		if (workspaceSettings) {
-			strings[1]= Messages.BaseConfigurationBlock_fullRebuildRequired;
-		}
-		else {
-			strings[1]= Messages.BaseConfigurationBlock_rebuildRequired;
-		}
-		return strings;
-	}
-	
-	protected ExpandableComposite getParentExpandableComposite(Control control) {
-		Control parent= control.getParent();
-		while (!(parent instanceof ExpandableComposite) && parent != null) {
-			parent= parent.getParent();
-		}
-		if (parent instanceof ExpandableComposite) {
-			return (ExpandableComposite) parent;
-		}
-		return null;
-	}
-	
-	protected ScrolledPageContent getParentScrolledComposite(Control control) {
-		Control parent= control.getParent();
-		while (!(parent instanceof ScrolledPageContent) && parent != null) {
-			parent= parent.getParent();
-		}
-		if (parent instanceof ScrolledPageContent) {
-			return (ScrolledPageContent) parent;
-		}
-		return null;
-	}
-	
-	protected final IWorkbenchPreferenceContainer getPreferenceContainer() {
-		return fContainer;
-	}
-	
-	protected SelectionListener getSelectionListener() {
-		if (fSelectionListener == null) {
-			fSelectionListener= new SelectionListener() {
-				public void widgetDefaultSelected(SelectionEvent e) {}
-	
-				public void widgetSelected(SelectionEvent e) {
-					controlChanged(e.widget);
-				}
-			};
-		}
-		return fSelectionListener;
-	}
-	
-	protected Shell getShell() {
-		return fShell;
-	}		
-	
-	/**
-	 * Retuens the value as actually stored in the preference store.
-	 * @param key
-	 * @return the value as actually stored in the preference store.
-	 */
-	protected String getStoredValue(Key key) {
-		return key.getStoredValue(fLookupOrder, false, fManager);
-	}
-	
-	protected Text getTextControl(Key key) {
-		for (int i= fTextBoxes.size() - 1; i >= 0; i--) {
-			Text curr= fTextBoxes.get(i);
-			ControlData data= (ControlData) curr.getData();
-			if (key.equals(data.getKey())) {
-				return curr;
-			}
-		}
-		return null;		
-	}	
-
-	protected ModifyListener getTextModifyListener() {
-		if (fTextModifyListener == null) {
-			fTextModifyListener= new ModifyListener() {
-				public void modifyText(ModifyEvent e) {
-					textChanged((Text) e.widget);
-				}
-			};
-		}
-		return fTextModifyListener;
-	}
-	
-	protected String[] getTokens(String text, String separator) {
-		StringTokenizer tok= new StringTokenizer(text, separator); //$NON-NLS-1$
-		int nTokens= tok.countTokens();
-		String[] res= new String[nTokens];
-		for (int i= 0; i < res.length; i++) {
-			res[i]= tok.nextToken().trim();
-		}
-		return res;
-	}
-	
-	protected String getValue(Key key) {
-		if (fDisabledProjectSettings != null) {
-			return fDisabledProjectSettings.get(key);
-		}
-		return key.getStoredValue(fLookupOrder, false, fManager);
-	}
-	
-	/**
-	 * TODO: this method is a workaround for Bugzilla 111144 and 106111.  When
-	 * 111144 is fixed, remove this method and call hasProjectSpecificOptions() 
-	 * instead.  The difference is that this one does not cause project prefs nodes
-	 * to be cached in the WorkingCopyManager.
-	 * @return true if the project has project-specific options.
-	 */
-	public boolean hasProjectSpecificOptionsNoCache(IProject project) {
-		if (project != null) {
-			IScopeContext projectContext= new ProjectScope(project);
-			Key[] allKeys= fAllKeys;
-			for (int i= 0; i < allKeys.length; i++) {
-				if (allKeys[i].getStoredValue(projectContext, null) != null) {
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	private void makeScrollableCompositeAware(Control control) {
-		ScrolledPageContent parentScrolledComposite= getParentScrolledComposite(control);
-		if (parentScrolledComposite != null) {
-			parentScrolledComposite.adaptChild(control);
-		}
-	}
-	
-	protected Combo newComboControl(Composite composite, Key key, String[] values, String[] valueLabels) {
-		ControlData data= new ControlData(key, values);
-		
-		Combo comboBox= new Combo(composite, SWT.READ_ONLY);
-		comboBox.setItems(valueLabels);
-		comboBox.setData(data);
-		comboBox.addSelectionListener(getSelectionListener());
-		comboBox.setFont(JFaceResources.getDialogFont());
-			
-		makeScrollableCompositeAware(comboBox);
-		
-		String currValue= getValue(key);	
-		comboBox.select(data.getSelection(currValue));
-		
-		fComboBoxes.add(comboBox);
-		return comboBox;
-	}
-
-	public boolean performApply() {
-		return processChanges(null); // apply directly
-	}
-	
-	
-	public void performDefaults() {
-		IScopeContext defaultScope= (fProject == null) ? new DefaultScope() : new InstanceScope();
-		for (int i= 0; i < fAllKeys.length; i++) {
-			Key curr= fAllKeys[i];
-			String defValue= curr.getStoredValue(defaultScope, null);
-			setValue(curr, defValue);
-		}
-		
-		settingsUpdated();
-		updateControls();
-		validateSettings(null, null, null);
-	}
-	
-	public boolean performOk() {
-		return processChanges(fContainer);
-	}
-	
-	/**
-	 * @since 3.1
-	 */
-	public void performRevert() {
-		for (int i= 0; i < fAllKeys.length; i++) {
-			Key curr= fAllKeys[i];
-			String origValue= curr.getStoredValue(fLookupOrder, false, null);
-			setValue(curr, origValue);
-		}
-		
-		settingsUpdated();
-		updateControls();
-		validateSettings(null, null, null);
-	}
-	
-	/**
-	 * If there are changed settings, save them and ask user whether to rebuild.
-	 * This is called by performOk() and performApply().
-	 * @param container null when called from performApply().
-	 * @return false to abort exiting the preference pane.
-	 */
-	protected boolean processChanges(IWorkbenchPreferenceContainer container) {
-		
-		boolean projectSpecificnessChanged = false;
-		boolean isProjectSpecific= (fProject != null) && fBlockControl.getEnabled();
-		if (fOriginallyHadProjectSettings ^ isProjectSpecific) {
-			// the project-specificness changed.
-			projectSpecificnessChanged= true;
-		} else if ((fProject != null) && !isProjectSpecific) {
-			// no project specific data, and there never was, and this
-			// is a project preferences pane, so nothing could have changed.
-			return true;
-		}
-
-		if (!projectSpecificnessChanged && !settingsChanged(fLookupOrder[0])) {
-			return true;
-		}
-		
-		int response= 1; // "NO" rebuild unless we put up the dialog.
-		String[] strings= getFullBuildDialogStrings(fProject == null);
-		if (strings != null) {
-			MessageDialog dialog= new MessageDialog(
-					getShell(), 
-					strings[0], 
-					null, 
-					strings[1], 
-					MessageDialog.QUESTION, 
-					new String[] { 
-						IDialogConstants.YES_LABEL, 
-						IDialogConstants.NO_LABEL, 
-						IDialogConstants.CANCEL_LABEL 
-					}, 
-					2);
-			response= dialog.open();
-		}
-		if (response == 0 || response == 1) { // "YES" or "NO" - either way, save.
-			saveSettings();
-			if (container == null) {
-				// we're doing an Apply, so update the reference values.
-				cacheOriginalValues();
-			}
-		}
-		if (response == 0) { // "YES", rebuild
-			if (container != null) {
-				// build after dialog exits
-				container.registerUpdateJob(CoreUtility.getBuildJob(fProject));
-			} else {
-				// build immediately
-				CoreUtility.getBuildJob(fProject).schedule();
-			}
-		} else if (response != 1) { // "CANCEL" - no save, no rebuild.
-			return false;
-		}
-		return true;
-	}
-
-	/**
-	 * Save dialog information to persistent storage.
-	 * Derived classes should override this if they have settings
-	 * that are managed using means other than the Key infrastructure.
-	 */
-	protected void saveSettings() {
-		try {
-			fManager.applyChanges();
-		} catch (BackingStoreException e) {
-			ExceptionHandler.log(e, "Unable to save preferences"); //$NON-NLS-1$
-		}
-	}
-
-	protected void restoreSectionExpansionStates(IDialogSettings settings) {
-		for (int i= 0; i < fExpandedComposites.size(); i++) {
-			ExpandableComposite excomposite= fExpandedComposites.get(i);
-			if (settings == null) {
-				excomposite.setExpanded(i == 0); // only expand the first node by default
-			} else {
-				excomposite.setExpanded(settings.getBoolean(SETTINGS_EXPANDED + String.valueOf(i)));
-			}
-		}
-	}
-	
-	public void selectOption(Key key) {
-		Control control= findControl(key);
-		if (control != null) {
-			if (!fExpandedComposites.isEmpty()) {
-				ExpandableComposite expandable= getParentExpandableComposite(control);
-				if (expandable != null) {
-					for (int i= 0; i < fExpandedComposites.size(); i++) {
-						ExpandableComposite curr= fExpandedComposites.get(i);
-						curr.setExpanded(curr == expandable);
-					}
-					expandedStateChanged(expandable);
-				}
-			}
-			control.setFocus();
-		}
-	}
-	
-	public void selectOption(String key, String qualifier) {
-		for (int i= 0; i < fAllKeys.length; i++) {
-			Key curr= fAllKeys[i];
-			if (curr.getName().equals(key) && curr.getQualifier().equals(qualifier)) {
-				selectOption(curr);
-			}
-		}
-	}
-	
-	protected void setComboEnabled(Key key, boolean enabled) {
-		Combo combo= getComboBox(key);
-		Label label= fLabels.get(combo);
-		combo.setEnabled(enabled);
-		label.setEnabled(enabled);
-	}
-	
-	protected void setShell(Shell shell) {
-		fShell= shell;
-	}
-	
-	/**
-	 * Checks the state of all Keys in the dialog to see whether there have been changes.
-	 * Derived classes which include settings managed outside of the Key infrastructure
-	 * should override this method, in order to check whether the additional settings have changed.
-	 * @return true if there is anything that needs to be saved.
-	 */
-	protected boolean settingsChanged(IScopeContext currContext) {
-		boolean needsBuild= false;
-		for (int i= 0; i < fAllKeys.length; i++) {
-			Key key= fAllKeys[i];
-			String oldVal= key.getStoredValue(currContext, null);
-			String val= key.getStoredValue(currContext, fManager);
-			if (val == null) {
-				if (oldVal != null) {
-					needsBuild |= !oldVal.equals(key.getStoredValue(fLookupOrder, true, fManager));
-				}
-			} else if (!val.equals(oldVal)) {
-				needsBuild |= oldVal != null || !val.equals(key.getStoredValue(fLookupOrder, true, fManager));
-			}
-		}
-		return needsBuild;
-	}
-	
-	protected void settingsUpdated() {
-	}
-	
-	protected String setValue(Key key, boolean value) {
-		return setValue(key, String.valueOf(value));
-	}
-	
-	protected String setValue(Key key, String value) {
-		if (fDisabledProjectSettings != null) {
-			return fDisabledProjectSettings.put(key, value);
-		}
-		String oldValue= getValue(key);
-		key.setStoredValue(fLookupOrder[0], value, fManager);
-		return oldValue;
-	}
-	
-	protected void storeSectionExpansionStates(IDialogSettings settings) {
-		for (int i= 0; i < fExpandedComposites.size(); i++) {
-			ExpandableComposite curr= fExpandedComposites.get(i);
-			settings.put(SETTINGS_EXPANDED + String.valueOf(i), curr.isExpanded());
-		}
-	}
-	
-	private void testIfOptionsComplete(Key[] allKeys) {
-		for (int i= 0; i < allKeys.length; i++) {
-			if (allKeys[i].getStoredValue(fLookupOrder, false, fManager) == null) {
-				JavaPlugin.logErrorMessage("preference option missing: " + allKeys[i] + " (" + this.getClass().getName() +')');  //$NON-NLS-1$//$NON-NLS-2$
-			}
-		}
-	}
-
-	protected void textChanged(Text textControl) {
-		Key key= (Key) textControl.getData();
-		String number= textControl.getText();
-		String oldValue= setValue(key, number);
-		validateSettings(key, oldValue, number);
-	}
-
-	protected void updateCheckBox(Button curr) {
-		ControlData data= (ControlData) curr.getData();
-		
-		String currValue= getValue(data.getKey());	
-		curr.setSelection(data.getSelection(currValue) == 0);						
-	}
-
-	protected void updateCombo(Combo curr) {
-		ControlData data= (ControlData) curr.getData();
-		
-		String currValue= getValue(data.getKey());	
-		curr.select(data.getSelection(currValue));					
-	}
-	
-	protected void updateControls() {
-		// update the UI
-		for (int i= fCheckBoxes.size() - 1; i >= 0; i--) {
-			updateCheckBox(fCheckBoxes.get(i));
-		}
-		for (int i= fComboBoxes.size() - 1; i >= 0; i--) {
-			updateCombo(fComboBoxes.get(i));
-		}
-		for (int i= fTextBoxes.size() - 1; i >= 0; i--) {
-			updateText(fTextBoxes.get(i));
-		}
-	}
-
-	protected abstract void updateModel(DialogField field);
-
-	protected void updateText(Text curr) {
-		Key key= (Key) curr.getData();
-		
-		String currValue= getValue(key);
-		if (currValue != null) {
-			curr.setText(currValue);
-		}
-	}
-	
-	public void useProjectSpecificSettings(boolean enable) {
-		boolean hasProjectSpecificOption= fDisabledProjectSettings == null;
-		if (enable != hasProjectSpecificOption && fProject != null) {
-			if (enable) {
-				for (int i= 0; i < fAllKeys.length; i++) {
-					Key curr= fAllKeys[i];
-					String val= fDisabledProjectSettings.get(curr);
-					curr.setStoredValue(fLookupOrder[0], val, fManager);
-				}
-				fDisabledProjectSettings= null;
-				updateControls();
-			} else {
-				fDisabledProjectSettings= new IdentityHashMap<Key, String>();
-				for (int i= 0; i < fAllKeys.length; i++) {
-					Key curr= fAllKeys[i];
-					String oldSetting= curr.getStoredValue(fLookupOrder, false, fManager);
-					fDisabledProjectSettings.put(curr, oldSetting);
-					curr.setStoredValue(fLookupOrder[0], null, fManager); // clear project settings
-				}
-			}
-		}
-	}
-
-	/* (non-javadoc)
-	 * Update fields and validate.
-	 * @param changedKey Key that changed, or null, if all changed.
-	 */	
-	protected abstract void validateSettings(Key changedKey, String oldValue, String newValue);
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BasePreferencePage.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BasePreferencePage.java
deleted file mode 100644
index 6cebaa5..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/BasePreferencePage.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   {INITIAL_AUTHOR} - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IAdaptable;
-import org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Base class for APT preference and property pages.
- */
-public abstract class BasePreferencePage extends PropertyAndPreferencePage {
-	private BaseConfigurationBlock fConfigurationBlock;
-
-	protected Control createPreferenceContent(Composite composite) {
-		return getConfigurationBlock().createPreferenceContent(composite);
-	}
-	
-	@Override
-	public void createControl(Composite parent) {
-		super.createControl(parent);
-		String contextId = getContextHelpId();
-		if (contextId != null) {
-			PlatformUI.getWorkbench().getHelpSystem().setHelp(getControl(), contextId);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jface.dialogs.DialogPage#dispose()
-	 */
-	public void dispose() {
-		if (getConfigurationBlock() != null) {
-			getConfigurationBlock().dispose();
-		}
-		super.dispose();
-	}
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage#enableProjectSpecificSettings(boolean)
-	 */
-	protected void enableProjectSpecificSettings(boolean useProjectSpecificSettings) {
-		if (getConfigurationBlock() != null) {
-			getConfigurationBlock().useProjectSpecificSettings(useProjectSpecificSettings);
-		}
-		super.enableProjectSpecificSettings(useProjectSpecificSettings);
-	}
-
-	protected BaseConfigurationBlock getConfigurationBlock() {
-		return fConfigurationBlock;
-	}
-	
-	/**
-	 * Derived classes should override by returning a string that refers
-	 * to a context topic entry in docs/contexts_APT.xml.  The default
-	 * implementation returns null, which causes context help to be disabled.
-	 */
-	protected String getContextHelpId() {
-		return null;
-	}
-	
-	protected boolean hasProjectSpecificOptions(IProject project) {
-		// Workaround for bug 106111 / 111144:
-		// See BaseConfigurationBlock.hasProjectSpecificOptionsNoCache() for details.
-		return getConfigurationBlock().hasProjectSpecificOptionsNoCache(project);
-	}
-	
-	/*
-	 * @see org.eclipse.jface.preference.IPreferencePage#performApply()
-	 */
-	public void performApply() {
-		if (getConfigurationBlock() != null) {
-			getConfigurationBlock().performApply();
-		}
-	}
-	
-	/*
-	 * @see org.eclipse.jface.preference.IPreferencePage#performDefaults()
-	 */
-	protected void performDefaults() {
-		super.performDefaults();
-		if (getConfigurationBlock() != null) {
-			getConfigurationBlock().performDefaults();
-		}
-	}
-	
-	/*
-	 * @see org.eclipse.jface.preference.IPreferencePage#performOk()
-	 */
-	public boolean performOk() {
-		if (getConfigurationBlock() != null && !getConfigurationBlock().performOk()) {
-			return false;
-		}	
-		return super.performOk();
-	}
-	
-	protected void setConfigurationBlock(BaseConfigurationBlock configurationBlock) {
-		fConfigurationBlock = configurationBlock;
-	}
-	
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage#setElement(org.eclipse.core.runtime.IAdaptable)
-	 */
-	public void setElement(IAdaptable element) {
-		super.setElement(element);
-		setDescription(null); // no description for property page
-	}
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathConfigurationBlock.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathConfigurationBlock.java
deleted file mode 100644
index 78411ac..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathConfigurationBlock.java
+++ /dev/null
@@ -1,710 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspaceRoot;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IPath;
-import org.eclipse.core.runtime.Path;
-import org.eclipse.core.runtime.preferences.IScopeContext;
-import org.eclipse.jdt.apt.core.internal.util.FactoryContainer;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPathUtil;
-import org.eclipse.jdt.apt.core.internal.util.FactoryPath.Attributes;
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.core.util.IFactoryPath;
-import org.eclipse.jdt.apt.ui.internal.util.ExceptionHandler;
-import org.eclipse.jdt.core.IJavaProject;
-import org.eclipse.jdt.core.JavaCore;
-import org.eclipse.jdt.internal.ui.util.PixelConverter;
-import org.eclipse.jdt.internal.ui.wizards.IStatusChangeListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.CheckedListDialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IListAdapter;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.ListDialogField;
-import org.eclipse.jdt.ui.wizards.BuildPathDialogAccess;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.viewers.CheckStateChangedEvent;
-import org.eclipse.jface.viewers.CheckboxTableViewer;
-import org.eclipse.jface.viewers.ICheckStateListener;
-import org.eclipse.jface.viewers.ITableLabelProvider;
-import org.eclipse.jface.viewers.LabelProvider;
-import org.eclipse.jface.window.Window;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * Data and controls for the Java Annotation Factory Path preference page.
- */
-public class FactoryPathConfigurationBlock extends BaseConfigurationBlock {
-
-	private static final int IDX_UP= 0;
-	private static final int IDX_DOWN= 1;
-	// 2
-	private static final int IDX_ADDJAR= 3;
-	private static final int IDX_ADDEXTJAR= 4;
-	private static final int IDX_ADDVAR= 5;
-	// 6
-	private static final int IDX_EDIT= 7;
-	private static final int IDX_ADVANCED= 8;
-	private static final int IDX_REMOVE= 9;
-	// 10
-	private static final int IDX_ENABLEALL= 11;
-	private static final int IDX_DISABLEALL= 12;
-
-	private final static String[] buttonLabels = { 
-		Messages.FactoryPathConfigurationBlock_up,
-		Messages.FactoryPathConfigurationBlock_down,
-		null,                    // 2
-		Messages.FactoryPathConfigurationBlock_addJars,
-		Messages.FactoryPathConfigurationBlock_addExternalJars,
-		Messages.FactoryPathConfigurationBlock_addVariable,
-		null,                    // 6
-		Messages.FactoryPathConfigurationBlock_edit,
-		Messages.FactoryPathConfigurationBlock_advanced,
-		Messages.FactoryPathConfigurationBlock_remove,
-		null,                    // 10
-		Messages.FactoryPathConfigurationBlock_enableAll,
-		Messages.FactoryPathConfigurationBlock_disableAll
-	};
-
-	/**
-	 * Event handler for factory path list control
-	 */
-	private class FactoryPathAdapter implements IListAdapter, IDialogFieldListener {
-        public void customButtonPressed(ListDialogField field, int index) {
-        	FactoryPathConfigurationBlock.this.customButtonPressed(index);
-        }
-
-        public void selectionChanged(ListDialogField field) {
-        	boolean enableRemove = canRemove();
-        	field.enableButton(IDX_REMOVE, enableRemove);
-        	boolean enableEdit = canEdit();
-        	field.enableButton(IDX_EDIT, enableEdit);
-        	boolean enableAdvanced = canAdvanced();
-        	field.enableButton(IDX_ADVANCED, enableAdvanced);
-        }
-
-        /**
-         * This method gets called when, among other things, a checkbox is
-         * clicked.  However, it doesn't get any information about which
-         * item it was whose checkbox was clicked, so it's pretty useless.
-         * Instead of maintaining the FactoryPathEntry states here, we
-         * hook into the list control's CheckboxTableViewer event listener.
-         */
-		public void dialogFieldChanged(DialogField field) {
-        }
-
-        public void doubleClicked(ListDialogField field) {
-        	if (canEdit()) {
-        		editSelectedItem();
-        	}
-        }
-	}
-	
-	private class FactoryPathLabelProvider extends LabelProvider implements ITableLabelProvider {
-
-		public Image getColumnImage(Object element, int columnIndex) {
-			return null;
-		}
-
-		public String getColumnText(Object element, int columnIndex) {
-			if (!(element instanceof FactoryPathEntry)) {
-				return ""; //$NON-NLS-1$
-			}
-			FactoryPathEntry fpe = (FactoryPathEntry)element;
-			if (columnIndex == 0) {
-				return fpe._fc.toString();
-			}
-			else {
-				return ""; //$NON-NLS-1$
-			}
-		}
-	}
-	
-	/**
-	 * The factory path is a list of containers, plus some information about
-	 * each container.  That makes it a list of FactoryPathEntry.  
-	 */
-	private static class FactoryPathEntry {
-		/* shallow copies - beware! */
-		public final FactoryContainer _fc;
-		public FactoryPath.Attributes _attr;
-		
-		// CONSTRUCTORS
-		public FactoryPathEntry(FactoryContainer fc, FactoryPath.Attributes attr) {
-			_fc = fc;
-			_attr = attr;
-		}
-
-		// CONVERSION TO/FROM INDIVIDUAL ELEMENTS
-		public static Map<FactoryContainer, Attributes> pathMapFromList(List<FactoryPathEntry> list) {
-			Map<FactoryContainer, FactoryPath.Attributes> map = 
-				new LinkedHashMap<FactoryContainer, FactoryPath.Attributes>(list.size());
-			for (FactoryPathEntry fpe : list) {
-				map.put(fpe._fc, fpe._attr);
-			}
-			return map;
-		}
-		public static List<FactoryPathEntry> pathListFromMap(Map<FactoryContainer, Attributes> map) {
-			List<FactoryPathEntry> list = new ArrayList<FactoryPathEntry>(map.size());
-			for (Map.Entry<FactoryContainer, Attributes> entry : map.entrySet()) {
-				FactoryPathEntry fpe = new FactoryPathEntry(entry.getKey(), entry.getValue());
-				list.add(fpe);
-			}
-			return list;
-		}
-
-		// SUPPORT FOR COMPARISON
-		public boolean equals(Object obj) {
-			if (!(obj instanceof FactoryPathEntry))
-				return false;
-			FactoryPathEntry fpe = (FactoryPathEntry)obj;
-			return _fc.equals(fpe._fc) && _attr.equals(fpe._attr);
-		}
-		public int hashCode() {
-			return _fc.hashCode() ^ _attr.hashCode();
-		}
-		
-	}
-	
-	private PixelConverter fPixelConverter;
-	private Composite fBlockControl; // the control representing the entire configuration block
-
-	/**
-	 * The factory path at the time this pref pane was launched.
-	 * Use this to see if anything changed at save time.
-	 */
-	private List<FactoryPathEntry> fOriginalPath;
-	
-	private final IJavaProject fJProj;
-
-	/** 
-	 * The GUI control representing the factory path.  Its data items
-	 * are of type FactoryPathEntry. 
-	 */
-	private CheckedListDialogField fFactoryPathList;
-
-	/**
-	 * @param context
-	 * @param project
-	 * @param keys
-	 * @param container
-	 */
-	public FactoryPathConfigurationBlock(IStatusChangeListener context,
-			IProject project, IWorkbenchPreferenceContainer container) {
-		super(context, project, new Key[] {}, container);
-		
-		fJProj = JavaCore.create(project);
-		
-		FactoryPathAdapter adapter= new FactoryPathAdapter();
-		FactoryPathLabelProvider labelProvider = new FactoryPathLabelProvider();
-		
-		fFactoryPathList= new CheckedListDialogField(adapter, buttonLabels, labelProvider);
-		fFactoryPathList.setDialogFieldListener(adapter);
-		fFactoryPathList.setLabelText(Messages.FactoryPathConfigurationBlock_pluginsAndJars);
-		fFactoryPathList.setUpButtonIndex(IDX_UP);
-		fFactoryPathList.setDownButtonIndex(IDX_DOWN);
-		fFactoryPathList.setRemoveButtonIndex(IDX_REMOVE);
-		fFactoryPathList.setCheckAllButtonIndex(IDX_ENABLEALL);
-		fFactoryPathList.setUncheckAllButtonIndex(IDX_DISABLEALL);		
-	}
-
-	/**
-	 * Respond to the user checking the "enabled" checkbox of an entry
-	 * in the factory path control, by replacing the FactoryPathEntry
-	 * with a new one with the correct "enabled" value.
-	 */
-	protected void doCheckStateChanged(CheckStateChangedEvent e) {
-		Object o = e.getElement();
-		if (o == null || !(o instanceof FactoryPathEntry)) {
-			return;  // shouldn't ever happen
-		}
-		FactoryPathEntry fpe = (FactoryPathEntry)o;
-		boolean isChecked = e.getChecked();
-		fpe._attr.setEnabled(isChecked);
-	}
-
-	/**
-	 * Respond to a button in the button bar.
-	 * Most buttons are handled by code in CheckedListDialogField;
-	 * this method is for the rest, e.g., Add External Jar.
-	 * @param index
-	 */
-	public void customButtonPressed(int index) {
-		FactoryPathEntry[] newEntries = null;
-		switch (index) {
-		case IDX_ADDJAR: // add jars in project
-			newEntries= openJarFileDialog(null);
-			addEntries(newEntries);
-			break;
-			
-		case IDX_ADDEXTJAR: // add external jars
-			newEntries= openExtJarFileDialog(null);
-			addEntries(newEntries);
-			break;
-			
-		case IDX_ADDVAR: // add jar from classpath variable
-			newEntries= openVariableSelectionDialog(null);
-			addEntries(newEntries);
-			break;
-			
-		case IDX_EDIT: // edit selected item
-			if (canEdit()) {
-				editSelectedItem();
-			}
-			break;
-			
-		case IDX_ADVANCED: // advanced options
-			advancedOptionsDialog();
-			break;
-		}
-		
-	}
-	
-	/**
-	 * Can't remove a selection that contains a plugin.
-	 */
-	private boolean canRemove() {
-		List<FactoryPathEntry> selected= getSelectedListContents();
-		boolean containsPlugin= false;
-		for (FactoryPathEntry fpe : selected) {
-			if (fpe._fc.getType() == FactoryContainer.FactoryType.PLUGIN) {
-				containsPlugin = true;
-				break;
-			}
-		}
-		return !containsPlugin;
-	}
-	
-	/**
-	 * Can only edit a single item at a time.  Can't edit plugins.
-	 */
-	private boolean canEdit() {
-		List<FactoryPathEntry> selected= getSelectedListContents();
-		if (selected.size() != 1) {
-			return false;
-		}
-		FactoryContainer fc = selected.get(0)._fc;
-		return (fc.getType() != FactoryContainer.FactoryType.PLUGIN);
-	}
-
-	/**
-	 * Can only launch the 'advanced' dialog on a single item at a time.
-	 */
-	private boolean canAdvanced() {
-		List<FactoryPathEntry> selected= getSelectedListContents();
-		return (selected.size() == 1);
-	}
-
-	private void addEntries(FactoryPathEntry[] entries) {
-		if (null == entries) {
-			return;
-		}
-		int insertAt;
-		List<FactoryPathEntry> selectedElements= getSelectedListContents();
-		if (selectedElements.size() == 1) {
-			insertAt= fFactoryPathList.getIndexOfElement(selectedElements.get(0)) + 1;
-		} else {
-			insertAt= fFactoryPathList.getSize();
-		}
-		for (int i = 0; i < entries.length; ++i) {
-			fFactoryPathList.addElement(entries[i], insertAt + i);
-			fFactoryPathList.setChecked(entries[i], entries[i]._attr.isEnabled());
-		}
-	}
-	
-	/**
-	 * Edit the item selected.
-	 * Precondition: exactly one item is selected in the list,
-	 * and it is an editable item (not a plugin).
-	 * @param field a listbox of FactoryContainers.
-	 */
-	private void editSelectedItem() {
-		List<FactoryPathEntry> selected= getSelectedListContents();
-		if (selected.size() != 1) {
-			return;
-		}
-		FactoryPathEntry original = selected.get(0);
-		FactoryPathEntry[] edited = null;
-		switch (original._fc.getType()) {
-		case PLUGIN:
-			return;
-		case EXTJAR:
-			edited= openExtJarFileDialog(original);
-			break;
-		case VARJAR:
-			edited= openVariableSelectionDialog(original);
-			break;
-		case WKSPJAR:
-			edited= openJarFileDialog(original);
-			break;
-		}
-		if (edited != null && edited.length > 0) {
-			fFactoryPathList.replaceElement(original, edited[0]);
-		}
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.ui.internal.preferences.BaseConfigurationBlock#createContents(org.eclipse.swt.widgets.Composite)
-	 */
-	protected Control createContents(Composite parent) {
-		setShell(parent.getShell());
-		
-		fPixelConverter= new PixelConverter(parent);
-		
-		fBlockControl= new Composite(parent, SWT.NONE);
-		fBlockControl.setFont(parent.getFont());
-
-		Dialog.applyDialogFont(fBlockControl);
-		
-		LayoutUtil.doDefaultLayout(fBlockControl, new DialogField[] { fFactoryPathList }, true, SWT.DEFAULT, SWT.DEFAULT);
-		LayoutUtil.setHorizontalGrabbing(fFactoryPathList.getListControl(null));
-
-		fFactoryPathList.enableButton(IDX_ADDJAR, (fJProj != null));
-		int buttonBarWidth= fPixelConverter.convertWidthInCharsToPixels(24);
-		fFactoryPathList.setButtonsMinWidth(buttonBarWidth);
-		
-		// Register a change listener on the checkboxes
-		CheckboxTableViewer tableViewer = (CheckboxTableViewer)fFactoryPathList.getTableViewer();
-		tableViewer.addCheckStateListener(new ICheckStateListener() {
-			public void checkStateChanged(CheckStateChangedEvent e) {
-				doCheckStateChanged(e);
-			}
-		});
-
-		return fBlockControl;
-	}
-	
-	@Override
-	public boolean hasProjectSpecificOptionsNoCache(IProject project) {
-		return (project == null) ? false : AptConfig.hasProjectSpecificFactoryPath(JavaCore.create(project));
-	}
-
-	@Override
-	protected void initContents() {
-		fFactoryPathList.removeAllElements();
-		for (FactoryPathEntry originalFpe : fOriginalPath) {
-			// clone, because we may later modify it and we want to compare with the original.
-			FactoryPathEntry fpe = new FactoryPathEntry(originalFpe._fc, new Attributes(originalFpe._attr));
-			fFactoryPathList.addElement(fpe);
-			fFactoryPathList.setChecked(fpe, fpe._attr.isEnabled());
-		}
-	}
-
-	/**
-	 * Save reference copies of the settings, so we can see if anything changed.
-	 * This must stay in sync with the actual saved values for the rebuild logic
-	 * to work; so be sure to call this any time you save (eg in performApply()).
-	 */
-	@Override
-	protected void cacheOriginalValues() {
-		IFactoryPath ifp = AptConfig.getFactoryPath(fJProj);
-		// we'll risk this downcast because we're such good buddies with apt.core.
-		FactoryPath fp = (FactoryPath)ifp;
-		Map<FactoryContainer, FactoryPath.Attributes> path = fp.getAllContainers();
-		fOriginalPath = FactoryPathEntry.pathListFromMap(path);
-		super.cacheOriginalValues();
-	}
-	
-	/*
-	 * Helper method to get rid of unchecked conversion warning
-	 */
-	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	private List<FactoryPathEntry> getListContents() {
-		List<FactoryPathEntry> contents= fFactoryPathList.getElements();
-		return contents;
-	}
-	
-	/*
-	 * Helper method to get rid of unchecked conversion warning
-	 */
-	@SuppressWarnings("unchecked") //$NON-NLS-1$
-	private List<FactoryPathEntry> getSelectedListContents() {
-		List<FactoryPathEntry> contents= fFactoryPathList.getSelectedElements();
-		return contents;
-	}
-	
-	/**
-	 * Get all the containers of a certain type currently on the list.
-	 * The format of the returned paths will depend on the container type:
-	 * for EXTJAR it will be an absolute path; for WKSPJAR it will be a
-	 * path relative to the workspace root; for VARJAR it will be a path
-	 * whose first segment is the name of a classpath variable.
-	 * @param type may not be PLUGIN
-	 * @param ignore null, or an item to not put on the list (used when
-	 * editing an existing item).
-	 * @return an array, possibly empty (but never null)
-	 */
-	private IPath[] getExistingPaths(FactoryContainer.FactoryType type, FactoryContainer ignore) {
-		if (type == FactoryContainer.FactoryType.PLUGIN) {
-			throw new IllegalArgumentException();
-		}
-		List<FactoryPathEntry> all = getListContents();
-		// find out how many entries there are of this type
-		int countType = 0;
-		for (FactoryPathEntry fpe : all) {
-			FactoryContainer fc = fpe._fc;
-			if (fc.getType() == type && fc != ignore) {
-				++countType;
-			}
-		}
-		// create an array of paths, one per entry of this type 
-		IPath[] some = new IPath[countType];
-		int i = 0;
-		for (FactoryPathEntry fpe : all) {
-			FactoryContainer fc = fpe._fc;
-			if (fc.getType() == type && fc != ignore) {
-				some[i++] = new Path(fc.getId());
-			}
-		}
-		return some;
-	}
-	
-	/**
-	 * Launch the "advanced options" dialog, which displays the factory classes
-	 * contained by the selected container and allows the user to specify
-	 * options that are needed only in certain special cases.
-	 * 
-	 * We treat advanced options as an attribute of the factory path, not of the 
-	 * container; the same container may have different advanced options in different
-	 * projects.  We treat advanced options the same way as the "enabled" flag.
-	 */
-	private void advancedOptionsDialog() {
-		List<FactoryPathEntry> selected= getSelectedListContents();
-		if (selected.size() != 1) {
-			return;
-		}
-		FactoryPathEntry original= selected.get(0);
-		AdvancedFactoryPathOptionsDialog dialog= 
-			new AdvancedFactoryPathOptionsDialog(getShell(), original._fc, original._attr);
-		if (dialog.open() == Window.OK) {
-			original._attr = dialog.getResult();
-			// If the dialog could change the enabled attribute, we would also
-			// need to update the checkbox in the GUI here.  But it doesn't.
-		}
-	}
-
-	/**
-	 * Add or edit a project-relative jar file.  Only possible when editing
-	 * project properties; this method is disabled in workspace prefs.
-	 * @param original null, or an existing list entry to be edited
-	 * @return a list of additional factory path entries to be added
-	 */
-	private FactoryPathEntry[] openJarFileDialog(FactoryPathEntry original) {
-		if (fJProj == null) {
-			return null;
-		}
-		IWorkspaceRoot root= fJProj.getProject().getWorkspace().getRoot();
-		
-		if (original == null) {
-			IPath[] results= BuildPathDialogAccess.chooseJAREntries(getShell(), fJProj.getPath(), new IPath[0]);
-			if (results == null) {
-				return null;
-			}
-			ArrayList<FactoryPathEntry> res= new ArrayList<FactoryPathEntry>();
-			for (int i= 0; i < results.length; i++) {
-				IResource resource= root.findMember(results[i]);
-				if (resource instanceof IFile) {
-					FactoryContainer fc = FactoryPathUtil.newWkspJarFactoryContainer(results[i]);
-					// assume defaults of enabled=true, runInAptMode=false
-					FactoryPath.Attributes attr = new FactoryPath.Attributes(true, false);
-					FactoryPathEntry fpe = new FactoryPathEntry(fc, attr);
-					res.add(fpe);
-				}
-				//TODO: handle missing jars
-			}
-			return res.toArray(new FactoryPathEntry[res.size()]);
-		}
-		else {
-			IPath[] existingPaths = getExistingPaths(FactoryContainer.FactoryType.WKSPJAR, original._fc);
-			IPath result= BuildPathDialogAccess.configureJAREntry(getShell(), new Path(original._fc.getId()), existingPaths);
-			if (result == null) {
-				return null;
-			}
-			IResource resource= root.findMember(result);
-			if (resource instanceof IFile) {
-				FactoryPathEntry[] edited = new FactoryPathEntry[1];
-				FactoryContainer fc= FactoryPathUtil.newWkspJarFactoryContainer(result);
-				// Use prior value for isEnabled.  Assume default of runInAptMode=false
-				FactoryPath.Attributes attr = new FactoryPath.Attributes(original._attr.isEnabled(), false);
-				edited[0]= new FactoryPathEntry(fc, attr);
-				return edited;
-			}
-			//TODO: handle missing jars
-			return null;
- 		}
-	}
-
-	/**
-	 * Add or edit an external (not project-relative) jar file.  
-	 * @param original null, or an existing list entry to be edited
-	 * @return a list of additional factory path entries to be added
-	 */
-	private FactoryPathEntry[] openExtJarFileDialog(FactoryPathEntry original) {
-		if (original == null) {
-			IPath[] selected= BuildPathDialogAccess.chooseExternalJAREntries(getShell());
-			if (selected == null) {
-				return null;
-			}
-			ArrayList<FactoryPathEntry> res= new ArrayList<FactoryPathEntry>();
-			for (int i= 0; i < selected.length; i++) {
-				FactoryContainer fc = FactoryPathUtil.newExtJarFactoryContainer(selected[i].toFile());
-				// assume defaults of enabled=true, runInAptMode=false
-				FactoryPath.Attributes attr = new FactoryPath.Attributes(true, false);
-				FactoryPathEntry fpe = new FactoryPathEntry(fc, attr);
-				res.add(fpe);
-			}
-			return res.toArray(new FactoryPathEntry[res.size()]);
-		}
-		else {
-			IPath result= BuildPathDialogAccess.configureExternalJAREntry(getShell(), new Path(original._fc.getId()));
-			if (result == null) {
-				return null;
-			}
-			FactoryPathEntry[] edited= new FactoryPathEntry[1];
-			FactoryContainer fc= FactoryPathUtil.newExtJarFactoryContainer(result.toFile());
-			// Use prior value for isEnabled.  Assume default of runInAptMode=false
-			FactoryPath.Attributes attr = new FactoryPath.Attributes(original._attr.isEnabled(), false);
-			edited[0]= new FactoryPathEntry(fc, attr);
-			return edited;
-		}
-	}
-	
-	/**
-	 * Add or edit an external (not project-relative) jar file whose
-	 * location includes a classpath variable name.  
-	 * @param original null, or an existing list entry to be edited
-	 * @return a list of additional factory path entries to be added
-	 */
-	private FactoryPathEntry[] openVariableSelectionDialog(FactoryPathEntry original) {
-		if (original == null) {
-			IPath[] selected= BuildPathDialogAccess.chooseVariableEntries(getShell(), new IPath[0]);
-			if (selected == null) {
-				return null;
-			}
-			ArrayList<FactoryPathEntry> res= new ArrayList<FactoryPathEntry>();
-			for (int i= 0; i < selected.length; i++) {
-				FactoryContainer fc= FactoryPathUtil.newVarJarFactoryContainer(selected[i]);
-				// assume defaults of enabled=true, runInAptMode=false
-				FactoryPath.Attributes attr = new FactoryPath.Attributes(true, false);
-				FactoryPathEntry fpe = new FactoryPathEntry(fc, attr);
-				res.add(fpe);
-			}
-			return res.toArray(new FactoryPathEntry[res.size()]);
-		}
-		else {
-			IPath[] existingPaths = getExistingPaths(FactoryContainer.FactoryType.VARJAR, original._fc);
-			IPath result= BuildPathDialogAccess.configureVariableEntry(getShell(), new Path(original._fc.getId()), existingPaths);
-			if (result == null) {
-				return null;
-			}
-			FactoryPathEntry[] edited= new FactoryPathEntry[1];
-			FactoryContainer fc= FactoryPathUtil.newVarJarFactoryContainer(result);
-			// Use prior value for isEnabled.  Assume default of runInAptMode=false
-			FactoryPath.Attributes attr = new FactoryPath.Attributes(original._attr.isEnabled(), false);
-			edited[0]= new FactoryPathEntry(fc, attr);
-			return edited;
-		}
-	}
-	
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.ui.internal.preferences.BaseConfigurationBlock#updateModel(org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField)
-	 */
-	protected void updateModel(DialogField field) {
-		// We don't use IEclipsePreferences for this pane, so no need to do anything.
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.apt.ui.internal.preferences.BaseConfigurationBlock#validateSettings(org.eclipse.jdt.internal.ui.preferences.OptionsConfigurationBlock.Key, java.lang.String, java.lang.String)
-	 */
-	protected void validateSettings(Key changedKey, String oldValue, String newValue) {
-		// TODO: validate that all the specified factory containers exist?
-	}
-	
-	protected void saveSettings() {
-		List<FactoryPathEntry> containers;
-		if ((fJProj != null) && !fBlockControl.isEnabled()) {
-			// We're in a project properties pane but the entire configuration 
-			// block control is disabled.  That means the per-project settings checkbox 
-			// is unchecked.  To save that state, we'll delete the settings file.
-			containers = null;
-		}
-		else {
-			containers = getListContents();
-		}
-		
-		Map<FactoryContainer, FactoryPath.Attributes> map = FactoryPathEntry.pathMapFromList(containers);
-		
-		try {
-			FactoryPath fp = new FactoryPath();
-			fp.setContainers(map);
-			AptConfig.setFactoryPath(fJProj, fp);
-		}
-		catch (CoreException e) {
-			final String title = Messages.FactoryPathConfigurationBlock_unableToSaveFactorypath_title;
-			final String message = Messages.FactoryPathConfigurationBlock_unableToSaveFactorypath_message;
-			ExceptionHandler.handle(e, fBlockControl.getShell(), title, message);
-		}
-		
-		super.saveSettings();
-	}
-	
-	/**
-	 * If per-project, restore list contents to current workspace settings;
-	 * the per-project settings checkbox will be cleared for us automatically.
-	 * If workspace, restore list contents to factory-default settings.
-	 */
-	public void performDefaults() {
-		IFactoryPath ifp = AptConfig.getDefaultFactoryPath(fJProj);
-		// we'll risk this downcast because we're such good buddies with apt.core.
-		FactoryPath fp = (FactoryPath)ifp;
-		Map<FactoryContainer, FactoryPath.Attributes> map = fp.getAllContainers();
-		List<FactoryPathEntry> defaults = FactoryPathEntry.pathListFromMap(map);
-		fFactoryPathList.removeAllElements();
-		for (FactoryPathEntry fpe : defaults) {
-			fFactoryPathList.addElement(fpe);
-			fFactoryPathList.setChecked(fpe, fpe._attr.isEnabled());
-		}
-		super.performDefaults();
-	}
-	
-	/**
-	 * @return true if settings or project-specificness changed since
-	 * the pane was launched - that is, if there is anything to save.
-	 */
-	@Override
-	protected boolean settingsChanged(IScopeContext currContext) {
-		if (fOriginalPath == null) {
-			// shouldn't happen, but just in case it does, consider it a change.
-			return true;
-		}
-		// Is the new path the same size, containing the same items
-		// in the same order?  We rely on FactoryPathEntry.equals() here.
-		List<FactoryPathEntry> newPath = getListContents();
-		return !fOriginalPath.equals(newPath);
-	}
-	
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathPreferencePage.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathPreferencePage.java
deleted file mode 100644
index 2fa3ab2..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/FactoryPathPreferencePage.java
+++ /dev/null
@@ -1,67 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   {INITIAL_AUTHOR} - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import org.eclipse.jdt.apt.ui.AptUIPlugin;
-import org.eclipse.jdt.apt.ui.internal.util.IAptHelpContextIds;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.ui.preferences.IWorkbenchPreferenceContainer;
-
-/**
- * 
- */
-public class FactoryPathPreferencePage extends BasePreferencePage {
-
-	private static final String PREF_ID= "org.eclipse.jdt.apt.ui.preferences.factoryPathPreferences"; //$NON-NLS-1$
-	private static final String PROP_ID= "org.eclipse.jdt.apt.ui.propertyPages.factoryPathPreferences"; //$NON-NLS-1$
-
-	/**
-	 * 
-	 */
-	public FactoryPathPreferencePage() {
-		setPreferenceStore(AptUIPlugin.getDefault().getPreferenceStore());
-		//setDescription(Messages.FactoryPathPreferencePage_factoryPath);
-		
-		// only used when page is shown programatically
-		setTitle(Messages.FactoryPathPreferencePage_preferences);
-	}
-
-	/*
-	 * @see org.eclipse.jface.dialogs.IDialogPage#createControl(org.eclipse.swt.widgets.Composite)
-	 */
-	public void createControl(Composite parent) {
-		IWorkbenchPreferenceContainer container= (IWorkbenchPreferenceContainer) getContainer();
-		setConfigurationBlock(new FactoryPathConfigurationBlock(getNewStatusChangedListener(), getProject(), container));
-		
-		super.createControl(parent);
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage#getPreferencePageID()
-	 */
-	protected String getPreferencePageID() {
-		return PREF_ID;
-	}
-
-	/* (non-Javadoc)
-	 * @see org.eclipse.jdt.internal.ui.preferences.PropertyAndPreferencePage#getPropertyPageID()
-	 */
-	protected String getPropertyPageID() {
-		return PROP_ID;
-	}
-
-	@Override
-	protected String getContextHelpId() {
-		return IAptHelpContextIds.FACTORYPATH_PREFERENCE_PAGE;
-	}
-
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/Messages.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/Messages.java
deleted file mode 100644
index b3075e1..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/Messages.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.ui.internal.preferences.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String AptConfigurationBlock_enable;
-
-	public static String AptConfigurationBlock_generatedSrcDir;
-
-	public static String AptConfigurationBlock_options;
-
-	public static String FactoryPathConfigurationBlock_up;
-
-	public static String FactoryPathConfigurationBlock_down;
-
-	public static String FactoryPathConfigurationBlock_addJars;
-
-	public static String FactoryPathConfigurationBlock_addExternalJars;
-
-	public static String FactoryPathConfigurationBlock_addVariable;
-
-	public static String FactoryPathConfigurationBlock_remove;
-
-	public static String FactoryPathConfigurationBlock_enableAll;
-
-	public static String FactoryPathConfigurationBlock_disableAll;
-
-	public static String FactoryPathConfigurationBlock_pluginsAndJars;
-
-	public static String FactoryPathPreferencePage_factoryPath;
-
-	public static String FactoryPathPreferencePage_preferences;
-
-	public static String AptPreferencePage_preferences;
-
-	public static String AptPreferencePage_preferencesTitle;
-
-	public static String BaseConfigurationBlock_settingsChanged;
-
-	public static String BaseConfigurationBlock_fullRebuildRequired;
-
-	public static String BaseConfigurationBlock_rebuildRequired;
-
-	public static String AptConfigurationBlock_classpathAddedAutomaticallyNote;
-
-	public static String AptConfigurationBlock_warningIgnoredOptions;
-
-	public static String FactoryPathConfigurationBlock_unableToSaveFactorypath_title;
-
-	public static String FactoryPathConfigurationBlock_unableToSaveFactorypath_message;
-
-	public static String FactoryPathConfigurationBlock_edit;
-
-	public static String AptConfigurationBlock_add;
-
-	public static String AptConfigurationBlock_edit;
-
-	public static String AptConfigurationBlock_remove;
-
-	public static String AptConfigurationBlock_key;
-
-	public static String AptConfigurationBlock_value;
-
-	public static String ProcessorOptionInputDialog_newProcessorOption;
-
-	public static String ProcessorOptionInputDialog_editProcessorOption;
-
-	public static String ProcessorOptionInputDialog_key;
-
-	public static String ProcessorOptionInputDialog_value;
-
-	public static String ProcessorOptionInputDialog_emptyKey;
-
-	public static String ProcessorOptionInputDialog_keyAlreadyInUse;
-
-	public static String ProcessorOptionInputDialog_equalsSignNotValid;
-
-	public static String AptConfigurationBlock_genSrcDirMustBeValidRelativePath;
-
-	public static String FactoryPathConfigurationBlock_advanced;
-
-	public static String AdvancedFactoryPathOptionsDialog_advancedOptions;
-
-	public static String AdvancedFactoryPathOptionsDialog_batchMode;
-
-	public static String AdvancedFactoryPathOptionsDialog_label_processorsInThisContainer;
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/ProcessorOptionInputDialog.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/ProcessorOptionInputDialog.java
deleted file mode 100644
index 0003045..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/ProcessorOptionInputDialog.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.preferences;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.eclipse.jdt.apt.core.util.AptConfig;
-import org.eclipse.jdt.apt.ui.internal.preferences.AptConfigurationBlock.ProcessorOption;
-import org.eclipse.jdt.apt.ui.internal.util.IAptHelpContextIds;
-import org.eclipse.jdt.internal.ui.dialogs.StatusInfo;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.DialogField;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.IDialogFieldListener;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.LayoutUtil;
-import org.eclipse.jdt.internal.ui.wizards.dialogfields.StringDialogField;
-import org.eclipse.jface.dialogs.StatusDialog;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * Dialog to edit or add an APT processor option
- */
-public class ProcessorOptionInputDialog extends StatusDialog {
-	
-	private class FieldAdapter implements IDialogFieldListener {
-		public void dialogFieldChanged(DialogField field) {
-			doValidation();
-		}			
-	}
-	
-	private StringDialogField fKeyField;
-	private StringDialogField fValueField;
-	
-	private List<String> fExistingNames;
-		
-	public ProcessorOptionInputDialog(Shell parent, ProcessorOption option, List<ProcessorOption> existingEntries) {
-		super(parent);
-		
-		fExistingNames= new ArrayList<String>(existingEntries.size());
-		for (ProcessorOption o : existingEntries) {
-			if (!o.equals(option)) {
-				fExistingNames.add(o.key);
-			}
-		}
-		
-		if (option == null) {
-			setTitle(Messages.ProcessorOptionInputDialog_newProcessorOption); 
-		} else {
-			setTitle(Messages.ProcessorOptionInputDialog_editProcessorOption); 
-		}
-
-		FieldAdapter adapter= new FieldAdapter();
-
-		fKeyField= new StringDialogField();
-		fKeyField.setLabelText(Messages.ProcessorOptionInputDialog_key); 
-		fKeyField.setDialogFieldListener(adapter);
-		
-		fValueField= new StringDialogField();
-		fValueField.setLabelText(Messages.ProcessorOptionInputDialog_value); 
-		fValueField.setDialogFieldListener(adapter);
-		
-		fKeyField.setText((option != null) ? option.key : ""); //$NON-NLS-1$
-		fValueField.setText((option != null) ? option.value : ""); //$NON-NLS-1$
-	}
-	
-	public ProcessorOption getResult() {
-		ProcessorOption option = new ProcessorOption();
-		option.key= fKeyField.getText().trim();
-		option.value= fValueField.getText().trim();
-		
-		return option;
-	}
-	
-	protected Control createDialogArea(Composite parent) {
-		Composite composite= (Composite) super.createDialogArea(parent);
-		
-		Composite inner= new Composite(composite, SWT.NONE);
-		GridLayout layout= new GridLayout();
-		layout.marginHeight= 0;
-		layout.marginWidth= 0;
-		layout.numColumns= 2;
-		inner.setLayout(layout);
-		
-		fKeyField.doFillIntoGrid(inner, 2);
-		fValueField.doFillIntoGrid(inner, 2);
-		
-		LayoutUtil.setHorizontalGrabbing(fKeyField.getTextControl(null));
-		LayoutUtil.setWidthHint(fKeyField.getTextControl(null), convertWidthInCharsToPixels(50));
-		LayoutUtil.setHorizontalGrabbing(fValueField.getTextControl(null));
-		LayoutUtil.setWidthHint(fValueField.getTextControl(null), convertWidthInCharsToPixels(50));
-		
-		fKeyField.postSetFocusOnDialogField(parent.getDisplay());
-		
-		applyDialogFont(composite);		
-		return composite;
-	}
-		
-	private void doValidation() {
-		StatusInfo status= new StatusInfo();
-		String newKey= fKeyField.getText();
-		String newVal= fValueField.getText();
-		// TODO: thorough validation of both key and value
-		if (newKey.length() == 0) {
-			status.setError(Messages.ProcessorOptionInputDialog_emptyKey); 
-		} else if (fExistingNames.contains(newKey)) {
-			status.setError(Messages.ProcessorOptionInputDialog_keyAlreadyInUse);
-		} else if (newVal.indexOf('=') >= 0) {
-			status.setError(Messages.ProcessorOptionInputDialog_equalsSignNotValid);
-		} else if (AptConfig.isAutomaticProcessorOption(newKey)) {
-			status.setWarning(Messages.AptConfigurationBlock_warningIgnoredOptions); //$NON-NLS-1$
-		}
-		updateStatus(status);
-	}
-
-	/*
-	 * @see org.eclipse.jface.window.Window#configureShell(Shell)
-	 */
-	protected void configureShell(Shell newShell) {
-		super.configureShell(newShell);
-		PlatformUI.getWorkbench().getHelpSystem().setHelp(newShell, IAptHelpContextIds.PROCESSOR_OPTION_INPUT_DIALOG);
-	}
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/messages.properties b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/messages.properties
deleted file mode 100644
index 4254c12..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/preferences/messages.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-AptConfigurationBlock_enable=Enable annotation processing
-AptConfigurationBlock_add=Add...
-AptConfigurationBlock_key=Key
-AptConfigurationBlock_edit=Edit...
-AptConfigurationBlock_remove=Remove
-AptConfigurationBlock_value=Value
-AptConfigurationBlock_generatedSrcDir=Generated source directory:
-AptConfigurationBlock_warningIgnoredOptions=An automatically set option will override this option
-AptConfigurationBlock_classpathAddedAutomaticallyNote=Note: options such as \"-classpath\" and \"-sourcepath\" are automatically passed to all processors, with values corresponding to the project's Java settings.
-AptConfigurationBlock_genSrcDirMustBeValidRelativePath=Generated source directory must be a valid relative path
-AptConfigurationBlock_options=Processor options (-Akey=value):
-AptPreferencePage_preferences=Java annotation processing preferences:
-FactoryPathConfigurationBlock_up=Up
-FactoryPathConfigurationBlock_down=Down
-FactoryPathConfigurationBlock_edit=Edit...
-FactoryPathConfigurationBlock_addJars=Add Jars...
-FactoryPathConfigurationBlock_advanced=Advanced...
-FactoryPathPreferencePage_factoryPath=Java annotation processor factory path:
-FactoryPathPreferencePage_preferences=Factory Path Preferences
-FactoryPathConfigurationBlock_addExternalJars=Add External Jars...
-FactoryPathConfigurationBlock_unableToSaveFactorypath_title=Save Factory Path
-FactoryPathConfigurationBlock_unableToSaveFactorypath_message=Unable to save factory path.
-FactoryPathConfigurationBlock_addVariable=Add Variable...
-FactoryPathConfigurationBlock_remove=Remove
-FactoryPathConfigurationBlock_enableAll=Enable All
-FactoryPathConfigurationBlock_disableAll=Disable All
-FactoryPathConfigurationBlock_pluginsAndJars=Plugins and jars that contain annotation processors:
-AptPreferencePage_preferencesTitle=Java Annotation Processing Preferences
-BaseConfigurationBlock_settingsChanged=Annotation Processing Settings Changed
-BaseConfigurationBlock_fullRebuildRequired=The annotation processing settings have changed. A full rebuild is required for changes to take effect. Do the full build now?
-BaseConfigurationBlock_rebuildRequired=The annotation processing settings have changed. A rebuild of the project is required for changes to take effect. Do the project build now?
-ProcessorOptionInputDialog_newProcessorOption=New Processor Option
-ProcessorOptionInputDialog_keyAlreadyInUse=That key is already in use
-ProcessorOptionInputDialog_editProcessorOption=Edit Processor Option
-ProcessorOptionInputDialog_equalsSignNotValid=The equals sign is not a valid character
-ProcessorOptionInputDialog_key=Key:
-ProcessorOptionInputDialog_value=Value:
-ProcessorOptionInputDialog_emptyKey=Please enter a key
-AdvancedFactoryPathOptionsDialog_advancedOptions=Advanced Options
-AdvancedFactoryPathOptionsDialog_label_processorsInThisContainer=Processors in this container:
-AdvancedFactoryPathOptionsDialog_batchMode=Run this container's processors in batch mode
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/APTQuickFixProcessor.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/APTQuickFixProcessor.java
deleted file mode 100644
index 76d452c..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/APTQuickFixProcessor.java
+++ /dev/null
@@ -1,177 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    dsomerfi@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.ui.internal.quickfix;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.apt.core.util.EclipseMessager;
-import org.eclipse.jdt.apt.ui.AptUIPlugin;
-import org.eclipse.jdt.apt.ui.quickfix.IAPTQuickFixProvider;
-import org.eclipse.jdt.core.ICompilationUnit;
-import org.eclipse.jdt.ui.text.java.IInvocationContext;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jdt.ui.text.java.IProblemLocation;
-import org.eclipse.jdt.ui.text.java.IQuickFixProcessor;
-
-public class APTQuickFixProcessor implements IQuickFixProcessor {
-
-    private ListMap<String, IAPTQuickFixProvider> fFixProviders = new ListMap<String, IAPTQuickFixProvider>();
-    
-    public boolean hasCorrections(ICompilationUnit unit, int problemId) {
-        return problemId == EclipseMessager.APT_QUICK_FIX_PROBLEM_ID;
-    }
-    
-    public APTQuickFixProcessor()
-    {
-        loadProviders();      
-    }
-
-    public IJavaCompletionProposal[] getCorrections(IInvocationContext context, IProblemLocation[] locations) throws CoreException {
-        
-        List<IJavaCompletionProposal> proposals = new ArrayList<IJavaCompletionProposal>();
-        
-        //Map from error-code to IProblemLocation
-        //TODO: creating a second map by plugin id is a little wasteful since
-        //we don't check if there is anyone who cares about this. This could be 
-        //combined into one data structure.
-        ListMap<String, IProblemLocation> locationMapByErrorCode = new ListMap<String, IProblemLocation>();
-        ListMap<String, IProblemLocation> locationMapByPluginId = new ListMap<String, IProblemLocation>();
-        for (IProblemLocation location : locations)
-        {
-            
-            if (location.getProblemId() == EclipseMessager.APT_QUICK_FIX_PROBLEM_ID)
-            {
-                String [] arguments = location.getProblemArguments();
-                assert arguments.length >= 2;
-                String pluginID = arguments[0];
-                String errorCode = pluginID + "." + arguments[1]; //$NON-NLS-1$
-                
-                locationMapByErrorCode.put(errorCode, location);
-                locationMapByPluginId.put(errorCode, location);
-            }
-        }
-        
-        //Do the errorcode-based dispatch
-        for (String errorCode : locationMapByErrorCode.keySet())
-        {
-            List<IProblemLocation> sortedLocations = locationMapByErrorCode.get(errorCode);
-            addProposalsFromProviders(errorCode, context, sortedLocations, proposals);                       
-        }
-        
-        //Do the plugin id-based dispatch
-        for (String pluginId : locationMapByPluginId.keySet())
-        {
-            List<IProblemLocation> sortedLocations = locationMapByPluginId.get(pluginId);
-            addProposalsFromProviders(pluginId + "." + "*", context, sortedLocations, proposals);  //$NON-NLS-1$//$NON-NLS-2$
-        }
-        
-        return proposals.toArray(new IJavaCompletionProposal[proposals.size()]);
-    }
-    
-    private void addProposalsFromProviders(String key, IInvocationContext context, 
-            List<IProblemLocation> sortedLocations, List<IJavaCompletionProposal> proposals ) throws CoreException
-    {
-        List<IAPTQuickFixProvider> providers = fFixProviders.get(key); //$NON-NLS-2$
-        for (IAPTQuickFixProvider fix : providers)
-        {
-            IJavaCompletionProposal [] fixProposals = fix.getProposals(context, 
-                    sortedLocations.toArray(new IProblemLocation[sortedLocations.size()]));
-            for (IJavaCompletionProposal fixProposal : fixProposals)
-            {
-                proposals.add(fixProposal);
-            }
-        }          
-    }
-    
-
-    public void addQuickFixProvider(String pluginID, String errorCode, IAPTQuickFixProvider fix)
-    {
-        fFixProviders.put(pluginID + "." + errorCode, fix); //$NON-NLS-1$
-    }
-    
-    /**
-     * Load the providers that are defined in the extension point
-     *
-     */
-    private void loadProviders()
-    {
-        IExtensionPoint extensionPoint = Platform.getExtensionRegistry().getExtensionPoint(AptUIPlugin.PLUGIN_ID, "aptQuickFixProvider"); //$NON-NLS-1$
-        for (IExtension extension : extensionPoint.getExtensions())
-        {
-            for (IConfigurationElement providerConfig : extension.getConfigurationElements())
-            {
-                if ("quickFixProvider".equals(providerConfig.getName())) //$NON-NLS-1$
-                {
-                    String pluginId = providerConfig.getAttribute("pluginId"); //$NON-NLS-1$
-                    String errorCode = providerConfig.getAttribute("errorCode"); //$NON-NLS-1$
-                    try {
-                        Object object = providerConfig.createExecutableExtension("className"); //$NON-NLS-1$
-                        if (object instanceof IAPTQuickFixProvider)
-                        {
-                            IAPTQuickFixProvider provider = (IAPTQuickFixProvider) object;
-                            addQuickFixProvider(pluginId, errorCode != null ? errorCode : "*", provider); //$NON-NLS-1$
-                            
-                        }
-                        else
-                        {
-                            AptUIPlugin.log(new Status(IStatus.ERROR, AptUIPlugin.PLUGIN_ID, 1, Messages.APTQuickFixProcessor_classMustBeIAPTQuickFixProvider, null));
-                        }
-                    } catch (CoreException e) {
-                        AptUIPlugin.log(e);
-                    }
-                }
-            }
-        }
-    }
-
-    private class ListMap<K, V>
-    {   
-        
-        private Map<K, List<V>> fData = new HashMap<K, List<V>>();
-        
-        public void put(K key, V value)
-        {
-            List<V> list = fData.get(key);
-            if (list == null)
-            {
-                list = new ArrayList<V>();
-                fData.put(key, list);
-            }
-            list.add(value);
-        }
-       
-        public List<V> get(K key)
-        {
-            List<V> list = fData.get(key);
-            return list != null ? list : Collections.<V>emptyList();
-        } 
-        
-        public Set<K> keySet()
-        {
-            return fData.keySet();
-        }
-        
-    }
-
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/Messages.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/Messages.java
deleted file mode 100644
index c0cf3d2..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/Messages.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    jgarms@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.ui.internal.quickfix;
-
-import org.eclipse.osgi.util.NLS;
-
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.ui.internal.quickfix.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String APTQuickFixProcessor_classMustBeIAPTQuickFixProvider;
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/messages.properties b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/messages.properties
deleted file mode 100644
index 441901d..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/quickfix/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-APTQuickFixProcessor_classMustBeIAPTQuickFixProvider=The className must be the name of a subclass of IAPTQuickFixProvider
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/ExceptionHandler.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/ExceptionHandler.java
deleted file mode 100644
index c046bcc..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/ExceptionHandler.java
+++ /dev/null
@@ -1,134 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2000, 2005 IBM Corporation, BEA Systems, Inc., and others
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - based on org.eclipse.jdt.internal.ui.util.ExceptionHandler
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.util;
-
-import java.io.StringWriter;
-import java.lang.reflect.InvocationTargetException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jdt.apt.ui.AptUIPlugin;
-import org.eclipse.jface.dialogs.ErrorDialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.swt.widgets.Shell;
-
-/**
- * This code is 
- * The default exception handler shows an error dialog when one of its handle methods
- * is called. If the passed exception is a <code>CoreException</code> an error dialog
- * pops up showing the exception's status information. For a <code>InvocationTargetException</code>
- * a normal message dialog pops up showing the exception's message. Additionally the exception
- * is written to the platform log.
- */
-public class ExceptionHandler {
-
-	private static ExceptionHandler fgInstance= new ExceptionHandler();
-	
-	/**
-	 * Logs the given exception using the platform's logging mechanism. The exception is
-	 * logged as an error with the error code <code>AptUIPlugin.INTERNAL_ERROR</code>.
-	 */
-	public static void log(Throwable t, String message) {
-		AptUIPlugin.log(new Status(IStatus.ERROR, AptUIPlugin.PLUGIN_ID, 
-			AptUIPlugin.INTERNAL_ERROR, message, t));
-	}
-	
-	/**
-	 * Handles the given <code>CoreException</code>. The workbench shell is used as a parent
-	 * for the dialog window.
-	 * 
-	 * @param e the <code>CoreException</code> to be handled
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(CoreException e, String title, String message) {
-		handle(e, AptUIPlugin.getActiveWorkbenchShell(), title, message);
-	}
-	
-	/**
-	 * Handles the given <code>CoreException</code>. 
-	 * 
-	 * @param e the <code>CoreException</code> to be handled
-	 * @param parent the dialog window's parent shell
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(CoreException e, Shell parent, String title, String message) {
-		fgInstance.perform(e, parent, title, message);
-	}
-	
-	/**
-	 * Handles the given <code>InvocationTargetException</code>. The workbench shell is used 
-	 * as a parent for the dialog window.
-	 * 
-	 * @param e the <code>InvocationTargetException</code> to be handled
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(InvocationTargetException e, String title, String message) {
-		handle(e, AptUIPlugin.getActiveWorkbenchShell(), title, message);
-	}
-	
-	/**
-	 * Handles the given <code>InvocationTargetException</code>. 
-	 * 
-	 * @param e the <code>InvocationTargetException</code> to be handled
-	 * @param parent the dialog window's parent shell
-	 * @param title the dialog window's window title
-	 * @param message message to be displayed by the dialog window
-	 */
-	public static void handle(InvocationTargetException e, Shell parent, String title, String message) {
-		fgInstance.perform(e, parent, title, message);
-	}
-
-	//---- Hooks for subclasses to control exception handling ------------------------------------
-	
-	protected void perform(CoreException e, Shell shell, String title, String message) {
-		AptUIPlugin.log(e);
-		IStatus status= e.getStatus();
-		if (status != null) {
-			ErrorDialog.openError(shell, title, message, status);
-		} else {
-			displayMessageDialog(e, e.getMessage(), shell, title, message);
-		}
-	}
-
-	protected void perform(InvocationTargetException e, Shell shell, String title, String message) {
-		Throwable target= e.getTargetException();
-		if (target instanceof CoreException) {
-			perform((CoreException)target, shell, title, message);
-		} else {
-			AptUIPlugin.log(e);
-			if (e.getMessage() != null && e.getMessage().length() > 0) {
-				displayMessageDialog(e, e.getMessage(), shell, title, message);
-			} else {
-				displayMessageDialog(e, target.getMessage(), shell, title, message);
-			}
-		}
-	}
-
-	//---- Helper methods -----------------------------------------------------------------------
-	
-	private void displayMessageDialog(Throwable t, String exceptionMessage, Shell shell, String title, String message) {
-		StringWriter msg= new StringWriter();
-		if (message != null) {
-			msg.write(message);
-			msg.write("\n\n"); //$NON-NLS-1$
-		}
-		if (exceptionMessage == null || exceptionMessage.length() == 0)
-			msg.write(Messages.ExceptionHandler_seeErrorLog); 
-		else
-			msg.write(exceptionMessage);
-		MessageDialog.openError(shell, title, msg.toString());			
-	}	
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/IAptHelpContextIds.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/IAptHelpContextIds.java
deleted file mode 100644
index 4a91465..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/IAptHelpContextIds.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.util;
-
-import org.eclipse.jdt.apt.ui.AptUIPlugin;
-
-/**
- * Help context ids for the Java annotation processing UI.
- * <p>
- * This interface contains constants only; it is not intended to be implemented
- * or extended.
- */
-public interface IAptHelpContextIds {
-	public static final String PREFIX= AptUIPlugin.PLUGIN_ID + '.';
-
-	// Dialogs
-	public static final String ADVANCED_FACTORYPATH_OPTIONS_DIALOG= 	PREFIX + "advanced_factory_path_options_dialog_context"; //$NON-NLS-1$
-	public static final String PROCESSOR_OPTION_INPUT_DIALOG= 			PREFIX + "processor_option_input_dialog_context"; //$NON-NLS-1$
-
-	// Preference/Property pages
-	public static final String APTCONFIGURATION_PREFERENCE_PAGE=		PREFIX + "apt_configuration_preference_page_context"; //$NON-NLS-1$
-	public static final String FACTORYPATH_PREFERENCE_PAGE= 			PREFIX + "factory_path_preference_page_context"; //$NON-NLS-1$
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/Messages.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/Messages.java
deleted file mode 100644
index e2394d5..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *   wharley@bea.com - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.jdt.apt.ui.internal.util;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- */
-public class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.jdt.apt.ui.internal.util.messages"; //$NON-NLS-1$
-
-	private Messages() {
-	}
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	public static String ExceptionHandler_seeErrorLog;
-}
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/messages.properties b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/messages.properties
deleted file mode 100644
index 18ea1a8..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/internal/util/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-ExceptionHandler_seeErrorLog=See error log for more details.
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/messages.properties b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/messages.properties
deleted file mode 100644
index a5a518b..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-AptUIPlugin_exceptionThrown=An exception was thrown
diff --git a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/quickfix/IAPTQuickFixProvider.java b/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/quickfix/IAPTQuickFixProvider.java
deleted file mode 100644
index c1a6e8c..0000000
--- a/org.eclipse.jdt.apt.ui/src/org/eclipse/jdt/apt/ui/quickfix/IAPTQuickFixProvider.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2005 BEA Systems, Inc. 
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/epl-v10.html
- *
- * Contributors:
- *    dsomerfi@bea.com - initial API and implementation
- *    
- *******************************************************************************/
-package org.eclipse.jdt.apt.ui.quickfix;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.jdt.ui.text.java.IInvocationContext;
-import org.eclipse.jdt.ui.text.java.IJavaCompletionProposal;
-import org.eclipse.jdt.ui.text.java.IProblemLocation;
-
-/**
- * APT plugins may implement this api in order to 
- * add assists for errors they create.
- */
-public interface IAPTQuickFixProvider {
-    
-    /**
-     * Return the proposals to suggest
-     * @param context
-     * @param locations
-     * @return
-     * @throws CoreException
-     */
-    public IJavaCompletionProposal [] getProposals(IInvocationContext context,
-            IProblemLocation [] locations) throws CoreException;
-}
diff --git a/org.eclipse.jdt.apt.ui/toc.xml b/org.eclipse.jdt.apt.ui/toc.xml
deleted file mode 100644
index 711ad0a..0000000
--- a/org.eclipse.jdt.apt.ui/toc.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-<toc label="APT in Eclipse">
-	<topic label="Getting Started" href="docs/Getting_started.html"/>
-	<topic label="Creating a Quick-Fix processor for APT" href="docs/Quick_fix_with_apt.html"/>
-	<topic label="Headless Build" href="docs/Building_with_apt.html"/>
-</toc>
\ No newline at end of file
diff --git a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
index 7263ed9..fc5548c 100644
--- a/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
+++ b/org.eclipse.jdt.core.tests.compiler/src/org/eclipse/jdt/core/tests/compiler/regression/BatchCompilerTest.java
@@ -2038,50 +2038,6 @@
 		System.setProperty("user.dir", javaUserDir);
 	}
 }
-
-// https://bugs.eclipse.org/bugs/show_bug.cgi?id=119108
-// \ in call to AccessRulesSet.getViolatedRestriction
-public void test036(){
-	this.runConformTest(
-		new String[] {
-			"src1/p/X.java",
-			"package p;\n" + 
-			"/** */\n" + 
-			"public class X {\n" + 
-			"}",
-		},
-        "\"" + OUTPUT_DIR + "/src1/p/X.java\""
-        + " -1.5 -g -preserveAllLocals"
-        + " -proceedOnError -referenceInfo" 
-        + " -d \"" + OUTPUT_DIR + "/bin1/\"",
-        "",
-        "",
-        true);
-	this.runConformTest(
-		new String[] {
-			"src2/Y.java",
-			"/** */\n" + 
-			"public class Y extends p.X {\n" + 
-			"}",
-		},
-        "\"" + OUTPUT_DIR +  File.separator + "src2/Y.java\""
-        + " -1.5 -g -preserveAllLocals"
-        + " -cp \"" + OUTPUT_DIR + File.separator + "bin1[~**/X]\""
-        + " -proceedOnError -referenceInfo"
-        + " -d \"" + OUTPUT_DIR + File.separator + "bin2/\"",
-        "",
-		"----------\n" + 
-		"1. WARNING in ---OUTPUT_DIR_PLACEHOLDER---" + File.separator + 
-			"src2" + File.separator + "Y.java\n" + 
-		" (at line 2)\n" + 
-		"	public class Y extends p.X {\n" + 
-		"	                       ^^^\n" + 
-		"Discouraged access: X\n" + 
-		"----------\n" + 
-		"1 problem (1 warning)",
-        false);
-}
-
 public static Class testClass() {
 	return BatchCompilerTest.class;
 }