Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 182367 - Isolate PDE dependencies to separate Test project plug-ins.
Summary: Isolate PDE dependencies to separate Test project plug-ins.
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: TPTP (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P1 major (vote)
Target Milestone: ---   Edit
Assignee: Paul Slauenwhite CLA
QA Contact:
URL:
Whiteboard:
Keywords:
: 175374 (view as bug list)
Depends on: 163173 183449 183451
Blocks: 184270 186576
  Show dependency tree
 
Reported: 2007-04-13 14:02 EDT by Paul Slauenwhite CLA
Modified: 2016-05-05 10:33 EDT (History)
7 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Paul Slauenwhite CLA 2007-04-13 14:02:33 EDT
Isolate PDE dependencies to seperate Test project plug-ins.

PDE dependencies for the Test Project are required for the JUnit Plug-in and AGR test types.  To make these dependencies optional, we will decouple the JUnit Plug-in test type from the core Test Project plug-ins separated in a different plug-in that would declare an optional dependency on PDE.  The JUnit Plug-in Test type would only be enabled if the PDE is available.
Comment 1 Paul Slauenwhite CLA 2007-04-16 12:40:02 EDT
*** Bug 175374 has been marked as a duplicate of this bug. ***
Comment 2 Paul Slauenwhite CLA 2007-04-20 08:11:15 EDT
Log of updates required for back-porting this fix:

-Complete https://bugs.eclipse.org/bugs/show_bug.cgi?id=163173.

-Create a new plug-in named 'org.eclipse.tptp.test.tools.junit.plugin' to contains the JUnit Plug-in-specific code and extension points.
Comment 3 Paul Slauenwhite CLA 2007-04-20 15:33:42 EDT
-Removed the org.eclipse.pde.ui dependency from the org.eclipse.hyades.test.tools.ui plug-in.
-Added the following dependencies to the org.eclipse.tptp.test.tools.junit.plugin plug-in:

org.eclipse.ui.ide
org.eclipse.jdt.core
org.eclipse.jdt.ui
org.eclipse.pde.ui
org.eclipse.xsd
org.junit
org.eclipse.tptp.platform.models
org.eclipse.hyades.logging.core
org.eclipse.hyades.ui
org.eclipse.hyades.test.core
org.eclipse.hyades.test.ui
org.eclipse.hyades.test.tools.core
org.eclipse.hyades.test.tools.ui

-Moved the following packages from the org.eclipse.hyades.test.tools.ui/src folder to the org.eclipse.tptp.test.tools.junit.plugin/src-ui folder:

org.eclipse.hyades.test.tools.ui.plugin.internal
org.eclipse.hyades.test.tools.ui.plugin.internal.util
org.eclipse.hyades.test.tools.ui.plugin.internal.junit.wizard
org.eclipse.hyades.test.tools.ui.plugin.internal.junit.editor
org.eclipse.hyades.test.tools.ui.plugin.internal.junit

-Move the following images from the org.eclipse.hyades.test.tools.ui/icons folder to the org.eclipse.tptp.test.tools.junit.plugin/icons folder:

full\dtool16\newpluginjsuite_wiz.gif
full\dtool16\newworkbenchLocation_wiz.gif
full\etool16\newworkbenchLocation_wiz.gif
full\etool16\newpluginjsuite_wiz.gif
full\obj16\plugin_jsuite_obj.gif
full\obj16\workbench_propertyGroup_obj.gif
full\obj16\plugin_jsuite_editor.gif
full\wizban\newpluginjsuite_wiz.gif
full\wizban\new_workbenchlocation_wiz.gif

-Copied the following methods to the org.eclipse.tptp.test.tools.junit.plugin.internal.JUnitPluginActivator.java class:

org.eclipse.hyades.test.tools.ui.ToolsUiPlugin.getID()
org.eclipse.hyades.test.tools.ui.ToolsUiPlugin.logError(Throwable)
org.eclipse.hyades.test.tools.ui.ToolsUiPlugin.start(BundleContext)

-Removed the org.eclipse.hyades.test.tools.ui.plugin.internal.TestPluginImages references from org.eclipse.hyades.test.tools.ui.ToolsUiPlugin.java class.
-Moved the following extension points (ID) from the org.eclipse.hyades.test.tools.ui plug-in to the org.eclipse.tptp.test.tools.junit.plugin plug-in:

org.eclipse.hyades.test.ui.configurableObjectExtension (org.eclipse.hyades.test.tools.ui.plugin.workbenchPage)
org.eclipse.ui.newWizards (org.eclipse.hyades.test.plugin.internal.junit.wizard.PluginJUnitTestSuiteNewWizard and org.eclipse.hyades.test.tools.ui.plugin.internal.junit.wizard.WorkbenchLocationNewWizard)
org.eclipse.hyades.ui.typeDescriptions
org.eclipse.hyades.ui.typeValidators (org.eclipse.hyades.test.tools.ui.plugin.junit.testSuite.Validator)
org.eclipse.hyades.test.ui.newTestCaseWizards (org.eclipse.hyades.test.java.internal.junit.wizard.JUnitTestCaseNewWizard)
org.eclipse.hyades.ui.editorExtensions (org.eclipse.hyades.test.tools.ui.java.internal.junit.editor.JUnitEditorExtension)
org.eclipse.hyades.test.ui.testNavigatorTypeProvider
org.eclipse.hyades.test.ui.testNavigatorTypedElementProxyFactory

-Move the following messages from the org.eclipse.hyades.test.tools.ui/plugin.properties file to the org.eclipse.tptp.test.tools.junit.plugin/plugin.properties file:

WORKBENCH_PROPERTY_GROUP_TTL
WORKBENCH_PROPERTY_GROUP_DSC
TST_SUITE_PLUGIN_JUNIT_NAME
WIZ_NEW_PLUGIN_JUNIT_TST_SUITE_DSC
W_WORKBENCH_LOCATION
WIZ_NEW_WORKBENCH_LOCATION_DSC
TST_SUITE_PLUGIN_JUNIT_DSC
EDT_PLUGIN_JUNIT_TST_SUITE_DSC
EDT_PLUGIN_JUNIT_TST_SUITE_TTL

-Move the following messages from the org.eclipse.hyades.test.tools.ui.internal.resources/messages.properties file to the org.eclipse.hyades.test.tools.ui.plugin.internal/messages.properties file:

PluginJUnitImportWizard_title

-Remove the org.eclipse.pde.ui dependency from the org.eclipse.hyades.test.tools.core plug-in.
-Move the following packages from the org.eclipse.hyades.test.tools.core/src folder to the org.eclipse.tptp.test.tools.junit.plugin/src folder:

org.eclipse.hyades.test.tools.core.internal.plugin
org.eclipse.hyades.test.tools.core.internal.plugin.codegen
org.eclipse.hyades.test.tools.core.internal.plugin.harness
org.eclipse.hyades.test.tools.core.internal.plugin.launch
org.eclipse.hyades.test.tools.core.internal.plugin.modelsync
org.eclipse.hyades.test.tools.core.internal.plugin.util

-Copied the following packages from the org.eclipse.hyades.test.tools.core/src folder to the org.eclipse.tptp.test.tools.junit.plugin/src folder:

org.eclipse.hyades.test.tools.core.internal.java.launch

-Move the following packages from the org.eclipse.hyades.test.tools.core/src-plugin-runner folder to the org.eclipse.tptp.test.tools.junit.plugin/src-runner folder:

org.eclipse.hyades.test.tools.plugin.runner
org.eclipse.hyades.test.tools.plugin.ui.runner

-Moved the following extension points (ID) from the org.eclipse.hyades.test.tools.core plug-in to the org.eclipse.tptp.test.tools.junit.plugin plug-in:

org.eclipse.core.runtime.applications (plugin.uirunner.testApplication)
org.eclipse.core.runtime.applications (plugin.runner.testApplication)
org.eclipse.hyades.test.core.RegisteredExecutionComponentImpl (org.eclipse.hyades.execution.harness.RegisteredExecutionComponentImpl.PLUGIN)
org.eclipse.hyades.test.core.ExecutionEnvironmentAdapter (org.eclipse.hyades.execution.harness.ExecutionEnvironmentAdapter.PLUGIN)
org.eclipse.hyades.test.core.ExecutableObjectAdapter (org.eclipse.hyades.execution.harness.ExecutableObjectAdapter.PLUGIN)
org.eclipse.hyades.test.core.ExecutionDeploymentAdapter (org.eclipse.hyades.execution.harness.ExecutionDeploymentAdapter.PLUGIN)
org.eclipse.hyades.test.core.launchconfigLaunchableType
org.eclipse.hyades.test.core.launchconfigDeploymentProvider

-Copied the plug-in specific elements of the following extension points (ID) from the org.eclipse.hyades.test.tools.core plug-in to the org.eclipse.tptp.test.tools.junit.plugin plug-in:

org.eclipse.hyades.test.tools.core.junitFactory
org.eclipse.hyades.test.core.launchconfigExecutionHistoryDefaults

-Export the following packages from the org.eclipse.hyades.test.tools.core plug-in:

org.eclipse.hyades.test.tools.core.internal.java.harness

-Adjusted the packages of the org.eclipse.tptp.test.tools.junit.plugin plug-in to match the org.eclipse.tptp.test.tools.junit.plugin name space.
-Organized imports, updated copyright years and replace CVS identifier (e.g. $Id$).
-Complete https://bugs.eclipse.org/bugs/show_bug.cgi?id=163173 again.
Comment 4 Paul Slauenwhite CLA 2007-04-20 15:35:35 EDT
Outstanding:

-Fix org.eclipse.hyades.test.tools.core.internal.java.harness.JUnitExecutionDeploymentAdapter.getPluginFiles(IProject).
-Fix org.eclipse.hyades.test.tools.core.internal.common.codegen.JavaProjectDependencyUpdater.ProjectClasspathChange.computePath(IPath).
-Fix org.eclipse.hyades.test.tools.core.internal.common.codegen.AutomaticDependencyUpdater.createDelegate(IProject).
-Fix org.eclipse.hyades.test.tools.ui.java.internal.junit.wizard.SourcePage.computeMessage(IProject, Collection).
-Add Agent Controller configuration and packaging.
-Remove AGR and JUnit plug-in references in org.eclipse.hyades.test.tools.core.internal.java.modelsync.JUnitProjectBuilder.setupTestSuiteBacklink(IFile).
Comment 5 Paul Slauenwhite CLA 2007-04-20 15:42:32 EDT
-Extend the org.eclipse.tptp.test, org.eclipse.tptp.test.runtime and org.eclipse.tptp.test.tools features to include the new org.eclipse.tptp.test.tools.junit.plugin plug-in.
Comment 6 Paul Slauenwhite CLA 2007-04-20 15:47:26 EDT
-Modify the JUnit Plugin documentation to add the following disclaimer:

<div filter="plugin!=org.eclipse.pde.ui">
<b>
<p>
Note: This function is not available in your installation
because you are missing the prerequisite plug-ins. To enable this function, you must
download and install these plug-ins.
</p>

<p>Instructions:</p>

<ol>
	<li>
		Shut down your workbench.
	</li>
	<li>
		Open the external site, 
		<a href="http://www.eclipse.org/tptp/home/downloads/downloads.php">Test and Performance Tools Platform</a>
	</li>
	<li>
		Turn to the download page, select the tab that matches your version, and download the Eclipse SDK prerequisite listed in the <b>Requirements</b>
		section. 
	</li>
	<li>
		Unzip these plug-ins in your <code>plugins</code> directory.
	</li>
	<li>
		Restart your workbench with the <code>-clean</code> option. The reports should now be enabled.
	</li>
</ol>
</b>
</div>

Open a defect to address moving the JUnit Plugin documentation to a separate plug-in in 4.5.
Comment 7 Paul Slauenwhite CLA 2007-04-20 15:51:54 EDT
Checked-in files for comment 2 and comment 3 to CVS (HEAD).
Comment 8 Valentina Popescu CLA 2007-04-20 15:58:37 EDT
Paul, regarding moving the documentation to a new plugin; I think there is a way to apply a filter to the content to hide data when a certain plugin configuration is specified.
Let's talk about this before you start updating the documentation plugins
Comment 9 Paul Slauenwhite CLA 2007-04-20 16:00:01 EDT
(In reply to comment #8)
> Paul, regarding moving the documentation to a new plugin; I think there is a
> way to apply a filter to the content to hide data when a certain plugin
> configuration is specified.
> Let's talk about this before you start updating the documentation plugins
> 

Something like in comment #6?
Comment 10 Valentina Popescu CLA 2007-04-20 16:09:43 EDT
No, what you propose is a warning for the user if some part of the documentation is not available.
I am proposing to completely hide the content from the user. This can be done using a filter and I think we did a similar work for the LA RCP.
Comment 11 Eugene Chan CLA 2007-04-20 16:22:42 EDT
Paul is already applying the dynamic content in comment #6 which is what RCP LA is using.

Detail about dynamic content.
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/ua_dynamic.htm 
Comment 12 Paul Slauenwhite CLA 2007-04-23 11:00:00 EDT
(In reply to comment #3)

-Remove the plugin.runner.jar from org.eclipse.hyades.test.tools.core\build.properties and org.eclipse.hyades.test.tools.core\META-INF\MANIFEST.MF.
Comment 13 Paul Slauenwhite CLA 2007-04-23 15:10:40 EDT
(In reply to comment #4)
> Outstanding:
> 
> -Add Agent Controller configuration and packaging.

Done.
Comment 14 Paul Slauenwhite CLA 2007-04-23 15:20:37 EDT
(In reply to comment #4)
> Outstanding:
> 
> -Remove AGR and JUnit plug-in references in
> org.eclipse.hyades.test.tools.core.internal.java.modelsync.JUnitProjectBuilder.setupTestSuiteBacklink(IFile).
> 

Done.
Comment 15 Paul Slauenwhite CLA 2007-04-25 09:11:18 EDT
Updates to resolve issues with compilation order:

-Moved org.eclipse.tptp.test.tools.junit.plugin.internal.ui.resources.TestPluginImages.java  to org.eclipse.tptp.test.tools.junit.plugin.internal.resources.TestPluginImages.java.
Comment 16 Paul Slauenwhite CLA 2007-04-25 14:48:29 EDT
(In reply to comment #4)
> Outstanding:
> 
> -Fix
> org.eclipse.hyades.test.tools.ui.java.internal.junit.wizard.SourcePage.computeMessage(IProject,
> Collection).

Done.

This fix required creating a new class (org.eclipse.hyades.test.tools.core.internal.util.PluginProjectUtil.java) and moving the following methods from the org.eclipse.tptp.test.tools.junit.plugin.internal.util.PDEProjectUtil.java class:

getDependentProjects(IProject)
isManifestBasedPluginProject(IProject)
isStrictPluginProject(IProject)

Also, the new package (org.eclipse.hyades.test.tools.core.internal.util) was exported.

Finally, the calls to the org.eclipse.hyades.test.tools.core.CorePlugin.logError(Throwable) and org.eclipse.hyades.test.tools.core.CorePlugin.logError(String) methods in the org.eclipse.tptp.test.tools.junit.plugin plugin were changes to calls to the org.eclipse.tptp.test.tools.junit.plugin.internal.JUnitPluginActivator.logError(Throwable) and org.eclipse.tptp.test.tools.junit.plugin.internal.JUnitPluginActivator.logError(String) methods.
Comment 17 Paul Slauenwhite CLA 2007-04-26 08:48:29 EDT
(In reply to comment #4)
> Outstanding:
> 
> -Fix
> org.eclipse.hyades.test.tools.core.internal.java.harness.JUnitExecutionDeploymentAdapter.getPluginFiles(IProject).

Done.

This fix required the following:

-Moving the following methods from org.eclipse.tptp.test.tools.junit.plugin.internal.util.PDEProjectUtil.java class to org.eclipse.hyades.test.tools.core.internal.util.PluginProjectUtil.java class:

getBundleSymbolicName(IProject)
getDeployables(IProject)
getIncludes(IPluginModelBase)
splitIncludes(String)

-Removing the org.eclipse.tptp.test.tools.junit.plugin.internal.util.PDEProjectUtil.java class.

-Moving the following classes from the org.eclipse.tptp.test.tools.junit.plugin.internal.util package of the org.eclipse.tptp.test.tools.junit.plugin plugin to the org.eclipse.hyades.test.tools.core.internal.util package of the org.eclipse.hyades.test.tools.core plugin:

ManifestUtil.java
PluginXmlUtil.java

-Added the following methods to the org.eclipse.hyades.test.tools.core.internal.util.PluginProjectUtil.java class:

isFragmentPluginProject(IProject)
isManifestBasedPluginProject(IProject)
isPluginXMLBasedPluginProject(IProject)

-Added the following variables/methods to the org.eclipse.hyades.test.tools.core.internal.util.PluginXmlUtil.java class:

getAttribute(IFile, String)
getAttribute(IFile, String, String)
getPluginXmlFile(IProject)
PLUGIN_XML_NAME

-Added the following variables/methods to the org.eclipse.hyades.test.tools.core.internal.util.ManifestUtil.java class:

getEntry(IFile, String)
getManifestFile(IProject)
MANIFEST_NAME
Comment 18 Paul Slauenwhite CLA 2007-04-26 09:34:27 EDT
(In reply to comment #4)
> Outstanding:
> 
> -Fix
> org.eclipse.hyades.test.tools.core.internal.common.codegen.JavaProjectDependencyUpdater.ProjectClasspathChange.computePath(IPath).


Done.

This fix required the following:

-Added the following method to the org.eclipse.hyades.test.tools.core.internal.util.PluginProjectUtil.java class:

getBundleVersion(IProject)
Comment 19 Paul Slauenwhite CLA 2007-04-26 12:25:45 EDT
(In reply to comment #4)
> Outstanding:
> 
> -Fix
> org.eclipse.hyades.test.tools.core.internal.common.codegen.AutomaticDependencyUpdater.createDelegate(IProject).

Done.

This fix required the following:

-Moving the following classes from the org.eclipse.tptp.test.tools.junit.plugin.internal.codegen package of the org.eclipse.tptp.test.tools.junit.plugin plugin to the org.eclipse.hyades.test.tools.core.internal.common.codegen package of the org.eclipse.hyades.test.tools.core plugin:

PluginProjectDependencyUpdater.java

-Added the following methods to the org.eclipse.hyades.test.tools.core.internal.util.PluginProjectUtil.java class:

getBundleVersion(String)
containsPluginRequires(IProject, String)

-Added the following variables/methods to the org.eclipse.hyades.test.tools.core.internal.util.ManifestUtil.java class:

getPropertyValue(IFile, String)
getPropertyValues(IFile, String)
HOST_PLUGIN_PROPERTY
ID_PROPERTY
MANIFEST_NAME
REQUIRES_PROPERTY
VERSION_PROPERTY

-Added the following variables/methods to the org.eclipse.hyades.test.tools.core.internal.util.PluginXmlUtil.java class:

getPropertyValue(IFile, String)
getPropertyValues(IFile, String)
HOST_PLUGIN_PROPERTY
ID_PROPERTY
MANIFEST_NAME
REQUIRES_PROPERTY
VERSION_PROPERTY
Comment 20 Paul Slauenwhite CLA 2007-04-26 12:53:51 EDT
(In reply to comment #6)

-The JUnit Plugin documentation is fitlered when the org.eclipse.pde.ui is not available.  File modified include:

org.eclipse.tptp.test.report.birt.doc.user\junitplugin_birt_toc.xml
org.eclipse.hyades.test.doc.user\junit_toc.xml
org.eclipse.hyades.test.doc.user\concepts\ccommontestingtasksandconcepts.htm

> Open a defect to address moving the JUnit Plugin documentation to a separate
> plug-in in 4.5.
> 

https://bugs.eclipse.org/bugs/show_bug.cgi?id=184270
Comment 21 Paul Slauenwhite CLA 2007-05-04 11:22:56 EDT
All dependent defects have been resolved in the TPTP-4.4.0-200705040100 build.
Comment 22 Paul Slauenwhite CLA 2007-06-02 14:52:07 EDT
Reporter: Please verify and close in preparation for shutting down the TPTP 4.4 release.  Thanks.
Comment 23 Paul Slauenwhite CLA 2007-06-27 15:49:00 EDT
Verified in TPTP-4.4.0-200706140100C.