Bug 305782 - restructure Mylyn Commons features
Summary: restructure Mylyn Commons features
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Mylyn (show other bugs)
Version: unspecified   Edit
Hardware: PC Linux
: P1 enhancement (vote)
Target Milestone: 3.7   Edit
Assignee: Steffen Pingel CLA
QA Contact:
URL:
Whiteboard:
Keywords: plan
Depends on: 296436 304755 313977 350385 361048 366862 367002 367003
Blocks: 355941
  Show dependency tree
 
Reported: 2010-03-13 17:28 EST by Steffen Pingel CLA
Modified: 2014-02-25 08:28 EST (History)
4 users (show)

See Also:


Attachments
org.eclipse.mylyn.commons.screenshots plug-in (128.38 KB, application/octet-stream)
2010-08-28 23:23 EDT, Steffen Pingel CLA
no flags Details
extension that embeds screenshot viewer in view (3.93 KB, patch)
2010-08-28 23:30 EDT, Steffen Pingel CLA
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Steffen Pingel CLA 2010-03-13 17:28:02 EST
There have been several requests for reuse of Mylyn UI components such as notification popups. Currently this requires adding a dependency on the org.eclipse.mylyn_feature which pulls in additional dependencies and adds UI contributions or adding a plug-in dependency which can cause provisioning problems.

Also with several new sub-projects being added additional feature will need to be created. This provides a good opportunity to review the current decomposition and to consider splitting features into more fine grained components that can be consumed by integrators.
Comment 1 Steffen Pingel CLA 2010-07-07 01:50:29 EDT
Proposal for commons plug-ins to support better reuse:

bc. 
org.eclipse.mylyn.commons.core
org.eclipse.mylyn.commons.editor         (ui components, org.eclipse.ui.editor dependency)
org.eclipse.mylyn.commons.forms          (ui components, org.eclipse.ui.forms dependency)
org.eclipse.mylyn.commons.http           (replaces org.eclipse.mylyn.commons.net)
org.eclipse.mylyn.commons.net            (deprecated to re-export of required httpclient bundles)
org.eclipse.mylyn.commons.notifications  (notifications framework)
org.eclipse.mylyn.commons.repositories   (repositories core)
org.eclipse.mylyn.commons.screencapture  (screen capture wizard)
org.eclipse.mylyn.commons.soap
org.eclipse.mylyn.commons.team           (team repositories view, repository ui)
org.eclipse.mylyn.commons.ui             (ui components, minimal dependencies)
org.eclipse.mylyn.commons.workbench      (ui components, org.eclipse.ui.workbench dependency)
org.eclipse.mylyn.commons.xmlrpc
Comment 2 Mik Kersten CLA 2010-07-15 13:34:30 EDT
Looks good.  Suggested changes:
* Make ..commons.forms a part of ..commons.edtior until we have a concerete use case to separate the dependencies
* Make ..commons.workbench part of ..commons.ui if there isn't a compelling enough case yet
Comment 3 Mik Kersten CLA 2010-07-15 13:35:50 EDT
Also consider merging ..commons.repositories with ..commons.core
Comment 4 Steffen Pingel CLA 2010-07-28 15:46:48 EDT
Thanks for the input. Here is another pass at this:

*Core*

bc. 
org.eclipse.mylyn.commons.core           error reporting, utility classes
org.eclipse.mylyn.commons.http           HTTP support, replaces org.eclipse.mylyn.commons.net
org.eclipse.mylyn.commons.net            deprecated due to re-export of httpclient
org.eclipse.mylyn.commons.repositories   repositories core, proxy service, authentication service
org.eclipse.mylyn.commons.soap           SOAP support
org.eclipse.mylyn.commons.xmlrpc         XML-RPC support

*UI*

bc. 
org.eclipse.mylyn.commons.notifications  notifications framework: preference page, extension point
org.eclipse.mylyn.commons.ui             UI components, dependency on org.eclipse.ui
org.eclipse.mylyn.commons.team           Team Repositories view, dependency on org.eclipse.ui.navigator

For the future we could consider splitting out some of the UI components to improve reuse in RCP scenarios:

bc. 
org.eclipse.mylyn.commons.capture        screen capture component
org.eclipse.mylyn.commons.editor         UI components that depend on org.eclipse.ui.editor
org.eclipse.mylyn.commons.jface          UI components that depend on SWT/JFace only
Comment 5 Steffen Pingel CLA 2010-07-28 16:01:27 EDT
The reason why I would like to keep the repositories plug-in separate from core is due to the dependencies on network and authentication related services such as the proxy service and secure storage which would impact reuse other plug-ins that depend on core. 

To encourage reuse of o.e.m.common.ui I would like to establish the constraint that it does not contribute anything to the UI but only provides reusable UI components. Therefore the notifications and team support is in separate plug-ins that contribute views and preference pages.
Comment 6 Mik Kersten CLA 2010-07-29 13:33:03 EDT
For future I'd rename "..mylyn.commons.capture" to "..mylyn.commons.screenshots" or something like that.
Comment 7 Steffen Pingel CLA 2010-08-28 23:23:28 EDT
Created attachment 177670 [details]
org.eclipse.mylyn.commons.screenshots plug-in
Comment 8 Steffen Pingel CLA 2010-08-28 23:30:25 EDT
Created attachment 177671 [details]
extension that embeds screenshot viewer in view
Comment 9 Steffen Pingel CLA 2010-08-28 23:31:58 EDT
The attachment contains a plug-in that provides a ScreenshotViewer class. It basically wraps a ViewForm that provides the capture and editing capabilities. If anyone cares I'd be happy to commit this to make the screen capturing component easier to reuse.
Comment 10 Steffen Pingel CLA 2011-10-14 11:03:03 EDT
To ensure that dependencies on Mylyn Commons are properly updated and are easily consumable we should create features for each component in commons:

*org.eclipse.mylyn.commons*

pre. 
org.eclipse.mylyn.commons-feature
org.eclipse.mylyn
org.eclipse.mylyn.commons.core
org.eclipse.mylyn.commons.screenshots
org.eclipse.mylyn.commons.tests
org.eclipse.mylyn.commons.ui

*org.eclipse.mylyn.commons.activity*

pre. 
org.eclipse.mylyn.commons.activity-feature
org.eclipse.mylyn.commons.activity.tests
org.eclipse.mylyn.commons.activity.ui

*org.eclipse.mylyn.commons.http*

pre. 
org.eclipse.mylyn.commons.http-feature
org.eclipse.mylyn.commons.http.core

*org.eclipse.mylyn.commons.identity*

pre. 
org.eclipse.mylyn.commons.identity-feature
org.eclipse.mylyn.commons.identity.core
org.eclipse.mylyn.commons.identity.ui

*org.eclipse.mylyn.commons.net* (deprecated)

pre. 
org.eclipse.mylyn.commons.net-feature
org.eclipse.mylyn.commons.net
org.eclipse.mylyn.commons.xmlrpc
org.eclipse.mylyn.commons.soap

*org.eclipse.mylyn.commons.notifications*

pre. 
org.eclipse.mylyn.commons.notifications-feature
org.eclipse.mylyn.commons.notifications.ui

*org.eclipse.mylyn.commons.repository*

pre. 
org.eclipse.mylyn.commons.repository-feature
org.eclipse.mylyn.commons.repository.core
org.eclipse.mylyn.commons.repository.ui

*org.eclipse.mylyn.commons.sdk*

pre. 
org.eclipse.mylyn.commons.sdk-feature
org.eclipse.mylyn.commons.sdk.util

*org.eclipse.mylyn.commons.soap*

pre. 
org.eclipse.mylyn.commons.soap-feature
org.eclipse.mylyn.commons.soap.core

*org.eclipse.mylyn.commons.xmlrpc*

pre. 
org.eclipse.mylyn.commons.xmlrpc-feature
org.eclipse.mylyn.commons.xmlrpc.core

*org.eclipse.mylyn.discovery*

pre. 
org.eclipse.mylyn.discovery-feature
org.eclipse.mylyn.discovery.core
org.eclipse.mylyn.discovery.tests
org.eclipse.mylyn.discovery.ui

*org.eclipse.mylyn.monitor*

pre. 
org.eclipse.mylyn.monitor-feature
org.eclipse.mylyn.monitor.core
org.eclipse.mylyn.monitor.tests
org.eclipse.mylyn.monitor.ui
Comment 11 Shawn Minto CLA 2011-10-20 13:31:26 EDT
After looking at this final list, this seems like the most sensible way to go.
Comment 12 Steffen Pingel CLA 2011-12-03 18:59:00 EST
*org.eclipse.mylyn.commons*

pre. 
org.eclipse.mylyn
org.eclipse.mylyn.commons-feature
org.eclipse.mylyn.commons.core
org.eclipse.mylyn.commons.screenshots
org.eclipse.mylyn.commons.tests
org.eclipse.mylyn.commons.ui
org.eclipse.mylyn.commons.workbench

*org.eclipse.mylyn.commons.activity*

pre. 
org.eclipse.mylyn.commons.activity-feature
org.eclipse.mylyn.commons.activity.tests
org.eclipse.mylyn.commons.activity.ui

*org.eclipse.mylyn.commons.identity*

pre. 
org.eclipse.mylyn.commons.identity-feature
org.eclipse.mylyn.commons.identity.core
org.eclipse.mylyn.commons.identity.ui

*org.eclipse.mylyn.commons.net* (deprecated)

pre. 
org.eclipse.mylyn.commons.net
org.eclipse.mylyn.commons.xmlrpc
org.eclipse.mylyn.commons.soap

*org.eclipse.mylyn.commons.notifications*

pre. 
org.eclipse.mylyn.commons.notifications-feature
org.eclipse.mylyn.commons.notifications.core
org.eclipse.mylyn.commons.notifications.rss
org.eclipse.mylyn.commons.notifications.ui

*org.eclipse.mylyn.commons.repository*

pre. 
org.eclipse.mylyn.commons.repository-feature
org.eclipse.mylyn.commons.repository.core
org.eclipse.mylyn.commons.repository.ui

*org.eclipse.mylyn.commons.sdk*

pre. 
org.eclipse.mylyn.commons.sdk-feature
org.eclipse.mylyn.commons.sdk.util

*org.eclipse.mylyn.discovery*

pre. 
org.eclipse.mylyn.discovery-feature
org.eclipse.mylyn.discovery.core
org.eclipse.mylyn.discovery.tests
org.eclipse.mylyn.discovery.ui

*org.eclipse.mylyn.monitor*

pre. 
org.eclipse.mylyn.monitor-feature
org.eclipse.mylyn.monitor.core
org.eclipse.mylyn.monitor.tests
org.eclipse.mylyn.monitor.ui

*org.eclipse.mylyn.transport.http*

pre. 
org.eclipse.mylyn.transport.http-feature
org.eclipse.mylyn.transport.http.core
org.eclipse.mylyn.transport.http.tests

*org.eclipse.mylyn.transport.soap* (future)

pre. 
org.eclipse.mylyn.transport.soap-feature
org.eclipse.mylyn.transport.soap.core
org.eclipse.mylyn.transport.soap.tests

*org.eclipse.mylyn.transport.xmlrpc* (future)

pre. 
org.eclipse.mylyn.transport.xmlrpc-feature
org.eclipse.mylyn.transport.xmlrpc.core
org.eclipse.mylyn.transport.xmlrpc.tests
Comment 13 Steffen Pingel CLA 2011-12-17 10:55:40 EST
This is the final list of components that was committed. See bug 350385 and bug 367002 for renamed packages and ids.

*org.eclipse.mylyn.commons*

pre. 
org.eclipse.mylyn
org.eclipse.mylyn.commons-feature
org.eclipse.mylyn.commons.core
org.eclipse.mylyn.commons.screenshots
org.eclipse.mylyn.commons.tests
org.eclipse.mylyn.commons.ui
org.eclipse.mylyn.commons.workbench

*org.eclipse.mylyn.commons.activity*

pre. 
org.eclipse.mylyn.commons.activity-feature
org.eclipse.mylyn.commons.activity.tests
org.eclipse.mylyn.commons.activity.ui

*org.eclipse.mylyn.commons.identity*

pre. 
org.eclipse.mylyn.commons.identity-feature
org.eclipse.mylyn.commons.identity.core
org.eclipse.mylyn.commons.identity.ui

*org.eclipse.mylyn.commons.net* (deprecated)

pre. 
org.eclipse.mylyn.commons.net
org.eclipse.mylyn.commons.xmlrpc
org.eclipse.mylyn.commons.soap

*org.eclipse.mylyn.commons.notifications*

pre. 
org.eclipse.mylyn.commons.notifications-feature
org.eclipse.mylyn.commons.notifications.core
org.eclipse.mylyn.commons.notifications.rss
org.eclipse.mylyn.commons.notifications.ui

*org.eclipse.mylyn.commons.repositories*

pre. 
org.eclipse.mylyn.commons.repositories-feature
org.eclipse.mylyn.commons.repositories.core
org.eclipse.mylyn.commons.repositories.ui

*org.eclipse.mylyn.commons.repositories.http*

pre. 
org.eclipse.mylyn.commons.repositories.http-feature
org.eclipse.mylyn.commons.repositories.http.core
org.eclipse.mylyn.commons.repositories.http.tests

*org.eclipse.mylyn.commons.repositories.soap* (future)

pre. 
org.eclipse.mylyn.commons.repositories.soap-feature
org.eclipse.mylyn.commons.repositories.soap.core
org.eclipse.mylyn.commons.repositories.soap.tests

*org.eclipse.mylyn.commons.repositories.xmlrpc* (future)

pre. 
org.eclipse.mylyn.commons.repositories.xmlrpc-feature
org.eclipse.mylyn.commons.repositories.xmlrpc.core
org.eclipse.mylyn.commons.repositories.xmlrpc.tests

*org.eclipse.mylyn.commons.sdk*

pre. 
org.eclipse.mylyn.commons.sdk-feature
org.eclipse.mylyn.commons.sdk.util

*org.eclipse.mylyn.discovery*

pre. 
org.eclipse.mylyn.discovery-feature
org.eclipse.mylyn.discovery.core
org.eclipse.mylyn.discovery.tests
org.eclipse.mylyn.discovery.ui

*org.eclipse.mylyn.monitor*

pre. 
org.eclipse.mylyn.monitor-feature
org.eclipse.mylyn.monitor.core
org.eclipse.mylyn.monitor.tests
org.eclipse.mylyn.monitor.ui
Comment 14 Henno Vermeulen CLA 2014-02-25 08:28:59 EST
Reusing only the AbstractNotificationPopup in an RCP app is still not ideal because of unnecessary required dependencies of the org.eclipse.mylyn.commons.ui plugin, see also bug 229823