|
Description
Pierre-Charles David
Some pointers: * the source code for the Activity Explorer is available in the Amalgam repo, at https://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/tree/plugins/org.eclipse.amalgam.explorer.activity.ui * some documentation is available at https://wiki.eclipse.org/File:Activity_Explorer-1.0.0.pdf and https://wiki.eclipse.org/ModelingAmalgam/ActivityExplorer. * UML Designer's usage is implemeted in https://github.com/ObeoNetwork/UML-Designer/tree/master/plugins/org.obeonetwork.dsl.uml2.dashboard. * Capella's own usage can be found at http://git.polarsys.org/c/capella/capella.git/tree/core/plugins/org.polarsys.capella.core.explorer.activity.ui. FWIW, a quick grep on the current source code of KitAlpha and Capella shows the following classes imported: org.eclipse.amalgam.explorer.activity.ui.ActivityExplorerActivator org.eclipse.amalgam.explorer.activity.ui.IImageKeys org.eclipse.amalgam.explorer.activity.ui.api.editor.ActivityExplorerEditor org.eclipse.amalgam.explorer.activity.ui.api.editor.input.ActivityExplorerEditorInput org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.BasicSessionActivityExplorerPage org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.CommonActivityExplorerPage org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.OverviewActivityExplorerPage org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.helper.SelectionHelper org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.viewers.AbstractActivityExplorerViewer org.eclipse.amalgam.explorer.activity.ui.api.editor.pages.viewers.DiagramViewer org.eclipse.amalgam.explorer.activity.ui.api.editor.predicates.IPredicate org.eclipse.amalgam.explorer.activity.ui.api.hyperlinkadapter.AbstractHyperlinkAdapter org.eclipse.amalgam.explorer.activity.ui.api.hyperlinkadapter.AbstractNewDiagramHyperlinkAdapter org.eclipse.amalgam.explorer.activity.ui.api.hyperlinkadapter.PopupMenuLinkAdapter org.eclipse.amalgam.explorer.activity.ui.api.manager.ActivityExplorerManager org.eclipse.amalgam.explorer.activity.ui.api.preferences.PreferenceConstants This is juste grepping for "import org.eclipse.amalgam.explorer.activity.ui", so there might be others which are referenced indirectly. Anyway, this gives a first very rough idea of the "API surface" that KitAlpha and Capella explictly depend on right now. Continuing the high-level review of code dependencies, here are all the Java classes which seem to depend on static configuration information defined in the plugin.xml files: % git grep -E 'import org.eclipse.core.runtime.(IConfigurationElement|IContributor|IExecutableExtension|IExtension|IExtensionPoint)' -- '**/*.java' | sort src/org/eclipse/amalgam/explorer/activity/ui/api/editor/activities/ExplorerActivity.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/ActivityExplorerPage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/BasicSessionActivityExplorerPage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/CommonActivityExplorerPage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/pages/CommonActivityExplorerPage.java:import org.eclipse.core.runtime.IExecutableExtension; src/org/eclipse/amalgam/explorer/activity/ui/api/editor/sections/ActivityExplorerSection.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IContributor; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IExecutableExtension; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IExtension; src/org/eclipse/amalgam/explorer/activity/ui/internal/extension/point/manager/ActivityExplorerExtensionManager.java:import org.eclipse.core.runtime.IExtensionPoint; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerManagementPreferencePage.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerSelectionBlock.java:import org.eclipse.core.runtime.IConfigurationElement; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerSelectionBlock.java:import org.eclipse.core.runtime.IExtension; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/ActivityExplorerSelectionBlock.java:import org.eclipse.core.runtime.IExtensionPoint; src/org/eclipse/amalgam/explorer/activity/ui/internal/preferences/DefaultPreferenceInitializer.java:import org.eclipse.core.runtime.IConfigurationElement; Most of these dependencies should probably be removed, or more precisely isolated in a single place as an implementation detail. Given its name, ActivityExplorerExtensionManager sounds like a good candidate. The information it provides should be exposed using an abstract API that can then be implemented in a different way. Note that this change will technically break APIs, as all the page implementation classes actually "implement IExecutableExtension" and read their configuration by a call to IExecutableExtension#setInitializationData(IConfigurationElement, String, Object). A different mechanism will be required to provide pages their configuration data which does not assume that information comes from plugin.xml configuration elements. This only covers (part of) the code dependencies that can be detected easily by grepping the code, but does not cover the fact the the current page implementations probably assume this configuration data, wherever it comes from, can be considered static. If we want the Sirius integration to feel "Sirius-native", page configuration will almost certainly contain dynamic information (e.g. interpreted expressions), and itself be dynamic (e.g. appearing/disappearing when viewpoints are enables/disabled, or in development mode when a VSM is modified by the specifier and then reloaded). New Gerrit change created: https://git.eclipse.org/r/93901 New Gerrit change created: https://git.eclipse.org/r/93900 New Gerrit change created: https://git.eclipse.org/r/93905 New Gerrit change created: https://git.eclipse.org/r/93904 New Gerrit change created: https://git.eclipse.org/r/93902 New Gerrit change created: https://git.eclipse.org/r/93903 New Gerrit change created: https://git.eclipse.org/r/93910 New Gerrit change created: https://git.eclipse.org/r/93908 New Gerrit change created: https://git.eclipse.org/r/93906 New Gerrit change created: https://git.eclipse.org/r/93907 New Gerrit change created: https://git.eclipse.org/r/93909 Gerrit change https://git.eclipse.org/r/93900 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=6812d85e0f0e472c01003e521e204eb3ce896936 Gerrit change https://git.eclipse.org/r/93901 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=6cd1635ee435dc4081a4da599dc906a9dbb481a6 Gerrit change https://git.eclipse.org/r/93902 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=78943fcfaf24b5ee7514cdaadbf0f88578c320c9 Gerrit change https://git.eclipse.org/r/93903 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=c1868beffc32d6b36098cf35c74cee5ed954323b Gerrit change https://git.eclipse.org/r/93905 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=d01f7023be370fe022c00464ef20eb913bf6bfae Gerrit change https://git.eclipse.org/r/93906 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=b4052069c5622f976cf70dc0ffc754d32fb22a64 Gerrit change https://git.eclipse.org/r/93907 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=423cc487a7b805a6125681379095789121e0f5c6 New Gerrit change created: https://git.eclipse.org/r/102321 Gerrit change https://git.eclipse.org/r/93908 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=a434a1609dc9cba43003d99aac1ab6dbace62759 Gerrit change https://git.eclipse.org/r/93909 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=4fe0e20fcc7f0cfc5b6f62e4979e40c93999edc6 Gerrit change https://git.eclipse.org/r/102321 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=0090a9a4b4ce19d6a60282eadc9c520eb45404ca New Gerrit change created: https://git.eclipse.org/r/102703 New Gerrit change created: https://git.eclipse.org/r/102701 New Gerrit change created: https://git.eclipse.org/r/103228 New Gerrit change created: https://git.eclipse.org/r/103227 New Gerrit change created: https://git.eclipse.org/r/103601 New Gerrit change created: https://git.eclipse.org/r/103600 Gerrit change https://git.eclipse.org/r/102701 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=7f0cfdc126a0d9e5289913a51ab65ea27b1eb199 Gerrit change https://git.eclipse.org/r/102703 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=b314dac1423b93fcd7060c64c41e787fda320491 Gerrit change https://git.eclipse.org/r/93910 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=81fa98edefcc5f2441b4c342cf0a60a13fe22137 Gerrit change https://git.eclipse.org/r/103227 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=c5d0c7dac0b9233666d74511861d1c73f0a4bde2 Gerrit change https://git.eclipse.org/r/103228 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=87ea675af5108bf0ed8db6edfa2fe946847288ef Gerrit change https://git.eclipse.org/r/103600 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=8eaad9253d1b8020fd9389232d43a95359e33c41 New Gerrit change created: https://git.eclipse.org/r/104959 New Gerrit change created: https://git.eclipse.org/r/104958 New Gerrit change created: https://git.eclipse.org/r/104963 Gerrit change https://git.eclipse.org/r/104958 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=3bfe39f2db35235c67077d4282de86c8df7a8231 Gerrit change https://git.eclipse.org/r/104959 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=a333578f65f15228334b5a7500c851b04608b124 Gerrit change https://git.eclipse.org/r/104963 was merged to [master]. Commit: http://git.eclipse.org/c/amalgam/org.eclipse.amalgam.git/commit/?id=49e04be599afc297f1e399f802ede599433507ae Changing the title to reflect the updated scope. Instead of trying to modify the existing Activity Explorer runtime (which is more complex and risky than initially thought), we will create a new implementation with similar concepts but maybe more oriented towards workflow definition, with: * a way for specifiers to define and organize global "actions" that apply to a session/project, which may depend on the current state. This is similar in scope to the pages/sections/activities supported by the Activity Explorer, but maybe a little more dynamic (at least that's the idea); * at runtime, the presentation of these actions inside the aird editor (as a new page). Instead of reusing the Activity Explorer runtime (which is not a good match), we'll use an embedded browser widget with dynamically rendered HTML/CSS/JS. New Gerrit change created: https://git.eclipse.org/r/118505 New Gerrit change created: https://git.eclipse.org/r/118506 Gerrit change https://git.eclipse.org/r/118505 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ae43d6371b2a53599d4bddf8c845d26d55b319c8 Gerrit change https://git.eclipse.org/r/118506 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=511ed44bc94cf9eefb53c456255351a6838fc611 New Gerrit change created: https://git.eclipse.org/r/118631 New Gerrit change created: https://git.eclipse.org/r/118692 New Gerrit change created: https://git.eclipse.org/r/119016 Gerrit change https://git.eclipse.org/r/118692 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=fc2386caf5c8954a146b6cc0917be2ac08c78621 New Gerrit change created: https://git.eclipse.org/r/121391 Gerrit change https://git.eclipse.org/r/119016 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=aa052272035c2d439cb4499a1f51f770858c8ed6 New Gerrit change created: https://git.eclipse.org/r/121777 Gerrit change https://git.eclipse.org/r/121777 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ac159571b706654a93b79a74821dc5c25249e5bc Gerrit change https://git.eclipse.org/r/121391 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=3d6de26c22af876d9061e0152cabab89cc4f1914 New Gerrit change created: https://git.eclipse.org/r/122163 New Gerrit change created: https://git.eclipse.org/r/122694 New Gerrit change created: https://git.eclipse.org/r/122693 Gerrit change https://git.eclipse.org/r/122693 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=bc76ec0b5b386e791afcac15ee5ea5aca665b2c7 Gerrit change https://git.eclipse.org/r/122694 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=634ca0d8c3ad0f1e8087ec27b2ec8646b5299b8f New Gerrit change created: https://git.eclipse.org/r/122768 Gerrit change https://git.eclipse.org/r/122768 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=52a7f361286bc8e5e918313b84576ef1e417343a New Gerrit change created: https://git.eclipse.org/r/123065 New Gerrit change created: https://git.eclipse.org/r/123073 Gerrit change https://git.eclipse.org/r/123073 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=d7651f3dc1246623c252e0f342bb7f94ae1df9b0 New Gerrit change created: https://git.eclipse.org/r/123225 New Gerrit change created: https://git.eclipse.org/r/123226 New Gerrit change created: https://git.eclipse.org/r/123227 Gerrit change https://git.eclipse.org/r/123065 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=26c8fe0dacb847cf7ab64be71c834f6aa2f2aced Gerrit change https://git.eclipse.org/r/123226 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=ceb11f758365ceb98b4b8fb816bdbfc8bd7bed48 Gerrit change https://git.eclipse.org/r/123227 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=a9de3742c427de4cc28e434ea9f7a0852cacd8ee Gerrit change https://git.eclipse.org/r/123225 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=b82fdf585de90f18fa2c8b4599d778889d3d71c9 New Gerrit change created: https://git.eclipse.org/r/123607 New Gerrit change created: https://git.eclipse.org/r/124003 Closing for the first version for 6.0.0, which should be considered experimental. We'll try to fix the most glaring bugs for 6.0.1 and provide a more stable a functional version for 6.1.0. Available in Sirius 6.0.0, see https://wiki.eclipse.org/Sirius/6.0.0 for details Gerrit change https://git.eclipse.org/r/123607 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=8a9d068ae67d693435f677bf033799a169888b68 Gerrit change https://git.eclipse.org/r/124003 was merged to [master]. Commit: http://git.eclipse.org/c/sirius/org.eclipse.sirius.git/commit/?id=dfc57bc57addc6ece0b99fed0c173c908654d803 |