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

Sprout from master 2009-06-17 17:55:44 UTC spingel 'NEW - bug 280614: Add API Tools Nature'
Cherrypick from master 2009-04-21 01:19:54 UTC dgreen 'NEW - bug 272621: create Mylyn Connector discovery mechanism':
    org.eclipse.mylyn.discovery.tests/.settings/org.eclipse.mylyn.tasklist.prefs
Cherrypick from e_3_3_m_3_x 2009-06-18 22:06:13 UTC spingel 'NEW - bug 248778: [releng] backport changes to Eclipse 3.3':
    org.eclipse.mylyn.discovery.tests/.project
    org.eclipse.mylyn.discovery.tests/META-INF/MANIFEST.MF
    org.eclipse.mylyn.discovery.tests/build.properties
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/AllDiscoveryTests.java
Delete:
    org.eclipse.mylyn.discovery.core/.classpath
    org.eclipse.mylyn.discovery.core/.cvsignore
    org.eclipse.mylyn.discovery.core/.project
    org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.mylyn.discovery.core/.settings/org.eclipse.mylyn.tasks.ui.prefs
    org.eclipse.mylyn.discovery.core/.settings/org.eclipse.pde.prefs
    org.eclipse.mylyn.discovery.core/META-INF/MANIFEST.MF
    org.eclipse.mylyn.discovery.core/OSGI-INF/l10n/bundle.properties
    org.eclipse.mylyn.discovery.core/about.html
    org.eclipse.mylyn.discovery.core/build.properties
    org.eclipse.mylyn.discovery.core/plugin.xml
    org.eclipse.mylyn.discovery.core/schema/connectorDiscovery.exsd
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/DiscoveryCore.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoverySource.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoveryStrategy.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoverySource.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoveryStrategy.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorCategory.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptor.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptorKind.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscovery.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscoveryExtensionReader.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Directory.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DirectoryParser.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryCategory.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryConnector.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryRegistryStrategy.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/FeatureFilter.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Group.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Icon.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/JarDiscoverySource.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Messages.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Overview.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Policy.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/RemoteBundleDiscoveryStrategy.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ValidationException.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/messages.properties
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DefaultSaxErrorHandler.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryCategoryComparator.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryConnectorComparator.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/IOWithCauseException.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/Messages.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/WebUtil.java
    org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/messages.properties
    org.eclipse.mylyn.discovery.core/xsd/directory.xsd
    org.eclipse.mylyn.discovery.tests/images/bugzilla.gif
    org.eclipse.mylyn.discovery.tests/plugin.xml
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/DiscoveryTests.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/BundleDiscoveryStrategyTest.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryRemoteTest.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryTest.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/DirectoryParserTest.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/RemoteBundleDiscoveryStrategyTest.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/AbstractMockFactory.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryCategoryMockFactory.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryConnectorMockFactory.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockBundleDiscoveryStrategy.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoverySource.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoveryStrategy.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryCategoryComparatorTest.java
    org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryConnectorComparatorTest.java
    org.eclipse.mylyn.discovery.ui/.classpath
    org.eclipse.mylyn.discovery.ui/.cvsignore
    org.eclipse.mylyn.discovery.ui/.project
    org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.core.prefs
    org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.ui.prefs
    org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
    org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.pde.prefs
    org.eclipse.mylyn.discovery.ui/META-INF/MANIFEST.MF
    org.eclipse.mylyn.discovery.ui/OSGI-INF/l10n/bundle.properties
    org.eclipse.mylyn.discovery.ui/about.html
    org.eclipse.mylyn.discovery.ui/build.properties
    org.eclipse.mylyn.discovery.ui/icons/obj16/message_info.gif
    org.eclipse.mylyn.discovery.ui/icons/ovr32/message_warning.gif
    org.eclipse.mylyn.discovery.ui/plugin.xml
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryImages.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryUi.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/commands/ShowConnectorDiscoveryWizardCommandHandler.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/DiscoveryUiUtil.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/Messages.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/messages.properties
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizard.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizardMainPage.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/Messages.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/OverviewToolTip.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/PrepareInstallProfileJob.java
    org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/messages.properties
diff --git a/org.eclipse.mylyn.discovery.core/.classpath b/org.eclipse.mylyn.discovery.core/.classpath
deleted file mode 100644
index 64c5e31..0000000
--- a/org.eclipse.mylyn.discovery.core/.classpath
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.discovery.core/.cvsignore b/org.eclipse.mylyn.discovery.core/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.mylyn.discovery.core/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.discovery.core/.project b/org.eclipse.mylyn.discovery.core/.project
deleted file mode 100644
index 698b41f..0000000
--- a/org.eclipse.mylyn.discovery.core/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.mylyn.discovery.core</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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 1314ffa..0000000
--- a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,342 +0,0 @@
-#Tue May 12 20:42:46 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-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=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-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.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=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=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_comments=true
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 56e9669..0000000
--- a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Tue May 12 20:42:43 PDT 2009
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n *     Tasktop Technologies - initial API and implementation\n *******************************************************************************/\n\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\n * ${see_to_overridden}\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 5937a85..0000000
--- a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,24 +0,0 @@
-#Tue May 20 17:39:22 PDT 2008
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=2
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.discovery.core/META-INF/MANIFEST.MF b/org.eclipse.mylyn.discovery.core/META-INF/MANIFEST.MF
deleted file mode 100644
index 8ed9d05..0000000
--- a/org.eclipse.mylyn.discovery.core/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,13 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.discovery.core;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime;bundle-version="3.3.0",
- org.eclipse.mylyn.commons.core;bundle-version="3.1.0",
- org.eclipse.mylyn.commons.net;bundle-version="3.1.0"
-Export-Package: org.eclipse.mylyn.internal.discovery.core;x-friends:="org.eclipse.mylyn.discovery.ui",
- org.eclipse.mylyn.internal.discovery.core.model;x-friends:="org.eclipse.mylyn.discovery.ui",
- org.eclipse.mylyn.internal.discovery.core.util;x-friends:="org.eclipse.mylyn.discovery.ui"
diff --git a/org.eclipse.mylyn.discovery.core/OSGI-INF/l10n/bundle.properties b/org.eclipse.mylyn.discovery.core/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index dcf035c..0000000
--- a/org.eclipse.mylyn.discovery.core/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-#Properties file for org.eclipse.mylyn.discovery.core
-extension-point.name = Connector Discovery
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Connector Discovery Core
\ No newline at end of file
diff --git a/org.eclipse.mylyn.discovery.core/about.html b/org.eclipse.mylyn.discovery.core/about.html
deleted file mode 100644
index bc6e2b4..0000000
--- a/org.eclipse.mylyn.discovery.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>July 3, 2008</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  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, &quot;Program&quot; 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 (&quot;Redistributor&quot;) 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
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-
-</body>
-</html>
diff --git a/org.eclipse.mylyn.discovery.core/build.properties b/org.eclipse.mylyn.discovery.core/build.properties
deleted file mode 100644
index da2d82c..0000000
--- a/org.eclipse.mylyn.discovery.core/build.properties
+++ /dev/null
@@ -1,22 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 Tasktop Technologies 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:
-#     Tasktop Technologies - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               xsd/,\
-               schema/,\
-               OSGI-INF/
-src.includes = about.html,\
-               schema/,\
-               xsd/
diff --git a/org.eclipse.mylyn.discovery.core/plugin.xml b/org.eclipse.mylyn.discovery.core/plugin.xml
deleted file mode 100644
index e91244b..0000000
--- a/org.eclipse.mylyn.discovery.core/plugin.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?><!--
-    Copyright (c) 2009 Tasktop Technologies 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:
-        Tasktop Technologies - initial API and implementation
- -->
-<plugin>
-   <extension-point id="connectorDiscovery" name="%extension-point.name" schema="schema/connectorDiscovery.exsd"/>
-
-</plugin>
diff --git a/org.eclipse.mylyn.discovery.core/schema/connectorDiscovery.exsd b/org.eclipse.mylyn.discovery.core/schema/connectorDiscovery.exsd
deleted file mode 100644
index 1c407cf..0000000
--- a/org.eclipse.mylyn.discovery.core/schema/connectorDiscovery.exsd
+++ /dev/null
@@ -1,391 +0,0 @@
-<?xml version='1.0' encoding='UTF-8'?>
-<!-- Schema file written by PDE -->
-<schema targetNamespace="org.eclipse.mylyn.discovery.core" xmlns="http://www.w3.org/2001/XMLSchema">
-<annotation>
-      <appinfo>
-         <meta.schema plugin="org.eclipse.mylyn.discovery.core" id="connectorDiscovery" name="Connector Discovery"/>
-      </appinfo>
-      <documentation>
-         An extension point for contributing to the Mylyn connector discovery mechanism.
-      </documentation>
-   </annotation>
-
-   <element name="extension">
-      <annotation>
-         <appinfo>
-            <meta.element />
-         </appinfo>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="connectorCategory" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="connectorDescriptor" minOccurs="0" 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="connectorDescriptor">
-      <annotation>
-         <documentation>
-            A description of a connector, including kinds, description, licensing and brand.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="featureFilter" minOccurs="0" maxOccurs="unbounded"/>
-            <element ref="icon" minOccurs="0" maxOccurs="1"/>
-            <element ref="overview" minOccurs="0" maxOccurs="1"/>
-         </sequence>
-         <attribute name="kind" type="string" use="required">
-            <annotation>
-               <documentation>
-                  must be a comma-delimited list of the following values: &apos;document&apos;, &apos;task&apos;, &apos;vcs&apos;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the connector including the name of the organization that produces the repository if appropriate, for example &apos;Mozilla Bugzilla&apos;.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="provider" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The name of the organization that supplies the connector.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="license" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The short name of the license, for example &apos;EPL 1.0&apos;, &apos;GPL 2.0&apos;, or &apos;Commercial&apos;.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  A description of the connector.  Plug-ins should provide a description, especially if the description is not self-evident from the @name and @organization.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="siteUrl" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The URL of the update site containing the connector.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the feature that installs this connector
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="categoryId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the id of the connectorCategory in which this connector belongs
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="platformFilter" type="string">
-            <annotation>
-               <documentation>
-                  E.g., &quot;(&amp; (osgi.os=macosx) (osgi.ws=carbon))&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="groupId" type="string">
-            <annotation>
-               <documentation>
-                  The id of the connectorCategory group.  See group/@id for more details.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="connectorCategory">
-      <annotation>
-         <documentation>
-            a category of connectors, which is a way of organizing connectors in top-level groups.
-         </documentation>
-      </annotation>
-      <complexType>
-         <sequence>
-            <element ref="icon" minOccurs="0" maxOccurs="1"/>
-            <element ref="overview" minOccurs="0" maxOccurs="1"/>
-            <element ref="group" minOccurs="0" maxOccurs="unbounded"/>
-         </sequence>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  an id that uniquely identifies the category
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="name" type="string" use="required">
-            <annotation>
-               <documentation>
-                  the name of the category, as it is displayed in the ui.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="description" type="string">
-            <annotation>
-               <documentation>
-                  A description of the category
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="relevance" type="string">
-            <annotation>
-               <documentation>
-                  A relevance, which is a number from 0 to 100.  Categories with higher relevance are displayed with preference in the UI.
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="icon">
-      <complexType>
-         <attribute name="image16" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="image32" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="image48" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="image64" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="image128" type="string">
-            <annotation>
-               <documentation>
-                  
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="overview">
-      <annotation>
-         <documentation>
-            An overview that provides more detailed information, which may include a summary, url and screenshot.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="summary" type="string">
-            <annotation>
-               <documentation>
-                  A description providing detailed information about the item.  Newlines can be used to format the text into multiple paragraphs if necessary.  Text must fit into an area 320x240, otherwise it will be truncated in the UI.  More lengthy descriptions can be provided on a  web page if required, see @url.
-               </documentation>
-               <appinfo>
-                  <meta.attribute translatable="true"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="url" type="string">
-            <annotation>
-               <documentation>
-                  An URL that points to a web page with more information relevant to the connector or category.
-               </documentation>
-            </annotation>
-         </attribute>
-         <attribute name="screenshot" type="string">
-            <annotation>
-               <documentation>
-                  320x240 PNG, JPEG or GIF
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="resource"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="featureFilter">
-      <annotation>
-         <documentation>
-            A means of specifying that a feature must be present in order for the connectorDescriptor to be presented to the user.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="featureId" type="string" use="required">
-            <annotation>
-               <documentation>
-                  The id of the feature to test
-               </documentation>
-               <appinfo>
-                  <meta.attribute kind="identifier"/>
-               </appinfo>
-            </annotation>
-         </attribute>
-         <attribute name="version" type="string" use="required">
-            <annotation>
-               <documentation>
-                  A version specifier, specified in the same manner as version dependencies are specified in an OSGi manifest.  For example: &quot;[3.0,4.0)&quot;
-               </documentation>
-            </annotation>
-         </attribute>
-      </complexType>
-   </element>
-
-   <element name="group">
-      <annotation>
-         <documentation>
-            groups provide a way to anchor connectors in a grouping with other like entries.
-         </documentation>
-      </annotation>
-      <complexType>
-         <attribute name="id" type="string" use="required">
-            <annotation>
-               <documentation>
-                  An identifier that identifies the group.  Must be unique for a particular connectorCategory.
-               </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>
-         [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>
-         Copyright (c) 2009 Tasktop Technologies 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
-      </documentation>
-   </annotation>
-
-</schema>
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/DiscoveryCore.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/DiscoveryCore.java
deleted file mode 100644
index 7e198be..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/DiscoveryCore.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core;
-
-/**
- * 
- * @author David Green
- */
-public abstract class DiscoveryCore {
-	public static final String ID_PLUGIN = "org.eclipse.mylyn.discovery.core"; //$NON-NLS-1$
-
-	private DiscoveryCore() {
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoverySource.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoverySource.java
deleted file mode 100644
index e2cd84d..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoverySource.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.net.URL;
-
-/**
- * @author David Green
- */
-public abstract class AbstractDiscoverySource {
-	private Policy policy = Policy.defaultPolicy();
-
-	/**
-	 * an identifier that can be used to determine the origin of the source, typically for logging purposes.
-	 */
-	public abstract Object getId();
-
-	/**
-	 * get a resource by an URL relative to the root of the source.
-	 * 
-	 * @param relativeUrl
-	 *            the relative resource name
-	 * @return an URL to the resource, or null if it is known that the resource does not exist.
-	 */
-	public abstract URL getResource(String resourceName);
-
-	public Policy getPolicy() {
-		return policy;
-	}
-
-	public void setPolicy(Policy policy) {
-		this.policy = policy;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoveryStrategy.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoveryStrategy.java
deleted file mode 100644
index c46ea89..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/AbstractDiscoveryStrategy.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.util.List;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-
-/**
- * An abstraction of a strategy for discovering connectors and categories. Strategy design pattern. Note that strategies
- * are not reusable and must be disposed.
- * 
- * @author David Green
- */
-public abstract class AbstractDiscoveryStrategy {
-
-	protected List<DiscoveryCategory> categories;
-
-	protected List<DiscoveryConnector> connectors;
-
-	/**
-	 * Perform discovery and add discovered items to {@link #getCategories() categories} and {@link #getConnectors()}.
-	 * 
-	 * @param monitor
-	 *            the monitor
-	 */
-	public abstract void performDiscovery(IProgressMonitor monitor) throws CoreException;
-
-	public List<DiscoveryCategory> getCategories() {
-		return categories;
-	}
-
-	public void setCategories(List<DiscoveryCategory> categories) {
-		this.categories = categories;
-	}
-
-	public List<DiscoveryConnector> getConnectors() {
-		return connectors;
-	}
-
-	public void setConnectors(List<DiscoveryConnector> connectors) {
-		this.connectors = connectors;
-	}
-
-	public void dispose() {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoverySource.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoverySource.java
deleted file mode 100644
index 1204cbc..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoverySource.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.net.URL;
-
-import org.osgi.framework.Bundle;
-
-/**
- * @author David Green
- */
-public class BundleDiscoverySource extends AbstractDiscoverySource {
-
-	private final Bundle bundle;
-
-	public BundleDiscoverySource(Bundle bundle) {
-		if (bundle == null) {
-			throw new IllegalArgumentException();
-		}
-		this.bundle = bundle;
-	}
-
-	@Override
-	public Object getId() {
-		return "bundle:" + bundle.getSymbolicName(); //$NON-NLS-1$
-	}
-
-	@Override
-	public URL getResource(String relativeUrl) {
-		return bundle.getEntry(relativeUrl);
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoveryStrategy.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoveryStrategy.java
deleted file mode 100644
index 1eaaabc..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/BundleDiscoveryStrategy.java
+++ /dev/null
@@ -1,115 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IConfigurationElement;
-import org.eclipse.core.runtime.IContributor;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.discovery.core.DiscoveryCore;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * a strategy for discovering via installed platform {@link Bundle bundles}.
- * 
- * @author David Green
- */
-public class BundleDiscoveryStrategy extends AbstractDiscoveryStrategy {
-
-	@Override
-	public void performDiscovery(IProgressMonitor monitor) throws CoreException {
-		if (connectors == null || categories == null) {
-			throw new IllegalStateException();
-		}
-		IExtensionPoint extensionPoint = getExtensionRegistry().getExtensionPoint(
-				ConnectorDiscoveryExtensionReader.EXTENSION_POINT_ID);
-		IExtension[] extensions = extensionPoint.getExtensions();
-		monitor.beginTask(Messages.BundleDiscoveryStrategy_task_loading_local_extensions, extensions.length == 0 ? 1
-				: extensions.length);
-		try {
-			if (extensions.length > 0) {
-				processExtensions(new SubProgressMonitor(monitor, extensions.length), extensions);
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	protected void processExtensions(IProgressMonitor monitor, IExtension[] extensions) {
-		monitor.beginTask(Messages.BundleDiscoveryStrategy_task_processing_extensions, extensions.length == 0 ? 1
-				: extensions.length);
-		try {
-			ConnectorDiscoveryExtensionReader extensionReader = new ConnectorDiscoveryExtensionReader();
-
-			for (IExtension extension : extensions) {
-				AbstractDiscoverySource discoverySource = computeDiscoverySource(extension.getContributor());
-				IConfigurationElement[] elements = extension.getConfigurationElements();
-				for (IConfigurationElement element : elements) {
-					if (monitor.isCanceled()) {
-						return;
-					}
-					try {
-						if (ConnectorDiscoveryExtensionReader.CONNECTOR_DESCRIPTOR.equals(element.getName())) {
-							DiscoveryConnector descriptor = extensionReader.readConnectorDescriptor(element,
-									DiscoveryConnector.class);
-							descriptor.setSource(discoverySource);
-							connectors.add(descriptor);
-						} else if (ConnectorDiscoveryExtensionReader.CONNECTOR_CATEGORY.equals(element.getName())) {
-							DiscoveryCategory category = extensionReader.readConnectorCategory(element,
-									DiscoveryCategory.class);
-							category.setSource(discoverySource);
-							if (!discoverySource.getPolicy().isPermitCategories()) {
-								StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-										Messages.BundleDiscoveryStrategy_categoryDisallowed, new Object[] {
-												category.getName(), category.getId(),
-												element.getContributor().getName() }), null));
-							} else {
-								categories.add(category);
-							}
-						} else {
-							throw new ValidationException(NLS.bind(Messages.BundleDiscoveryStrategy_unexpected_element,
-									element.getName()));
-						}
-					} catch (ValidationException e) {
-						StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-								NLS.bind(Messages.BundleDiscoveryStrategy_3, element.getContributor().getName(),
-										e.getMessage()), e));
-					}
-				}
-				monitor.worked(1);
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	protected AbstractDiscoverySource computeDiscoverySource(IContributor contributor) {
-		Policy policy = new Policy(true);
-		BundleDiscoverySource bundleDiscoverySource = new BundleDiscoverySource(
-				Platform.getBundle(contributor.getName()));
-		bundleDiscoverySource.setPolicy(policy);
-		return bundleDiscoverySource;
-	}
-
-	protected IExtensionRegistry getExtensionRegistry() {
-		return Platform.getExtensionRegistry();
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorCategory.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorCategory.java
deleted file mode 100644
index db83905..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorCategory.java
+++ /dev/null
@@ -1,133 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * a category of connectors, which is a way of organizing connectors in top-level groups.
- * 
- * @author David Green
- */
-public class ConnectorCategory {
-
-	protected String id;
-
-	protected String name;
-
-	protected String description;
-
-	protected String relevance;
-
-	protected Icon icon;
-
-	protected Overview overview;
-
-	protected java.util.List<Group> group = new java.util.ArrayList<Group>();
-
-	public ConnectorCategory() {
-	}
-
-	/**
-	 * an id that uniquely identifies the category
-	 */
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * the name of the category, as it is displayed in the ui.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * A description of the category
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * A relevance, which is a number from 0 to 100. Categories with higher relevance are displayed with preference in
-	 * the UI.
-	 */
-	public String getRelevance() {
-		return relevance;
-	}
-
-	public void setRelevance(String relevance) {
-		this.relevance = relevance;
-	}
-
-	public Icon getIcon() {
-		return icon;
-	}
-
-	public void setIcon(Icon icon) {
-		this.icon = icon;
-	}
-
-	public Overview getOverview() {
-		return overview;
-	}
-
-	public void setOverview(Overview overview) {
-		this.overview = overview;
-	}
-
-	public java.util.List<Group> getGroup() {
-		return group;
-	}
-
-	public void setGroup(java.util.List<Group> group) {
-		this.group = group;
-	}
-
-	public void validate() throws ValidationException {
-		if (id == null || id.length() == 0) {
-			throw new ValidationException(Messages.ConnectorCategory_must_specify_connectorCategory_id);
-		}
-		if (name == null || name.length() == 0) {
-			throw new ValidationException(Messages.ConnectorCategory_must_specify_connectorCategory_name);
-		}
-		if (icon != null) {
-			icon.validate();
-		}
-		if (relevance != null) {
-			try {
-				int r = Integer.parseInt(relevance, 10);
-				if (r < 0 || r > 100) {
-					throw new NumberFormatException();
-				}
-			} catch (NumberFormatException e) {
-				throw new ValidationException(Messages.ConnectorCategory_connectorCategory_relevance_invalid);
-			}
-		}
-		if (overview != null) {
-			overview.validate();
-		}
-		for (Group groupItem : group) {
-			groupItem.validate();
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptor.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptor.java
deleted file mode 100644
index d81bb83..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptor.java
+++ /dev/null
@@ -1,227 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.net.MalformedURLException;
-import java.util.List;
-
-/**
- * A description of a connector, including kind, description, licensing and brand.
- * 
- * @author David Green
- */
-public class ConnectorDescriptor {
-
-	protected java.util.List<ConnectorDescriptorKind> kind = new java.util.ArrayList<ConnectorDescriptorKind>();
-
-	protected String name;
-
-	protected String provider;
-
-	protected String license;
-
-	protected String description;
-
-	protected String siteUrl;
-
-	protected String id;
-
-	protected String categoryId;
-
-	protected String platformFilter;
-
-	protected String groupId;
-
-	protected java.util.List<FeatureFilter> featureFilter = new java.util.ArrayList<FeatureFilter>();
-
-	protected Icon icon;
-
-	protected Overview overview;
-
-	public ConnectorDescriptor() {
-	}
-
-	/**
-	 * must be one of 'document', 'task', 'vcs'
-	 */
-	public List<ConnectorDescriptorKind> getKind() {
-		return kind;
-	}
-
-	public void setKind(List<ConnectorDescriptorKind> kind) {
-		this.kind = kind;
-	}
-
-	/**
-	 * the name of the connector including the name of the organization that produces the repository if appropriate, for
-	 * example 'Mozilla Bugzilla'.
-	 */
-	public String getName() {
-		return name;
-	}
-
-	public void setName(String name) {
-		this.name = name;
-	}
-
-	/**
-	 * The name of the organization that supplies the connector.
-	 */
-	public String getProvider() {
-		return provider;
-	}
-
-	public void setProvider(String provider) {
-		this.provider = provider;
-	}
-
-	/**
-	 * The short name of the license, for example 'EPL 1.0', 'GPL 2.0', or 'Commercial'.
-	 */
-	public String getLicense() {
-		return license;
-	}
-
-	public void setLicense(String license) {
-		this.license = license;
-	}
-
-	/**
-	 * A description of the connector. Plug-ins should provide a description, especially if the description is not
-	 * self-evident from the @name and
-	 * 
-	 * @organization.
-	 */
-	public String getDescription() {
-		return description;
-	}
-
-	public void setDescription(String description) {
-		this.description = description;
-	}
-
-	/**
-	 * The URL of the update site containing the connector.
-	 */
-	public String getSiteUrl() {
-		return siteUrl;
-	}
-
-	public void setSiteUrl(String siteUrl) {
-		this.siteUrl = siteUrl;
-	}
-
-	/**
-	 * The id of the feature that installs this connector
-	 */
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	/**
-	 * the id of the connectorCategory in which this connector belongs
-	 */
-	public String getCategoryId() {
-		return categoryId;
-	}
-
-	public void setCategoryId(String categoryId) {
-		this.categoryId = categoryId;
-	}
-
-	/**
-	 * E.g., "(& (osgi.os=macosx) (osgi.ws=carbon))"
-	 */
-	public String getPlatformFilter() {
-		return platformFilter;
-	}
-
-	public void setPlatformFilter(String platformFilter) {
-		this.platformFilter = platformFilter;
-	}
-
-	/**
-	 * The id of the connectorCategory group. See group/@id for more details.
-	 */
-	public String getGroupId() {
-		return groupId;
-	}
-
-	public void setGroupId(String groupId) {
-		this.groupId = groupId;
-	}
-
-	public java.util.List<FeatureFilter> getFeatureFilter() {
-		return featureFilter;
-	}
-
-	public void setFeatureFilter(java.util.List<FeatureFilter> featureFilter) {
-		this.featureFilter = featureFilter;
-	}
-
-	public Icon getIcon() {
-		return icon;
-	}
-
-	public void setIcon(Icon icon) {
-		this.icon = icon;
-	}
-
-	public Overview getOverview() {
-		return overview;
-	}
-
-	public void setOverview(Overview overview) {
-		this.overview = overview;
-	}
-
-	public void validate() throws ValidationException {
-		if (kind == null || kind.isEmpty()) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_kind);
-		}
-		if (name == null || name.length() == 0) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_name);
-		}
-		if (provider == null || provider.length() == 0) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_provider);
-		}
-		if (license == null || license.length() == 0) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_license);
-		}
-		if (siteUrl == null || siteUrl.length() == 0) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_siteUrl);
-		}
-		try {
-			new java.net.URL(siteUrl);
-		} catch (MalformedURLException e) {
-			throw new ValidationException(Messages.ConnectorDescriptor_invalid_connectorDescriptor_siteUrl);
-		}
-		if (id == null || id.length() == 0) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_id);
-		}
-		if (categoryId == null || categoryId.length() == 0) {
-			throw new ValidationException(Messages.ConnectorDescriptor_must_specify_connectorDescriptor_categoryId);
-		}
-		for (FeatureFilter featureFilterItem : featureFilter) {
-			featureFilterItem.validate();
-		}
-		if (icon != null) {
-			icon.validate();
-		}
-		if (overview != null) {
-			overview.validate();
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptorKind.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptorKind.java
deleted file mode 100644
index 6b5afc8..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDescriptorKind.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * @author David Green
- */
-public enum ConnectorDescriptorKind {
-
-	DOCUMENT("document"), //$NON-NLS-1$
-	TASK("task"), //$NON-NLS-1$
-	VCS("vcs"); //$NON-NLS-1$
-
-	private final String value;
-
-	private ConnectorDescriptorKind(String value) {
-		this.value = value;
-	}
-
-	public String getValue() {
-		return value;
-	}
-
-	/**
-	 * return the enum constant whose {@link #getValue() value} is the same as the given value.
-	 * 
-	 * @param value
-	 *            the string value, or null
-	 * 
-	 * @return the corresponding enum constant or null if the given value was null
-	 * 
-	 * @throws IllegalArgumentException
-	 *             if the given value does not correspond to any enum constant
-	 */
-	public static ConnectorDescriptorKind fromValue(String value) throws IllegalArgumentException {
-		if (value == null) {
-			return null;
-		}
-		for (ConnectorDescriptorKind e : values()) {
-			if (e.getValue().equals(value)) {
-				return e;
-			}
-		}
-		throw new IllegalArgumentException(value);
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscovery.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscovery.java
deleted file mode 100644
index 4d4f229..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscovery.java
+++ /dev/null
@@ -1,391 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.ISafeRunnable;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.SafeRunner;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.WebLocation;
-import org.eclipse.mylyn.internal.discovery.core.DiscoveryCore;
-import org.eclipse.mylyn.internal.discovery.core.util.WebUtil;
-import org.eclipse.osgi.service.resolver.VersionRange;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Filter;
-import org.osgi.framework.FrameworkUtil;
-import org.osgi.framework.InvalidSyntaxException;
-import org.osgi.framework.Version;
-
-/**
- * A means of discovering connectors.
- * 
- * @author David Green
- */
-public class ConnectorDiscovery {
-
-	private List<DiscoveryConnector> connectors = Collections.emptyList();
-
-	private List<DiscoveryCategory> categories = Collections.emptyList();
-
-	private List<DiscoveryConnector> filteredConnectors = Collections.emptyList();
-
-	private final List<AbstractDiscoveryStrategy> discoveryStrategies = new ArrayList<AbstractDiscoveryStrategy>();
-
-	private Dictionary<Object, Object> environment = System.getProperties();
-
-	private boolean verifyUpdateSiteAvailability = false;
-
-	private Map<String, Version> featureToVersion = null;
-
-	public ConnectorDiscovery() {
-	}
-
-	/**
-	 * get the discovery strategies to use.
-	 */
-	public List<AbstractDiscoveryStrategy> getDiscoveryStrategies() {
-		return discoveryStrategies;
-	}
-
-	/**
-	 * Initialize this by performing discovery. Discovery may take a long time as it involves network access.
-	 * PRECONDITION: must add at least one {@link #getDiscoveryStrategies() discovery strategy} prior to calling.
-	 */
-	public void performDiscovery(IProgressMonitor monitor) throws CoreException {
-		if (discoveryStrategies.isEmpty()) {
-			throw new IllegalStateException();
-		}
-		connectors = new ArrayList<DiscoveryConnector>();
-		filteredConnectors = new ArrayList<DiscoveryConnector>();
-		categories = new ArrayList<DiscoveryCategory>();
-
-		final int totalTicks = 100000;
-		final int discoveryTicks = totalTicks - (totalTicks / 10);
-		final int filterTicks = totalTicks - discoveryTicks;
-		monitor.beginTask(Messages.ConnectorDiscovery_task_discovering_connectors, totalTicks);
-		try {
-			for (AbstractDiscoveryStrategy discoveryStrategy : discoveryStrategies) {
-				discoveryStrategy.setCategories(categories);
-				discoveryStrategy.setConnectors(connectors);
-				discoveryStrategy.performDiscovery(new SubProgressMonitor(monitor, discoveryTicks
-						/ discoveryStrategies.size()));
-			}
-
-			filterDescriptors();
-			if (verifyUpdateSiteAvailability) {
-				verifySiteAvailability(new SubProgressMonitor(monitor, filterTicks));
-			}
-			connectCategoriesToDescriptors();
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * get the top-level categories
-	 * 
-	 * @return the categories, or an empty list if there are none.
-	 */
-	public List<DiscoveryCategory> getCategories() {
-		return categories;
-	}
-
-	/**
-	 * get the connectors that were discovered and not filtered
-	 * 
-	 * @return the connectors, or an empty list if there are none.
-	 */
-	public List<DiscoveryConnector> getConnectors() {
-		return connectors;
-	}
-
-	/**
-	 * get the connectors that were discovered but filtered
-	 * 
-	 * @return the filtered connectors, or an empty list if there were none.
-	 */
-	public List<DiscoveryConnector> getFilteredConnectors() {
-		return filteredConnectors;
-	}
-
-	/**
-	 * The environment used to resolve {@link ConnectorDescriptor#getPlatformFilter() platform filters}. Defaults to the
-	 * current environment.
-	 */
-	public Dictionary<Object, Object> getEnvironment() {
-		return environment;
-	}
-
-	/**
-	 * The environment used to resolve {@link ConnectorDescriptor#getPlatformFilter() platform filters}. Defaults to the
-	 * current environment.
-	 */
-	public void setEnvironment(Dictionary<Object, Object> environment) {
-		if (environment == null) {
-			throw new IllegalArgumentException();
-		}
-		this.environment = environment;
-	}
-
-	/**
-	 * indicate if update site availability should be verified. The default is false.
-	 * 
-	 * @see DiscoveryConnector#getAvailable()
-	 * @see #verifySiteAvailability(IProgressMonitor)
-	 */
-	public boolean isVerifyUpdateSiteAvailability() {
-		return verifyUpdateSiteAvailability;
-	}
-
-	/**
-	 * indicate if update site availability should be verified. The default is false.
-	 * 
-	 * @see DiscoveryConnector#getAvailable()
-	 * @see #verifySiteAvailability(IProgressMonitor)
-	 */
-	public void setVerifyUpdateSiteAvailability(boolean verifyUpdateSiteAvailability) {
-		this.verifyUpdateSiteAvailability = verifyUpdateSiteAvailability;
-	}
-
-	/**
-	 * <em>not for general use: public for testing purposes only</em> A map of installed features to their version. Used
-	 * to resolve {@link ConnectorDescriptor#getFeatureFilter() feature filters}.
-	 */
-	public Map<String, Version> getFeatureToVersion() {
-		return featureToVersion;
-	}
-
-	/**
-	 * <em>not for general use: public for testing purposes only</em> A map of installed features to their version. Used
-	 * to resolve {@link ConnectorDescriptor#getFeatureFilter() feature filters}.
-	 */
-	public void setFeatureToVersion(Map<String, Version> featureToVersion) {
-		this.featureToVersion = featureToVersion;
-	}
-
-	private void connectCategoriesToDescriptors() {
-		Map<String, DiscoveryCategory> idToCategory = new HashMap<String, DiscoveryCategory>();
-		for (DiscoveryCategory category : categories) {
-			DiscoveryCategory previous = idToCategory.put(category.getId(), category);
-			if (previous != null) {
-				StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-						Messages.ConnectorDiscovery_duplicate_category_id, new Object[] { category.getId(),
-								category.getSource().getId(), previous.getSource().getId() })));
-			}
-		}
-
-		for (DiscoveryConnector connector : connectors) {
-			DiscoveryCategory category = idToCategory.get(connector.getCategoryId());
-			if (category != null) {
-				category.getConnectors().add(connector);
-				connector.setCategory(category);
-			} else {
-				StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-						Messages.ConnectorDiscovery_bundle_references_unknown_category, new Object[] {
-								connector.getCategoryId(), connector.getId(), connector.getSource().getId() })));
-			}
-		}
-	}
-
-	/**
-	 * eliminate any connectors whose {@link ConnectorDescriptor#getPlatformFilter() platform filters} don't match
-	 */
-	private void filterDescriptors() {
-		for (DiscoveryConnector connector : new ArrayList<DiscoveryConnector>(connectors)) {
-			if (connector.getPlatformFilter() != null && connector.getPlatformFilter().trim().length() > 0) {
-				boolean match = false;
-				try {
-					Filter filter = FrameworkUtil.createFilter(connector.getPlatformFilter());
-					match = filter.match(environment);
-				} catch (InvalidSyntaxException e) {
-					StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-							Messages.ConnectorDiscovery_illegal_filter_syntax, new Object[] {
-									connector.getPlatformFilter(), connector.getId(), connector.getSource().getId() })));
-				}
-				if (!match) {
-					connectors.remove(connector);
-					filteredConnectors.add(connector);
-				}
-			}
-			for (FeatureFilter featureFilter : connector.getFeatureFilter()) {
-				if (featureToVersion == null) {
-					featureToVersion = computeFeatureToVersion();
-				}
-				boolean match = false;
-				Version version = featureToVersion.get(featureFilter.getFeatureId());
-				if (version != null) {
-					VersionRange versionRange = new VersionRange(featureFilter.getVersion());
-					if (versionRange.isIncluded(version)) {
-						match = true;
-					}
-				}
-				if (!match) {
-					connectors.remove(connector);
-					filteredConnectors.add(connector);
-					break;
-				}
-			}
-		}
-	}
-
-	private Map<String, Version> computeFeatureToVersion() {
-		Map<String, Version> featureToVersion = new HashMap<String, Version>();
-		for (IBundleGroupProvider provider : Platform.getBundleGroupProviders()) {
-			for (IBundleGroup bundleGroup : provider.getBundleGroups()) {
-				for (Bundle bundle : bundleGroup.getBundles()) {
-					featureToVersion.put(bundle.getSymbolicName(), bundle.getVersion());
-				}
-			}
-		}
-		return featureToVersion;
-	}
-
-	/**
-	 * Determine update site availability. This may be performed automatically as part of discovery when
-	 * {@link #isVerifyUpdateSiteAvailability()} is true, or it may be invoked later by calling this method.
-	 */
-	public void verifySiteAvailability(IProgressMonitor monitor) {
-		// NOTE: we don't put java.net.URLs in the map since it involves DNS activity when
-		//       computing the hash code.
-		Map<String, Collection<DiscoveryConnector>> urlToDescriptors = new HashMap<String, Collection<DiscoveryConnector>>();
-
-		for (DiscoveryConnector descriptor : connectors) {
-			String url = descriptor.getSiteUrl();
-			if (!url.endsWith("/")) { //$NON-NLS-1$
-				url += "/"; //$NON-NLS-1$
-			}
-			Collection<DiscoveryConnector> collection = urlToDescriptors.get(url);
-			if (collection == null) {
-				collection = new ArrayList<DiscoveryConnector>();
-				urlToDescriptors.put(url, collection);
-			}
-			collection.add(descriptor);
-		}
-		final int totalTicks = urlToDescriptors.size();
-		monitor.beginTask(Messages.ConnectorDiscovery_task_verifyingAvailability, totalTicks);
-		try {
-			if (!urlToDescriptors.isEmpty()) {
-				ExecutorService executorService = Executors.newFixedThreadPool(Math.min(urlToDescriptors.size(), 4));
-				try {
-					List<Future<VerifyUpdateSiteJob>> futures = new ArrayList<Future<VerifyUpdateSiteJob>>(
-							urlToDescriptors.size());
-					for (String url : urlToDescriptors.keySet()) {
-						futures.add(executorService.submit(new VerifyUpdateSiteJob(url)));
-					}
-					for (Future<VerifyUpdateSiteJob> jobFuture : futures) {
-						try {
-							for (;;) {
-								try {
-									VerifyUpdateSiteJob job = jobFuture.get(1L, TimeUnit.SECONDS);
-
-									Collection<DiscoveryConnector> descriptors = urlToDescriptors.get(job.url);
-									for (DiscoveryConnector descriptor : descriptors) {
-										descriptor.setAvailable(job.ok);
-									}
-									break;
-								} catch (TimeoutException e) {
-									if (monitor.isCanceled()) {
-										return;
-									}
-								}
-							}
-						} catch (InterruptedException e) {
-							monitor.setCanceled(true);
-							return;
-						} catch (ExecutionException e) {
-							if (e.getCause() instanceof OperationCanceledException) {
-								monitor.setCanceled(true);
-								return;
-							}
-							IStatus status;
-							if (e.getCause() instanceof CoreException) {
-								status = ((CoreException) e.getCause()).getStatus();
-							} else {
-								status = new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-										Messages.ConnectorDiscovery_unexpected_exception, e.getCause());
-							}
-							StatusHandler.log(status);
-						}
-						monitor.worked(1);
-					}
-				} finally {
-					executorService.shutdownNow();
-				}
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	private static class VerifyUpdateSiteJob implements Callable<VerifyUpdateSiteJob> {
-
-		private final String url;
-
-		private boolean ok = false;
-
-		public VerifyUpdateSiteJob(String url) {
-			this.url = url;
-		}
-
-		public VerifyUpdateSiteJob call() throws Exception {
-			URL baseUrl = new URL(url);
-			List<WebLocation> locations = new ArrayList<WebLocation>();
-			for (String location : new String[] { "content.jar", "content.xml", "site.xml" }) { //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
-				locations.add(new WebLocation(new URL(baseUrl, location).toExternalForm()));
-			}
-			ok = WebUtil.verifyAvailability(locations, true, new NullProgressMonitor());
-			return this;
-		}
-
-	}
-
-	public void dispose() {
-		for (final AbstractDiscoveryStrategy strategy : discoveryStrategies) {
-			SafeRunner.run(new ISafeRunnable() {
-
-				public void run() throws Exception {
-					strategy.dispose();
-				}
-
-				public void handleException(Throwable exception) {
-					StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-							Messages.ConnectorDiscovery_exception_disposing + strategy.getClass().getName(), exception));
-				}
-			});
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscoveryExtensionReader.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscoveryExtensionReader.java
deleted file mode 100644
index be0faee..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ConnectorDiscoveryExtensionReader.java
+++ /dev/null
@@ -1,190 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Task top Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import org.eclipse.core.runtime.IConfigurationElement;
-
-/**
- * Connector Discovery extension point reader, for extension points of type
- * <tt>org.eclipse.mylyn.discovery.core.connectorDiscovery</tt>
- * 
- * @author David Green
- */
-public class ConnectorDiscoveryExtensionReader {
-
-	public static final String EXTENSION_POINT_ID = "org.eclipse.mylyn.discovery.core.connectorDiscovery"; //$NON-NLS-1$
-
-	public static final String CONNECTOR_DESCRIPTOR = "connectorDescriptor"; //$NON-NLS-1$
-
-	public static final String CONNECTOR_CATEGORY = "connectorCategory"; //$NON-NLS-1$
-
-	public static final String ICON = "icon"; //$NON-NLS-1$
-
-	public static final String OVERVIEW = "overview"; //$NON-NLS-1$
-
-	public static final String FEATURE_FILTER = "featureFilter"; //$NON-NLS-1$
-
-	public static final String GROUP = "group"; //$NON-NLS-1$
-
-	public ConnectorDescriptor readConnectorDescriptor(IConfigurationElement element) throws ValidationException {
-		return readConnectorDescriptor(element, ConnectorDescriptor.class);
-	}
-
-	public <T extends ConnectorDescriptor> T readConnectorDescriptor(IConfigurationElement element, Class<T> clazz)
-			throws ValidationException {
-		T connectorDescriptor;
-		try {
-			connectorDescriptor = clazz.newInstance();
-		} catch (Exception e) {
-			throw new IllegalStateException(e);
-		}
-
-		try {
-			String kinds = element.getAttribute("kind"); //$NON-NLS-1$
-			if (kinds != null) {
-				String[] akinds = kinds.split("\\s*,\\s*"); //$NON-NLS-1$
-				for (String kind : akinds) {
-					connectorDescriptor.getKind().add(ConnectorDescriptorKind.fromValue(kind));
-				}
-			}
-		} catch (IllegalArgumentException e) {
-			throw new ValidationException(Messages.ConnectorDiscoveryExtensionReader_unexpected_value_kind);
-		}
-		connectorDescriptor.setName(element.getAttribute("name")); //$NON-NLS-1$
-		connectorDescriptor.setProvider(element.getAttribute("provider")); //$NON-NLS-1$
-		connectorDescriptor.setLicense(element.getAttribute("license")); //$NON-NLS-1$
-		connectorDescriptor.setDescription(element.getAttribute("description")); //$NON-NLS-1$
-		connectorDescriptor.setSiteUrl(element.getAttribute("siteUrl")); //$NON-NLS-1$
-		connectorDescriptor.setId(element.getAttribute("id")); //$NON-NLS-1$
-		connectorDescriptor.setCategoryId(element.getAttribute("categoryId")); //$NON-NLS-1$
-		connectorDescriptor.setPlatformFilter(element.getAttribute("platformFilter")); //$NON-NLS-1$
-		connectorDescriptor.setGroupId(element.getAttribute("groupId")); //$NON-NLS-1$
-
-		for (IConfigurationElement child : element.getChildren("featureFilter")) { //$NON-NLS-1$
-			FeatureFilter featureFilterItem = readFeatureFilter(child);
-			featureFilterItem.setConnectorDescriptor(connectorDescriptor);
-			connectorDescriptor.getFeatureFilter().add(featureFilterItem);
-		}
-		for (IConfigurationElement child : element.getChildren("icon")) { //$NON-NLS-1$
-			Icon iconItem = readIcon(child);
-			iconItem.setConnectorDescriptor(connectorDescriptor);
-			if (connectorDescriptor.getIcon() != null) {
-				throw new ValidationException(Messages.ConnectorDiscoveryExtensionReader_unexpected_element_icon);
-			}
-			connectorDescriptor.setIcon(iconItem);
-		}
-		for (IConfigurationElement child : element.getChildren("overview")) { //$NON-NLS-1$
-			Overview overviewItem = readOverview(child);
-			overviewItem.setConnectorDescriptor(connectorDescriptor);
-			if (connectorDescriptor.getOverview() != null) {
-				throw new ValidationException(Messages.ConnectorDiscoveryExtensionReader_unexpected_element_overview);
-			}
-			connectorDescriptor.setOverview(overviewItem);
-		}
-
-		connectorDescriptor.validate();
-
-		return connectorDescriptor;
-	}
-
-	public ConnectorCategory readConnectorCategory(IConfigurationElement element) throws ValidationException {
-		return readConnectorCategory(element, ConnectorCategory.class);
-	}
-
-	public <T extends ConnectorCategory> T readConnectorCategory(IConfigurationElement element, Class<T> clazz)
-			throws ValidationException {
-		T connectorCategory;
-		try {
-			connectorCategory = clazz.newInstance();
-		} catch (Exception e) {
-			throw new IllegalStateException(e);
-		}
-
-		connectorCategory.setId(element.getAttribute("id")); //$NON-NLS-1$
-		connectorCategory.setName(element.getAttribute("name")); //$NON-NLS-1$
-		connectorCategory.setDescription(element.getAttribute("description")); //$NON-NLS-1$
-		connectorCategory.setRelevance(element.getAttribute("relevance")); //$NON-NLS-1$
-
-		for (IConfigurationElement child : element.getChildren("icon")) { //$NON-NLS-1$
-			Icon iconItem = readIcon(child);
-			iconItem.setConnectorCategory(connectorCategory);
-			if (connectorCategory.getIcon() != null) {
-				throw new ValidationException(Messages.ConnectorDiscoveryExtensionReader_unexpected_element_icon);
-			}
-			connectorCategory.setIcon(iconItem);
-		}
-		for (IConfigurationElement child : element.getChildren("overview")) { //$NON-NLS-1$
-			Overview overviewItem = readOverview(child);
-			overviewItem.setConnectorCategory(connectorCategory);
-			if (connectorCategory.getOverview() != null) {
-				throw new ValidationException(Messages.ConnectorDiscoveryExtensionReader_unexpected_element_overview);
-			}
-			connectorCategory.setOverview(overviewItem);
-		}
-		for (IConfigurationElement child : element.getChildren("group")) { //$NON-NLS-1$
-			Group groupItem = readGroup(child);
-			groupItem.setConnectorCategory(connectorCategory);
-			connectorCategory.getGroup().add(groupItem);
-		}
-
-		connectorCategory.validate();
-
-		return connectorCategory;
-	}
-
-	public Icon readIcon(IConfigurationElement element) throws ValidationException {
-		Icon icon = new Icon();
-
-		icon.setImage16(element.getAttribute("image16")); //$NON-NLS-1$
-		icon.setImage32(element.getAttribute("image32")); //$NON-NLS-1$
-		icon.setImage48(element.getAttribute("image48")); //$NON-NLS-1$
-		icon.setImage64(element.getAttribute("image64")); //$NON-NLS-1$
-		icon.setImage128(element.getAttribute("image128")); //$NON-NLS-1$
-
-		icon.validate();
-
-		return icon;
-	}
-
-	public Overview readOverview(IConfigurationElement element) throws ValidationException {
-		Overview overview = new Overview();
-
-		overview.setSummary(element.getAttribute("summary")); //$NON-NLS-1$
-		overview.setUrl(element.getAttribute("url")); //$NON-NLS-1$
-		overview.setScreenshot(element.getAttribute("screenshot")); //$NON-NLS-1$
-
-		overview.validate();
-
-		return overview;
-	}
-
-	public FeatureFilter readFeatureFilter(IConfigurationElement element) throws ValidationException {
-		FeatureFilter featureFilter = new FeatureFilter();
-
-		featureFilter.setFeatureId(element.getAttribute("featureId")); //$NON-NLS-1$
-		featureFilter.setVersion(element.getAttribute("version")); //$NON-NLS-1$
-
-		featureFilter.validate();
-
-		return featureFilter;
-	}
-
-	public Group readGroup(IConfigurationElement element) throws ValidationException {
-		Group group = new Group();
-
-		group.setId(element.getAttribute("id")); //$NON-NLS-1$
-
-		group.validate();
-
-		return group;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Directory.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Directory.java
deleted file mode 100644
index bac747a..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Directory.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A directory representing locations of discovery sources.
- * 
- * @author David Green
- */
-public class Directory {
-
-	/**
-	 * an entry in the directory, which represents a specific discovery source. Future versions of this class may
-	 * include policy or other attributes declared by the directory.
-	 */
-	public static final class Entry {
-		private String location;
-
-		private boolean permitCategories;
-
-		public Entry() {
-		}
-
-		/**
-		 * the location of the entry (an URL)
-		 */
-		public String getLocation() {
-			return location;
-		}
-
-		/**
-		 * the location of the entry (an URL)
-		 */
-		public void setLocation(String location) {
-			this.location = location;
-		}
-
-		/**
-		 * indicate if creation of categories by this location is permitted
-		 */
-		public boolean isPermitCategories() {
-			return permitCategories;
-		}
-
-		/**
-		 * indicate if creation of categories by this location is permitted
-		 */
-		public void setPermitCategories(boolean permitCategories) {
-			this.permitCategories = permitCategories;
-		}
-	}
-
-	private final List<Entry> entries = new ArrayList<Entry>();
-
-	public List<Entry> getEntries() {
-		return entries;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DirectoryParser.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DirectoryParser.java
deleted file mode 100644
index 0fd88da..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DirectoryParser.java
+++ /dev/null
@@ -1,135 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.io.IOException;
-import java.io.Reader;
-
-import org.eclipse.mylyn.internal.discovery.core.model.Directory.Entry;
-import org.eclipse.mylyn.internal.discovery.core.util.DefaultSaxErrorHandler;
-import org.eclipse.mylyn.internal.discovery.core.util.IOWithCauseException;
-import org.eclipse.osgi.util.NLS;
-import org.xml.sax.Attributes;
-import org.xml.sax.ContentHandler;
-import org.xml.sax.InputSource;
-import org.xml.sax.Locator;
-import org.xml.sax.SAXException;
-import org.xml.sax.XMLReader;
-import org.xml.sax.helpers.XMLReaderFactory;
-
-/**
- * A parser for {@link Directory directories}.
- * 
- * @author David Green
- */
-public class DirectoryParser {
-	/**
-	 * parse the contents of a directory. The caller must close the given reader.
-	 * 
-	 * @param directoryContents
-	 *            the contents of the directory
-	 * @return a directory with 0 or more entries
-	 * @throws IOException
-	 *             if the directory cannot be read.
-	 */
-	public Directory parse(Reader directoryContents) throws IOException {
-		XMLReader xmlReader;
-		try {
-			xmlReader = XMLReaderFactory.createXMLReader();
-		} catch (SAXException e) {
-			throw new IOWithCauseException(e.getMessage(), e);
-		}
-		xmlReader.setErrorHandler(new DefaultSaxErrorHandler());
-
-		DirectoryContentHandler contentHandler = new DirectoryContentHandler();
-		xmlReader.setContentHandler(contentHandler);
-
-		try {
-			xmlReader.parse(new InputSource(directoryContents));
-		} catch (SAXException e) {
-			throw new IOWithCauseException(e.getMessage(), e);
-		}
-
-		if (contentHandler.directory == null) {
-			throw new IOException(Messages.DirectoryParser_no_directory);
-		}
-
-		return contentHandler.directory;
-	}
-
-	private class DirectoryContentHandler implements ContentHandler {
-
-		Directory directory;
-
-		public void characters(char[] ch, int start, int length) throws SAXException {
-			// ignore
-		}
-
-		public void endDocument() throws SAXException {
-			// ignore
-		}
-
-		public void endElement(String uri, String localName, String qName) throws SAXException {
-			// ignore
-		}
-
-		public void endPrefixMapping(String prefix) throws SAXException {
-			// ignore
-		}
-
-		public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
-			// ignore
-		}
-
-		public void processingInstruction(String target, String data) throws SAXException {
-			// ignore
-		}
-
-		public void setDocumentLocator(Locator locator) {
-			// ignore
-		}
-
-		public void skippedEntity(String name) throws SAXException {
-			// ignore
-		}
-
-		public void startDocument() throws SAXException {
-			// ignore
-		}
-
-		public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
-			if ("directory".equals(localName)) { //$NON-NLS-1$
-				if (directory != null) {
-					unexpectedElement(localName);
-				}
-				directory = new Directory();
-			} else if (directory != null && "entry".equals(localName)) { //$NON-NLS-1$
-				String url = atts.getValue("", "url"); //$NON-NLS-1$ //$NON-NLS-2$
-				if (url != null && url.length() > 0) {
-					Entry entry = new Entry();
-					entry.setLocation(url);
-					entry.setPermitCategories(Boolean.parseBoolean(atts.getValue("permitCategories"))); //$NON-NLS-1$
-					directory.getEntries().add(entry);
-				}
-			}
-			// else ignore
-		}
-
-		private void unexpectedElement(String localName) throws SAXException {
-			throw new SAXException(NLS.bind(Messages.DirectoryParser_unexpected_element, localName));
-		}
-
-		public void startPrefixMapping(String prefix, String uri) throws SAXException {
-			// ignore
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryCategory.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryCategory.java
deleted file mode 100644
index 453e808..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryCategory.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * 
- * @author David Green
- */
-public class DiscoveryCategory extends ConnectorCategory {
-	private AbstractDiscoverySource source;
-
-	private List<DiscoveryConnector> connectors = new ArrayList<DiscoveryConnector>();
-
-	public List<DiscoveryConnector> getConnectors() {
-		return connectors;
-	}
-
-	public AbstractDiscoverySource getSource() {
-		return source;
-	}
-
-	public void setSource(AbstractDiscoverySource source) {
-		this.source = source;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryConnector.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryConnector.java
deleted file mode 100644
index e3b5799..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryConnector.java
+++ /dev/null
@@ -1,107 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.beans.PropertyChangeListener;
-import java.beans.PropertyChangeSupport;
-
-/**
- * @author David Green
- */
-public class DiscoveryConnector extends ConnectorDescriptor {
-	private AbstractDiscoverySource source;
-
-	private DiscoveryCategory category;
-
-	private boolean selected;
-
-	private Boolean available;
-
-	private final PropertyChangeSupport changeSupport;
-
-	public DiscoveryConnector() {
-		changeSupport = new PropertyChangeSupport(this);
-	}
-
-	public DiscoveryCategory getCategory() {
-		return category;
-	}
-
-	public void setCategory(DiscoveryCategory category) {
-		this.category = category;
-	}
-
-	public AbstractDiscoverySource getSource() {
-		return source;
-	}
-
-	public void setSource(AbstractDiscoverySource source) {
-		this.source = source;
-	}
-
-	/**
-	 * support selection
-	 * 
-	 * @return true if the item is selected, otherwise false
-	 */
-	public boolean isSelected() {
-		return selected;
-	}
-
-	/**
-	 * support selection
-	 * 
-	 * @param selected
-	 *            true if the item is selected, otherwise false
-	 */
-	public void setSelected(boolean selected) {
-		this.selected = selected;
-	}
-
-	/**
-	 * indicate if this connector is available
-	 * 
-	 * @return true if available, false if not, or null if availability is unknown
-	 */
-	public Boolean getAvailable() {
-		return available;
-	}
-
-	/**
-	 * indicate if this connector is available
-	 * 
-	 * @param available
-	 *            true if available, false if not, or null if availability is unknown
-	 */
-	public void setAvailable(Boolean available) {
-		if (available != this.available || (available != null && !available.equals(this.available))) {
-			Boolean previous = this.available;
-			this.available = available;
-			changeSupport.firePropertyChange("available", previous, this.available); //$NON-NLS-1$
-		}
-	}
-
-	public void addPropertyChangeListener(PropertyChangeListener listener) {
-		changeSupport.addPropertyChangeListener(listener);
-	}
-
-	public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		changeSupport.addPropertyChangeListener(propertyName, listener);
-	}
-
-	public void removePropertyChangeListener(PropertyChangeListener listener) {
-		changeSupport.removePropertyChangeListener(listener);
-	}
-
-	public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
-		changeSupport.removePropertyChangeListener(propertyName, listener);
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryRegistryStrategy.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryRegistryStrategy.java
deleted file mode 100644
index 303cfab..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/DiscoveryRegistryStrategy.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.PropertyResourceBundle;
-import java.util.ResourceBundle;
-import java.util.jar.JarFile;
-import java.util.zip.ZipEntry;
-
-import org.eclipse.core.runtime.IContributor;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.spi.IDynamicExtensionRegistry;
-import org.eclipse.core.runtime.spi.RegistryContributor;
-import org.eclipse.core.runtime.spi.RegistryStrategy;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.internal.discovery.core.DiscoveryCore;
-import org.eclipse.mylyn.internal.discovery.core.model.Directory.Entry;
-import org.eclipse.osgi.util.NLS;
-import org.osgi.framework.Bundle;
-
-/**
- * @author David Green
- */
-class DiscoveryRegistryStrategy extends RegistryStrategy {
-
-	private final List<JarFile> jars = new ArrayList<JarFile>();
-
-	private final Map<IContributor, File> contributorToJarFile = new HashMap<IContributor, File>();
-
-	private final Map<IContributor, Entry> contributorToDirectoryEntry = new HashMap<IContributor, Entry>();
-
-	private final Object token;
-
-	private Map<File, Entry> bundleFileToDirectoryEntry;
-
-	public DiscoveryRegistryStrategy(File[] storageDirs, boolean[] cacheReadOnly, Object token) {
-		super(storageDirs, cacheReadOnly);
-		this.token = token;
-	}
-
-	@Override
-	public void onStart(IExtensionRegistry registry, boolean loadedFromCache) {
-		super.onStart(registry, loadedFromCache);
-		if (!loadedFromCache) {
-			processDiscoveryCoreBundle(registry);
-			processBundles(registry);
-		}
-	}
-
-	private void processDiscoveryCoreBundle(IExtensionRegistry registry) {
-		// we must add a contribution from the core bundle so that we get the
-		// extension point itself
-		try {
-			Bundle bundle = Platform.getBundle(DiscoveryCore.ID_PLUGIN);
-			IContributor contributor = new RegistryContributor(bundle.getSymbolicName(), bundle.getSymbolicName(),
-					null, null);
-
-			InputStream inputStream = bundle.getEntry("plugin.xml").openStream(); //$NON-NLS-1$
-			try {
-				registry.addContribution(inputStream, contributor, false, bundle.getSymbolicName(), null, token);
-			} finally {
-				inputStream.close();
-			}
-		} catch (IOException e) {
-			throw new IllegalStateException();
-		}
-	}
-
-	private void processBundles(IExtensionRegistry registry) {
-		if (bundleFileToDirectoryEntry == null) {
-			throw new IllegalStateException();
-		}
-		for (java.util.Map.Entry<File, Entry> bundleFile : bundleFileToDirectoryEntry.entrySet()) {
-			try {
-				processBundle(registry, bundleFile.getValue(), bundleFile.getKey());
-			} catch (Exception e) {
-				StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-						Messages.DiscoveryRegistryStrategy_cannot_load_bundle, new Object[] {
-								bundleFile.getKey().getName(), bundleFile.getValue().getLocation(), e.getMessage() }),
-						e));
-			}
-		}
-	}
-
-	private void processBundle(IExtensionRegistry registry, Directory.Entry entry, File bundleFile) throws IOException {
-		JarFile jarFile = new JarFile(bundleFile);
-		jars.add(jarFile);
-
-		ZipEntry pluginXmlEntry = jarFile.getEntry("plugin.xml"); //$NON-NLS-1$
-		if (pluginXmlEntry == null) {
-			throw new IOException(Messages.DiscoveryRegistryStrategy_missing_pluginxml);
-		}
-		IContributor contributor = new RegistryContributor(bundleFile.getName(), bundleFile.getName(), null, null);
-		if (((IDynamicExtensionRegistry) registry).hasContributor(contributor)) {
-			jarFile.close();
-			return;
-		}
-		contributorToJarFile.put(contributor, bundleFile);
-		contributorToDirectoryEntry.put(contributor, entry);
-
-		ResourceBundle translationBundle = loadTranslationBundle(jarFile);
-
-		InputStream inputStream = jarFile.getInputStream(pluginXmlEntry);
-		try {
-			registry.addContribution(inputStream, contributor, false, bundleFile.getPath(), translationBundle, token);
-		} finally {
-			inputStream.close();
-		}
-	}
-
-	private ResourceBundle loadTranslationBundle(JarFile jarFile) throws IOException {
-		List<String> bundleNames = computeBundleNames("plugin"); //$NON-NLS-1$
-		for (String bundleName : bundleNames) {
-			ZipEntry entry = jarFile.getEntry(bundleName);
-			if (entry != null) {
-				InputStream inputStream = jarFile.getInputStream(entry);
-				try {
-					PropertyResourceBundle resourceBundle = new PropertyResourceBundle(inputStream);
-					return resourceBundle;
-				} finally {
-					inputStream.close();
-				}
-			}
-		}
-		return null;
-	}
-
-	private List<String> computeBundleNames(String baseName) {
-		String suffix = ".properties"; //$NON-NLS-1$
-		String name = baseName;
-		List<String> bundleNames = new ArrayList<String>();
-		Locale locale = Locale.getDefault();
-		bundleNames.add(name + suffix);
-		if (locale.getLanguage() != null && locale.getLanguage().length() > 0) {
-			name = name + '_' + locale.getLanguage();
-			bundleNames.add(0, name + suffix);
-		}
-		if (locale.getCountry() != null && locale.getCountry().length() > 0) {
-			name = name + '_' + locale.getCountry();
-			bundleNames.add(0, name + suffix);
-		}
-		if (locale.getVariant() != null && locale.getVariant().length() > 0) {
-			name = name + '_' + locale.getVariant();
-			bundleNames.add(0, name + suffix);
-		}
-		return bundleNames;
-	}
-
-	@Override
-	public void onStop(IExtensionRegistry registry) {
-		try {
-			super.onStop(registry);
-		} finally {
-			for (JarFile jar : jars) {
-				try {
-					jar.close();
-				} catch (Exception e) {
-				}
-			}
-			jars.clear();
-		}
-	}
-
-	/**
-	 * get the jar file that corresponds to the given contributor.
-	 * 
-	 * @throws IllegalArgumentException
-	 *             if the given contributor is unknown
-	 */
-	public File getJarFile(IContributor contributor) {
-		File file = contributorToJarFile.get(contributor);
-		if (file == null) {
-			throw new IllegalArgumentException(contributor.getName());
-		}
-		return file;
-	}
-
-	/**
-	 * get the directory entry that corresponds to the given contributor.
-	 * 
-	 * @throws IllegalArgumentException
-	 *             if the given contributor is unknown
-	 */
-	public Entry getDirectoryEntry(IContributor contributor) {
-		Entry entry = contributorToDirectoryEntry.get(contributor);
-		if (entry == null) {
-			throw new IllegalArgumentException(contributor.getName());
-		}
-		return entry;
-	}
-
-	public void setBundles(Map<File, Entry> bundleFileToDirectoryEntry) {
-		this.bundleFileToDirectoryEntry = bundleFileToDirectoryEntry;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/FeatureFilter.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/FeatureFilter.java
deleted file mode 100644
index c60e224..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/FeatureFilter.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * A means of specifying that a feature must be present in order for the connectorDescriptor to be presented to the
- * user.
- * 
- * @author David Green
- */
-public class FeatureFilter {
-
-	protected String featureId;
-
-	protected String version;
-
-	protected ConnectorDescriptor connectorDescriptor;
-
-	public FeatureFilter() {
-	}
-
-	/**
-	 * The id of the feature to test
-	 */
-	public String getFeatureId() {
-		return featureId;
-	}
-
-	public void setFeatureId(String featureId) {
-		this.featureId = featureId;
-	}
-
-	/**
-	 * A version specifier, specified in the same manner as version dependencies are specified in an OSGi manifest. For
-	 * example: "[3.0,4.0)"
-	 */
-	public String getVersion() {
-		return version;
-	}
-
-	public void setVersion(String version) {
-		this.version = version;
-	}
-
-	public ConnectorDescriptor getConnectorDescriptor() {
-		return connectorDescriptor;
-	}
-
-	public void setConnectorDescriptor(ConnectorDescriptor connectorDescriptor) {
-		this.connectorDescriptor = connectorDescriptor;
-	}
-
-	public void validate() throws ValidationException {
-		if (featureId == null || featureId.length() == 0) {
-			throw new ValidationException(Messages.FeatureFilter_must_specify_featureFilter_featureId);
-		}
-		if (version == null || version.length() == 0) {
-			throw new ValidationException(Messages.FeatureFilter_must_specify_featureFilter_version);
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Group.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Group.java
deleted file mode 100644
index c3347a3..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Group.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Task top Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * groups provide a way to anchor connectors in a grouping with other like entries.
- * 
- * @author David Green
- */
-public class Group {
-
-	protected String id;
-
-	protected ConnectorCategory connectorCategory;
-
-	public Group() {
-	}
-
-	/**
-	 * An identifier that identifies the group. Must be unique for a particular connectorCategory.
-	 */
-	public String getId() {
-		return id;
-	}
-
-	public void setId(String id) {
-		this.id = id;
-	}
-
-	public ConnectorCategory getConnectorCategory() {
-		return connectorCategory;
-	}
-
-	public void setConnectorCategory(ConnectorCategory connectorCategory) {
-		this.connectorCategory = connectorCategory;
-	}
-
-	public void validate() throws ValidationException {
-		if (id == null || id.length() == 0) {
-			throw new ValidationException(Messages.Group_must_specify_group_id);
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Icon.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Icon.java
deleted file mode 100644
index 4058f60..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Icon.java
+++ /dev/null
@@ -1,93 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * @author David Green
- */
-public class Icon {
-
-	protected String image16;
-
-	protected String image32;
-
-	protected String image48;
-
-	protected String image64;
-
-	protected String image128;
-
-	protected ConnectorDescriptor connectorDescriptor;
-
-	protected ConnectorCategory connectorCategory;
-
-	public Icon() {
-	}
-
-	public String getImage16() {
-		return image16;
-	}
-
-	public void setImage16(String image16) {
-		this.image16 = image16;
-	}
-
-	public String getImage32() {
-		return image32;
-	}
-
-	public void setImage32(String image32) {
-		this.image32 = image32;
-	}
-
-	public String getImage48() {
-		return image48;
-	}
-
-	public void setImage48(String image48) {
-		this.image48 = image48;
-	}
-
-	public String getImage64() {
-		return image64;
-	}
-
-	public void setImage64(String image64) {
-		this.image64 = image64;
-	}
-
-	public String getImage128() {
-		return image128;
-	}
-
-	public void setImage128(String image128) {
-		this.image128 = image128;
-	}
-
-	public ConnectorDescriptor getConnectorDescriptor() {
-		return connectorDescriptor;
-	}
-
-	public void setConnectorDescriptor(ConnectorDescriptor connectorDescriptor) {
-		this.connectorDescriptor = connectorDescriptor;
-	}
-
-	public ConnectorCategory getConnectorCategory() {
-		return connectorCategory;
-	}
-
-	public void setConnectorCategory(ConnectorCategory connectorCategory) {
-		this.connectorCategory = connectorCategory;
-	}
-
-	public void validate() throws ValidationException {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/JarDiscoverySource.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/JarDiscoverySource.java
deleted file mode 100644
index 5c44acd..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/JarDiscoverySource.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.io.File;
-import java.io.UnsupportedEncodingException;
-import java.net.MalformedURLException;
-import java.net.URL;
-import java.net.URLEncoder;
-
-/**
- * 
- * @author David Green
- */
-public class JarDiscoverySource extends AbstractDiscoverySource {
-
-	private final String id;
-
-	private final File jarFile;
-
-	public JarDiscoverySource(String id, File jarFile) {
-		this.id = id;
-		this.jarFile = jarFile;
-	}
-
-	@Override
-	public Object getId() {
-		return id;
-	}
-
-	@Override
-	public URL getResource(String resourceName) {
-		try {
-			String prefix = jarFile.toURI().toURL().toExternalForm();
-
-			return new URL("jar:" + prefix + "!/" + URLEncoder.encode(resourceName, "utf-8")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
-		} catch (MalformedURLException e) {
-			throw new IllegalStateException(e);
-		} catch (UnsupportedEncodingException e) {
-			throw new IllegalStateException(e);
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Messages.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Messages.java
deleted file mode 100644
index 73b91ab..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Messages.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author David Green
- */
-class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.discovery.core.model.messages"; //$NON-NLS-1$
-
-	public static String BundleDiscoveryStrategy_3;
-
-	public static String BundleDiscoveryStrategy_categoryDisallowed;
-
-	public static String BundleDiscoveryStrategy_task_loading_local_extensions;
-
-	public static String BundleDiscoveryStrategy_task_processing_extensions;
-
-	public static String BundleDiscoveryStrategy_unexpected_element;
-
-	public static String ConnectorCategory_connectorCategory_relevance_invalid;
-
-	public static String ConnectorCategory_must_specify_connectorCategory_id;
-
-	public static String ConnectorCategory_must_specify_connectorCategory_name;
-
-	public static String ConnectorDescriptor_invalid_connectorDescriptor_siteUrl;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_categoryId;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_id;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_kind;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_license;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_name;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_provider;
-
-	public static String ConnectorDescriptor_must_specify_connectorDescriptor_siteUrl;
-
-	public static String ConnectorDiscovery_bundle_references_unknown_category;
-
-	public static String ConnectorDiscovery_duplicate_category_id;
-
-	public static String ConnectorDiscovery_exception_disposing;
-
-	public static String ConnectorDiscovery_illegal_filter_syntax;
-
-	public static String ConnectorDiscovery_task_discovering_connectors;
-
-	public static String ConnectorDiscovery_task_verifyingAvailability;
-
-	public static String ConnectorDiscovery_unexpected_exception;
-
-	public static String ConnectorDiscoveryExtensionReader_unexpected_element_icon;
-
-	public static String ConnectorDiscoveryExtensionReader_unexpected_element_overview;
-
-	public static String ConnectorDiscoveryExtensionReader_unexpected_value_kind;
-
-	public static String DirectoryParser_no_directory;
-
-	public static String DirectoryParser_unexpected_element;
-
-	public static String DiscoveryRegistryStrategy_cannot_load_bundle;
-
-	public static String DiscoveryRegistryStrategy_missing_pluginxml;
-
-	public static String FeatureFilter_must_specify_featureFilter_featureId;
-
-	public static String FeatureFilter_must_specify_featureFilter_version;
-
-	public static String Group_must_specify_group_id;
-
-	public static String RemoteBundleDiscoveryStrategy_cannot_download_bundle;
-
-	public static String RemoteBundleDiscoveryStrategy_empty_directory;
-
-	public static String RemoteBundleDiscoveryStrategy_io_failure_discovery_directory;
-
-	public static String RemoteBundleDiscoveryStrategy_io_failure_temp_storage;
-
-	public static String RemoteBundleDiscoveryStrategy_task_remote_discovery;
-
-	public static String RemoteBundleDiscoveryStrategy_unexpectedError;
-
-	public static String RemoteBundleDiscoveryStrategy_unknown_host_discovery_directory;
-
-	public static String RemoteBundleDiscoveryStrategy_unrecognized_discovery_url;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Overview.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Overview.java
deleted file mode 100644
index 479e729..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Overview.java
+++ /dev/null
@@ -1,84 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * @author David Green
- */
-public class Overview {
-
-	protected String summary;
-
-	protected String url;
-
-	protected String screenshot;
-
-	protected ConnectorDescriptor connectorDescriptor;
-
-	protected ConnectorCategory connectorCategory;
-
-	public Overview() {
-	}
-
-	/**
-	 * A description providing detailed information about the item. Newlines can be used to format the text into
-	 * multiple paragraphs if necessary. Text must fit into an area 320x240, otherwise it will be truncated in the UI.
-	 * More lengthy descriptions can be provided on a web page if required, see @url.
-	 */
-	public String getSummary() {
-		return summary;
-	}
-
-	public void setSummary(String summary) {
-		this.summary = summary;
-	}
-
-	/**
-	 * An URL that points to a web page with more information relevant to the connector or category.
-	 */
-	public String getUrl() {
-		return url;
-	}
-
-	public void setUrl(String url) {
-		this.url = url;
-	}
-
-	/**
-	 * 320x240 PNG, JPEG or GIF
-	 */
-	public String getScreenshot() {
-		return screenshot;
-	}
-
-	public void setScreenshot(String screenshot) {
-		this.screenshot = screenshot;
-	}
-
-	public ConnectorDescriptor getConnectorDescriptor() {
-		return connectorDescriptor;
-	}
-
-	public void setConnectorDescriptor(ConnectorDescriptor connectorDescriptor) {
-		this.connectorDescriptor = connectorDescriptor;
-	}
-
-	public ConnectorCategory getConnectorCategory() {
-		return connectorCategory;
-	}
-
-	public void setConnectorCategory(ConnectorCategory connectorCategory) {
-		this.connectorCategory = connectorCategory;
-	}
-
-	public void validate() throws ValidationException {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Policy.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Policy.java
deleted file mode 100644
index ee7fe55..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/Policy.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-/**
- * a policy defines what is permitted.
- * 
- * @author David Green
- */
-public class Policy {
-	/**
-	 * Define system property <code>org.eclipse.mylyn.internal.discovery.core.model.Policy.permissive=true</code> to
-	 * allow for categories to be permitted by anyone. For testing purposes.
-	 */
-	private static final boolean PERMISSIVE = Boolean.getBoolean(Policy.class.getName() + ".permissive"); //$NON-NLS-1$
-
-	private static final Policy DEFAULT = new Policy(false);
-
-	private final boolean permitCategories;
-
-	public Policy(boolean permitCategories) {
-		this.permitCategories = permitCategories;
-	}
-
-	public boolean isPermitCategories() {
-		return permitCategories || PERMISSIVE;
-	}
-
-	public static Policy defaultPolicy() {
-		return DEFAULT;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/RemoteBundleDiscoveryStrategy.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/RemoteBundleDiscoveryStrategy.java
deleted file mode 100644
index ae78c69..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/RemoteBundleDiscoveryStrategy.java
+++ /dev/null
@@ -1,344 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import java.io.File;
-import java.io.IOException;
-import java.io.Reader;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.Callable;
-import java.util.concurrent.ExecutionException;
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
-import java.util.concurrent.Future;
-import java.util.concurrent.TimeUnit;
-import java.util.concurrent.TimeoutException;
-
-import org.eclipse.core.internal.registry.ExtensionRegistry;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IContributor;
-import org.eclipse.core.runtime.IExtension;
-import org.eclipse.core.runtime.IExtensionPoint;
-import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.core.runtime.OperationCanceledException;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.mylyn.commons.net.WebLocation;
-import org.eclipse.mylyn.internal.discovery.core.DiscoveryCore;
-import org.eclipse.mylyn.internal.discovery.core.model.Directory.Entry;
-import org.eclipse.mylyn.internal.discovery.core.util.WebUtil;
-import org.eclipse.mylyn.internal.discovery.core.util.WebUtil.TextContentProcessor;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * A discovery strategy that downloads a simple directory of remote jars. The directory is first downloaded, then each
- * remote jar is downloaded.
- * 
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class RemoteBundleDiscoveryStrategy extends BundleDiscoveryStrategy {
-
-	private String directoryUrl;
-
-	private DiscoveryRegistryStrategy registryStrategy;
-
-	private File temporaryStorage;
-
-	private int maxDiscoveryJarDownloadAttempts = 1;
-
-	@Override
-	public void performDiscovery(IProgressMonitor monitor) throws CoreException {
-		if (connectors == null || categories == null || directoryUrl == null) {
-			throw new IllegalStateException();
-		}
-		if (registryStrategy != null) {
-			throw new IllegalStateException();
-		}
-
-		final int totalTicks = 100000;
-		final int ticksTenPercent = totalTicks / 10;
-		monitor.beginTask(Messages.RemoteBundleDiscoveryStrategy_task_remote_discovery, totalTicks);
-		try {
-			File registryCacheFolder;
-			try {
-				if (temporaryStorage != null && temporaryStorage.exists()) {
-					delete(temporaryStorage);
-				}
-				temporaryStorage = File.createTempFile(RemoteBundleDiscoveryStrategy.class.getSimpleName(), ".tmp"); //$NON-NLS-1$
-				temporaryStorage.delete();
-				if (!temporaryStorage.mkdirs()) {
-					throw new IOException();
-				}
-				registryCacheFolder = new File(temporaryStorage, ".rcache"); //$NON-NLS-1$
-				if (!registryCacheFolder.mkdirs()) {
-					throw new IOException();
-				}
-			} catch (IOException e) {
-				throw new CoreException(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-						Messages.RemoteBundleDiscoveryStrategy_io_failure_temp_storage, e));
-			}
-			if (monitor.isCanceled()) {
-				return;
-			}
-
-			Directory directory;
-
-			WebLocation webLocation = new WebLocation(directoryUrl);
-			try {
-				final Directory[] temp = new Directory[1];
-				WebUtil.readResource(webLocation, new TextContentProcessor() {
-					public void process(Reader reader) throws IOException {
-						DirectoryParser parser = new DirectoryParser();
-						temp[0] = parser.parse(reader);
-					}
-				}, new SubProgressMonitor(monitor, ticksTenPercent));
-				directory = temp[0];
-				if (directory == null) {
-					throw new IllegalStateException();
-				}
-			} catch (UnknownHostException e) {
-				throw new CoreException(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-						Messages.RemoteBundleDiscoveryStrategy_unknown_host_discovery_directory, e.getMessage()), e));
-			} catch (IOException e) {
-				throw new CoreException(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-						Messages.RemoteBundleDiscoveryStrategy_io_failure_discovery_directory, e));
-			}
-			if (monitor.isCanceled()) {
-				return;
-			}
-			if (directory.getEntries().isEmpty()) {
-				throw new CoreException(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-						Messages.RemoteBundleDiscoveryStrategy_empty_directory));
-			}
-
-			Map<File, Directory.Entry> bundleFileToDirectoryEntry = new HashMap<File, Directory.Entry>();
-
-			ExecutorService executorService = createExecutorService(directory.getEntries().size());
-			try {
-				List<Future<DownloadBundleJob>> futures = new ArrayList<Future<DownloadBundleJob>>();
-				// submit jobs
-				for (Directory.Entry entry : directory.getEntries()) {
-					futures.add(executorService.submit(new DownloadBundleJob(entry, monitor)));
-				}
-				int futureSize = ticksTenPercent * 4 / directory.getEntries().size();
-				// collect job results
-				for (Future<DownloadBundleJob> job : futures) {
-					try {
-						DownloadBundleJob bundleJob;
-						for (;;) {
-							try {
-								bundleJob = job.get(1L, TimeUnit.SECONDS);
-								break;
-							} catch (TimeoutException e) {
-								if (monitor.isCanceled()) {
-									return;
-								}
-							}
-						}
-						if (bundleJob.file != null) {
-							bundleFileToDirectoryEntry.put(bundleJob.file, bundleJob.entry);
-						}
-						monitor.worked(futureSize);
-					} catch (ExecutionException e) {
-						Throwable cause = e.getCause();
-						if (cause instanceof OperationCanceledException) {
-							monitor.setCanceled(true);
-							return;
-						}
-						IStatus status;
-						if (cause instanceof CoreException) {
-							status = ((CoreException) cause).getStatus();
-						} else {
-							status = new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN,
-									Messages.RemoteBundleDiscoveryStrategy_unexpectedError, cause);
-						}
-						// log errors but continue on
-						StatusHandler.log(status);
-					} catch (InterruptedException e) {
-						monitor.setCanceled(true);
-						return;
-					}
-				}
-			} finally {
-				executorService.shutdownNow();
-			}
-
-			try {
-				registryStrategy = new DiscoveryRegistryStrategy(new File[] { registryCacheFolder },
-						new boolean[] { false }, this);
-				registryStrategy.setBundles(bundleFileToDirectoryEntry);
-				IExtensionRegistry extensionRegistry = new ExtensionRegistry(registryStrategy, this, this);
-				try {
-					IExtensionPoint extensionPoint = extensionRegistry.getExtensionPoint(ConnectorDiscoveryExtensionReader.EXTENSION_POINT_ID);
-					if (extensionPoint != null) {
-						IExtension[] extensions = extensionPoint.getExtensions();
-						if (extensions.length > 0) {
-							processExtensions(new SubProgressMonitor(monitor, ticksTenPercent * 3), extensions);
-						}
-					}
-				} finally {
-					extensionRegistry.stop(this);
-				}
-			} finally {
-				registryStrategy = null;
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	private class DownloadBundleJob implements Callable<DownloadBundleJob> {
-		private final IProgressMonitor monitor;
-
-		private final Entry entry;
-
-		private File file;
-
-		public DownloadBundleJob(Entry entry, IProgressMonitor monitor) {
-			this.entry = entry;
-			this.monitor = monitor;
-		}
-
-		public DownloadBundleJob call() {
-
-			String bundleUrl = entry.getLocation();
-			for (int attemptCount = 0; attemptCount < maxDiscoveryJarDownloadAttempts; ++attemptCount) {
-				try {
-					if (!bundleUrl.startsWith("http://") && !bundleUrl.startsWith("https://")) { //$NON-NLS-1$//$NON-NLS-2$
-						StatusHandler.log(new Status(IStatus.WARNING, DiscoveryCore.ID_PLUGIN, NLS.bind(
-								Messages.RemoteBundleDiscoveryStrategy_unrecognized_discovery_url, bundleUrl)));
-						continue;
-					}
-					String lastPathElement = bundleUrl.lastIndexOf('/') == -1 ? bundleUrl
-							: bundleUrl.substring(bundleUrl.lastIndexOf('/'));
-					File target = File.createTempFile(
-							lastPathElement.replaceAll("^[a-zA-Z0-9_.]", "_") + "_", ".jar", temporaryStorage); //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
-
-					if (monitor.isCanceled()) {
-						break;
-					}
-
-					WebUtil.downloadResource(target, new WebLocation(bundleUrl), new NullProgressMonitor() {
-						@Override
-						public boolean isCanceled() {
-							return super.isCanceled() || monitor.isCanceled();
-						}
-					}/*don't use sub progress monitor here*/);
-					file = target;
-				} catch (IOException e) {
-					StatusHandler.log(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, NLS.bind(
-							Messages.RemoteBundleDiscoveryStrategy_cannot_download_bundle, bundleUrl, e.getMessage()),
-							e));
-					if (isUnknownHostException(e)) {
-						break;
-					}
-				}
-			}
-			return this;
-		}
-	}
-
-	private ExecutorService createExecutorService(int size) {
-		final int maxThreads = 4;
-		return Executors.newFixedThreadPool(Math.min(size, maxThreads));
-	}
-
-	/**
-	 * walk the exception chain to determine if the given exception or any of its underlying causes are an
-	 * {@link UnknownHostException}.
-	 * 
-	 * @return true if the exception or one of its causes are {@link UnknownHostException}.
-	 */
-	private boolean isUnknownHostException(Throwable t) {
-		while (t != null) {
-			if (t instanceof UnknownHostException) {
-				return true;
-			}
-			Throwable t2 = t.getCause();
-			if (t2 == t) {
-				break;
-			}
-			t = t2;
-		}
-		return false;
-	}
-
-	private void delete(File file) {
-		if (file.exists()) {
-			if (file.isDirectory()) {
-				File[] children = file.listFiles();
-				if (children != null) {
-					for (File child : children) {
-						delete(child);
-					}
-				}
-			}
-			if (!file.delete()) {
-				// fail quietly
-			}
-		}
-	}
-
-	@Override
-	public void dispose() {
-		super.dispose();
-		if (temporaryStorage != null) {
-			delete(temporaryStorage);
-		}
-	}
-
-	public String getDirectoryUrl() {
-		return directoryUrl;
-	}
-
-	public void setDirectoryUrl(String directoryUrl) {
-		this.directoryUrl = directoryUrl;
-	}
-
-	@Override
-	protected AbstractDiscoverySource computeDiscoverySource(IContributor contributor) {
-		Entry directoryEntry = registryStrategy.getDirectoryEntry(contributor);
-		Policy policy = new Policy(directoryEntry.isPermitCategories());
-		JarDiscoverySource discoverySource = new JarDiscoverySource(contributor.getName(),
-				registryStrategy.getJarFile(contributor));
-		discoverySource.setPolicy(policy);
-		return discoverySource;
-	}
-
-	/**
-	 * indicate how many times discovyer jar downloads should be attempted
-	 */
-	public int getMaxDiscoveryJarDownloadAttempts() {
-		return maxDiscoveryJarDownloadAttempts;
-	}
-
-	/**
-	 * indicate how many times discovyer jar downloads should be attempted
-	 * 
-	 * @param maxDiscoveryJarDownloadAttempts
-	 *            a number >= 1
-	 */
-	public void setMaxDiscoveryJarDownloadAttempts(int maxDiscoveryJarDownloadAttempts) {
-		if (maxDiscoveryJarDownloadAttempts < 1 || maxDiscoveryJarDownloadAttempts > 2) {
-			throw new IllegalArgumentException();
-		}
-		this.maxDiscoveryJarDownloadAttempts = maxDiscoveryJarDownloadAttempts;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ValidationException.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ValidationException.java
deleted file mode 100644
index 1b59235..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/ValidationException.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.model;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.mylyn.internal.discovery.core.DiscoveryCore;
-
-/**
- * Indicate that a validation has occurred on the model.
- * 
- * @author David Green
- */
-public class ValidationException extends CoreException {
-
-	private static final long serialVersionUID = -7542361242327905294L;
-
-	public ValidationException(String message) {
-		super(new Status(IStatus.ERROR, DiscoveryCore.ID_PLUGIN, message));
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/messages.properties b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/messages.properties
deleted file mode 100644
index 6b9fcfa..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/model/messages.properties
+++ /dev/null
@@ -1,41 +0,0 @@
-BundleDiscoveryStrategy_3={0}: {1}
-BundleDiscoveryStrategy_categoryDisallowed=Cannot create category ''{0}'' with id ''{1}'' from {2}: disallowed
-BundleDiscoveryStrategy_task_loading_local_extensions=Loading local extensions
-BundleDiscoveryStrategy_task_processing_extensions=Processing extensions
-BundleDiscoveryStrategy_unexpected_element=unexpected element ''{0}''
-ConnectorCategory_connectorCategory_relevance_invalid=connectorCategory/@relevance must be an integer >= 0 and <= 100
-ConnectorCategory_must_specify_connectorCategory_id=Must specify connectorCategory/@id
-ConnectorCategory_must_specify_connectorCategory_name=Must specify connectorCategory/@name
-ConnectorDescriptor_invalid_connectorDescriptor_siteUrl=Invalid connectorDescriptor/@siteUrl
-ConnectorDescriptor_must_specify_connectorDescriptor_categoryId=Must specify connectorDescriptor/@categoryId
-ConnectorDescriptor_must_specify_connectorDescriptor_id=Must specify connectorDescriptor/@id
-ConnectorDescriptor_must_specify_connectorDescriptor_kind=Must specify connectorDescriptor/@kind
-ConnectorDescriptor_must_specify_connectorDescriptor_license=Must specify connectorDescriptor/@license
-ConnectorDescriptor_must_specify_connectorDescriptor_name=Must specify connectorDescriptor/@name
-ConnectorDescriptor_must_specify_connectorDescriptor_provider=Must specify connectorDescriptor/@provider
-ConnectorDescriptor_must_specify_connectorDescriptor_siteUrl=Must specify connectorDescriptor/@siteUrl
-ConnectorDiscovery_bundle_references_unknown_category=Unknown category ''{0}'' referenced by connector ''{1}'' declared in {2}
-ConnectorDiscovery_duplicate_category_id=Duplicate category id ''{0}'': declaring sources: {1}, {2}
-ConnectorDiscovery_exception_disposing=exception disposing 
-ConnectorDiscovery_illegal_filter_syntax=Illegal filter syntax ''{0}'' in connector ''{1}'' declared in {2}
-ConnectorDiscovery_task_discovering_connectors=Retrieving listing from eclipse.org
-ConnectorDiscovery_task_verifyingAvailability=Verifying connector availability
-ConnectorDiscovery_unexpected_exception=Unexpected exception
-ConnectorDiscoveryExtensionReader_unexpected_element_icon=Unexpected element icon
-ConnectorDiscoveryExtensionReader_unexpected_element_overview=Unexpected element overview
-ConnectorDiscoveryExtensionReader_unexpected_value_kind=Unexpected value for kind
-DirectoryParser_no_directory=Unexpected content: no directory available
-DirectoryParser_unexpected_element=Unexpected element ''{0}''
-DiscoveryRegistryStrategy_cannot_load_bundle=Cannot load bundle {0} from url {1}: {2}
-DiscoveryRegistryStrategy_missing_pluginxml=no plugin.xml in bundle
-FeatureFilter_must_specify_featureFilter_featureId=Must specify featureFilter/@featureId
-FeatureFilter_must_specify_featureFilter_version=Must specify featureFilter/@version
-Group_must_specify_group_id=Must specify group/@id
-RemoteBundleDiscoveryStrategy_cannot_download_bundle=Cannot download bundle at {0}: {1}
-RemoteBundleDiscoveryStrategy_empty_directory=Discovery directory is empty
-RemoteBundleDiscoveryStrategy_io_failure_discovery_directory=IO failure: cannot load discovery directory
-RemoteBundleDiscoveryStrategy_io_failure_temp_storage=IO failure: cannot create temporary storage area
-RemoteBundleDiscoveryStrategy_task_remote_discovery=remote discovery
-RemoteBundleDiscoveryStrategy_unexpectedError=Unexpected error
-RemoteBundleDiscoveryStrategy_unknown_host_discovery_directory=Cannot access {0}: unknown host: please check your Internet connection and try again.
-RemoteBundleDiscoveryStrategy_unrecognized_discovery_url=Unrecognized discovery bundle URL: {0}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DefaultSaxErrorHandler.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DefaultSaxErrorHandler.java
deleted file mode 100644
index b3756d9..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DefaultSaxErrorHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.util;
-
-import org.xml.sax.ErrorHandler;
-import org.xml.sax.SAXException;
-import org.xml.sax.SAXParseException;
-
-/**
- * A default implementation of an error handler that throws exceptions on all errors.
- * 
- * @author David Green
- */
-public class DefaultSaxErrorHandler implements ErrorHandler {
-	public void warning(SAXParseException exception) throws SAXException {
-		// ignore
-	}
-
-	public void fatalError(SAXParseException exception) throws SAXException {
-		throw exception;
-	}
-
-	public void error(SAXParseException exception) throws SAXException {
-		throw exception;
-	}
-}
\ No newline at end of file
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryCategoryComparator.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryCategoryComparator.java
deleted file mode 100644
index 26c571c..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryCategoryComparator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.util;
-
-import java.util.Comparator;
-
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-
-/**
- * A comparator that orders categories by relevance and name.
- * 
- * @author David Green
- */
-public class DiscoveryCategoryComparator implements Comparator<DiscoveryCategory> {
-
-	public int compare(DiscoveryCategory o1, DiscoveryCategory o2) {
-		if (o1 == o2) {
-			return 0;
-		}
-		String r1 = o1.getRelevance();
-		String r2 = o2.getRelevance();
-		int i;
-		if (r1 != null && r2 != null) {
-			// don't have to worry about format, since they were already validated
-			// note that higher relevance appears first, thus the reverse order of
-			// the comparison.
-			i = new Integer(r2).compareTo(new Integer(r1));
-		} else if (r1 == null) {
-			return 1;
-		} else {
-			return -1;
-		}
-		if (i == 0) {
-			i = o1.getName().compareToIgnoreCase(o2.getName());
-			if (i == 0) {
-				i = o1.getId().compareTo(o2.getId());
-			}
-		}
-		return i;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryConnectorComparator.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryConnectorComparator.java
deleted file mode 100644
index 65d65d4..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/DiscoveryConnectorComparator.java
+++ /dev/null
@@ -1,83 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.util;
-
-import java.util.Comparator;
-
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.Group;
-
-/**
- * a comparator that orders connectors by group and alphabetically by their name
- * 
- * @author David Green
- */
-public class DiscoveryConnectorComparator implements Comparator<DiscoveryConnector> {
-
-	private final ConnectorCategory category;
-
-	public DiscoveryConnectorComparator(ConnectorCategory category) {
-		if (category == null) {
-			throw new IllegalArgumentException();
-		}
-		this.category = category;
-	}
-
-	/**
-	 * compute the index of the group id
-	 * 
-	 * @param groupId
-	 *            the group id or null
-	 * @return the index, or -1 if not found
-	 */
-	private int computeGroupIndex(String groupId) {
-		if (groupId != null) {
-			int index = -1;
-			for (Group group : category.getGroup()) {
-				++index;
-				if (group.getId().equals(groupId)) {
-					return index;
-				}
-			}
-		}
-		return -1;
-	}
-
-	public int compare(DiscoveryConnector o1, DiscoveryConnector o2) {
-		if (o1.getCategory() != category || o2.getCategory() != category) {
-			throw new IllegalArgumentException();
-		}
-		if (o1 == o2) {
-			return 0;
-		}
-		int g1 = computeGroupIndex(o1.getGroupId());
-		int g2 = computeGroupIndex(o2.getGroupId());
-		int i;
-		if (g1 != g2) {
-			if (g1 == -1) {
-				i = 1;
-			} else if (g2 == -1) {
-				i = -1;
-			} else {
-				i = g1 - g2;
-			}
-		} else {
-			i = o1.getName().compareToIgnoreCase(o2.getName());
-			if (i == 0) {
-				i = o1.getId().compareTo(o2.getId());
-			}
-		}
-		return i;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/IOWithCauseException.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/IOWithCauseException.java
deleted file mode 100644
index f28aed0..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/IOWithCauseException.java
+++ /dev/null
@@ -1,40 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.util;
-
-import java.io.IOException;
-
-/**
- * An IO Exception that allows for {@link #getCause() a cause}.
- * 
- * @author David Green
- */
-public class IOWithCauseException extends IOException {
-
-	private static final long serialVersionUID = 1L;
-
-	private final Throwable cause;
-
-	public IOWithCauseException(String message, Throwable cause) {
-		super(message);
-		this.cause = cause;
-	}
-
-	public IOWithCauseException(Throwable cause) {
-		this.cause = cause;
-	}
-
-	@Override
-	public Throwable getCause() {
-		return cause;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/Messages.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/Messages.java
deleted file mode 100644
index 8db2893..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/Messages.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.core.util;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- * @author David Green
- */
-class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.discovery.core.util.messages"; //$NON-NLS-1$
-
-	public static String WebUtil_cannotDownload;
-
-	public static String WebUtil_task_retrievingUrl;
-
-	public static String WebUtil_task_verifyingUrl;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/WebUtil.java b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/WebUtil.java
deleted file mode 100644
index a6fec42..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/WebUtil.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.core.util;
-
-import java.io.BufferedInputStream;
-import java.io.BufferedOutputStream;
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.io.Reader;
-import java.net.UnknownHostException;
-import java.util.List;
-
-import org.apache.commons.httpclient.HostConfiguration;
-import org.apache.commons.httpclient.HttpClient;
-import org.apache.commons.httpclient.HttpStatus;
-import org.apache.commons.httpclient.URI;
-import org.apache.commons.httpclient.URIException;
-import org.apache.commons.httpclient.methods.GetMethod;
-import org.apache.commons.httpclient.methods.HeadMethod;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.commons.net.AbstractWebLocation;
-import org.eclipse.mylyn.commons.net.Policy;
-import org.eclipse.osgi.util.NLS;
-
-/**
- * A utility for accessing web resources
- * 
- * @author David Green
- */
-public class WebUtil {
-	/**
-	 * implementors are capable of processing character content
-	 * 
-	 * @see WebUtil#readResource(AbstractWebLocation, TextContentProcessor, IProgressMonitor)
-	 */
-	public interface TextContentProcessor {
-		public void process(Reader reader) throws IOException;
-	}
-
-	/**
-	 * Download an HTTP-based resource
-	 * 
-	 * @param target
-	 *            the target file to which the content is saved
-	 * @param location
-	 *            the web location of the content
-	 * @param monitor
-	 *            the monitor
-	 * @throws IOException
-	 *             if a network or IO problem occurs
-	 */
-	public static void downloadResource(File target, AbstractWebLocation location, IProgressMonitor monitor)
-			throws IOException {
-		monitor = Policy.monitorFor(monitor);
-		monitor.beginTask(NLS.bind(Messages.WebUtil_task_retrievingUrl, location.getUrl()), IProgressMonitor.UNKNOWN);
-		try {
-			HttpClient client = new HttpClient();
-			org.eclipse.mylyn.commons.net.WebUtil.configureHttpClient(client, ""); //$NON-NLS-1$
-
-			GetMethod method = new GetMethod(location.getUrl());
-			try {
-				HostConfiguration hostConfiguration = org.eclipse.mylyn.commons.net.WebUtil.createHostConfiguration(
-						client, location, monitor);
-				int result = org.eclipse.mylyn.commons.net.WebUtil.execute(client, hostConfiguration, method, monitor);
-				if (result == HttpStatus.SC_OK) {
-					InputStream in = org.eclipse.mylyn.commons.net.WebUtil.getResponseBodyAsStream(method, monitor);
-					try {
-						in = new BufferedInputStream(in);
-						OutputStream out = new BufferedOutputStream(new FileOutputStream(target));
-						try {
-							int i;
-							while ((i = in.read()) != -1) {
-								out.write(i);
-							}
-						} catch (IOException e) {
-							// avoid partial content
-							out.close();
-							target.delete();
-							throw e;
-						} finally {
-							out.close();
-						}
-					} finally {
-						in.close();
-					}
-				} else {
-					throw new IOException(NLS.bind(Messages.WebUtil_cannotDownload, location.getUrl(), result));
-				}
-			} finally {
-				method.releaseConnection();
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * Read a web-based resource at the specified location using the given processor.
-	 * 
-	 * @param location
-	 *            the web location of the content
-	 * @param processor
-	 *            the processor that will handle content
-	 * @param monitor
-	 *            the monitor
-	 * @throws IOException
-	 *             if a network or IO problem occurs
-	 */
-	public static void readResource(AbstractWebLocation location, TextContentProcessor processor,
-			IProgressMonitor monitor) throws IOException {
-		monitor = Policy.monitorFor(monitor);
-		monitor.beginTask(NLS.bind(Messages.WebUtil_task_retrievingUrl, location.getUrl()), IProgressMonitor.UNKNOWN);
-		try {
-			HttpClient client = new HttpClient();
-			org.eclipse.mylyn.commons.net.WebUtil.configureHttpClient(client, ""); //$NON-NLS-1$
-
-			GetMethod method = new GetMethod(location.getUrl());
-			try {
-				HostConfiguration hostConfiguration = org.eclipse.mylyn.commons.net.WebUtil.createHostConfiguration(
-						client, location, monitor);
-				int result = org.eclipse.mylyn.commons.net.WebUtil.execute(client, hostConfiguration, method, monitor);
-				if (result == HttpStatus.SC_OK) {
-					InputStream in = org.eclipse.mylyn.commons.net.WebUtil.getResponseBodyAsStream(method, monitor);
-					try {
-						BufferedReader reader = new BufferedReader(new InputStreamReader(in,
-								method.getResponseCharSet()));
-						processor.process(reader);
-					} finally {
-						in.close();
-					}
-				} else {
-					throw new IOException(NLS.bind(Messages.WebUtil_cannotDownload, location.getUrl(), result));
-				}
-			} finally {
-				method.releaseConnection();
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-
-	/**
-	 * Verify availability of resources at the given web locations. Normally this would be done using an HTTP HEAD.
-	 * 
-	 * @param locations
-	 *            the locations of the resource to verify
-	 * @param one
-	 *            indicate if only one of the resources must exist
-	 * @param monitor
-	 *            the monitor
-	 * @return true if the resource exists
-	 */
-	public static boolean verifyAvailability(List<? extends AbstractWebLocation> locations, boolean one,
-			IProgressMonitor monitor) {
-		if (locations.isEmpty() || locations.size() > 5) {
-			throw new IllegalArgumentException();
-		}
-		monitor = Policy.monitorFor(monitor);
-		monitor.beginTask(NLS.bind(Messages.WebUtil_task_verifyingUrl, locations.get(0).getUrl()),
-				IProgressMonitor.UNKNOWN);
-		try {
-			HttpClient client = new HttpClient();
-			org.eclipse.mylyn.commons.net.WebUtil.configureHttpClient(client, ""); //$NON-NLS-1$
-
-			HeadMethod method = new HeadMethod();
-			try {
-				int countFound = 0;
-				for (AbstractWebLocation location : locations) {
-					try {
-						method.setURI(new URI(location.getUrl(), true));
-					} catch (URIException e) {
-						if (!one) {
-							break;
-						}
-					}
-					HostConfiguration hostConfiguration = org.eclipse.mylyn.commons.net.WebUtil.createHostConfiguration(
-							client, location, monitor);
-					int result;
-					try {
-						result = org.eclipse.mylyn.commons.net.WebUtil.execute(client, hostConfiguration, method,
-								monitor);
-					} catch (IOException e) {
-						if (!one || e instanceof UnknownHostException) {
-							return false;
-						}
-						continue;
-					}
-					if (result == HttpStatus.SC_OK) {
-						++countFound;
-						if (one) {
-							return true;
-						}
-					} else {
-						if (!one) {
-							return false;
-						}
-					}
-				}
-				return countFound == locations.size();
-			} finally {
-				method.releaseConnection();
-			}
-		} finally {
-			monitor.done();
-		}
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/messages.properties b/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/messages.properties
deleted file mode 100644
index 07bfeec..0000000
--- a/org.eclipse.mylyn.discovery.core/src/org/eclipse/mylyn/internal/discovery/core/util/messages.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-WebUtil_cannotDownload=Cannot download {0}: HTTP response {1}
-WebUtil_task_retrievingUrl=Retrieving {0}
-WebUtil_task_verifyingUrl=Verifying {0}
diff --git a/org.eclipse.mylyn.discovery.core/xsd/directory.xsd b/org.eclipse.mylyn.discovery.core/xsd/directory.xsd
deleted file mode 100644
index 8ffd96c..0000000
--- a/org.eclipse.mylyn.discovery.core/xsd/directory.xsd
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<schema xmlns:tns="http://www.eclipse.org/mylyn/discovery/directory/" 
-	xmlns="http://www.w3.org/2001/XMLSchema" 
-	targetNamespace="http://www.eclipse.org/mylyn/discovery/directory/">
-	
-	<annotation>
-		<documentation>
-		Describes the XML format used by a Mylyn discovery directory.
-		</documentation>
-	</annotation>
-	
-	<complexType name="OpenAttrsComplex">
-		<annotation>
-			<documentation>extend this type to allow for attributes from other namespaces</documentation>
-		</annotation>
-		<complexContent>
-			<restriction base="anyType">
-				<anyAttribute namespace="##other" processContents="lax"/>
-			</restriction>
-		</complexContent>
-	</complexType>
-	
-	
-    <element name="directory">
-    	<complexType>
-    		<complexContent>
-				<extension base="tns:OpenAttrsComplex">
-		    		<sequence>
-		    			<element ref="tns:entry" minOccurs="0" maxOccurs="unbounded"/>
-		    		</sequence>
-    			</extension>
-    		</complexContent>
-    	</complexType>
-    </element>
-    
-    <element name="entry">
-		<complexType>
- 			<complexContent>
-				<extension base="tns:OpenAttrsComplex">
-					<attribute name="url" type="anyURI"/>
-					<attribute name="permitCategories" type="boolean"/>
-				</extension>
-			</complexContent>
-		</complexType>
-	</element>
-</schema>
\ No newline at end of file
diff --git a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.discovery.tests/.settings/org.eclipse.mylyn.tasklist.prefs
similarity index 79%
rename from org.eclipse.mylyn.discovery.core/.settings/org.eclipse.mylyn.tasks.ui.prefs
rename to org.eclipse.mylyn.discovery.tests/.settings/org.eclipse.mylyn.tasklist.prefs
index d8c6d26..0a2cc0b 100644
--- a/org.eclipse.mylyn.discovery.core/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ b/org.eclipse.mylyn.discovery.tests/.settings/org.eclipse.mylyn.tasklist.prefs
@@ -1,4 +1,4 @@
-#Mon Jun 25 03:02:37 GMT 2007
+#Mon Jun 18 17:14:59 PDT 2007
 eclipse.preferences.version=1
 project.repository.kind=bugzilla
 project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.discovery.tests/META-INF/MANIFEST.MF b/org.eclipse.mylyn.discovery.tests/META-INF/MANIFEST.MF
index 58d087a..ce2e51a 100644
--- a/org.eclipse.mylyn.discovery.tests/META-INF/MANIFEST.MF
+++ b/org.eclipse.mylyn.discovery.tests/META-INF/MANIFEST.MF
@@ -4,12 +4,5 @@
 Bundle-SymbolicName: org.eclipse.mylyn.discovery.tests;singleton:=true
 Bundle-Version: 0.0.0
 Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.mylyn.discovery.core;bundle-version="1.0.0",
- org.eclipse.mylyn.discovery.ui;bundle-version="1.0.0",
- org.junit,
- org.eclipse.core.runtime;bundle-version="3.1.0",
- org.eclipse.ui;bundle-version="3.1.0"
-Export-Package: org.eclipse.mylyn.discovery.tests;x-internal:=true,
- org.eclipse.mylyn.discovery.tests.core;x-internal:=true,
- org.eclipse.mylyn.discovery.tests.core.mock;x-internal:=true,
- org.eclipse.mylyn.discovery.tests.core.util;x-internal:=true
+Require-Bundle: org.junit
+Export-Package: org.eclipse.mylyn.discovery.tests
diff --git a/org.eclipse.mylyn.discovery.tests/build.properties b/org.eclipse.mylyn.discovery.tests/build.properties
index 4cc5435..94ab5ca 100644
--- a/org.eclipse.mylyn.discovery.tests/build.properties
+++ b/org.eclipse.mylyn.discovery.tests/build.properties
@@ -12,5 +12,5 @@
 output.. = bin/
 bin.includes = META-INF/,\
                .,\
-               about.html,\
-               plugin.xml
+               about.html
+src.includes = about.html
diff --git a/org.eclipse.mylyn.discovery.tests/images/bugzilla.gif b/org.eclipse.mylyn.discovery.tests/images/bugzilla.gif
deleted file mode 100644
index ec6d66c..0000000
--- a/org.eclipse.mylyn.discovery.tests/images/bugzilla.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.discovery.tests/plugin.xml b/org.eclipse.mylyn.discovery.tests/plugin.xml
deleted file mode 100644
index ed90061..0000000
--- a/org.eclipse.mylyn.discovery.tests/plugin.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.mylyn.discovery.core.connectorDiscovery">
-      <connectorCategory
-            description="a category for testing purposes"
-            id="org.eclipse.mylyn.discovery.tests.connectorCategory1"
-            name="Test Category">
-      </connectorCategory>
-      <connectorDescriptor
-            categoryId="org.eclipse.mylyn.discovery.tests.connectorCategory1"
-            description="a fictitious test connector that does nothing"
-            id="org.eclipse.mylyn.discovery.tests.connectorDescriptor1"
-            kind="task"
-            license="UTL (Unit Test License)"
-            name="Test Connector"
-            provider="UnitTesting"
-            siteUrl="http://foo.nodomain/site">
-      </connectorDescriptor>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/AllDiscoveryTests.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/AllDiscoveryTests.java
index b1c5116..db0e39d 100644
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/AllDiscoveryTests.java
+++ b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/AllDiscoveryTests.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies and others.
+ * Copyright (c) 2004, 2008 Tasktop Technologies 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
@@ -14,12 +14,6 @@
 import junit.framework.Test;
 import junit.framework.TestSuite;
 
-import org.eclipse.mylyn.discovery.tests.core.BundleDiscoveryStrategyTest;
-import org.eclipse.mylyn.discovery.tests.core.ConnectorDiscoveryRemoteTest;
-import org.eclipse.mylyn.discovery.tests.core.ConnectorDiscoveryTest;
-import org.eclipse.mylyn.discovery.tests.core.DirectoryParserTest;
-import org.eclipse.mylyn.discovery.tests.core.RemoteBundleDiscoveryStrategyTest;
-
 /**
  * @author Steffen Pingel
  */
@@ -27,11 +21,7 @@
 
 	public static Test suite() {
 		TestSuite suite = new TestSuite("Tests for org.eclipse.mylyn.discovery");
-		suite.addTestSuite(ConnectorDiscoveryTest.class);
-		suite.addTestSuite(DirectoryParserTest.class);
-		suite.addTestSuite(BundleDiscoveryStrategyTest.class);
-		suite.addTestSuite(RemoteBundleDiscoveryStrategyTest.class);
-		suite.addTestSuite(ConnectorDiscoveryRemoteTest.class);
+		// intentionally empty for Eclipse 3.3
 		return suite;
 	}
 
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/DiscoveryTests.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/DiscoveryTests.java
deleted file mode 100644
index 3252c6c..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/DiscoveryTests.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests;
-
-public abstract class DiscoveryTests {
-	/**
-	 * the URL of the mylyn discovery directory, may be overridden using the system property
-	 * <tt>mylyn.discovery.directory</tt>
-	 */
-	public static final String DEFAULT_MYLYN_DISCOVERY_URL = System.getProperty("mylyn.discovery.directory",
-			"http://www.eclipse.org/mylyn/discovery/directory.xml");
-
-	private DiscoveryTests() {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/BundleDiscoveryStrategyTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/BundleDiscoveryStrategyTest.java
deleted file mode 100644
index 77e26a4..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/BundleDiscoveryStrategyTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests.core;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.discovery.tests.core.mock.MockBundleDiscoveryStrategy;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.Policy;
-
-/**
- * @author David Green
- */
-public class BundleDiscoveryStrategyTest extends TestCase {
-
-	private MockBundleDiscoveryStrategy discoveryStrategy;
-
-	private final List<DiscoveryCategory> categories = new ArrayList<DiscoveryCategory>();
-
-	private final List<DiscoveryConnector> connectors = new ArrayList<DiscoveryConnector>();
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		discoveryStrategy = new MockBundleDiscoveryStrategy();
-		discoveryStrategy.setPolicy(new Policy(true));
-		discoveryStrategy.setCategories(categories);
-		discoveryStrategy.setConnectors(connectors);
-	}
-
-	public void testDiscovery() throws CoreException {
-		discoveryStrategy.performDiscovery(new NullProgressMonitor());
-
-		assertFalse(categories.isEmpty());
-		assertFalse(connectors.isEmpty());
-		DiscoveryCategory category = findCategoryById("org.eclipse.mylyn.discovery.tests.connectorCategory1");
-		assertNotNull(category);
-		DiscoveryConnector connector = findConnectorById("org.eclipse.mylyn.discovery.tests.connectorDescriptor1");
-		assertNotNull(connector);
-	}
-
-	public void testDiscoveryNoCategoriesPolicy() throws CoreException {
-		discoveryStrategy.setPolicy(new Policy(false));
-		discoveryStrategy.performDiscovery(new NullProgressMonitor());
-
-		assertTrue(categories.isEmpty());
-	}
-
-	private DiscoveryConnector findConnectorById(String id) {
-		for (DiscoveryConnector descriptor : connectors) {
-			if (id.equals(descriptor.getId())) {
-				return descriptor;
-			}
-		}
-		return null;
-	}
-
-	private DiscoveryCategory findCategoryById(String id) {
-		for (DiscoveryCategory descriptor : categories) {
-			if (id.equals(descriptor.getId())) {
-				return descriptor;
-			}
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryRemoteTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryRemoteTest.java
deleted file mode 100644
index fb10dcd..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryRemoteTest.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests.core;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.discovery.tests.DiscoveryTests;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDiscovery;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.RemoteBundleDiscoveryStrategy;
-
-/**
- * A test that uses the real discovery directory and verifies that it works, and that all referenced update sites appear
- * to be available.
- * 
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class ConnectorDiscoveryRemoteTest extends TestCase {
-
-	private ConnectorDiscovery connectorDiscovery;
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		connectorDiscovery = new ConnectorDiscovery();
-		connectorDiscovery.setVerifyUpdateSiteAvailability(false);
-
-		connectorDiscovery.getDiscoveryStrategies().clear();
-		RemoteBundleDiscoveryStrategy remoteStrategy = new RemoteBundleDiscoveryStrategy();
-		remoteStrategy.setDirectoryUrl(DiscoveryTests.DEFAULT_MYLYN_DISCOVERY_URL);
-		connectorDiscovery.getDiscoveryStrategies().add(remoteStrategy);
-	}
-
-	public void testRemoteDirectory() throws CoreException {
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertFalse(connectorDiscovery.getCategories().isEmpty());
-		assertFalse(connectorDiscovery.getConnectors().isEmpty());
-	}
-
-	public void testVerifyAvailability() throws CoreException {
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-		for (DiscoveryConnector connector : connectorDiscovery.getConnectors()) {
-			assertNull(connector.getAvailable());
-		}
-		connectorDiscovery.verifySiteAvailability(new NullProgressMonitor());
-
-		assertFalse(connectorDiscovery.getConnectors().isEmpty());
-
-		int unavailableCount = 0;
-		for (DiscoveryConnector connector : connectorDiscovery.getConnectors()) {
-			assertNotNull(connector.getAvailable());
-			if (!connector.getAvailable()) {
-				++unavailableCount;
-			}
-		}
-		if (unavailableCount > 0) {
-			fail(String.format("%s unavailable: %s", unavailableCount, computeUnavailableConnetorDescriptorNames()));
-		}
-	}
-
-	private String computeUnavailableConnetorDescriptorNames() {
-		String message = "";
-		for (DiscoveryConnector connector : connectorDiscovery.getConnectors()) {
-			if (!connector.getAvailable()) {
-				if (message.length() > 0) {
-					message += ", ";
-				}
-				message += connector.getName();
-			}
-		}
-		return message;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryTest.java
deleted file mode 100644
index 4031238..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/ConnectorDiscoveryTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core;
-
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Properties;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.discovery.tests.core.mock.DiscoveryConnectorMockFactory;
-import org.eclipse.mylyn.discovery.tests.core.mock.MockDiscoveryStrategy;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDiscovery;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.osgi.framework.Version;
-
-/**
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class ConnectorDiscoveryTest extends TestCase {
-
-	private ConnectorDiscovery connectorDiscovery;
-
-	private MockDiscoveryStrategy mockDiscoveryStrategy;
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		connectorDiscovery = new ConnectorDiscovery();
-		mockDiscoveryStrategy = new MockDiscoveryStrategy();
-		connectorDiscovery.getDiscoveryStrategies().add(mockDiscoveryStrategy);
-	}
-
-	public void testPlatformFilter_None() throws CoreException {
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-		assertEquals(mockDiscoveryStrategy.getConnectorCount(), connectorDiscovery.getConnectors().size());
-	}
-
-	public void testPlatformFilter_NegativeMatch() throws CoreException {
-		mockDiscoveryStrategy.setConnectorMockFactory(new DiscoveryConnectorMockFactory() {
-			@Override
-			protected void populateMockData() {
-				super.populateMockData();
-				platformFilter("(& (osgi.os=macosx) (osgi.ws=carbon))");
-			}
-		});
-		// test to ensure that all non-matching platform filters are not discovered
-		Dictionary<Object, Object> environment = new Properties();
-		environment.put("osgi.os", "win32");
-		environment.put("osgi.ws", "windows");
-		connectorDiscovery.setEnvironment(environment);
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertTrue(connectorDiscovery.getConnectors().isEmpty());
-	}
-
-	public void testPlatformFilter_PositiveMatch() throws CoreException {
-		mockDiscoveryStrategy.setConnectorMockFactory(new DiscoveryConnectorMockFactory() {
-			@Override
-			protected void populateMockData() {
-				super.populateMockData();
-				platformFilter("(& (osgi.os=macosx) (osgi.ws=carbon))");
-			}
-		});
-		Dictionary<Object, Object> environment = new Properties();
-
-		// test to ensure that all matching platform filters are discovered
-		environment.put("osgi.os", "macosx");
-		environment.put("osgi.ws", "carbon");
-		connectorDiscovery.setEnvironment(environment);
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertFalse(connectorDiscovery.getConnectors().isEmpty());
-		assertEquals(mockDiscoveryStrategy.getConnectorCount(), connectorDiscovery.getConnectors().size());
-	}
-
-	public void testFeatureFilter_PositiveMatch() throws CoreException {
-		mockDiscoveryStrategy.setConnectorMockFactory(new DiscoveryConnectorMockFactory() {
-			@Override
-			protected void populateMockData() {
-				super.populateMockData();
-				featureFilter("com.foo.bar.feature", "[1.0,2.0)");
-			}
-		});
-		Map<String, Version> featureToVersion = new HashMap<String, Version>();
-		featureToVersion.put("com.foo.bar.feature", new Version("1.1"));
-		connectorDiscovery.setFeatureToVersion(featureToVersion);
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertFalse(connectorDiscovery.getConnectors().isEmpty());
-		assertEquals(mockDiscoveryStrategy.getConnectorCount(), connectorDiscovery.getConnectors().size());
-	}
-
-	public void testFeatureFilter_NegativeMatch_VersionMismatch() throws CoreException {
-		mockDiscoveryStrategy.setConnectorMockFactory(new DiscoveryConnectorMockFactory() {
-			@Override
-			protected void populateMockData() {
-				super.populateMockData();
-				featureFilter("com.foo.bar.feature", "[1.2,2.0)");
-			}
-		});
-		Map<String, Version> featureToVersion = new HashMap<String, Version>();
-		featureToVersion.put("com.foo.bar.feature", new Version("1.1"));
-		connectorDiscovery.setFeatureToVersion(featureToVersion);
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertTrue(connectorDiscovery.getConnectors().isEmpty());
-	}
-
-	public void testFeatureFilter_NegativeMatch_NotPresent() throws CoreException {
-		mockDiscoveryStrategy.setConnectorMockFactory(new DiscoveryConnectorMockFactory() {
-			@Override
-			protected void populateMockData() {
-				super.populateMockData();
-				featureFilter("com.foo.bar.feature", "[1.2,2.0)");
-			}
-		});
-		Map<String, Version> featureToVersion = new HashMap<String, Version>();
-		connectorDiscovery.setFeatureToVersion(featureToVersion);
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertTrue(connectorDiscovery.getConnectors().isEmpty());
-	}
-
-	public void testCategorization() throws CoreException {
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-		assertTrue(!connectorDiscovery.getConnectors().isEmpty());
-		assertTrue(!connectorDiscovery.getCategories().isEmpty());
-
-		for (DiscoveryConnector connector : connectorDiscovery.getConnectors()) {
-			assertNotNull(connector.getCategory());
-			assertEquals(connector.getCategoryId(), connector.getCategory().getId());
-			assertTrue(connector.getCategory().getConnectors().contains(connector));
-		}
-	}
-
-	public void testMultipleStrategies() throws CoreException {
-		MockDiscoveryStrategy strategy = new MockDiscoveryStrategy();
-		strategy.setConnectorMockFactory(mockDiscoveryStrategy.getConnectorMockFactory());
-		strategy.setCategoryMockFactory(mockDiscoveryStrategy.getCategoryMockFactory());
-		connectorDiscovery.getDiscoveryStrategies().add(strategy);
-
-		connectorDiscovery.performDiscovery(new NullProgressMonitor());
-
-		assertEquals(mockDiscoveryStrategy.getConnectorMockFactory().getCreatedCount(),
-				connectorDiscovery.getConnectors().size());
-		assertEquals(mockDiscoveryStrategy.getCategoryMockFactory().getCreatedCount(),
-				connectorDiscovery.getCategories().size());
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/DirectoryParserTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/DirectoryParserTest.java
deleted file mode 100644
index 5ca32e9..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/DirectoryParserTest.java
+++ /dev/null
@@ -1,119 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests.core;
-
-import java.io.IOException;
-import java.io.StringReader;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.discovery.core.model.Directory;
-import org.eclipse.mylyn.internal.discovery.core.model.DirectoryParser;
-
-/**
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class DirectoryParserTest extends TestCase {
-
-	private DirectoryParser parser;
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		parser = new DirectoryParser();
-	}
-
-	public void testParse() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals("http://foo.bar.nodomain/baz.jar", directory.getEntries().get(0).getLocation());
-	}
-
-	public void testParseBadFormat() throws IOException {
-		try {
-			parser.parse(new StringReader(
-					"<directory2 xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\"/></directory2>"));
-			fail("Expected exception");
-		} catch (IOException e) {
-			// expected
-		}
-	}
-
-	public void testParseMalformed() throws IOException {
-		try {
-			parser.parse(new StringReader(
-					"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\">"));
-			fail("Expected exception");
-		} catch (IOException e) {
-			// expected
-		}
-	}
-
-	public void testParseUnexpectedElementsAndAttributes() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\" id=\"asdf\"><baz/></entry><foo/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals("http://foo.bar.nodomain/baz.jar", directory.getEntries().get(0).getLocation());
-	}
-
-	public void testParseNoNS() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory><entry url=\"http://foo.bar.nodomain/baz.jar\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals("http://foo.bar.nodomain/baz.jar", directory.getEntries().get(0).getLocation());
-	}
-
-	public void testParsePermitCategoriesTrue() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\" permitCategories=\"true\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals(true, directory.getEntries().get(0).isPermitCategories());
-	}
-
-	public void testParsePermitCategoriesFalse() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\" permitCategories=\"false\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals(false, directory.getEntries().get(0).isPermitCategories());
-	}
-
-	public void testParsePermitCategoriesNotSpecified() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals(false, directory.getEntries().get(0).isPermitCategories());
-	}
-
-	public void testParsePermitCategoriesSpecifiedBadly() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\" permitCategories=\"\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals(false, directory.getEntries().get(0).isPermitCategories());
-	}
-
-	public void testParsePermitCategoriesSpecifiedBadly2() throws IOException {
-		Directory directory = parser.parse(new StringReader(
-				"<directory xmlns=\"http://www.eclipse.org/mylyn/discovery/directory/\"><entry url=\"http://foo.bar.nodomain/baz.jar\" permitCategories=\"asdf\"/></directory>"));
-		assertNotNull(directory);
-		assertEquals(1, directory.getEntries().size());
-		assertEquals(false, directory.getEntries().get(0).isPermitCategories());
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/RemoteBundleDiscoveryStrategyTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/RemoteBundleDiscoveryStrategyTest.java
deleted file mode 100644
index f857886..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/RemoteBundleDiscoveryStrategyTest.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.ArrayList;
-
-import junit.framework.TestCase;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.NullProgressMonitor;
-import org.eclipse.mylyn.discovery.tests.DiscoveryTests;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.RemoteBundleDiscoveryStrategy;
-
-/**
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class RemoteBundleDiscoveryStrategyTest extends TestCase {
-
-	private RemoteBundleDiscoveryStrategy discoveryStrategy;
-
-	@Override
-	protected void setUp() throws Exception {
-		discoveryStrategy = new RemoteBundleDiscoveryStrategy();
-		discoveryStrategy.setDirectoryUrl(DiscoveryTests.DEFAULT_MYLYN_DISCOVERY_URL);
-		discoveryStrategy.setCategories(new ArrayList<DiscoveryCategory>());
-		discoveryStrategy.setConnectors(new ArrayList<DiscoveryConnector>());
-	}
-
-	public void testPerformDiscovery() throws CoreException, IOException {
-		discoveryStrategy.performDiscovery(new NullProgressMonitor());
-		assertFalse(discoveryStrategy.getCategories().isEmpty());
-		for (DiscoveryCategory category : discoveryStrategy.getCategories()) {
-			System.out.println(String.format("%s: %s: %s", category.getId(), category.getName(),
-					category.getDescription()));
-			assertNotNull(category.getId());
-			assertNotNull(category.getName());
-			assertNotNull(category.getDescription());
-		}
-		assertFalse(discoveryStrategy.getConnectors().isEmpty());
-		for (DiscoveryConnector connector : discoveryStrategy.getConnectors()) {
-			System.out.println(String.format("%s: %s: %s", connector.getId(), connector.getName(),
-					connector.getDescription()));
-			assertNotNull(connector.getId());
-			assertNotNull(connector.getKind());
-			assertNotNull(connector.getName());
-			assertNotNull(connector.getDescription());
-
-			// we _know_ that the bundle must have a plugin.xml... so verify that the source is working correctly
-			assertNotNull(connector.getSource());
-			URL pluginXmlUrl = connector.getSource().getResource("plugin.xml");
-			System.out.println("URL: " + pluginXmlUrl);
-			InputStream in = pluginXmlUrl.openStream();
-			assertNotNull(in);
-			in.close();
-		}
-
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/AbstractMockFactory.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/AbstractMockFactory.java
deleted file mode 100644
index de8f9da..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/AbstractMockFactory.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core.mock;
-
-/**
- * 
- * @author David Green
- */
-public abstract class AbstractMockFactory<MockType> {
-
-	protected int seed = 0;
-
-	private MockType mockObject;
-
-	protected MockDiscoverySource source = new MockDiscoverySource();
-
-	public final MockType get() {
-		MockType object = getMockObject();
-		mockObject = null;
-		return object;
-	}
-
-	public final MockType getMockObject() {
-		if (mockObject == null) {
-			++seed;
-			mockObject = createMockObject();
-			populateMockData();
-		}
-		return mockObject;
-	}
-
-	protected abstract void populateMockData();
-
-	protected abstract MockType createMockObject();
-
-	/**
-	 * get the number of objects created by this factory
-	 */
-	public int getCreatedCount() {
-		return seed;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryCategoryMockFactory.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryCategoryMockFactory.java
deleted file mode 100644
index 607d3f0..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryCategoryMockFactory.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core.mock;
-
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.Icon;
-
-/**
- * 
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class DiscoveryCategoryMockFactory extends AbstractMockFactory<DiscoveryCategory> {
-
-	DiscoveryCategory category;
-
-	@Override
-	protected DiscoveryCategory createMockObject() {
-		return new DiscoveryCategory();
-	}
-
-	@Override
-	protected void populateMockData() {
-		// mock up some data
-
-		getMockObject().setSource(source);
-
-		name("Category " + seed).id(DiscoveryCategoryMockFactory.class.getPackage().getName() + ".connector" + seed)
-				.description("A category of things, " + seed);
-
-		Icon icon = new Icon();
-		icon.setImage128("images/ico128.png");
-		icon.setImage16("images/ico16.png");
-		icon.setImage32("images/ico32.png");
-		icon.setImage64("images/ico64.png");
-
-		getMockObject().setIcon(icon);
-		icon.setConnectorCategory(getMockObject());
-	}
-
-	public DiscoveryCategoryMockFactory description(String description) {
-		getMockObject().setDescription(description);
-		return this;
-	}
-
-	public DiscoveryCategoryMockFactory icon(Icon icon) {
-		getMockObject().setIcon(icon);
-		return this;
-	}
-
-	public DiscoveryCategoryMockFactory id(String id) {
-		getMockObject().setId(id);
-		return this;
-	}
-
-	public DiscoveryCategoryMockFactory name(String name) {
-		getMockObject().setName(name);
-		return this;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryConnectorMockFactory.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryConnectorMockFactory.java
deleted file mode 100644
index 9ae4265..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/DiscoveryConnectorMockFactory.java
+++ /dev/null
@@ -1,127 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core.mock;
-
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDescriptorKind;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.FeatureFilter;
-import org.eclipse.mylyn.internal.discovery.core.model.Icon;
-import org.eclipse.mylyn.internal.discovery.core.model.Overview;
-
-/**
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class DiscoveryConnectorMockFactory extends AbstractMockFactory<DiscoveryConnector> {
-
-	public DiscoveryConnectorMockFactory() {
-	}
-
-	@Override
-	protected void populateMockData() {
-
-		// mock up some data
-
-		getMockObject().setSource(source);
-
-		name("Connector " + seed).id(DiscoveryConnectorMockFactory.class.getPackage().getName() + ".connector" + seed)
-				.siteUrl("http://example.nodomain/some/path/updateSite3.x/")
-				.kind(ConnectorDescriptorKind.TASK)
-				.license(seed % 2 == 0 ? "EPL 1.0" : "APL 2.0")
-				.description("a connector for the Example Task System versions 1.0 - 5.3")
-				.categoryId("example")
-				.provider("Testing 123 Inc.");
-
-		Icon icon = new Icon();
-		icon.setImage128("images/ico128.png");
-		icon.setImage16("images/ico16.png");
-		icon.setImage32("images/ico32.png");
-		icon.setImage64("images/ico64.png");
-
-		Overview overview = new Overview();
-		overview.setScreenshot("images/screenshot-main.png");
-		overview.setSummary("some long text that summarizes the connector");
-		overview.setUrl("http://example.nodomain/some/path/updateSite3.x/overview.html");
-
-		icon(icon).overview(overview);
-		icon.setConnectorDescriptor(getMockObject());
-		overview.setConnectorDescriptor(getMockObject());
-	}
-
-	@Override
-	protected DiscoveryConnector createMockObject() {
-		return new DiscoveryConnector();
-	}
-
-	public DiscoveryConnectorMockFactory categoryId(String categoryId) {
-		getMockObject().setCategoryId(categoryId);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory description(String description) {
-		getMockObject().setDescription(description);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory icon(Icon icon) {
-		getMockObject().setIcon(icon);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory id(String id) {
-		getMockObject().setId(id);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory kind(ConnectorDescriptorKind kind) {
-		getMockObject().getKind().add(kind);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory license(String license) {
-		getMockObject().setLicense(license);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory name(String name) {
-		getMockObject().setName(name);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory overview(Overview overview) {
-		getMockObject().setOverview(overview);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory platformFilter(String platformFilter) {
-		getMockObject().setPlatformFilter(platformFilter);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory provider(String provider) {
-		getMockObject().setProvider(provider);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory siteUrl(String siteUrl) {
-		getMockObject().setSiteUrl(siteUrl);
-		return this;
-	}
-
-	public DiscoveryConnectorMockFactory featureFilter(String featureId, String versionRange) {
-		FeatureFilter featureFilter = new FeatureFilter();
-		featureFilter.setConnectorDescriptor(getMockObject());
-		featureFilter.setFeatureId(featureId);
-		featureFilter.setVersion(versionRange);
-		getMockObject().getFeatureFilter().add(featureFilter);
-		return this;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockBundleDiscoveryStrategy.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockBundleDiscoveryStrategy.java
deleted file mode 100644
index 2d40a7c..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockBundleDiscoveryStrategy.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests.core.mock;
-
-import org.eclipse.core.runtime.IContributor;
-import org.eclipse.mylyn.internal.discovery.core.model.AbstractDiscoverySource;
-import org.eclipse.mylyn.internal.discovery.core.model.BundleDiscoveryStrategy;
-import org.eclipse.mylyn.internal.discovery.core.model.Policy;
-
-/**
- * a discovery strategy for bundles where the policy can be arbitrarily set
- * 
- * @author David Green
- */
-public class MockBundleDiscoveryStrategy extends BundleDiscoveryStrategy {
-	private Policy policy = Policy.defaultPolicy();
-
-	@Override
-	protected AbstractDiscoverySource computeDiscoverySource(IContributor contributor) {
-		AbstractDiscoverySource discoverySource = super.computeDiscoverySource(contributor);
-		discoverySource.setPolicy(policy);
-		return discoverySource;
-	}
-
-	public Policy getPolicy() {
-		return policy;
-	}
-
-	public void setPolicy(Policy policy) {
-		this.policy = policy;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoverySource.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoverySource.java
deleted file mode 100644
index a5b9eda..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoverySource.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core.mock;
-
-import java.net.URL;
-
-import org.eclipse.mylyn.internal.discovery.core.model.AbstractDiscoverySource;
-
-/**
- * 
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class MockDiscoverySource extends AbstractDiscoverySource {
-
-	@Override
-	public Object getId() {
-		return "mock:mock";
-	}
-
-	@Override
-	public URL getResource(String resourceName) {
-		return null;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoveryStrategy.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoveryStrategy.java
deleted file mode 100644
index 84fb22d..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/mock/MockDiscoveryStrategy.java
+++ /dev/null
@@ -1,91 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.discovery.tests.core.mock;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.mylyn.internal.discovery.core.model.AbstractDiscoveryStrategy;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-
-/**
- * 
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class MockDiscoveryStrategy extends AbstractDiscoveryStrategy {
-
-	private int connectorCount = 15;
-
-	private int categoryCount = 5;
-
-	protected DiscoveryConnectorMockFactory connectorMockFactory = new DiscoveryConnectorMockFactory();
-
-	protected DiscoveryCategoryMockFactory categoryMockFactory = new DiscoveryCategoryMockFactory();
-
-	@Override
-	public void performDiscovery(IProgressMonitor monitor) throws CoreException {
-		for (int x = 0; x < categoryCount; ++x) {
-			DiscoveryCategory mockCategory = createDiscoveryCategory();
-			getCategories().add(mockCategory);
-		}
-		for (int x = 0; x < connectorCount; ++x) {
-			DiscoveryConnector mockConnector = createDiscoveryConnector();
-			// put the connector in a category
-			if (!getCategories().isEmpty()) {
-				int categoryIndex = x % getCategories().size();
-				mockConnector.setCategoryId(getCategories().get(categoryIndex).getId());
-			}
-			getConnectors().add(mockConnector);
-		}
-	}
-
-	protected DiscoveryCategory createDiscoveryCategory() {
-		return categoryMockFactory.get();
-	}
-
-	protected DiscoveryConnector createDiscoveryConnector() {
-		return connectorMockFactory.get();
-	}
-
-	public DiscoveryCategoryMockFactory getCategoryMockFactory() {
-		return categoryMockFactory;
-	}
-
-	public void setCategoryMockFactory(DiscoveryCategoryMockFactory categoryMockFactory) {
-		this.categoryMockFactory = categoryMockFactory;
-	}
-
-	public DiscoveryConnectorMockFactory getConnectorMockFactory() {
-		return connectorMockFactory;
-	}
-
-	public void setConnectorMockFactory(DiscoveryConnectorMockFactory connectorMockFactory) {
-		this.connectorMockFactory = connectorMockFactory;
-	}
-
-	public int getConnectorCount() {
-		return connectorCount;
-	}
-
-	public void setConnectorCount(int connectorCount) {
-		this.connectorCount = connectorCount;
-	}
-
-	public int getCategoryCount() {
-		return categoryCount;
-	}
-
-	public void setCategoryCount(int categoryCount) {
-		this.categoryCount = categoryCount;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryCategoryComparatorTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryCategoryComparatorTest.java
deleted file mode 100644
index f5afcc3..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryCategoryComparatorTest.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests.core.util;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.util.DiscoveryCategoryComparator;
-
-@SuppressWarnings("restriction")
-public class DiscoveryCategoryComparatorTest extends TestCase {
-
-	private DiscoveryCategoryComparator comparator;
-
-	private DiscoveryCategory category1;
-
-	private DiscoveryCategory category2;
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		comparator = new DiscoveryCategoryComparator();
-		category1 = new DiscoveryCategory();
-		category2 = new DiscoveryCategory();
-	}
-
-	public void testSortByRelevanceInequal() {
-		category1.setRelevance("100");
-		category2.setRelevance("50");
-		assertEquals(-1, comparator.compare(category1, category2));
-		assertEquals(1, comparator.compare(category2, category1));
-	}
-
-	public void testSortByRelevanceOneNotSpecified() {
-		category1.setRelevance("10");
-		assertEquals(-1, comparator.compare(category1, category2));
-		assertEquals(1, comparator.compare(category2, category1));
-	}
-
-	public void testSortByRelevanceSame() {
-		category1.setRelevance("10");
-		category1.setName("test");
-		category1.setId("1");
-		category2.setRelevance("10");
-		category2.setName("test");
-		category2.setId("1");
-		assertEquals(0, comparator.compare(category1, category2));
-		assertEquals(0, comparator.compare(category2, category1));
-	}
-
-	public void testSortByRelevanceSameIdsDiffer() {
-		category1.setRelevance("10");
-		category1.setName("test");
-		category1.setId("a");
-		category2.setRelevance("10");
-		category2.setName("test");
-		category2.setId("b");
-		assertEquals(-1, comparator.compare(category1, category2));
-		assertEquals(1, comparator.compare(category2, category1));
-	}
-
-	public void testSortByRelevanceSameNamesDiffer() {
-		category1.setRelevance("10");
-		category1.setName("a");
-		category1.setId("a");
-		category2.setRelevance("10");
-		category2.setName("b");
-		category2.setId("a");
-		assertEquals(-1, comparator.compare(category1, category2));
-		assertEquals(1, comparator.compare(category2, category1));
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryConnectorComparatorTest.java b/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryConnectorComparatorTest.java
deleted file mode 100644
index b450fe1..0000000
--- a/org.eclipse.mylyn.discovery.tests/src/org/eclipse/mylyn/discovery/tests/core/util/DiscoveryConnectorComparatorTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2004, 2008 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.discovery.tests.core.util;
-
-import junit.framework.TestCase;
-
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.Group;
-import org.eclipse.mylyn.internal.discovery.core.util.DiscoveryConnectorComparator;
-
-@SuppressWarnings("restriction")
-public class DiscoveryConnectorComparatorTest extends TestCase {
-
-	private DiscoveryCategory category;
-
-	private DiscoveryConnectorComparator comparator;
-
-	@Override
-	protected void setUp() throws Exception {
-		super.setUp();
-		category = new DiscoveryCategory();
-		comparator = new DiscoveryConnectorComparator(category);
-	}
-
-	private Group addGroup(String id) {
-		Group group = new Group();
-		group.setId(id);
-		category.getGroup().add(group);
-		return group;
-	}
-
-	private DiscoveryConnector addConnectorDescriptor(String id, String name, String groupId) {
-		DiscoveryConnector connector = new DiscoveryConnector();
-		connector.setId(id);
-		connector.setName(name);
-		connector.setGroupId(groupId);
-		connector.setCategory(category);
-		category.getConnectors().add(connector);
-		return connector;
-	}
-
-	public void testOrderByGroup() {
-		addGroup("1");
-		addGroup("2");
-		DiscoveryConnector t1 = addConnectorDescriptor("b", "btest", "2");
-		DiscoveryConnector t2 = addConnectorDescriptor("a", "atest", "2");
-		DiscoveryConnector t3 = addConnectorDescriptor("c", "ctest", "1");
-		DiscoveryConnector t4 = addConnectorDescriptor("d", "dtest", "1");
-		DiscoveryConnector t5 = addConnectorDescriptor("0", "0test", null);
-
-		assertEquals(-1, comparator.compare(t2, t1));
-		assertEquals(1, comparator.compare(t1, t2));
-		assertEquals(-1, comparator.compare(t3, t4));
-		assertEquals(1, comparator.compare(t4, t3));
-
-		assertEquals(-1, comparator.compare(t1, t5));
-		assertEquals(1, comparator.compare(t5, t1));
-		assertEquals(-1, comparator.compare(t2, t5));
-		assertEquals(1, comparator.compare(t5, t2));
-		assertEquals(-1, comparator.compare(t3, t5));
-		assertEquals(1, comparator.compare(t5, t3));
-		assertEquals(-1, comparator.compare(t4, t5));
-		assertEquals(1, comparator.compare(t5, t4));
-
-		assertEquals(-1, comparator.compare(t3, t1));
-		assertEquals(1, comparator.compare(t1, t3));
-		assertEquals(-1, comparator.compare(t3, t2));
-		assertEquals(1, comparator.compare(t2, t3));
-
-		assertEquals(-1, comparator.compare(t4, t1));
-		assertEquals(1, comparator.compare(t1, t4));
-		assertEquals(-1, comparator.compare(t4, t2));
-		assertEquals(1, comparator.compare(t2, t4));
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/.classpath b/org.eclipse.mylyn.discovery.ui/.classpath
deleted file mode 100644
index b6288ed..0000000
--- a/org.eclipse.mylyn.discovery.ui/.classpath
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/J2SE-1.5"/>
-	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins">
-		<accessrules>
-			<accessrule kind="accessible" pattern="org/eclipse/mylyn/internal/provisional/**"/>
-		</accessrules>
-	</classpathentry>
-	<classpathentry kind="src" path="src"/>
-	<classpathentry kind="output" path="bin"/>
-</classpath>
diff --git a/org.eclipse.mylyn.discovery.ui/.cvsignore b/org.eclipse.mylyn.discovery.ui/.cvsignore
deleted file mode 100644
index ba077a4..0000000
--- a/org.eclipse.mylyn.discovery.ui/.cvsignore
+++ /dev/null
@@ -1 +0,0 @@
-bin
diff --git a/org.eclipse.mylyn.discovery.ui/.project b/org.eclipse.mylyn.discovery.ui/.project
deleted file mode 100644
index 78c1ff5..0000000
--- a/org.eclipse.mylyn.discovery.ui/.project
+++ /dev/null
@@ -1,34 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>org.eclipse.mylyn.discovery.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>
-		<buildCommand>
-			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.pde.PluginNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
-	</natures>
-</projectDescription>
diff --git a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.core.prefs
deleted file mode 100644
index 654a737..0000000
--- a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.core.prefs
+++ /dev/null
@@ -1,339 +0,0 @@
-#Tue May 12 21:05:03 PDT 2009
-eclipse.preferences.version=1
-org.eclipse.jdt.core.codeComplete.argumentPrefixes=
-org.eclipse.jdt.core.codeComplete.argumentSuffixes=
-org.eclipse.jdt.core.codeComplete.fieldPrefixes=
-org.eclipse.jdt.core.codeComplete.fieldSuffixes=
-org.eclipse.jdt.core.codeComplete.localPrefixes=
-org.eclipse.jdt.core.codeComplete.localSuffixes=
-org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
-org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
-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=enabled
-org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
-org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
-org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
-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.nullReference=error
-org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
-org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
-org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
-org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
-org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
-org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=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=ignore
-org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
-org.eclipse.jdt.core.compiler.problem.unusedImport=warning
-org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
-org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
-org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
-org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
-org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
-org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
-org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
-org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
-org.eclipse.jdt.core.compiler.source=1.5
-org.eclipse.jdt.core.compiler.taskCaseSensitive=enabled
-org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,NORMAL
-org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX
-org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_assignment=0
-org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
-org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
-org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
-org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
-org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=80
-org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
-org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
-org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_after_package=1
-org.eclipse.jdt.core.formatter.blank_lines_before_field=1
-org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
-org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
-org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
-org.eclipse.jdt.core.formatter.blank_lines_before_method=1
-org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
-org.eclipse.jdt.core.formatter.blank_lines_before_package=0
-org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
-org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
-org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
-org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
-org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
-org.eclipse.jdt.core.formatter.comment.format_block_comments=false
-org.eclipse.jdt.core.formatter.comment.format_header=false
-org.eclipse.jdt.core.formatter.comment.format_html=true
-org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
-org.eclipse.jdt.core.formatter.comment.format_line_comments=false
-org.eclipse.jdt.core.formatter.comment.format_source_code=true
-org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
-org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
-org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
-org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
-org.eclipse.jdt.core.formatter.comment.line_length=120
-org.eclipse.jdt.core.formatter.compact_else_if=true
-org.eclipse.jdt.core.formatter.continuation_indentation=2
-org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
-org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
-org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
-org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_empty_lines=false
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
-org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
-org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
-org.eclipse.jdt.core.formatter.indentation.size=4
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
-org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
-org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
-org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
-org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
-org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
-org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
-org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
-org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
-org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
-org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
-org.eclipse.jdt.core.formatter.join_lines_in_comments=true
-org.eclipse.jdt.core.formatter.join_wrapped_lines=true
-org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
-org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
-org.eclipse.jdt.core.formatter.lineSplit=120
-org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
-org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
-org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
-org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
-org.eclipse.jdt.core.formatter.tabulation.char=tab
-org.eclipse.jdt.core.formatter.tabulation.size=4
-org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
-org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
diff --git a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.ui.prefs
deleted file mode 100644
index 766f9cb..0000000
--- a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.jdt.ui.prefs
+++ /dev/null
@@ -1,63 +0,0 @@
-#Thu Sep 11 16:27:18 PDT 2008
-cleanup_settings_version=2
-eclipse.preferences.version=1
-editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
-formatter_profile=_Mylyn based on Eclipse
-formatter_settings_version=11
-internal.default.compliance=default
-org.eclipse.jdt.ui.exception.name=e
-org.eclipse.jdt.ui.gettersetter.use.is=true
-org.eclipse.jdt.ui.javadoc=false
-org.eclipse.jdt.ui.keywordthis=false
-org.eclipse.jdt.ui.overrideannotation=true
-org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*******************************************************************************\r\n * Copyright (c) 2004, 2008 Tasktop Technologies and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n *\r\n * Contributors\:\r\n *     Tasktop Technologies - initial API and implementation\r\n *******************************************************************************/\r\n\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ignore\r\n${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ignore</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\r\n * @return the ${bare_field_name}\r\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\r\n * @param ${param} the ${bare_field_name} to set\r\n */</template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author ${user}\r\n *\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\r\n * \r\n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/* (non-Jsdoc)\r\n * ${see_to_overridden}\r\n */</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated function stub\r\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\r\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
-sp_cleanup.add_default_serial_version_id=true
-sp_cleanup.add_generated_serial_version_id=false
-sp_cleanup.add_missing_annotations=true
-sp_cleanup.add_missing_deprecated_annotations=true
-sp_cleanup.add_missing_methods=false
-sp_cleanup.add_missing_nls_tags=false
-sp_cleanup.add_missing_override_annotations=true
-sp_cleanup.add_serial_version_id=false
-sp_cleanup.always_use_blocks=true
-sp_cleanup.always_use_parentheses_in_expressions=false
-sp_cleanup.always_use_this_for_non_static_field_access=false
-sp_cleanup.always_use_this_for_non_static_method_access=false
-sp_cleanup.convert_to_enhanced_for_loop=true
-sp_cleanup.correct_indentation=true
-sp_cleanup.format_source_code=true
-sp_cleanup.format_source_code_changes_only=false
-sp_cleanup.make_local_variable_final=false
-sp_cleanup.make_parameters_final=false
-sp_cleanup.make_private_fields_final=true
-sp_cleanup.make_variable_declarations_final=true
-sp_cleanup.never_use_blocks=false
-sp_cleanup.never_use_parentheses_in_expressions=true
-sp_cleanup.on_save_use_additional_actions=true
-sp_cleanup.organize_imports=true
-sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
-sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
-sp_cleanup.qualify_static_member_accesses_with_declaring_class=true
-sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
-sp_cleanup.remove_private_constructors=true
-sp_cleanup.remove_trailing_whitespaces=true
-sp_cleanup.remove_trailing_whitespaces_all=true
-sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
-sp_cleanup.remove_unnecessary_casts=true
-sp_cleanup.remove_unnecessary_nls_tags=true
-sp_cleanup.remove_unused_imports=false
-sp_cleanup.remove_unused_local_variables=false
-sp_cleanup.remove_unused_private_fields=true
-sp_cleanup.remove_unused_private_members=false
-sp_cleanup.remove_unused_private_methods=true
-sp_cleanup.remove_unused_private_types=true
-sp_cleanup.sort_members=false
-sp_cleanup.sort_members_all=false
-sp_cleanup.use_blocks=true
-sp_cleanup.use_blocks_only_for_return_and_throw=false
-sp_cleanup.use_parentheses_in_expressions=false
-sp_cleanup.use_this_for_non_static_field_access=false
-sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
-sp_cleanup.use_this_for_non_static_method_access=false
-sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs b/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
deleted file mode 100644
index d8c6d26..0000000
--- a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.mylyn.tasks.ui.prefs
+++ /dev/null
@@ -1,4 +0,0 @@
-#Mon Jun 25 03:02:37 GMT 2007
-eclipse.preferences.version=1
-project.repository.kind=bugzilla
-project.repository.url=https\://bugs.eclipse.org/bugs
diff --git a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.pde.prefs b/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.pde.prefs
deleted file mode 100644
index 5937a85..0000000
--- a/org.eclipse.mylyn.discovery.ui/.settings/org.eclipse.pde.prefs
+++ /dev/null
@@ -1,24 +0,0 @@
-#Tue May 20 17:39:22 PDT 2008
-compilers.f.unresolved-features=1
-compilers.f.unresolved-plugins=2
-compilers.incompatible-environment=1
-compilers.p.build=1
-compilers.p.deprecated=1
-compilers.p.discouraged-class=1
-compilers.p.internal=1
-compilers.p.missing-bundle-classpath-entries=1
-compilers.p.missing-packages=1
-compilers.p.no-required-att=0
-compilers.p.not-externalized-att=2
-compilers.p.unknown-attribute=0
-compilers.p.unknown-class=0
-compilers.p.unknown-element=0
-compilers.p.unknown-identifier=1
-compilers.p.unknown-resource=0
-compilers.p.unresolved-ex-points=0
-compilers.p.unresolved-import=0
-compilers.s.create-docs=false
-compilers.s.doc-folder=doc
-compilers.s.open-tags=1
-compilers.use-project=true
-eclipse.preferences.version=1
diff --git a/org.eclipse.mylyn.discovery.ui/META-INF/MANIFEST.MF b/org.eclipse.mylyn.discovery.ui/META-INF/MANIFEST.MF
deleted file mode 100644
index fdb72cc..0000000
--- a/org.eclipse.mylyn.discovery.ui/META-INF/MANIFEST.MF
+++ /dev/null
@@ -1,26 +0,0 @@
-Manifest-Version: 1.0
-Bundle-ManifestVersion: 2
-Bundle-Name: %Bundle-Name
-Bundle-SymbolicName: org.eclipse.mylyn.discovery.ui;singleton:=true
-Bundle-Version: 3.2.0.qualifier
-Bundle-Vendor: %Bundle-Vendor
-Bundle-RequiredExecutionEnvironment: J2SE-1.5
-Require-Bundle: org.eclipse.core.runtime,
- org.eclipse.ui,
- org.eclipse.ui.forms,
- org.eclipse.core.expressions,
- org.eclipse.mylyn.discovery.core;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.mylyn.commons.core;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.mylyn.commons.ui;bundle-version="[3.2.0,4.0.0)",
- org.eclipse.equinox.p2.core;bundle-version="1.0.4";resolution:=optional,
- org.eclipse.equinox.p2.ui;bundle-version="1.0.4";resolution:=optional,
- org.eclipse.equinox.p2.metadata;bundle-version="1.0.0";resolution:=optional,
- org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.0";resolution:=optional,
- org.eclipse.equinox.p2.repository;bundle-version="1.0.0";resolution:=optional,
- org.eclipse.equinox.p2.engine;bundle-version="1.0.100";resolution:=optional,
- org.eclipse.equinox.p2.director;bundle-version="1.0.100";resolution:=optional
-Export-Package: org.eclipse.mylyn.internal.discovery.ui;x-internal:=true,
- org.eclipse.mylyn.internal.discovery.ui.commands;x-internal:=true,
- org.eclipse.mylyn.internal.discovery.ui.util;x-internal:=true,
- org.eclipse.mylyn.internal.discovery.ui.wizards;x-internal:=true
-Import-Package: com.ibm.icu.text
diff --git a/org.eclipse.mylyn.discovery.ui/OSGI-INF/l10n/bundle.properties b/org.eclipse.mylyn.discovery.ui/OSGI-INF/l10n/bundle.properties
deleted file mode 100644
index cbeb3bc..0000000
--- a/org.eclipse.mylyn.discovery.ui/OSGI-INF/l10n/bundle.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-#Properties file for org.eclipse.mylyn.discovery.ui
-command.description = shows the connector discovery wizard
-command.name = Discovery Wizard
-Bundle-Vendor = Eclipse Mylyn
-Bundle-Name = Mylyn Connector Discovery UI
\ No newline at end of file
diff --git a/org.eclipse.mylyn.discovery.ui/about.html b/org.eclipse.mylyn.discovery.ui/about.html
deleted file mode 100644
index bc6e2b4..0000000
--- a/org.eclipse.mylyn.discovery.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>July 3, 2008</p>	
-<h3>License</h3>
-
-<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;).  Unless otherwise 
-indicated below, the Content is provided to you under the terms and conditions of the
-Eclipse Public License Version 1.0 (&quot;EPL&quot;).  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, &quot;Program&quot; 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 (&quot;Redistributor&quot;) 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
-and such source code may be obtained at <a href="/">http://www.eclipse.org</a>.</p>
-
-
-</body>
-</html>
diff --git a/org.eclipse.mylyn.discovery.ui/build.properties b/org.eclipse.mylyn.discovery.ui/build.properties
deleted file mode 100644
index ba87c3f..0000000
--- a/org.eclipse.mylyn.discovery.ui/build.properties
+++ /dev/null
@@ -1,19 +0,0 @@
-###############################################################################
-# Copyright (c) 2009 Tasktop Technologies 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:
-#     Tasktop Technologies - initial API and implementation
-###############################################################################
-source.. = src/
-output.. = bin/
-bin.includes = META-INF/,\
-               .,\
-               plugin.xml,\
-               about.html,\
-               icons/,\
-               OSGI-INF/l10n/
-src.includes = about.html
diff --git a/org.eclipse.mylyn.discovery.ui/icons/obj16/message_info.gif b/org.eclipse.mylyn.discovery.ui/icons/obj16/message_info.gif
deleted file mode 100644
index b484d9b..0000000
--- a/org.eclipse.mylyn.discovery.ui/icons/obj16/message_info.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.discovery.ui/icons/ovr32/message_warning.gif b/org.eclipse.mylyn.discovery.ui/icons/ovr32/message_warning.gif
deleted file mode 100644
index 8e054d0..0000000
--- a/org.eclipse.mylyn.discovery.ui/icons/ovr32/message_warning.gif
+++ /dev/null
Binary files differ
diff --git a/org.eclipse.mylyn.discovery.ui/plugin.xml b/org.eclipse.mylyn.discovery.ui/plugin.xml
deleted file mode 100644
index 218e1f0..0000000
--- a/org.eclipse.mylyn.discovery.ui/plugin.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<?eclipse version="3.4"?>
-<plugin>
-   <extension
-         point="org.eclipse.ui.commands">
-      <command
-            description="%command.description"
-            id="org.eclipse.mylyn.discovery.ui.discoveryWizardCommand"
-            name="%command.name">
-      </command>
-   </extension>
-   <extension
-         point="org.eclipse.ui.handlers">
-      <handler
-            class="org.eclipse.mylyn.internal.discovery.ui.commands.ShowConnectorDiscoveryWizardCommandHandler"
-            commandId="org.eclipse.mylyn.discovery.ui.discoveryWizardCommand">
-         <enabledWhen>
-     		<test
-     			property="org.eclipse.core.runtime.isBundleInstalled" args="org.eclipse.equinox.p2.repository"/>
-         </enabledWhen>
-      </handler>
-   </extension>
-
-</plugin>
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryImages.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryImages.java
deleted file mode 100644
index e26f28e..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryImages.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.ui;
-
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.jface.resource.ImageDescriptor;
-
-/**
- * @author David Green
- */
-public class DiscoveryImages {
-	private static final String T_OVR_32 = "ovr32"; //$NON-NLS-1$
-
-	private static final String T_OBJ_16 = "obj16"; //$NON-NLS-1$
-
-	private static final URL baseURL = Platform.getBundle(DiscoveryUi.ID_PLUGIN).getEntry("/icons/"); //$NON-NLS-1$
-
-	/**
-	 * image descriptor for a warning overlay suitable for use with 32x32 images.
-	 */
-	public static final ImageDescriptor OVERLAY_WARNING_32 = create(T_OVR_32, "message_warning.gif"); //$NON-NLS-1$
-
-	public static final ImageDescriptor MESSAGE_INFO = create(T_OBJ_16, "message_info.gif"); //$NON-NLS-1$
-
-	private static ImageDescriptor create(String prefix, String name) {
-		try {
-			return ImageDescriptor.createFromURL(makeIconFileURL(prefix, name));
-		} catch (MalformedURLException e) {
-			return ImageDescriptor.getMissingImageDescriptor();
-		}
-	}
-
-	private static URL makeIconFileURL(String prefix, String name) throws MalformedURLException {
-		if (baseURL == null) {
-			throw new MalformedURLException();
-		}
-
-		StringBuilder buffer = new StringBuilder(prefix);
-		buffer.append('/');
-		buffer.append(name);
-		return new URL(baseURL, buffer.toString());
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryUi.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryUi.java
deleted file mode 100644
index d923293..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/DiscoveryUi.java
+++ /dev/null
@@ -1,23 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.ui;
-
-/**
- * @author David Green
- */
-public abstract class DiscoveryUi {
-
-	public static final String ID_PLUGIN = "org.eclipse.mylyn.discovery.ui"; //$NON-NLS-1$
-
-	private DiscoveryUi() {
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/commands/ShowConnectorDiscoveryWizardCommandHandler.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/commands/ShowConnectorDiscoveryWizardCommandHandler.java
deleted file mode 100644
index 819d732..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/commands/ShowConnectorDiscoveryWizardCommandHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.ui.commands;
-
-import org.eclipse.core.commands.AbstractHandler;
-import org.eclipse.core.commands.ExecutionEvent;
-import org.eclipse.core.commands.ExecutionException;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.discovery.ui.util.DiscoveryUiUtil;
-import org.eclipse.mylyn.internal.discovery.ui.wizards.ConnectorDiscoveryWizard;
-
-/**
- * A command that causes the {@link ConnectorDiscoveryWizard} to appear in a dialog.
- * 
- * @author David Green
- */
-public class ShowConnectorDiscoveryWizardCommandHandler extends AbstractHandler {
-
-	public Object execute(ExecutionEvent event) throws ExecutionException {
-
-		ConnectorDiscoveryWizard wizard = new ConnectorDiscoveryWizard();
-		WizardDialog dialog = new WizardDialog(DiscoveryUiUtil.getShell(), wizard);
-		dialog.open();
-
-		return null;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/DiscoveryUiUtil.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/DiscoveryUiUtil.java
deleted file mode 100644
index 0c9618c..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/DiscoveryUiUtil.java
+++ /dev/null
@@ -1,156 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.ui.util;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.jface.dialogs.IDialogConstants;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.mylyn.commons.core.CoreUtil;
-import org.eclipse.mylyn.commons.core.StatusHandler;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.widgets.Shell;
-import org.eclipse.ui.IWorkbench;
-import org.eclipse.ui.IWorkbenchWindow;
-import org.eclipse.ui.PlatformUI;
-
-/**
- * @author David Green
- * @author Steffen Pingel much of this is copied from TasksUiInternal
- */
-public abstract class DiscoveryUiUtil {
-	private DiscoveryUiUtil() {
-	}
-
-	public static void logAndDisplayStatus(final String title, final IStatus status) {
-		logAndDisplayStatus(null, title, status);
-	}
-
-	public static void logAndDisplayStatus(Shell shell, final String title, final IStatus status) {
-		StatusHandler.log(status);
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench != null && !workbench.getDisplay().isDisposed()) {
-			if (shell == null) {
-				shell = getShell();
-			}
-			displayStatus(shell, title, status, true);
-		}
-	}
-
-	public static void displayStatus(final String title, final IStatus status) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		if (workbench != null && !workbench.getDisplay().isDisposed()) {
-			displayStatus(getShell(), title, status, false);
-		} else {
-			StatusHandler.log(status);
-		}
-	}
-
-	/**
-	 * Utility method to get the best parenting possible for a dialog. If there is a modal shell create it so as to
-	 * avoid two modal dialogs. If not then return the shell of the active workbench window. If neither can be found
-	 * return null.
-	 * <p>
-	 * <b>Note: Applied from patch on bug 99472.</b>
-	 * 
-	 * @return Shell or <code>null</code>
-	 */
-	public static Shell getShell() {
-		if (!PlatformUI.isWorkbenchRunning() || PlatformUI.getWorkbench().isClosing()) {
-			return null;
-		}
-		Shell modal = getModalShellExcluding(null);
-		if (modal != null) {
-			return modal;
-		}
-		return getNonModalShell();
-	}
-
-	/**
-	 * Get the active non modal shell. If there isn't one return null.
-	 * <p>
-	 * <b>Note: Applied from patch on bug 99472.</b>
-	 * 
-	 * @return Shell
-	 */
-	public static Shell getNonModalShell() {
-		IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
-		if (window == null) {
-			IWorkbenchWindow[] windows = PlatformUI.getWorkbench().getWorkbenchWindows();
-			if (windows.length > 0) {
-				return windows[0].getShell();
-			}
-		} else {
-			return window.getShell();
-		}
-
-		return null;
-	}
-
-	/**
-	 * Return the modal shell that is currently open. If there isn't one then return null.
-	 * <p>
-	 * <b>Note: Applied from patch on bug 99472.</b>
-	 * 
-	 * @param shell
-	 *            A shell to exclude from the search. May be <code>null</code>.
-	 * @return Shell or <code>null</code>.
-	 */
-	public static Shell getModalShellExcluding(Shell shell) {
-		IWorkbench workbench = PlatformUI.getWorkbench();
-		Shell[] shells = workbench.getDisplay().getShells();
-		int modal = SWT.APPLICATION_MODAL | SWT.SYSTEM_MODAL | SWT.PRIMARY_MODAL;
-		for (Shell shell2 : shells) {
-			if (shell2.equals(shell)) {
-				break;
-			}
-			// Do not worry about shells that will not block the user.
-			if (shell2.isVisible()) {
-				int style = shell2.getStyle();
-				if ((style & modal) != 0) {
-					return shell2;
-				}
-			}
-		}
-		return null;
-	}
-
-	public static void displayStatus(Shell shell, final String title, final IStatus status, boolean showLinkToErrorLog) {
-		// avoid blocking ui when in test mode
-		if (CoreUtil.TEST_MODE) {
-			StatusHandler.log(status);
-			return;
-		}
-
-		String message = status.getMessage();
-		if (showLinkToErrorLog) {
-			message += Messages.DiscoveryUi_seeErrorLog;
-		}
-		switch (status.getSeverity()) {
-		case IStatus.CANCEL:
-		case IStatus.INFO:
-			createDialog(shell, title, message, MessageDialog.INFORMATION).open();
-			break;
-		case IStatus.WARNING:
-			createDialog(shell, title, message, MessageDialog.WARNING).open();
-			break;
-		case IStatus.ERROR:
-		default:
-			createDialog(shell, title, message, MessageDialog.ERROR).open();
-			break;
-		}
-
-	}
-
-	public static MessageDialog createDialog(Shell shell, String title, String message, int type) {
-		return new MessageDialog(shell, title, null, message, type, new String[] { IDialogConstants.OK_LABEL }, 0);
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/Messages.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/Messages.java
deleted file mode 100644
index 256ac0b..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/Messages.java
+++ /dev/null
@@ -1,31 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.ui.util;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * 
- * @author David Green
- */
-class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.discovery.ui.util.messages"; //$NON-NLS-1$
-
-	public static String DiscoveryUi_seeErrorLog;
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/messages.properties b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/messages.properties
deleted file mode 100644
index 32101cf..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/util/messages.properties
+++ /dev/null
@@ -1 +0,0 @@
-DiscoveryUi_seeErrorLog=\n\nSee error log for details.
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizard.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizard.java
deleted file mode 100644
index 925ccd7..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizard.java
+++ /dev/null
@@ -1,199 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.Map;
-
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.equinox.internal.provisional.p2.ui.IProvHelpContextIds;
-import org.eclipse.equinox.internal.provisional.p2.ui.QueryableMetadataRepositoryManager;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.PreselectedIUInstallWizard;
-import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.ProvisioningWizardDialog;
-import org.eclipse.equinox.internal.provisional.p2.ui.policy.Policy;
-import org.eclipse.jface.wizard.Wizard;
-import org.eclipse.jface.wizard.WizardDialog;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDescriptorKind;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDiscovery;
-import org.eclipse.mylyn.internal.discovery.ui.DiscoveryUi;
-import org.eclipse.mylyn.internal.discovery.ui.util.DiscoveryUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.ui.PlatformUI;
-import org.osgi.framework.Bundle;
-import org.osgi.framework.Version;
-
-/**
- * A wizard for performing discovery of connectors and selecting connectors to install. When finish is pressed, selected
- * connectors are downloaded and installed.
- * 
- * @see PrepareInstallProfileJob
- * @see ConnectorDiscoveryWizardMainPage
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class ConnectorDiscoveryWizard extends Wizard {
-
-	private ConnectorDiscoveryWizardMainPage mainPage;
-
-	private final Map<ConnectorDescriptorKind, Boolean> connectorDescriptorKindToVisibility = new HashMap<ConnectorDescriptorKind, Boolean>();
-	{
-		for (ConnectorDescriptorKind kind : ConnectorDescriptorKind.values()) {
-			connectorDescriptorKindToVisibility.put(kind, true);
-		}
-	}
-
-	private boolean showConnectorDescriptorKindFilter = true;
-
-	private boolean showConnectorDescriptorTextFilter = true;
-
-	private Dictionary<Object, Object> environment;
-
-	public ConnectorDiscoveryWizard() {
-		setWindowTitle(Messages.ConnectorDiscoveryWizard_connectorDiscovery);
-		setNeedsProgressMonitor(true);
-		setDefaultPageImageDescriptor(CommonImages.BANNER_DISOVERY);
-		createEnvironment();
-	}
-
-	private void createEnvironment() {
-		environment = new Hashtable<Object, Object>(System.getProperties());
-		// add the installed Mylyn version to the environment so that we can have
-		// connectors that are filtered based on version of Mylyn
-		Bundle bundle = Platform.getBundle("org.eclipse.mylyn.tasks.core"); //$NON-NLS-1$
-		Version version = bundle.getVersion();
-		environment.put("org.eclipse.mylyn.version", version.toString()); //$NON-NLS-1$
-		environment.put("org.eclipse.mylyn.version.major", version.getMajor()); //$NON-NLS-1$
-		environment.put("org.eclipse.mylyn.version.minor", version.getMinor()); //$NON-NLS-1$
-		environment.put("org.eclipse.mylyn.version.micro", version.getMicro()); //$NON-NLS-1$
-	}
-
-	@Override
-	public void addPages() {
-		addPage(mainPage = new ConnectorDiscoveryWizardMainPage());
-	}
-
-	@Override
-	public boolean performFinish() {
-		try {
-			final PrepareInstallProfileJob job = new PrepareInstallProfileJob(mainPage.getInstallableConnectors());
-			getContainer().run(true, true, job);
-
-			if (job.getPlannerResolutionOperation() != null
-					&& job.getPlannerResolutionOperation().getProvisioningPlan() != null) {
-				Display.getCurrent().asyncExec(new Runnable() {
-					public void run() {
-						PreselectedIUInstallWizard wizard = new PreselectedIUInstallWizard(Policy.getDefault(),
-								job.getProfileId(), job.getIUs(), job.getPlannerResolutionOperation(),
-								new QueryableMetadataRepositoryManager(Policy.getDefault().getQueryContext(), false));
-						WizardDialog dialog = new ProvisioningWizardDialog(getShell(), wizard);
-						dialog.create();
-						PlatformUI.getWorkbench().getHelpSystem().setHelp(dialog.getShell(),
-								IProvHelpContextIds.INSTALL_WIZARD);
-
-						dialog.open();
-					}
-				});
-			}
-		} catch (InvocationTargetException e) {
-			IStatus status = new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN, NLS.bind(
-					Messages.ConnectorDiscoveryWizard_installProblems, new Object[] { e.getCause().getMessage() }),
-					e.getCause());
-			DiscoveryUiUtil.logAndDisplayStatus(Messages.ConnectorDiscoveryWizard_cannotInstall, status);
-			return false;
-		} catch (InterruptedException e) {
-			// canceled
-		}
-		return true;
-	}
-
-	/**
-	 * configure the page to show or hide connector descriptors of the given kind
-	 * 
-	 * @see #connectorDescriptorKindVisibilityUpdated()
-	 */
-	public void setVisibility(ConnectorDescriptorKind kind, boolean visible) {
-		if (kind == null) {
-			throw new IllegalArgumentException();
-		}
-		connectorDescriptorKindToVisibility.put(kind, visible);
-	}
-
-	/**
-	 * indicate if the given kind of connector is currently visible in the wizard
-	 * 
-	 * @see #setVisibility(ConnectorDescriptorKind, boolean)
-	 */
-	public boolean isVisible(ConnectorDescriptorKind kind) {
-		if (kind == null) {
-			throw new IllegalArgumentException();
-		}
-		return connectorDescriptorKindToVisibility.get(kind);
-	}
-
-	/**
-	 * indicate if the connector descriptor filters should be shown in the UI. Changing this setting only has an effect
-	 * before the UI is presented.
-	 */
-	public boolean isShowConnectorDescriptorKindFilter() {
-		return showConnectorDescriptorKindFilter;
-	}
-
-	/**
-	 * indicate if the connector descriptor filters should be shown in the UI. Changing this setting only has an effect
-	 * before the UI is presented.
-	 */
-	public void setShowConnectorDescriptorKindFilter(boolean showConnectorDescriptorKindFilter) {
-		this.showConnectorDescriptorKindFilter = showConnectorDescriptorKindFilter;
-	}
-
-	/**
-	 * indicate if a text field should be provided to allow the user to filter connector descriptors
-	 */
-	public boolean isShowConnectorDescriptorTextFilter() {
-		return showConnectorDescriptorTextFilter;
-	}
-
-	/**
-	 * indicate if a text field should be provided to allow the user to filter connector descriptors
-	 */
-	public void setShowConnectorDescriptorTextFilter(boolean showConnectorDescriptorTextFilter) {
-		this.showConnectorDescriptorTextFilter = showConnectorDescriptorTextFilter;
-	}
-
-	/**
-	 * the environment in which discovery should be performed.
-	 * 
-	 * @see ConnectorDiscovery#getEnvironment()
-	 */
-	public Dictionary<Object, Object> getEnvironment() {
-		return environment;
-	}
-
-	/**
-	 * the environment in which discovery should be performed.
-	 * 
-	 * @see ConnectorDiscovery#getEnvironment()
-	 */
-	public void setEnvironment(Dictionary<Object, Object> environment) {
-		if (environment == null) {
-			throw new IllegalArgumentException();
-		}
-		this.environment = environment;
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizardMainPage.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizardMainPage.java
deleted file mode 100644
index 5a48116..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/ConnectorDiscoveryWizardMainPage.java
+++ /dev/null
@@ -1,1251 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *     David Green
- *     Shawn Minto bug 275513
- * 	   Steffen Pingel bug 276012 code review, bug 277191 gradient canvas
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.ui.wizards;
-
-import java.beans.PropertyChangeEvent;
-import java.beans.PropertyChangeListener;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Dictionary;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-import java.util.regex.Pattern;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IBundleGroup;
-import org.eclipse.core.runtime.IBundleGroupProvider;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Platform;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.dialogs.Dialog;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.viewers.DecorationOverlayIcon;
-import org.eclipse.jface.viewers.IDecoration;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.mylyn.internal.discovery.core.model.AbstractDiscoverySource;
-import org.eclipse.mylyn.internal.discovery.core.model.BundleDiscoveryStrategy;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDescriptor;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDescriptorKind;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDiscovery;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryCategory;
-import org.eclipse.mylyn.internal.discovery.core.model.DiscoveryConnector;
-import org.eclipse.mylyn.internal.discovery.core.model.Icon;
-import org.eclipse.mylyn.internal.discovery.core.model.Overview;
-import org.eclipse.mylyn.internal.discovery.core.model.RemoteBundleDiscoveryStrategy;
-import org.eclipse.mylyn.internal.discovery.core.util.DiscoveryCategoryComparator;
-import org.eclipse.mylyn.internal.discovery.core.util.DiscoveryConnectorComparator;
-import org.eclipse.mylyn.internal.discovery.ui.DiscoveryImages;
-import org.eclipse.mylyn.internal.discovery.ui.DiscoveryUi;
-import org.eclipse.mylyn.internal.discovery.ui.util.DiscoveryUiUtil;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonImages;
-import org.eclipse.mylyn.internal.provisional.commons.ui.CommonThemes;
-import org.eclipse.mylyn.internal.provisional.commons.ui.GradientCanvas;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.accessibility.ACC;
-import org.eclipse.swt.accessibility.AccessibleAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlAdapter;
-import org.eclipse.swt.accessibility.AccessibleControlEvent;
-import org.eclipse.swt.accessibility.AccessibleEvent;
-import org.eclipse.swt.custom.ScrolledComposite;
-import org.eclipse.swt.events.ControlAdapter;
-import org.eclipse.swt.events.ControlEvent;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.FocusAdapter;
-import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.ModifyEvent;
-import org.eclipse.swt.events.ModifyListener;
-import org.eclipse.swt.events.MouseAdapter;
-import org.eclipse.swt.events.MouseEvent;
-import org.eclipse.swt.events.MouseListener;
-import org.eclipse.swt.events.MouseMoveListener;
-import org.eclipse.swt.events.MouseTrackListener;
-import org.eclipse.swt.events.PaintEvent;
-import org.eclipse.swt.events.PaintListener;
-import org.eclipse.swt.events.SelectionAdapter;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Cursor;
-import org.eclipse.swt.graphics.Font;
-import org.eclipse.swt.graphics.FontData;
-import org.eclipse.swt.graphics.GC;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.graphics.Rectangle;
-import org.eclipse.swt.graphics.Resource;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.swt.widgets.Listener;
-import org.eclipse.swt.widgets.Text;
-import org.eclipse.swt.widgets.ToolBar;
-import org.eclipse.swt.widgets.ToolItem;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.ui.forms.IFormColors;
-import org.eclipse.ui.progress.WorkbenchJob;
-import org.eclipse.ui.themes.IThemeManager;
-
-/**
- * The main wizard page that allows users to select connectors that they wish to install.
- * 
- * @author David Green
- */
-public class ConnectorDiscoveryWizardMainPage extends WizardPage {
-
-	private static final String DEFAULT_DIRECTORY_URL = "http://www.eclipse.org/mylyn/discovery/directory.xml"; //$NON-NLS-1$
-
-	private static final String SYSTEM_PROPERTY_DIRECTORY_URL = "mylyn.discovery.directory"; //$NON-NLS-1$
-
-	private static final String COLOR_WHITE = "white"; //$NON-NLS-1$
-
-	private static final String COLOR_DARK_GRAY = "DarkGray"; //$NON-NLS-1$
-
-	private static Boolean useNativeSearchField;
-
-	private final List<ConnectorDescriptor> installableConnectors = new ArrayList<ConnectorDescriptor>();
-
-	private ConnectorDiscovery discovery;
-
-	private Composite body;
-
-	private final List<Resource> disposables = new ArrayList<Resource>();
-
-	private Font h2Font;
-
-	private Font h1Font;
-
-	private Color colorWhite;
-
-	private Text filterText;
-
-	private WorkbenchJob refreshJob;
-
-	private String previousFilterText = ""; //$NON-NLS-1$
-
-	private Pattern filterPattern;
-
-	private Label clearFilterTextControl;
-
-	private Set<String> installedFeatures;
-
-	private Image infoImage;
-
-	private Cursor handCursor;
-
-	private Color colorCategoryGradientStart;
-
-	private Color colorCategoryGradientEnd;
-
-	private Color colorDisabled;
-
-	private ScrolledComposite bodyScrolledComposite;
-
-	public ConnectorDiscoveryWizardMainPage() {
-		super(ConnectorDiscoveryWizardMainPage.class.getSimpleName());
-		setTitle(org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_connectorDiscovery);
-		// setImageDescriptor(image);
-		setDescription(org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_pageDescription);
-		setPageComplete(false);
-	}
-
-	public void createControl(Composite parent) {
-		createRefreshJob();
-
-		Composite container = new Composite(parent, SWT.NULL);
-		container.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				refreshJob.cancel();
-			}
-		});
-		container.setLayout(new GridLayout(1, false));
-		//		
-		{ // header
-			Composite header = new Composite(container, SWT.NULL);
-			GridLayoutFactory.fillDefaults().applyTo(header);
-			GridDataFactory.fillDefaults().grab(true, false).applyTo(header);
-
-//			 TODO: refresh button?
-			if (getWizard().isShowConnectorDescriptorKindFilter() || getWizard().isShowConnectorDescriptorTextFilter()) {
-				Composite filterContainer = new Composite(header, SWT.NULL);
-				GridDataFactory.fillDefaults().grab(true, false).applyTo(filterContainer);
-
-				int numColumns = 1; // 1 for label
-				if (getWizard().isShowConnectorDescriptorKindFilter()) {
-					numColumns += ConnectorDescriptorKind.values().length;
-				}
-				if (getWizard().isShowConnectorDescriptorTextFilter()) {
-					++numColumns;
-				}
-				GridLayoutFactory.fillDefaults().numColumns(numColumns).applyTo(filterContainer);
-				Label label = new Label(filterContainer, SWT.NULL);
-				label.setText(org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_filterLabel);
-
-				if (getWizard().isShowConnectorDescriptorTextFilter()) {
-					Composite textFilterContainer;
-					boolean nativeSearch = useNativeSearchField(header);
-					if (nativeSearch) {
-						textFilterContainer = new Composite(filterContainer, SWT.NULL);
-					} else {
-						textFilterContainer = new Composite(filterContainer, SWT.BORDER);
-						textFilterContainer.setBackground(header.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-					}
-					GridDataFactory.fillDefaults().grab(true, false).applyTo(textFilterContainer);
-					GridLayoutFactory.fillDefaults().numColumns(2).applyTo(textFilterContainer);
-
-					if (nativeSearch) {
-						filterText = new Text(textFilterContainer, SWT.SINGLE | SWT.BORDER | SWT.SEARCH
-								| SWT.ICON_CANCEL);
-					} else {
-						filterText = new Text(textFilterContainer, SWT.SINGLE);
-					}
-
-					filterText.addModifyListener(new ModifyListener() {
-						public void modifyText(ModifyEvent e) {
-							filterTextChanged();
-						}
-					});
-					if (nativeSearch) {
-						filterText.addSelectionListener(new SelectionAdapter() {
-							@Override
-							public void widgetDefaultSelected(SelectionEvent e) {
-								if (e.detail == SWT.ICON_CANCEL) {
-									clearFilterText();
-								}
-							}
-						});
-						GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(filterText);
-					} else {
-						GridDataFactory.fillDefaults().grab(true, false).applyTo(filterText);
-						clearFilterTextControl = createClearFilterTextControl(textFilterContainer, filterText);
-						clearFilterTextControl.setVisible(false);
-					}
-				}
-
-				if (getWizard().isShowConnectorDescriptorKindFilter()) { // filter buttons
-
-					for (final ConnectorDescriptorKind kind : ConnectorDescriptorKind.values()) {
-						final Button checkbox = new Button(filterContainer, SWT.CHECK);
-						checkbox.setSelection(getWizard().isVisible(kind));
-						checkbox.setText(getFilterLabel(kind));
-						checkbox.addSelectionListener(new SelectionListener() {
-							public void widgetSelected(SelectionEvent e) {
-								boolean selection = checkbox.getSelection();
-								getWizard().setVisibility(kind, selection);
-								connectorDescriptorKindVisibilityUpdated();
-							}
-
-							public void widgetDefaultSelected(SelectionEvent e) {
-								widgetSelected(e);
-							}
-						});
-					}
-				}
-
-			}
-
-		}
-		{ // container
-			body = new Composite(container, SWT.NULL);
-			GridDataFactory.fillDefaults().grab(true, true).hint(SWT.DEFAULT, 480).applyTo(body);
-		}
-		Dialog.applyDialogFont(container);
-		setControl(container);
-	}
-
-	private static boolean useNativeSearchField(Composite composite) {
-		if (useNativeSearchField == null) {
-			useNativeSearchField = Boolean.FALSE;
-			Text testText = null;
-			try {
-				testText = new Text(composite, SWT.SEARCH | SWT.ICON_CANCEL);
-				useNativeSearchField = new Boolean((testText.getStyle() & SWT.ICON_CANCEL) != 0);
-			} finally {
-				if (testText != null) {
-					testText.dispose();
-				}
-			}
-
-		}
-		return useNativeSearchField;
-	}
-
-	private void createRefreshJob() {
-		refreshJob = new WorkbenchJob("filter") { //$NON-NLS-1$
-
-			@Override
-			public IStatus runInUIThread(IProgressMonitor monitor) {
-				if (filterText.isDisposed()) {
-					return Status.CANCEL_STATUS;
-				}
-				String text = filterText.getText();
-				text = text.trim();
-
-				if (!previousFilterText.equals(text)) {
-					previousFilterText = text;
-					filterPattern = createPattern(previousFilterText);
-					if (clearFilterTextControl != null) {
-						clearFilterTextControl.setVisible(filterPattern != null);
-					}
-					createBodyContents();
-				}
-				return Status.OK_STATUS;
-			}
-		};
-		refreshJob.setSystem(true);
-	}
-
-	protected Pattern createPattern(String filterText) {
-		if (filterText == null || filterText.length() == 0) {
-			return null;
-		}
-		String regex = filterText;
-		regex.replace("\\", "\\\\").replace("?", ".").replace("*", ".*?"); //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$ //$NON-NLS-5$ //$NON-NLS-6$
-		return Pattern.compile(regex, Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
-	}
-
-	private Label createClearFilterTextControl(Composite filterContainer, final Text filterText) {
-		final Image inactiveImage = CommonImages.FIND_CLEAR_DISABLED.createImage();
-		final Image activeImage = CommonImages.FIND_CLEAR.createImage();
-		final Image pressedImage = new Image(filterContainer.getDisplay(), activeImage, SWT.IMAGE_GRAY);
-
-		final Label clearButton = new Label(filterContainer, SWT.NONE);
-		clearButton.setLayoutData(new GridData(SWT.BEGINNING, SWT.CENTER, false, false));
-		clearButton.setImage(inactiveImage);
-		clearButton.setToolTipText(Messages.ConnectorDiscoveryWizardMainPage_clearButton_toolTip);
-		clearButton.setBackground(filterContainer.getDisplay().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
-		clearButton.addMouseListener(new MouseAdapter() {
-			private MouseMoveListener fMoveListener;
-
-			@Override
-			public void mouseDown(MouseEvent e) {
-				clearButton.setImage(pressedImage);
-				fMoveListener = new MouseMoveListener() {
-					private boolean fMouseInButton = true;
-
-					public void mouseMove(MouseEvent e) {
-						boolean mouseInButton = isMouseInButton(e);
-						if (mouseInButton != fMouseInButton) {
-							fMouseInButton = mouseInButton;
-							clearButton.setImage(mouseInButton ? pressedImage : inactiveImage);
-						}
-					}
-				};
-				clearButton.addMouseMoveListener(fMoveListener);
-			}
-
-			@Override
-			public void mouseUp(MouseEvent e) {
-				if (fMoveListener != null) {
-					clearButton.removeMouseMoveListener(fMoveListener);
-					fMoveListener = null;
-					boolean mouseInButton = isMouseInButton(e);
-					clearButton.setImage(mouseInButton ? activeImage : inactiveImage);
-					if (mouseInButton) {
-						clearFilterText();
-						filterText.setFocus();
-					}
-				}
-			}
-
-			private boolean isMouseInButton(MouseEvent e) {
-				Point buttonSize = clearButton.getSize();
-				return 0 <= e.x && e.x < buttonSize.x && 0 <= e.y && e.y < buttonSize.y;
-			}
-		});
-		clearButton.addMouseTrackListener(new MouseTrackListener() {
-			public void mouseEnter(MouseEvent e) {
-				clearButton.setImage(activeImage);
-			}
-
-			public void mouseExit(MouseEvent e) {
-				clearButton.setImage(inactiveImage);
-			}
-
-			public void mouseHover(MouseEvent e) {
-			}
-		});
-		clearButton.addDisposeListener(new DisposeListener() {
-			public void widgetDisposed(DisposeEvent e) {
-				inactiveImage.dispose();
-				activeImage.dispose();
-				pressedImage.dispose();
-			}
-		});
-		clearButton.getAccessible().addAccessibleListener(new AccessibleAdapter() {
-			@Override
-			public void getName(AccessibleEvent e) {
-				e.result = Messages.ConnectorDiscoveryWizardMainPage_clearButton_accessibleListener;
-			}
-		});
-		clearButton.getAccessible().addAccessibleControlListener(new AccessibleControlAdapter() {
-			@Override
-			public void getRole(AccessibleControlEvent e) {
-				e.detail = ACC.ROLE_PUSHBUTTON;
-			}
-		});
-		return clearButton;
-	}
-
-	@Override
-	public ConnectorDiscoveryWizard getWizard() {
-		return (ConnectorDiscoveryWizard) super.getWizard();
-	}
-
-	private void clearFilterText() {
-		filterText.setText(""); //$NON-NLS-1$
-		filterTextChanged();
-	}
-
-	private void filterTextChanged() {
-		refreshJob.cancel();
-		refreshJob.schedule(200L);
-	}
-
-	private String getFilterLabel(ConnectorDescriptorKind kind) {
-		switch (kind) {
-		case DOCUMENT:
-			return org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_filter_documents;
-		case TASK:
-			return org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_filter_tasks;
-		case VCS:
-			return org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_filter_vcs;
-		default:
-			throw new IllegalStateException(kind.name());
-		}
-	}
-
-	/**
-	 * cause the UI to respond to a change in visibility filters
-	 * 
-	 * @see #setVisibility(ConnectorDescriptorKind, boolean)
-	 */
-	public void connectorDescriptorKindVisibilityUpdated() {
-		createBodyContents();
-	}
-
-	@Override
-	public void dispose() {
-		super.dispose();
-		for (Resource resource : disposables) {
-			resource.dispose();
-		}
-		clearDisposables();
-		if (discovery != null) {
-			discovery.dispose();
-		}
-	}
-
-	private void clearDisposables() {
-		disposables.clear();
-		h1Font = null;
-		h2Font = null;
-		infoImage = null;
-		handCursor = null;
-		colorCategoryGradientStart = null;
-		colorCategoryGradientEnd = null;
-	}
-
-	public void createBodyContents() {
-		// remove any existing contents
-		for (Control child : body.getChildren()) {
-			child.dispose();
-		}
-		clearDisposables();
-		initializeCursors();
-		initializeImages();
-		initializeFonts();
-		initializeColors();
-
-		GridLayoutFactory.fillDefaults().applyTo(body);
-
-		bodyScrolledComposite = new ScrolledComposite(body, SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER);
-
-		configureLook(bodyScrolledComposite, colorWhite);
-		GridDataFactory.fillDefaults().grab(true, true).applyTo(bodyScrolledComposite);
-
-		// FIXME 3.2 does white work for any desktop theme, e.g. an inverse theme?
-		final Composite scrolledContents = new Composite(bodyScrolledComposite, SWT.NONE);
-		configureLook(scrolledContents, colorWhite);
-		scrolledContents.setRedraw(false);
-		try {
-			createDiscoveryContents(scrolledContents);
-		} finally {
-			scrolledContents.layout(true);
-			scrolledContents.setRedraw(true);
-		}
-		Point size = scrolledContents.computeSize(body.getSize().x, SWT.DEFAULT, true);
-		scrolledContents.setSize(size);
-
-		bodyScrolledComposite.setExpandHorizontal(true);
-		bodyScrolledComposite.setMinWidth(100);
-		bodyScrolledComposite.setExpandVertical(true);
-		bodyScrolledComposite.setMinHeight(1);
-
-		bodyScrolledComposite.addControlListener(new ControlAdapter() {
-			@Override
-			public void controlResized(ControlEvent e) {
-				// XXX small offset in case list has a scroll bar
-				Point size = scrolledContents.computeSize(body.getSize().x - 20, SWT.DEFAULT, true);
-				scrolledContents.setSize(size);
-				bodyScrolledComposite.setMinHeight(size.y);
-			}
-		});
-
-		bodyScrolledComposite.setContent(scrolledContents);
-
-		Dialog.applyDialogFont(body);
-		// we've changed it so it needs to know
-		body.layout(true);
-	}
-
-	private void initializeCursors() {
-		if (handCursor == null) {
-			handCursor = new Cursor(getShell().getDisplay(), SWT.CURSOR_HAND);
-			disposables.add(handCursor);
-		}
-	}
-
-	private void initializeImages() {
-		if (infoImage == null) {
-			infoImage = DiscoveryImages.MESSAGE_INFO.createImage();
-			disposables.add(infoImage);
-		}
-	}
-
-	private void initializeColors() {
-		IThemeManager themeManager = PlatformUI.getWorkbench().getThemeManager();
-		if (colorWhite == null) {
-			ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
-			if (!colorRegistry.hasValueFor(COLOR_WHITE)) {
-				colorRegistry.put(COLOR_WHITE, new RGB(255, 255, 255));
-			}
-			colorWhite = colorRegistry.get(COLOR_WHITE);
-		}
-		if (colorDisabled == null) {
-			ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
-			if (!colorRegistry.hasValueFor(COLOR_DARK_GRAY)) {
-				colorRegistry.put(COLOR_DARK_GRAY, new RGB(0x69, 0x69, 0x69));
-			}
-			colorDisabled = colorRegistry.get(COLOR_DARK_GRAY);
-		}
-		if (colorCategoryGradientStart == null) {
-			colorCategoryGradientStart = themeManager.getCurrentTheme().getColorRegistry().get(
-					CommonThemes.COLOR_CATEGORY_GRADIENT_START);
-			colorCategoryGradientEnd = themeManager.getCurrentTheme().getColorRegistry().get(
-					CommonThemes.COLOR_CATEGORY_GRADIENT_END);
-		}
-	}
-
-	private void initializeFonts() {
-		// create a level-2 heading font
-		if (h2Font == null) {
-			Font baseFont = JFaceResources.getDialogFont();
-			FontData[] fontData = baseFont.getFontData();
-			for (FontData data : fontData) {
-				data.setStyle(data.getStyle() | SWT.BOLD);
-				data.height = data.height * 1.25f;
-			}
-			h2Font = new Font(Display.getCurrent(), fontData);
-			disposables.add(h2Font);
-		}
-		// create a level-1 heading font
-		if (h1Font == null) {
-			Font baseFont = JFaceResources.getDialogFont();
-			FontData[] fontData = baseFont.getFontData();
-			for (FontData data : fontData) {
-				data.setStyle(data.getStyle() | SWT.BOLD);
-				data.height = data.height * 1.35f;
-			}
-			h1Font = new Font(Display.getCurrent(), fontData);
-			disposables.add(h1Font);
-		}
-	}
-
-	private class ConnectorDescriptorItemUi implements PropertyChangeListener, Runnable {
-		private final DiscoveryConnector connector;
-
-		private final Button checkbox;
-
-		private final Label iconLabel;
-
-		private final Label nameLabel;
-
-		private ToolItem infoButton;
-
-		private final Label providerLabel;
-
-		private final Label description;
-
-		private final Composite checkboxContainer;
-
-		private final Composite connectorContainer;
-
-		private final Display display;
-
-		private Image iconImage;
-
-		private Image warningIconImage;
-
-		public ConnectorDescriptorItemUi(DiscoveryConnector connector, Composite categoryChildrenContainer,
-				Color background) {
-			display = categoryChildrenContainer.getDisplay();
-			this.connector = connector;
-			connector.addPropertyChangeListener(this);
-
-			connectorContainer = new Composite(categoryChildrenContainer, SWT.NULL);
-
-			configureLook(connectorContainer, background);
-			GridDataFactory.fillDefaults().grab(true, false).applyTo(connectorContainer);
-			GridLayout layout = new GridLayout(4, false);
-			layout.marginLeft = 7;
-			layout.marginTop = 2;
-			layout.marginBottom = 2;
-			connectorContainer.setLayout(layout);
-
-			checkboxContainer = new Composite(connectorContainer, SWT.NULL);
-			configureLook(checkboxContainer, background);
-			GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.BEGINNING).span(1, 2).applyTo(checkboxContainer);
-			GridLayoutFactory.fillDefaults().spacing(1, 1).numColumns(2).applyTo(checkboxContainer);
-
-			checkbox = new Button(checkboxContainer, SWT.CHECK);
-			checkbox.setText(" "); //$NON-NLS-1$
-			// help UI tests
-			checkbox.setData("connectorId", connector.getId()); //$NON-NLS-1$
-			configureLook(checkbox, background);
-			checkbox.setSelection(installableConnectors.contains(connector));
-			checkbox.addFocusListener(new FocusAdapter() {
-				@Override
-				public void focusGained(FocusEvent e) {
-					bodyScrolledComposite.showControl(connectorContainer);
-				}
-			});
-
-			GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(checkbox);
-
-			iconLabel = new Label(checkboxContainer, SWT.NULL);
-			configureLook(iconLabel, background);
-			GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.CENTER).applyTo(iconLabel);
-
-			if (connector.getIcon() != null) {
-				iconImage = computeIconImage(connector.getSource(), connector.getIcon(), 32, false);
-				if (iconImage != null) {
-					iconLabel.setImage(iconImage);
-				}
-			}
-
-			nameLabel = new Label(connectorContainer, SWT.NULL);
-			configureLook(nameLabel, background);
-			GridDataFactory.fillDefaults().grab(true, false).applyTo(nameLabel);
-			nameLabel.setFont(h2Font);
-			nameLabel.setText(connector.getName());
-
-			providerLabel = new Label(connectorContainer, SWT.NULL);
-			configureLook(providerLabel, background);
-			GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).applyTo(providerLabel);
-			providerLabel.setText(NLS.bind(Messages.ConnectorDiscoveryWizardMainPage_provider_and_license,
-					connector.getProvider(), connector.getLicense()));
-
-			if (hasTooltip(connector)) {
-				ToolBar toolBar = new ToolBar(connectorContainer, SWT.FLAT);
-				toolBar.setBackground(background);
-
-				infoButton = new ToolItem(toolBar, SWT.PUSH);
-				infoButton.setImage(infoImage);
-				infoButton.setToolTipText(Messages.ConnectorDiscoveryWizardMainPage_tooltip_showOverview);
-				hookTooltip(toolBar, infoButton, connectorContainer, nameLabel, connector.getSource(),
-						connector.getOverview());
-				GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).applyTo(toolBar);
-			} else {
-				new Label(connectorContainer, SWT.NULL).setText(" "); //$NON-NLS-1$
-			}
-
-			description = new Label(connectorContainer, SWT.NULL | SWT.WRAP);
-			configureLook(description, background);
-
-			GridDataFactory.fillDefaults().grab(true, false).span(3, 1).hint(100, SWT.DEFAULT).applyTo(description);
-			String descriptionText = connector.getDescription();
-			int maxDescriptionLength = 162;
-			if (descriptionText.length() > maxDescriptionLength) {
-				descriptionText = descriptionText.substring(0, maxDescriptionLength);
-			}
-			description.setText(descriptionText.replaceAll("(\\r\\n)|\\n|\\r", " ")); //$NON-NLS-1$ //$NON-NLS-2$
-
-			// always disabled color to make it less prominent
-			providerLabel.setForeground(colorDisabled);
-
-			checkbox.addSelectionListener(new SelectionListener() {
-				public void widgetDefaultSelected(SelectionEvent e) {
-					widgetSelected(e);
-				}
-
-				public void widgetSelected(SelectionEvent e) {
-					boolean selected = checkbox.getSelection();
-					maybeModifySelection(selected);
-				}
-			});
-			MouseListener connectorItemMouseListener = new MouseAdapter() {
-				@Override
-				public void mouseUp(MouseEvent e) {
-					boolean selected = !checkbox.getSelection();
-					if (maybeModifySelection(selected)) {
-						checkbox.setSelection(selected);
-					}
-				}
-			};
-			checkboxContainer.addMouseListener(connectorItemMouseListener);
-			connectorContainer.addMouseListener(connectorItemMouseListener);
-			iconLabel.addMouseListener(connectorItemMouseListener);
-			nameLabel.addMouseListener(connectorItemMouseListener);
-			providerLabel.addMouseListener(connectorItemMouseListener);
-			description.addMouseListener(connectorItemMouseListener);
-		}
-
-		protected boolean maybeModifySelection(boolean selected) {
-			if (selected) {
-				if (connector.getAvailable() == null) {
-					return false;
-				}
-				if (!connector.getAvailable()) {
-					MessageDialog.openWarning(getShell(),
-							Messages.ConnectorDiscoveryWizardMainPage_warningTitleConnectorUnavailable, NLS.bind(
-									Messages.ConnectorDiscoveryWizardMainPage_warningMessageConnectorUnavailable,
-									connector.getName()));
-					return false;
-				}
-			}
-			ConnectorDiscoveryWizardMainPage.this.modifySelection(connector, selected);
-			return true;
-		}
-
-		public void updateAvailability() {
-			boolean enabled = connector.getAvailable() != null && connector.getAvailable();
-
-			checkbox.setEnabled(enabled);
-			nameLabel.setEnabled(enabled);
-			providerLabel.setEnabled(enabled);
-			description.setEnabled(enabled);
-			Color foreground;
-			if (enabled) {
-				foreground = connectorContainer.getForeground();
-			} else {
-				foreground = colorDisabled;
-			}
-			nameLabel.setForeground(foreground);
-			description.setForeground(foreground);
-
-			if (iconImage != null) {
-				boolean unavailable = !enabled && connector.getAvailable() != null;
-				if (unavailable) {
-					if (warningIconImage == null) {
-						warningIconImage = new DecorationOverlayIcon(iconImage, DiscoveryImages.OVERLAY_WARNING_32,
-								IDecoration.TOP_LEFT).createImage();
-						disposables.add(warningIconImage);
-					}
-					iconLabel.setImage(warningIconImage);
-				} else if (warningIconImage != null) {
-					iconLabel.setImage(iconImage);
-				}
-			}
-		}
-
-		public void propertyChange(PropertyChangeEvent evt) {
-			display.asyncExec(this);
-		}
-
-		public void run() {
-			if (!connectorContainer.isDisposed()) {
-				updateAvailability();
-			}
-		}
-	}
-
-	private void createDiscoveryContents(Composite container) {
-
-		Color background = container.getBackground();
-
-		if (discovery == null || isEmpty(discovery)) {
-			GridLayoutFactory.fillDefaults().margins(5, 5).applyTo(container);
-
-			boolean atLeastOneKindFiltered = false;
-			for (ConnectorDescriptorKind kind : ConnectorDescriptorKind.values()) {
-				if (!getWizard().isVisible(kind)) {
-					atLeastOneKindFiltered = true;
-					break;
-				}
-			}
-			Control helpTextControl;
-			if (filterPattern != null) {
-				Link link = new Link(container, SWT.WRAP);
-
-				link.setFont(container.getFont());
-				link.setText(org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_noMatchingItems_withFilterText);
-				link.addListener(SWT.Selection, new Listener() {
-					public void handleEvent(Event event) {
-						clearFilterText();
-						filterText.setFocus();
-					}
-				});
-				helpTextControl = link;
-			} else {
-				Label helpText = new Label(container, SWT.WRAP);
-				helpText.setFont(container.getFont());
-				if (atLeastOneKindFiltered) {
-					helpText.setText(org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_noMatchingItems_filteredType);
-				} else {
-					helpText.setText(org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_noMatchingItems_noFilter);
-				}
-				helpTextControl = helpText;
-			}
-			configureLook(helpTextControl, background);
-			GridDataFactory.fillDefaults().grab(true, false).hint(100, SWT.DEFAULT).applyTo(helpTextControl);
-		} else {
-			GridLayoutFactory.fillDefaults().numColumns(2).spacing(0, 0).applyTo(container);
-
-			List<DiscoveryCategory> categories = new ArrayList<DiscoveryCategory>(discovery.getCategories());
-			Collections.sort(categories, new DiscoveryCategoryComparator());
-
-			Composite categoryChildrenContainer = null;
-			for (DiscoveryCategory category : categories) {
-				if (isEmpty(category)) {
-					// don't add empty categories
-					continue;
-				}
-				{ // category header
-					final GradientCanvas categoryHeaderContainer = new GradientCanvas(container, SWT.NONE);
-					categoryHeaderContainer.setSeparatorVisible(true);
-					categoryHeaderContainer.setSeparatorAlignment(SWT.TOP);
-					categoryHeaderContainer.setBackgroundGradient(new Color[] { colorCategoryGradientStart,
-							colorCategoryGradientEnd }, new int[] { 100 }, true);
-					categoryHeaderContainer.putColor(IFormColors.H_BOTTOM_KEYLINE1, colorCategoryGradientStart);
-					categoryHeaderContainer.putColor(IFormColors.H_BOTTOM_KEYLINE2, colorCategoryGradientEnd);
-
-					GridDataFactory.fillDefaults().span(2, 1).applyTo(categoryHeaderContainer);
-					GridLayoutFactory.fillDefaults().numColumns(3).margins(5, 5).equalWidth(false).applyTo(
-							categoryHeaderContainer);
-
-					Label iconLabel = new Label(categoryHeaderContainer, SWT.NULL);
-					if (category.getIcon() != null) {
-						Image image = computeIconImage(category.getSource(), category.getIcon(), 48, true);
-						if (image != null) {
-							iconLabel.setImage(image);
-						}
-					}
-					iconLabel.setBackground(null);
-					GridDataFactory.swtDefaults().align(SWT.CENTER, SWT.BEGINNING).span(1, 2).applyTo(iconLabel);
-
-					Label nameLabel = new Label(categoryHeaderContainer, SWT.NULL);
-					nameLabel.setFont(h1Font);
-					nameLabel.setText(category.getName());
-					nameLabel.setBackground(null);
-
-					GridDataFactory.fillDefaults().grab(true, false).applyTo(nameLabel);
-					if (hasTooltip(category)) {
-						ToolBar toolBar = new ToolBar(categoryHeaderContainer, SWT.FLAT);
-						toolBar.setBackground(null);
-						ToolItem infoButton = new ToolItem(toolBar, SWT.PUSH);
-						infoButton.setImage(infoImage);
-						infoButton.setToolTipText(Messages.ConnectorDiscoveryWizardMainPage_tooltip_showOverview);
-						hookTooltip(toolBar, infoButton, categoryHeaderContainer, nameLabel, category.getSource(),
-								category.getOverview());
-						GridDataFactory.fillDefaults().align(SWT.END, SWT.CENTER).applyTo(toolBar);
-					} else {
-						new Label(categoryHeaderContainer, SWT.NULL).setText(" "); //$NON-NLS-1$
-					}
-					Label description = new Label(categoryHeaderContainer, SWT.WRAP);
-					GridDataFactory.fillDefaults().grab(true, false).span(2, 1).hint(100, SWT.DEFAULT).applyTo(
-							description);
-					description.setBackground(null);
-					description.setText(category.getDescription());
-				}
-
-				categoryChildrenContainer = new Composite(container, SWT.NULL);
-				configureLook(categoryChildrenContainer, background);
-				GridDataFactory.fillDefaults().span(2, 1).grab(true, false).applyTo(categoryChildrenContainer);
-				GridLayoutFactory.fillDefaults().spacing(0, 0).applyTo(categoryChildrenContainer);
-
-				int numChildren = 0;
-				List<DiscoveryConnector> connectors = new ArrayList<DiscoveryConnector>(category.getConnectors());
-				Collections.sort(connectors, new DiscoveryConnectorComparator(category));
-				for (final DiscoveryConnector connector : connectors) {
-					if (isFiltered(connector)) {
-						continue;
-					}
-
-					if (++numChildren > 1) {
-						// a separator between connector descriptors
-						Composite border = new Composite(categoryChildrenContainer, SWT.NULL);
-						GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 1).applyTo(border);
-						GridLayoutFactory.fillDefaults().applyTo(border);
-						border.addPaintListener(new ConnectorBorderPaintListener());
-					}
-
-					ConnectorDescriptorItemUi itemUi = new ConnectorDescriptorItemUi(connector,
-							categoryChildrenContainer, background);
-					itemUi.updateAvailability();
-				}
-			}
-			// last one gets a border
-			Composite border = new Composite(categoryChildrenContainer, SWT.NULL);
-			GridDataFactory.fillDefaults().grab(true, false).hint(SWT.DEFAULT, 1).applyTo(border);
-			GridLayoutFactory.fillDefaults().applyTo(border);
-			border.addPaintListener(new ConnectorBorderPaintListener());
-		}
-		container.layout(true);
-		container.redraw();
-	}
-
-	private void configureLook(Control control, Color background) {
-		control.setBackground(background);
-	}
-
-	private void hookTooltip(final Control tooltipControl, final ToolItem tipActivator, final Control exitControl,
-			final Control titleControl, AbstractDiscoverySource source, Overview overview) {
-		final OverviewToolTip toolTip = new OverviewToolTip(tooltipControl, source, overview);
-		Listener listener = new Listener() {
-			public void handleEvent(Event event) {
-				switch (event.type) {
-				case SWT.Dispose:
-				case SWT.MouseWheel:
-					toolTip.hide();
-					break;
-				}
-
-			}
-		};
-		tipActivator.addListener(SWT.Dispose, listener);
-		tipActivator.addListener(SWT.MouseWheel, listener);
-		tipActivator.addSelectionListener(new SelectionAdapter() {
-			@Override
-			public void widgetSelected(SelectionEvent e) {
-				Point titleAbsLocation = titleControl.getParent().toDisplay(titleControl.getLocation());
-				Point containerAbsLocation = tooltipControl.getParent().toDisplay(tooltipControl.getLocation());
-				Rectangle bounds = titleControl.getBounds();
-				int relativeX = titleAbsLocation.x - containerAbsLocation.x;
-				int relativeY = titleAbsLocation.y - containerAbsLocation.y;
-
-				relativeY += bounds.height + 3;
-				toolTip.show(new Point(relativeX, relativeY));
-			}
-		});
-		Listener exitListener = new Listener() {
-			public void handleEvent(Event event) {
-				switch (event.type) {
-				case SWT.MouseWheel:
-					toolTip.hide();
-					break;
-				case SWT.MouseExit:
-					/*
-					 * Check if the mouse exit happened because we move over the
-					 * tooltip
-					 */
-					Rectangle containerBounds = exitControl.getBounds();
-					Point displayLocation = exitControl.getParent().toDisplay(containerBounds.x, containerBounds.y);
-					containerBounds.x = displayLocation.x;
-					containerBounds.y = displayLocation.y;
-					if (containerBounds.contains(Display.getCurrent().getCursorLocation())) {
-						break;
-					}
-					toolTip.hide();
-					break;
-				}
-			}
-		};
-		hookRecursively(exitControl, exitListener);
-	}
-
-	private void hookRecursively(Control control, Listener listener) {
-		control.addListener(SWT.Dispose, listener);
-		control.addListener(SWT.MouseHover, listener);
-		control.addListener(SWT.MouseMove, listener);
-		control.addListener(SWT.MouseExit, listener);
-		control.addListener(SWT.MouseDown, listener);
-		control.addListener(SWT.MouseWheel, listener);
-		if (control instanceof Composite) {
-			for (Control child : ((Composite) control).getChildren()) {
-				hookRecursively(child, listener);
-			}
-		}
-	}
-
-	private boolean hasTooltip(final DiscoveryConnector connector) {
-		return connector.getOverview() != null && connector.getOverview().getSummary() != null
-				&& connector.getOverview().getSummary().length() > 0;
-	}
-
-	private boolean hasTooltip(final DiscoveryCategory category) {
-		return category.getOverview() != null && category.getOverview().getSummary() != null
-				&& category.getOverview().getSummary().length() > 0;
-	}
-
-	/**
-	 * indicate if there is nothing to display in the UI, given the current state of
-	 * {@link ConnectorDiscoveryWizard#isVisible(ConnectorDescriptorKind) filters}.
-	 */
-	private boolean isEmpty(ConnectorDiscovery discovery) {
-		for (DiscoveryCategory category : discovery.getCategories()) {
-			if (!isEmpty(category)) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	/**
-	 * indicate if the category has nothing to display in the UI, given the current state of
-	 * {@link ConnectorDiscoveryWizard#isVisible(ConnectorDescriptorKind) filters}.
-	 */
-	private boolean isEmpty(DiscoveryCategory category) {
-		if (category.getConnectors().isEmpty()) {
-			return true;
-		}
-		for (ConnectorDescriptor descriptor : category.getConnectors()) {
-			if (!isFiltered(descriptor)) {
-				return false;
-			}
-		}
-		return true;
-	}
-
-	private boolean isFiltered(ConnectorDescriptor descriptor) {
-		boolean kindFiltered = true;
-		for (ConnectorDescriptorKind kind : descriptor.getKind()) {
-			if (getWizard().isVisible(kind)) {
-				kindFiltered = false;
-				break;
-			}
-		}
-		if (kindFiltered) {
-			return true;
-		}
-		if (installedFeatures != null && installedFeatures.contains(descriptor.getId())) {
-			// always filter installed features per bug 275777
-			return true;
-		}
-		if (filterPattern != null) {
-			if (!(filterMatches(descriptor.getName()) || filterMatches(descriptor.getDescription())
-					|| filterMatches(descriptor.getProvider()) || filterMatches(descriptor.getLicense()))) {
-				return true;
-			}
-		}
-		return false;
-	}
-
-	private boolean filterMatches(String text) {
-		return text != null && filterPattern.matcher(text).find();
-	}
-
-	private Image computeIconImage(AbstractDiscoverySource discoverySource, Icon icon, int dimension, boolean fallback) {
-		String imagePath;
-		switch (dimension) {
-		case 64:
-			imagePath = icon.getImage64();
-			if (imagePath != null || !fallback) {
-				break;
-			}
-		case 48:
-			imagePath = icon.getImage48();
-			if (imagePath != null || !fallback) {
-				break;
-			}
-		case 32:
-			imagePath = icon.getImage32();
-			break;
-		default:
-			throw new IllegalArgumentException();
-		}
-		if (imagePath != null && imagePath.length() > 0) {
-			URL resource = discoverySource.getResource(imagePath);
-			if (resource != null) {
-				ImageDescriptor descriptor = ImageDescriptor.createFromURL(resource);
-				Image image = descriptor.createImage();
-				if (image != null) {
-					disposables.add(image);
-					return image;
-				}
-			}
-		}
-		return null;
-	}
-
-	private void maybeUpdateDiscovery() {
-		if (!getControl().isDisposed() && isCurrentPage() && discovery == null) {
-			final Dictionary<Object, Object> environment = getWizard().getEnvironment();
-			boolean wasCancelled = false;
-			try {
-				getContainer().run(true, true, new IRunnableWithProgress() {
-					public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-
-						if (ConnectorDiscoveryWizardMainPage.this.installedFeatures == null) {
-							Set<String> installedFeatures = new HashSet<String>();
-							IBundleGroupProvider[] bundleGroupProviders = Platform.getBundleGroupProviders();
-							for (IBundleGroupProvider provider : bundleGroupProviders) {
-								if (monitor.isCanceled()) {
-									throw new InterruptedException();
-								}
-								IBundleGroup[] bundleGroups = provider.getBundleGroups();
-								for (IBundleGroup group : bundleGroups) {
-									installedFeatures.add(group.getIdentifier());
-								}
-							}
-							ConnectorDiscoveryWizardMainPage.this.installedFeatures = installedFeatures;
-						}
-
-						ConnectorDiscovery connectorDiscovery = new ConnectorDiscovery();
-						connectorDiscovery.getDiscoveryStrategies().add(new BundleDiscoveryStrategy());
-						RemoteBundleDiscoveryStrategy remoteDiscoveryStrategy = new RemoteBundleDiscoveryStrategy();
-
-						remoteDiscoveryStrategy.setDirectoryUrl(System.getProperty(SYSTEM_PROPERTY_DIRECTORY_URL,
-								DEFAULT_DIRECTORY_URL));
-						connectorDiscovery.getDiscoveryStrategies().add(remoteDiscoveryStrategy);
-						connectorDiscovery.setEnvironment(environment);
-						connectorDiscovery.setVerifyUpdateSiteAvailability(false);
-						try {
-							connectorDiscovery.performDiscovery(monitor);
-						} catch (CoreException e) {
-							throw new InvocationTargetException(e);
-						} finally {
-							ConnectorDiscoveryWizardMainPage.this.discovery = connectorDiscovery;
-						}
-						if (monitor.isCanceled()) {
-							throw new InterruptedException();
-						}
-					}
-				});
-			} catch (InvocationTargetException e) {
-				IStatus status = computeStatus(e, Messages.ConnectorDiscoveryWizardMainPage_unexpectedException);
-				DiscoveryUiUtil.logAndDisplayStatus(getShell(), Messages.ConnectorDiscoveryWizardMainPage_errorTitle,
-						status);
-			} catch (InterruptedException e) {
-				// cancelled by user so nothing to do here.
-				wasCancelled = true;
-			}
-			if (discovery != null) {
-				discoveryUpdated(wasCancelled);
-				if (!discovery.getConnectors().isEmpty()) {
-					try {
-						getContainer().run(true, true, new IRunnableWithProgress() {
-							public void run(IProgressMonitor monitor) throws InvocationTargetException,
-									InterruptedException {
-								discovery.verifySiteAvailability(monitor);
-							}
-						});
-					} catch (InvocationTargetException e) {
-						IStatus status = computeStatus(e, Messages.ConnectorDiscoveryWizardMainPage_unexpectedException);
-						DiscoveryUiUtil.logAndDisplayStatus(getShell(),
-								Messages.ConnectorDiscoveryWizardMainPage_errorTitle, status);
-					} catch (InterruptedException e) {
-						// cancelled by user so nothing to do here.
-						wasCancelled = true;
-					}
-				}
-				// createBodyContents() shouldn't be necessary but for some reason checkboxes don't 
-				// regain their enabled state
-				createBodyContents();
-			}
-			// help UI tests
-			body.setData("discoveryComplete", "true"); //$NON-NLS-1$//$NON-NLS-2$
-		}
-	}
-
-	private IStatus computeStatus(InvocationTargetException e, String message) {
-		Throwable cause = e.getCause();
-		IStatus statusCause;
-		if (!(cause instanceof CoreException)) {
-			statusCause = ((CoreException) cause).getStatus();
-		} else {
-			statusCause = new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN, cause.getMessage(), cause);
-		}
-		if (statusCause.getMessage() != null) {
-			message = NLS.bind(Messages.ConnectorDiscoveryWizardMainPage_message_with_cause, message,
-					statusCause.getMessage());
-		}
-		IStatus status = new MultiStatus(DiscoveryUi.ID_PLUGIN, 0, new IStatus[] { statusCause }, message, cause);
-		return status;
-	}
-
-	@Override
-	public void setVisible(boolean visible) {
-		super.setVisible(visible);
-		if (visible && discovery == null) {
-			Display.getCurrent().asyncExec(new Runnable() {
-				public void run() {
-					maybeUpdateDiscovery();
-				}
-			});
-		}
-	}
-
-	private void discoveryUpdated(boolean wasCancelled) {
-		createBodyContents();
-		if (discovery != null && !wasCancelled) {
-			int categoryWithConnectorCount = 0;
-			for (DiscoveryCategory category : discovery.getCategories()) {
-				categoryWithConnectorCount += category.getConnectors().size();
-			}
-			if (categoryWithConnectorCount == 0) {
-				// nothing was discovered: notify the user
-				MessageDialog.openWarning(
-						getShell(),
-						org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_noConnectorsFound,
-						org.eclipse.mylyn.internal.discovery.ui.wizards.Messages.ConnectorDiscoveryWizardMainPage_noConnectorsFound_description);
-			}
-		}
-	}
-
-	public List<ConnectorDescriptor> getInstallableConnectors() {
-		return installableConnectors;
-	}
-
-	private void modifySelection(final DiscoveryConnector connector, boolean selected) {
-		connector.setSelected(selected);
-
-		if (selected) {
-			installableConnectors.add(connector);
-		} else {
-			installableConnectors.remove(connector);
-		}
-		setPageComplete(!installableConnectors.isEmpty());
-	}
-
-	public class ConnectorBorderPaintListener implements PaintListener {
-		public void paintControl(PaintEvent e) {
-			Composite composite = (Composite) e.widget;
-			Rectangle bounds = composite.getBounds();
-			GC gc = e.gc;
-			gc.setLineStyle(SWT.LINE_DOT);
-			gc.drawLine(bounds.x, bounds.y, bounds.x + bounds.width, bounds.y);
-		}
-	}
-
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/Messages.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/Messages.java
deleted file mode 100644
index 94b5ae5..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/Messages.java
+++ /dev/null
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.ui.wizards;
-
-import org.eclipse.osgi.util.NLS;
-
-/**
- * @author David Green
- */
-class Messages extends NLS {
-	private static final String BUNDLE_NAME = "org.eclipse.mylyn.internal.discovery.ui.wizards.messages"; //$NON-NLS-1$
-
-	public static String ConnectorDescriptorToolTip_detailsLink;
-
-	public static String ConnectorDescriptorToolTip_detailsLink_tooltip;
-
-	public static String ConnectorDiscoveryWizard_cannotInstall;
-
-	public static String ConnectorDiscoveryWizard_connectorDiscovery;
-
-	public static String ConnectorDiscoveryWizard_installProblems;
-
-	public static String InstallConnectorsJob_commaSeparator;
-
-	public static String InstallConnectorsJob_connectorsNotAvailable;
-
-	public static String InstallConnectorsJob_profileProblem;
-
-	public static String InstallConnectorsJob_questionProceed;
-
-	public static String InstallConnectorsJob_questionProceed_long;
-
-	public static String InstallConnectorsJob_task_configuring;
-
-	public static String InstallConnectorsJob_unexpectedError_url;
-
-	public static String ConnectorDiscoveryWizardMainPage_clearButton_accessibleListener;
-
-	public static String ConnectorDiscoveryWizardMainPage_clearButton_toolTip;
-
-	public static String ConnectorDiscoveryWizardMainPage_connectorDiscovery;
-
-	public static String ConnectorDiscoveryWizardMainPage_errorTitle;
-
-	public static String ConnectorDiscoveryWizardMainPage_filter_documents;
-
-	public static String ConnectorDiscoveryWizardMainPage_filter_tasks;
-
-	public static String ConnectorDiscoveryWizardMainPage_filter_vcs;
-
-	public static String ConnectorDiscoveryWizardMainPage_filterLabel;
-
-	public static String ConnectorDiscoveryWizardMainPage_message_with_cause;
-
-	public static String ConnectorDiscoveryWizardMainPage_noConnectorsFound;
-
-	public static String ConnectorDiscoveryWizardMainPage_noConnectorsFound_description;
-
-	public static String ConnectorDiscoveryWizardMainPage_noMatchingItems_filteredType;
-
-	public static String ConnectorDiscoveryWizardMainPage_noMatchingItems_noFilter;
-
-	public static String ConnectorDiscoveryWizardMainPage_noMatchingItems_withFilterText;
-
-	public static String ConnectorDiscoveryWizardMainPage_pageDescription;
-
-	public static String ConnectorDiscoveryWizardMainPage_provider_and_license;
-
-	public static String ConnectorDiscoveryWizardMainPage_tooltip_showOverview;
-
-	public static String ConnectorDiscoveryWizardMainPage_unexpectedException;
-
-	public static String ConnectorDiscoveryWizardMainPage_warningMessageConnectorUnavailable;
-
-	public static String ConnectorDiscoveryWizardMainPage_warningTitleConnectorUnavailable;
-
-	public static String PrepareInstallProfileJob_notFoundDescriptorDetail;
-
-	public static String PrepareInstallProfileJob_calculatingRequirements;
-
-	public static String PrepareInstallProfileJob_computeProfileChangeRequestFailed;
-
-	public static String PrepareInstallProfileJob_errorResolvingHostname;
-
-	public static String PrepareInstallProfileJob_ok;
-
-	static {
-		// initialize resource bundle
-		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
-	}
-
-	private Messages() {
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/OverviewToolTip.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/OverviewToolTip.java
deleted file mode 100644
index bba55a9..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/OverviewToolTip.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-
-package org.eclipse.mylyn.internal.discovery.ui.wizards;
-
-import java.net.URL;
-
-import org.eclipse.jface.layout.GridDataFactory;
-import org.eclipse.jface.layout.GridLayoutFactory;
-import org.eclipse.jface.resource.ColorRegistry;
-import org.eclipse.jface.resource.ImageDescriptor;
-import org.eclipse.jface.resource.JFaceResources;
-import org.eclipse.jface.window.ToolTip;
-import org.eclipse.mylyn.internal.discovery.core.model.AbstractDiscoverySource;
-import org.eclipse.mylyn.internal.discovery.core.model.Overview;
-import org.eclipse.mylyn.internal.provisional.commons.ui.GradientToolTip;
-import org.eclipse.mylyn.internal.provisional.commons.ui.WorkbenchUtil;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.events.DisposeEvent;
-import org.eclipse.swt.events.DisposeListener;
-import org.eclipse.swt.events.SelectionEvent;
-import org.eclipse.swt.events.SelectionListener;
-import org.eclipse.swt.graphics.Color;
-import org.eclipse.swt.graphics.Image;
-import org.eclipse.swt.graphics.Point;
-import org.eclipse.swt.graphics.RGB;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Control;
-import org.eclipse.swt.widgets.Display;
-import org.eclipse.swt.widgets.Event;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Link;
-import org.eclipse.ui.browser.IWorkbenchBrowserSupport;
-
-/**
- * @author David Green
- */
-class OverviewToolTip extends GradientToolTip {
-
-	private static final String COLOR_BLACK = "black"; //$NON-NLS-1$
-
-	private final Overview overview;
-
-	private final AbstractDiscoverySource source;
-
-	private Color colorBlack;
-
-	public OverviewToolTip(Control control, AbstractDiscoverySource source, Overview overview) {
-		super(control, ToolTip.RECREATE, true);
-		if (source == null) {
-			throw new IllegalArgumentException();
-		}
-		if (overview == null) {
-			throw new IllegalArgumentException();
-		}
-		this.source = source;
-		this.overview = overview;
-		setHideOnMouseDown(false); // required for links to work
-	}
-
-	@Override
-	protected Composite createToolTipArea(Event event, final Composite parent) {
-		if (colorBlack == null) {
-			ColorRegistry colorRegistry = JFaceResources.getColorRegistry();
-			if (!colorRegistry.hasValueFor(COLOR_BLACK)) {
-				colorRegistry.put(COLOR_BLACK, new RGB(0, 0, 0));
-			}
-			colorBlack = colorRegistry.get(COLOR_BLACK);
-		}
-
-		GridLayoutFactory.fillDefaults().applyTo(parent);
-
-		Composite container = new Composite(parent, SWT.NULL);
-		container.setBackground(null);
-
-		Image image = null;
-		if (overview.getScreenshot() != null) {
-			image = computeImage(source, overview.getScreenshot());
-			if (image != null) {
-				final Image fimage = image;
-				container.addDisposeListener(new DisposeListener() {
-					public void widgetDisposed(DisposeEvent e) {
-						fimage.dispose();
-					}
-				});
-			}
-		}
-		final boolean hasLearnMoreLink = overview.getUrl() != null && overview.getUrl().length() > 0;
-
-		final int borderWidth = 1;
-		final int fixedImageHeight = 240;
-		final int fixedImageWidth = 320;
-		final int heightHint = fixedImageHeight + (borderWidth * 2);
-		final int widthHint = fixedImageWidth;
-
-		final int containerWidthHintWithImage = 650;
-		final int containerWidthHintWithoutImage = 500;
-
-		GridDataFactory.fillDefaults().grab(true, true).hint(
-				image == null ? containerWidthHintWithoutImage : containerWidthHintWithImage, SWT.DEFAULT).applyTo(
-				container);
-
-		GridLayoutFactory.fillDefaults().numColumns(2).margins(5, 5).spacing(3, 0).applyTo(container);
-
-		String summary = overview.getSummary();
-
-		Composite summaryContainer = new Composite(container, SWT.NULL);
-		summaryContainer.setBackground(null);
-		GridLayoutFactory.fillDefaults().applyTo(summaryContainer);
-
-		GridDataFactory gridDataFactory = GridDataFactory.fillDefaults()
-				.grab(true, true)
-				.span(image == null ? 2 : 1, 1);
-		if (image != null) {
-			gridDataFactory.hint(widthHint, heightHint);
-		}
-		gridDataFactory.applyTo(summaryContainer);
-
-		Label summaryLabel = new Label(summaryContainer, SWT.WRAP);
-		summaryLabel.setText(summary);
-		summaryLabel.setBackground(null);
-
-		GridDataFactory.fillDefaults().grab(true, true).align(SWT.BEGINNING, SWT.BEGINNING).applyTo(summaryLabel);
-
-		if (image != null) {
-			final Composite imageContainer = new Composite(container, SWT.BORDER);
-			GridLayoutFactory.fillDefaults().applyTo(imageContainer);
-
-			GridDataFactory.fillDefaults().grab(false, false).align(SWT.CENTER, SWT.BEGINNING).hint(
-					widthHint + (borderWidth * 2), heightHint).applyTo(imageContainer);
-
-			Label imageLabel = new Label(imageContainer, SWT.NULL);
-			GridDataFactory.fillDefaults().hint(widthHint, fixedImageHeight).indent(borderWidth, borderWidth).applyTo(
-					imageLabel);
-			imageLabel.setImage(image);
-			imageLabel.setBackground(null);
-			imageLabel.setSize(widthHint, fixedImageHeight);
-
-			// creates a border
-			imageContainer.setBackground(colorBlack);
-		}
-		if (hasLearnMoreLink) {
-			Link link = new Link(summaryContainer, SWT.NULL);
-			GridDataFactory.fillDefaults().grab(false, false).align(SWT.BEGINNING, SWT.CENTER).applyTo(link);
-			link.setText(Messages.ConnectorDescriptorToolTip_detailsLink);
-			link.setBackground(null);
-			link.setToolTipText(NLS.bind(Messages.ConnectorDescriptorToolTip_detailsLink_tooltip, overview.getUrl()));
-			link.addSelectionListener(new SelectionListener() {
-				public void widgetSelected(SelectionEvent e) {
-					WorkbenchUtil.openUrl(overview.getUrl(), IWorkbenchBrowserSupport.AS_EXTERNAL);
-				}
-
-				public void widgetDefaultSelected(SelectionEvent e) {
-					widgetSelected(e);
-				}
-			});
-		}
-		if (image == null) {
-			// prevent overviews with no image from providing unlimited text.
-			Point optimalSize = summaryContainer.computeSize(SWT.DEFAULT, SWT.DEFAULT, true);
-			if (optimalSize.y > (heightHint + 10)) {
-				((GridData) summaryContainer.getLayoutData()).heightHint = heightHint;
-				container.layout(true);
-			}
-		}
-		// hack: cause the tooltip to gain focus so that we can capture the escape key
-		//       this must be done async since the tooltip is not yet visible.
-		Display.getCurrent().asyncExec(new Runnable() {
-			public void run() {
-				if (!parent.isDisposed()) {
-					parent.setFocus();
-				}
-			}
-		});
-		return container;
-	}
-
-	private Image computeImage(AbstractDiscoverySource discoverySource, String imagePath) {
-		URL resource = discoverySource.getResource(imagePath);
-		if (resource != null) {
-			ImageDescriptor descriptor = ImageDescriptor.createFromURL(resource);
-			Image image = descriptor.createImage();
-			return image;
-		}
-		return null;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/PrepareInstallProfileJob.java b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/PrepareInstallProfileJob.java
deleted file mode 100644
index d43eedb..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/PrepareInstallProfileJob.java
+++ /dev/null
@@ -1,367 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Tasktop Technologies 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:
- *     Tasktop Technologies - initial API and implementation
- *******************************************************************************/
-package org.eclipse.mylyn.internal.discovery.ui.wizards;
-
-import java.lang.reflect.InvocationTargetException;
-import java.net.InetAddress;
-import java.net.MalformedURLException;
-import java.net.URISyntaxException;
-import java.net.URL;
-import java.net.UnknownHostException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.MultiStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.core.runtime.SubProgressMonitor;
-import org.eclipse.equinox.internal.provisional.p2.core.Version;
-import org.eclipse.equinox.internal.provisional.p2.director.ProfileChangeRequest;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfile;
-import org.eclipse.equinox.internal.provisional.p2.engine.IProfileRegistry;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IInstallableUnit;
-import org.eclipse.equinox.internal.provisional.p2.metadata.IProvidedCapability;
-import org.eclipse.equinox.internal.provisional.p2.metadata.repository.IMetadataRepository;
-import org.eclipse.equinox.internal.provisional.p2.query.Collector;
-import org.eclipse.equinox.internal.provisional.p2.query.MatchQuery;
-import org.eclipse.equinox.internal.provisional.p2.query.Query;
-import org.eclipse.equinox.internal.provisional.p2.ui.actions.InstallAction;
-import org.eclipse.equinox.internal.provisional.p2.ui.operations.PlannerResolutionOperation;
-import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningUtil;
-import org.eclipse.jface.dialogs.MessageDialog;
-import org.eclipse.jface.operation.IRunnableWithProgress;
-import org.eclipse.mylyn.internal.discovery.core.model.ConnectorDescriptor;
-import org.eclipse.mylyn.internal.discovery.ui.DiscoveryUi;
-import org.eclipse.mylyn.internal.discovery.ui.util.DiscoveryUiUtil;
-import org.eclipse.osgi.util.NLS;
-import org.eclipse.swt.widgets.Display;
-
-/**
- * A job that configures a p2 {@link #getInstallAction() install action} for installing one or more
- * {@link ConnectorDescriptor connectors}. The bulk of the installation work is done by p2; this class just sets up the
- * p2 repository metadata and selects the appropriate features to install. After running the job the
- * {@link #getInstallAction() install action} must be run to perform the installation.
- * 
- * @author David Green
- */
-@SuppressWarnings("restriction")
-public class PrepareInstallProfileJob implements IRunnableWithProgress {
-
-	private static final String P2_FEATURE_GROUP_SUFFIX = ".feature.group"; //$NON-NLS-1$
-
-	private final List<ConnectorDescriptor> installableConnectors;
-
-	private PlannerResolutionOperation plannerResolutionOperation;
-
-	private String profileId;
-
-	private IInstallableUnit[] ius;
-
-	private InstallAction installAction;
-
-	public PrepareInstallProfileJob(List<ConnectorDescriptor> installableConnectors) {
-		if (installableConnectors == null || installableConnectors.isEmpty()) {
-			throw new IllegalArgumentException();
-		}
-		this.installableConnectors = new ArrayList<ConnectorDescriptor>(installableConnectors);
-	}
-
-	public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
-		try {
-			doRun(monitor);
-			if (monitor.isCanceled()) {
-				throw new InterruptedException();
-			}
-		} catch (Exception e) {
-			throw new InvocationTargetException(e);
-		}
-	}
-
-	public void doRun(IProgressMonitor monitor) throws CoreException {
-		final int totalWork = installableConnectors.size() * 6;
-		monitor.beginTask(Messages.InstallConnectorsJob_task_configuring, totalWork);
-		try {
-			profileId = computeProfileId();
-			// verify that we can resolve hostnames
-			// this is a pre-emptive check so that we can provide better error handling
-			// than that provided by P2.
-			{
-				Set<String> hostnames = new HashSet<String>();
-				for (ConnectorDescriptor descriptor : installableConnectors) {
-					URL url = new URL(descriptor.getSiteUrl());
-					String host = url.getHost();
-					if (host != null && host.length() > 0 && hostnames.add(host)) {
-						try {
-							InetAddress.getByName(host);
-						} catch (UnknownHostException e) {
-							throw new CoreException(new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN, NLS.bind(
-									Messages.PrepareInstallProfileJob_errorResolvingHostname, descriptor.getName(),
-									host), e));
-						}
-					}
-				}
-			}
-
-			// Tell p2 that it's okay to use these repositories
-			Set<URL> repositoryURLs = new HashSet<URL>();
-			for (ConnectorDescriptor descriptor : installableConnectors) {
-				URL url = new URL(descriptor.getSiteUrl());
-				if (repositoryURLs.add(url)) {
-					if (monitor.isCanceled()) {
-						return;
-					}
-					ProvisioningUtil.addMetadataRepository(url.toURI(), true);
-					ProvisioningUtil.addArtifactRepository(url.toURI(), true);
-					ProvisioningUtil.setColocatedRepositoryEnablement(url.toURI(), true);
-
-				}
-				monitor.worked(1);
-			}
-			if (repositoryURLs.isEmpty()) {
-				// should never happen
-				throw new IllegalStateException();
-			}
-			// Fetch p2's metadata for these repositories
-			List<IMetadataRepository> repositories = new ArrayList<IMetadataRepository>();
-			final Map<IMetadataRepository, URL> repositoryToURL = new HashMap<IMetadataRepository, URL>();
-			{
-				int unit = installableConnectors.size() / repositoryURLs.size();
-				for (URL updateSiteUrl : repositoryURLs) {
-					if (monitor.isCanceled()) {
-						return;
-					}
-					IMetadataRepository repository = ProvisioningUtil.loadMetadataRepository(updateSiteUrl.toURI(),
-							new SubProgressMonitor(monitor, unit));
-					repositories.add(repository);
-					repositoryToURL.put(repository, updateSiteUrl);
-				}
-			}
-			// Perform a query to get the installable units.  This causes p2 to determine what features are available
-			// in each repository.  We select installable units by matching both the feature id and the repository; it
-			// is possible though unlikely that the same feature id is available from more than one of the selected
-			// repositories, and we must ensure that the user gets the one that they asked for.
-			final List<IInstallableUnit> installableUnits = new ArrayList<IInstallableUnit>();
-			{
-				int unit = installableConnectors.size() / repositories.size();
-
-				for (final IMetadataRepository repository : repositories) {
-					if (monitor.isCanceled()) {
-						return;
-					}
-					URL repositoryUrl = repositoryToURL.get(repository);
-					final Set<String> installableUnitIdsThisRepository = new HashSet<String>();
-					// determine all installable units for this repository
-					for (ConnectorDescriptor descriptor : installableConnectors) {
-						try {
-							if (repositoryUrl.equals(new URL(descriptor.getSiteUrl()))) {
-								installableUnitIdsThisRepository.add(descriptor.getId());
-							}
-						} catch (MalformedURLException e) {
-							// will never happen, ignore
-						}
-					}
-					Collector collector = new Collector();
-					Query query = new MatchQuery() {
-						@Override
-						public boolean isMatch(Object object) {
-							if (!(object instanceof IInstallableUnit)) {
-								return false;
-							}
-							IInstallableUnit candidate = (IInstallableUnit) object;
-
-							if ("true".equalsIgnoreCase(candidate.getProperty("org.eclipse.equinox.p2.type.group"))) { //$NON-NLS-1$ //$NON-NLS-2$
-								String id = candidate.getId();
-								if (isQualifyingFeature(installableUnitIdsThisRepository, id)) {
-									IProvidedCapability[] providedCapabilities = candidate.getProvidedCapabilities();
-									if (providedCapabilities != null && providedCapabilities.length > 0) {
-										for (IProvidedCapability capability : providedCapabilities) {
-											if ("org.eclipse.equinox.p2.iu".equals(capability.getNamespace())) { //$NON-NLS-1$
-												String name = capability.getName();
-												if (isQualifyingFeature(installableUnitIdsThisRepository, name)) {
-													return true;
-												}
-											}
-										}
-									}
-								}
-							}
-							return false;
-						}
-
-						private boolean isQualifyingFeature(final Set<String> installableUnitIdsThisRepository,
-								String id) {
-							return id.endsWith(P2_FEATURE_GROUP_SUFFIX)
-									&& installableUnitIdsThisRepository.contains(id.substring(0,
-											id.indexOf(P2_FEATURE_GROUP_SUFFIX)));
-						}
-					};
-					repository.query(query, collector, new SubProgressMonitor(monitor, unit));
-
-					addAll(installableUnits, collector);
-				}
-			}
-
-			// filter those installable units that have a duplicate in the list with a higher version number.
-			// it's possible that some repositories will host multiple versions of a particular feature.  we assume
-			// that the user wants the highest version.
-			{
-				Map<String, Version> symbolicNameToVersion = new HashMap<String, Version>();
-				for (IInstallableUnit unit : installableUnits) {
-					Version version = symbolicNameToVersion.get(unit.getId());
-					if (version == null || version.compareTo(unit.getVersion()) == -1) {
-						symbolicNameToVersion.put(unit.getId(), unit.getVersion());
-					}
-				}
-				if (symbolicNameToVersion.size() != installableUnits.size()) {
-					for (IInstallableUnit unit : new ArrayList<IInstallableUnit>(installableUnits)) {
-						Version version = symbolicNameToVersion.get(unit.getId());
-						if (!version.equals(unit.getVersion())) {
-							installableUnits.remove(unit);
-						}
-					}
-				}
-			}
-
-			// Verify that we found what we were looking for: it's possible that we have connector descriptors
-			// that are no longer available on their respective sites.  In that case we must inform the user.
-			// (Unfortunately this is the earliest point at which we can know) 
-			if (installableUnits.size() < installableConnectors.size()) {
-				// at least one selected connector could not be found in a repository
-				Set<String> foundIds = new HashSet<String>();
-				for (IInstallableUnit unit : installableUnits) {
-					String id = unit.getId();
-					if (id.endsWith(P2_FEATURE_GROUP_SUFFIX)) {
-						id = id.substring(0, id.indexOf(P2_FEATURE_GROUP_SUFFIX));
-					}
-					foundIds.add(id);
-				}
-
-				final String notFound;
-				{
-					String temp = ""; //$NON-NLS-1$
-					for (ConnectorDescriptor descriptor : installableConnectors) {
-						if (!foundIds.contains(descriptor.getId())) {
-							if (temp.length() > 0) {
-								temp += Messages.InstallConnectorsJob_commaSeparator;
-							}
-							temp += descriptor.getName();
-						}
-					}
-					notFound = temp;
-				}
-				boolean proceed = false;
-				if (!installableUnits.isEmpty()) {
-					// instead of aborting here we ask the user if they wish to proceed anyways
-					final boolean[] okayToProceed = new boolean[1];
-					Display.getDefault().syncExec(new Runnable() {
-						public void run() {
-							okayToProceed[0] = MessageDialog.openQuestion(DiscoveryUiUtil.getShell(),
-									Messages.InstallConnectorsJob_questionProceed, NLS.bind(
-											Messages.InstallConnectorsJob_questionProceed_long,
-											new Object[] { notFound }));
-						}
-					});
-					proceed = okayToProceed[0];
-				}
-				if (!proceed) {
-					String notFoundDescription = ""; //$NON-NLS-1$
-					for (ConnectorDescriptor descriptor : installableConnectors) {
-						if (!foundIds.contains(descriptor.getId())) {
-							if (notFoundDescription.length() > 0) {
-								notFoundDescription += Messages.InstallConnectorsJob_commaSeparator;
-							}
-							notFoundDescription += NLS.bind(Messages.PrepareInstallProfileJob_notFoundDescriptorDetail,
-									new Object[] { descriptor.getName(), descriptor.getId(), descriptor.getSiteUrl() });
-						}
-					}
-					throw new CoreException(new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN, NLS.bind(
-							Messages.InstallConnectorsJob_connectorsNotAvailable, notFoundDescription), null));
-				}
-			} else if (installableUnits.size() > installableConnectors.size()) {
-				// should never ever happen
-				throw new IllegalStateException();
-			}
-
-			MultiStatus status = new MultiStatus(DiscoveryUi.ID_PLUGIN, 0, Messages.PrepareInstallProfileJob_ok, null);
-			ius = installableUnits.toArray(new IInstallableUnit[installableUnits.size()]);
-			ProfileChangeRequest profileChangeRequest = InstallAction.computeProfileChangeRequest(ius, profileId,
-					status, new SubProgressMonitor(monitor, installableConnectors.size()));
-			if (status.getSeverity() > IStatus.WARNING) {
-				throw new CoreException(status);
-			}
-			if (profileChangeRequest == null) {
-				// failed but no indication as to why
-				throw new CoreException(new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN,
-						Messages.PrepareInstallProfileJob_computeProfileChangeRequestFailed, null));
-			}
-			PlannerResolutionOperation operation = new PlannerResolutionOperation(
-					Messages.PrepareInstallProfileJob_calculatingRequirements, profileId, profileChangeRequest, null,
-					status, true);
-			IStatus operationStatus = operation.execute(new SubProgressMonitor(monitor, installableConnectors.size()));
-			if (operationStatus.getSeverity() > IStatus.WARNING) {
-				throw new CoreException(operationStatus);
-			}
-
-			plannerResolutionOperation = operation;
-
-		} catch (URISyntaxException e) {
-			// should never happen, since we already validated URLs.
-			throw new CoreException(new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN,
-					Messages.InstallConnectorsJob_unexpectedError_url, e));
-		} catch (MalformedURLException e) {
-			// should never happen, since we already validated URLs.
-			throw new CoreException(new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN,
-					Messages.InstallConnectorsJob_unexpectedError_url, e));
-		} finally {
-			monitor.done();
-		}
-	}
-
-	@SuppressWarnings("unchecked")
-	private boolean addAll(final List<IInstallableUnit> installableUnits, Collector collector) {
-		return installableUnits.addAll(collector.toCollection());
-	}
-
-	private String computeProfileId() throws CoreException {
-		IProfile profile = ProvisioningUtil.getProfile(IProfileRegistry.SELF);
-		if (profile != null) {
-			return profile.getProfileId();
-		}
-		IProfile[] profiles = ProvisioningUtil.getProfiles();
-		if (profiles.length > 0) {
-			return profiles[0].getProfileId();
-		}
-		throw new CoreException(new Status(IStatus.ERROR, DiscoveryUi.ID_PLUGIN,
-				Messages.InstallConnectorsJob_profileProblem, null));
-	}
-
-	public PlannerResolutionOperation getPlannerResolutionOperation() {
-		return plannerResolutionOperation;
-	}
-
-	public String getProfileId() {
-		return profileId;
-	}
-
-	public IInstallableUnit[] getIUs() {
-		return ius;
-	}
-
-	public InstallAction getInstallAction() {
-		return installAction;
-	}
-}
diff --git a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/messages.properties b/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/messages.properties
deleted file mode 100644
index f76fe2c..0000000
--- a/org.eclipse.mylyn.discovery.ui/src/org/eclipse/mylyn/internal/discovery/ui/wizards/messages.properties
+++ /dev/null
@@ -1,39 +0,0 @@
-ConnectorDescriptorToolTip_detailsLink=<a>Learn More</a>
-ConnectorDescriptorToolTip_detailsLink_tooltip=Open {0} in an external browser
-ConnectorDiscoveryWizard_cannotInstall=Cannot complete installation
-ConnectorDiscoveryWizard_connectorDiscovery=Install Connectors
-ConnectorDiscoveryWizard_installProblems=Problems occurred while performing installation: {0}
-ConnectorDiscoveryWizardMainPage_clearButton_accessibleListener=Clear filter field
-ConnectorDiscoveryWizardMainPage_clearButton_toolTip=Clear
-ConnectorDiscoveryWizardMainPage_connectorDiscovery=Mylyn Connector Discovery
-ConnectorDiscoveryWizardMainPage_errorTitle=Connector Discovery Error
-ConnectorDiscoveryWizardMainPage_filter_documents=Documents
-ConnectorDiscoveryWizardMainPage_filter_tasks=Tasks
-ConnectorDiscoveryWizardMainPage_filter_vcs=Version Control
-ConnectorDiscoveryWizardMainPage_filterLabel=Find:
-ConnectorDiscoveryWizardMainPage_message_with_cause={0}: {1}
-ConnectorDiscoveryWizardMainPage_noConnectorsFound=No Connectors Found
-ConnectorDiscoveryWizardMainPage_noConnectorsFound_description=Connector discovery completed without finding any connectors.  Please check your Internet connection and try again.
-ConnectorDiscoveryWizardMainPage_noMatchingItems_filteredType=There are no connectors of the selected type.  Please select another connector type or try again later.
-ConnectorDiscoveryWizardMainPage_noMatchingItems_noFilter=Sorry, there are no available connectors.  Please try again later.
-ConnectorDiscoveryWizardMainPage_noMatchingItems_withFilterText=There are no matching connectors.  Please <a>clear the filter text</a> or try again later.
-ConnectorDiscoveryWizardMainPage_pageDescription=\
-	Select connectors to install. Press Finish to proceed with installation.\n\
-	Press the information button to see a detailed overview and a link to more information.
-ConnectorDiscoveryWizardMainPage_provider_and_license=by {0}, {1}
-ConnectorDiscoveryWizardMainPage_tooltip_showOverview=Show Overview
-ConnectorDiscoveryWizardMainPage_unexpectedException=Unexpected exception
-ConnectorDiscoveryWizardMainPage_warningMessageConnectorUnavailable=Sorry, {0} is unavailable.  Please try again later.
-ConnectorDiscoveryWizardMainPage_warningTitleConnectorUnavailable=Connector Unavailable
-InstallConnectorsJob_commaSeparator=, 
-InstallConnectorsJob_connectorsNotAvailable=The following connectors are not available: {0}
-InstallConnectorsJob_profileProblem=Cannot determine p2 profile
-InstallConnectorsJob_questionProceed=Proceed With Installation?
-InstallConnectorsJob_questionProceed_long=The following connectors are not available: {0}\nProceed with the installation anyways?
-InstallConnectorsJob_task_configuring=Configuring installation selection
-InstallConnectorsJob_unexpectedError_url=Unexpected error handling repository URL
-PrepareInstallProfileJob_notFoundDescriptorDetail={0} (id={1}, site={2})
-PrepareInstallProfileJob_calculatingRequirements=Calculating requirements
-PrepareInstallProfileJob_computeProfileChangeRequestFailed=Cannot compute profile change request
-PrepareInstallProfileJob_errorResolvingHostname=Error resolving hostname {1} for '{0}': please check your Internet connection and try again.
-PrepareInstallProfileJob_ok=OK